This renderer manages all multimedia concerns for the views it is in charge of. More...
#include <OSDLMultimediaRenderer.h>
Public Member Functions | |
MultimediaRenderer (bool registerToScheduler=true) | |
Constructs a new multimedia renderer. | |
virtual | ~MultimediaRenderer () throw () |
Virtual destructor, no view is destroyed. | |
virtual bool | hasVideoRenderer () const |
Returns whether a video renderer is available. | |
virtual VideoRenderer & | getVideoRenderer () const |
Returns the video renderer currently been used by this multimedia renderer. | |
virtual void | setVideoRenderer (VideoRenderer &newVideoRenderer) |
Sets the video renderer that should be used by this multimedia renderer. | |
virtual bool | hasAudioRenderer () const |
Returns whether a audio renderer is available. | |
virtual AudioRenderer & | getAudioRenderer () const |
Returns the audio renderer currently been used by this multimedia renderer. | |
virtual void | setAudioRenderer (AudioRenderer &newAudioRenderer) |
Sets the audio renderer that should be used by this multimedia renderer. | |
virtual void | render (Events::RenderingTick currentRenderingTick=0) |
Triggers the actual rendering of all views, for specified rendering tick, if any. | |
virtual void | renderVideo (Events::RenderingTick currentRenderingTick=0)=0 |
Triggers the actual video rendering of all views, for specified rendering tick, if any. | |
virtual void | renderAudio (Events::RenderingTick currentRenderingTick=0)=0 |
Triggers the actual audio rendering of all views, for specified rendering tick, if any. | |
virtual void | onRenderingSkipped (Events::RenderingTick skippedRenderingTick) |
Allows the renderer to be aware that a rendering step has to be skipped. | |
virtual const std::string | toString (Ceylan::VerbosityLevels level=Ceylan::high) const |
Returns an user-friendly description of the state of this object. | |
Static Public Member Functions | |
static bool | HasExistingRootRenderer () |
Tells whether a root renderer is available. | |
static Renderer & | GetExistingRootRenderer () |
Returns the one and only one root renderer instance that may be already available. | |
static void | DeleteExistingRootRenderer () |
Deletes the existing root renderer. | |
static void | DeleteRootRenderer () |
Deletes the root renderer, if any. | |
Protected Attributes | |
VideoRenderer * | _videoRenderer |
The internally used video renderer being used, if any. | |
AudioRenderer * | _audioRenderer |
The internally used audio renderer being used, if any. | |
RenderCount | _renderingDone |
Counts the number of renderings achieved. | |
RenderCount | _renderingSkipped |
Counts the number of renderings skipped. | |
Events::RenderingTick | _lastRender |
Records the last rendering tick. | |
Private Member Functions | |
MultimediaRenderer (const MultimediaRenderer &source) | |
Copy constructor made private to ensure that it will never be called. | |
MultimediaRenderer & | operator= (const MultimediaRenderer &source) |
Assignment operator made private to ensure that it will never be called. |
This renderer manages all multimedia concerns for the views it is in charge of.
It is triggered by the scheduler, so that at each rendering tick it gets activated.
This multimedia renderer delegates all graphical concerns to an internal video renderer, if any, and all sound concerns to an internal audio renderer, if any.
This kind of renderer is often used as a root renderer, since it is able to federate all multimedia needs for the views.
Definition at line 75 of file OSDLMultimediaRenderer.h.
MultimediaRenderer::MultimediaRenderer | ( | bool | registerToScheduler = true |
) | [explicit] |
Constructs a new multimedia renderer.
registerToScheduler | iff true, then a scheduler is supposed to exist already, and this renderer is automatically registered to the scheduler so that it gets called at each rendering tick. |
RenderingException | if registerToScheduler is true and no scheduler is available. |
Definition at line 56 of file OSDLMultimediaRenderer.cc.
MultimediaRenderer::~MultimediaRenderer | ( | ) | throw () [virtual] |
Virtual destructor, no view is destroyed.
Definition at line 67 of file OSDLMultimediaRenderer.cc.
OSDL::Rendering::MultimediaRenderer::MultimediaRenderer | ( | const MultimediaRenderer & | source | ) | [explicit, private] |
Copy constructor made private to ensure that it will never be called.
The compiler should complain whenever this undefined constructor is called, implicitly or not.
void Renderer::DeleteExistingRootRenderer | ( | ) | [static, inherited] |
Deletes the existing root renderer.
RenderingException | if not renderer was available. |
Definition at line 185 of file OSDLRenderer.cc.
void Renderer::DeleteRootRenderer | ( | ) | [static, inherited] |
Deletes the root renderer, if any.
Definition at line 201 of file OSDLRenderer.cc.
AudioRenderer & MultimediaRenderer::getAudioRenderer | ( | ) | const [virtual] |
Returns the audio renderer currently been used by this multimedia renderer.
RenderingException | iff no audio renderer is available. |
Definition at line 120 of file OSDLMultimediaRenderer.cc.
References _audioRenderer.
Renderer & Renderer::GetExistingRootRenderer | ( | ) | [static, inherited] |
Returns the one and only one root renderer instance that may be already available.
RenderingException | if there is no root renderer already available. |
Definition at line 173 of file OSDLRenderer.cc.
Referenced by OSDL::Rendering::AudioRenderer::AudioRenderer(), OSDL::Events::EventsModule::enterBasicMainLoop(), and OSDL::Rendering::VideoRenderer::VideoRenderer().
VideoRenderer & MultimediaRenderer::getVideoRenderer | ( | ) | const [virtual] |
Returns the video renderer currently been used by this multimedia renderer.
RenderingException | iff no video renderer is available. |
Definition at line 86 of file OSDLMultimediaRenderer.cc.
References _videoRenderer.
bool MultimediaRenderer::hasAudioRenderer | ( | ) | const [virtual] |
Returns whether a audio renderer is available.
Definition at line 111 of file OSDLMultimediaRenderer.cc.
References _audioRenderer.
bool Renderer::HasExistingRootRenderer | ( | ) | [static, inherited] |
Tells whether a root renderer is available.
Definition at line 164 of file OSDLRenderer.cc.
References OSDL::Rendering::Renderer::_internalRootRenderer.
Referenced by OSDL::Events::EventsModule::enterBasicMainLoop().
bool MultimediaRenderer::hasVideoRenderer | ( | ) | const [virtual] |
Returns whether a video renderer is available.
Definition at line 77 of file OSDLMultimediaRenderer.cc.
References _videoRenderer.
virtual void OSDL::Rendering::MultimediaRenderer::onRenderingSkipped | ( | Events::RenderingTick | skippedRenderingTick | ) | [virtual] |
Allows the renderer to be aware that a rendering step has to be skipped.
It may be a chance for it to trigger counter-measures, such as decreasing the level of detail in order not to slow down the whole process.
skippedRenderingTick | the rendering tick that had to be skipped. |
Reimplemented from OSDL::Rendering::Renderer.
MultimediaRenderer& OSDL::Rendering::MultimediaRenderer::operator= | ( | const MultimediaRenderer & | source | ) | [private] |
Assignment operator made private to ensure that it will never be called.
The compiler should complain whenever this undefined operator is called, implicitly or not.
virtual void OSDL::Rendering::MultimediaRenderer::render | ( | Events::RenderingTick | currentRenderingTick = 0 |
) | [virtual] |
Triggers the actual rendering of all views, for specified rendering tick, if any.
This method will manage both the video and audio renderings, should the dedicated specialized renderers be available.
currentRenderingTick | the rendering tick corresponding to this render step. If the renderer is called from a basic event loop (no scheduler is used), then the rendering tick is meaningless and is always zero. |
Reimplemented from OSDL::Rendering::Renderer.
virtual void OSDL::Rendering::MultimediaRenderer::renderAudio | ( | Events::RenderingTick | currentRenderingTick = 0 |
) | [pure virtual] |
Triggers the actual audio rendering of all views, for specified rendering tick, if any.
This method will manage the audio rendering, and is to be called by the overall render method, implemented by all renderers.
currentRenderingTick | the rendering tick corresponding to this render step. If the renderer is called from a basic event loop (no scheduler is used), then the rendering tick is meaningless and is always zero. |
virtual void OSDL::Rendering::MultimediaRenderer::renderVideo | ( | Events::RenderingTick | currentRenderingTick = 0 |
) | [pure virtual] |
Triggers the actual video rendering of all views, for specified rendering tick, if any.
This method will manage the video rendering, and is to be called by the overall render method, implemented by all renderers.
currentRenderingTick | the rendering tick corresponding to this render step. If the renderer is called from a basic event loop (no scheduler is used), then the rendering tick is meaningless and is always zero. |
void MultimediaRenderer::setAudioRenderer | ( | AudioRenderer & | newAudioRenderer | ) | [virtual] |
Sets the audio renderer that should be used by this multimedia renderer.
newAudioRenderer | the new audio renderer. |
If a renderer was already registered, it is deallocated first: this renderer takes ownership of its sub-renderers and manages their life cycle.
Definition at line 133 of file OSDLMultimediaRenderer.cc.
References _audioRenderer.
Referenced by OSDL::Rendering::AudioRenderer::AudioRenderer().
void MultimediaRenderer::setVideoRenderer | ( | VideoRenderer & | newVideoRenderer | ) | [virtual] |
Sets the video renderer that should be used by this multimedia renderer.
newVideoRenderer | the new video renderer. |
If a renderer was already registered, it is deallocated first: this renderer takes ownership of its sub-renderers and manages their life cycle.
Definition at line 99 of file OSDLMultimediaRenderer.cc.
References _videoRenderer.
Referenced by OSDL::Rendering::VideoRenderer::VideoRenderer().
const string MultimediaRenderer::toString | ( | Ceylan::VerbosityLevels | level = Ceylan::high |
) | const [virtual] |
Returns an user-friendly description of the state of this object.
level | the requested verbosity level. |
Reimplemented from OSDL::Rendering::Renderer.
Definition at line 182 of file OSDLMultimediaRenderer.cc.
References _audioRenderer, OSDL::Rendering::Renderer::_lastRender, OSDL::Rendering::Renderer::_renderingDone, OSDL::Rendering::Renderer::_renderingSkipped, _videoRenderer, OSDL::Rendering::AudioRenderer::toString(), and OSDL::Rendering::VideoRenderer::toString().
The internally used audio renderer being used, if any.
Definition at line 303 of file OSDLMultimediaRenderer.h.
Referenced by getAudioRenderer(), hasAudioRenderer(), setAudioRenderer(), and toString().
Events::RenderingTick OSDL::Rendering::Renderer::_lastRender [protected, inherited] |
Records the last rendering tick.
Useful to check whether no rendering tick was missed.
Definition at line 287 of file OSDLRenderer.h.
Referenced by OSDL::Rendering::VideoRenderer::toString(), OSDL::Rendering::StandardRenderer::toString(), OSDL::Rendering::Renderer::toString(), toString(), and OSDL::Rendering::AudioRenderer::toString().
RenderCount OSDL::Rendering::Renderer::_renderingDone [protected, inherited] |
Counts the number of renderings achieved.
Definition at line 269 of file OSDLRenderer.h.
Referenced by OSDL::Rendering::VideoRenderer::toString(), OSDL::Rendering::StandardRenderer::toString(), OSDL::Rendering::Renderer::toString(), toString(), and OSDL::Rendering::AudioRenderer::toString().
RenderCount OSDL::Rendering::Renderer::_renderingSkipped [protected, inherited] |
Counts the number of renderings skipped.
Definition at line 277 of file OSDLRenderer.h.
Referenced by OSDL::Rendering::VideoRenderer::toString(), OSDL::Rendering::StandardRenderer::toString(), OSDL::Rendering::Renderer::toString(), toString(), and OSDL::Rendering::AudioRenderer::toString().
The internally used video renderer being used, if any.
Definition at line 295 of file OSDLMultimediaRenderer.h.
Referenced by getVideoRenderer(), hasVideoRenderer(), setVideoRenderer(), and toString().