dummy playback: stub the required operations

This commit is contained in:
Fischlurch 2012-01-27 00:14:21 +01:00
parent 2eb39704fc
commit 288b737718
4 changed files with 79 additions and 11 deletions

View file

@ -26,9 +26,9 @@
** OutputMapping is a complement to the OutputDesignation handles
** used at various places in the high-level model. It is used when
** translating a given output spec into another connection target
** - when connecting an model port to a concrete external output
** - when connecting a model port to a concrete external output
** - when connecting a timeline to a viewer element
** - for implementing the viewer input selection "switchbord"
** - for implementing the viewer input selection "switchboard"
** - for translating output designation of virtual clips
** OutputMapping is to be used as value object, holding concrete
** connections and wiring. For each of the mentioned usage situations,
@ -38,7 +38,7 @@
** This definition context is actually instantiated (as base class).
** The mapping table actually just stores an association of hash
** values, which typically are interpreted as asset::ID<Pipe>.
** But the actual mapping result is retrieved on each acces
** But the actual mapping result is retrieved on each access
** by invoking a functor on the stored hash value,
** thus the final resolution is done \em late.
**
@ -104,10 +104,12 @@ namespace mobject {
/**
* OutputMapping is a facility to resolve output designations.
* For a given specification, resolution to the desired
* target specification may be derived. Here, the
* type of the target specification is defined
* through the type parameter.
* The session/model uses preliminary or partial output specifications,
* which are to be resolved to an actual system output while building
* and preparing a render network for operation (playback/rendering).
* For a given specification, resolution to the desired target spec
* may be derived by querying the OutputMapping. Here, the kind of
* the target specification is defined through the type parameter.
*
* \par definition of specific mapping behaviour
*

View file

@ -36,6 +36,10 @@
//#include "include/display-facade.h"
//#include "common/instancehandle.hpp"
//#include "lib/singleton-ref.hpp"
#include "proc/play/output-manager.hpp"
#include "proc/mobject/model-port.hpp"
#include "lib/time/timequant.hpp"
#include "lib/iter-source.hpp"
//
#include <boost/noncopyable.hpp>
//#include <boost/scoped_ptr.hpp>
@ -49,15 +53,68 @@ namespace play {
// using lumiera::Subsys;
// using lumiera::Display;
// using lumiera::DummyPlayer;
using lib::time::Duration;
typedef lib::IterSource<proc::mobject::ModelPort>::iterator ModelPorts;
struct PlayTestFrames_Strategy
{
};
/********************************************************************
*/
template<class DEF>
class DummyPlayConnection
: boost::noncopyable
{
public:
ModelPorts
provide_testModelPorts()
{
UNIMPLEMENTED ("provide a set of test model ports");
}
POutputManager
provide_testOutputSlot()
{
UNIMPLEMENTED ("provide a suitable output sink simulation");
}
/* === Test Support API === */
bool
isWired()
{
UNIMPLEMENTED ("is this dummy in activated state?");
}
Duration
getPlannedTestDuration()
{
UNIMPLEMENTED ("manage the a planned test duration");
}
/** test helper: blocking wait during an output test.
* The waiting time should be in accordance with the
* \link #getPlannedTestduration planned value \endlink,
*/
void
waitUntilDue()
{
UNIMPLEMENTED ("do a blocking wait, while an output test is performed in other threads");
}
bool
gotCorrectOutput()
{
UNIMPLEMENTED ("verify proper operation by inspecting the provided test dummy components");
}
};

View file

@ -44,6 +44,14 @@ namespace lumiera {
Play::~Play() { } // emit VTables here...
/** Storage for the lumiera::Play facade access point
* @note PlayService uses a InterfaceFacadeLink member
* for actually establishing the PlayService instance
* as implementation of lumiera::Play
*/
facade::Accessor<Play> Play::facade;
}//(End) namespace lumiera

View file

@ -46,6 +46,8 @@ namespace test {
typedef time::Control<time::Duration> DurationControl;
typedef DummyPlayConnection<PlayTestFrames_Strategy> DummyPlayer;
/*******************************************************************
* @test verify the OutputSlot interface and base implementation
@ -66,11 +68,11 @@ namespace test {
void
verify_simulatedPlayback()
{
DummyPlayConnection dummy; //////////TODO: how to pre-configure the DummyPlayConnection
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #805
DummyPlayer dummy;
CHECK (!dummy.isWired());
Controller ctrl = Play::facade().connect(dummy.port(), dummy.output());
Controller ctrl = Play::facade().connect ( dummy.provide_testModelPorts()
, dummy.provide_testOutputSlot());
CHECK ( dummy.isWired());
DurationControl playDuration;
@ -92,7 +94,6 @@ namespace test {
ctrl.close();
CHECK (!dummy.isWired());
CHECK (dummy.gotCorrectOutput());
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #805
}
};