Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/play/output-slot.hpp"
Interface: Generic output sink.
An OutputSlot represents the possibility to send data through multiple channels to some kind of external sink (video in GUI window, video full screen, sound, Jack, rendering to file). Clients are expected to retrieve a suitably preconfigured implementation from some OutputManager instance. An OutputSlot needs to be claimed for output by invoking allocate, which returns a representation of the connection state. This operation is exclusive. The actual output sinks can be retrieved through the Allocation object returned from there.
Definition at line 110 of file output-slot.hpp.
Public Types | |
typedef lib::IterSource< DataSink >::iterator | OpenedSinks |
Public Member Functions | |
Allocation & | allocate () |
claim this slot for exclusive use More... | |
void | disconnect () |
disconnect from this OutputSlot More... | |
bool | isFree () const |
can this OutputSlot be allocated? More... | |
Classes | |
class | Allocation |
class | Connection |
class | ConnectionState |
Extension point for Implementation. More... | |
Protected Member Functions | |
virtual ConnectionState * | buildState ()=0 |
build the connected state, based on the existing configuration within this concrete OutputSlot | |
Protected Attributes | |
unique_ptr< ConnectionState > | state_ |
Additional Inherited Members | |
Private Member Functions inherited from NonCopyable | |
NonCopyable (NonCopyable const &)=delete | |
NonCopyable & | operator= (NonCopyable const &)=delete |
bool isFree | ( | ) | const |
can this OutputSlot be allocated?
whether this output slot is occupied
Definition at line 61 of file output-slot.cpp.
Referenced by OutputSlot::allocate(), OutputSlot::disconnect(), and LumieraRenderProcessBuilder::getOutputFor().
OutputSlot::Allocation & allocate | ( | ) |
claim this slot for exclusive use
claim this OutputSlot for active use as output sink(s).
At any point, a given slot can only be used for a single ongoing output process (which may serve several channels though). The assumption is for the OutputSlot to be picked through a query to some OutputManater, so the parameters (resolution, sample rate...) should be suited for the intended use. Thus no additional configuration is necessary.
Definition at line 82 of file output-slot.cpp.
References OutputSlot::isFree().
Referenced by LumieraRenderProcessBuilder::buildCalculationStreams().
void disconnect | ( | ) |
disconnect from this OutputSlot
Definition at line 93 of file output-slot.cpp.
References OutputSlot::isFree().