00001 #ifndef OSDL_MULTIMEDIA_RENDERER_H_
00002 #define OSDL_MULTIMEDIA_RENDERER_H_
00003
00004
00005 #include "OSDLRenderer.h"
00006
00007 #include <string>
00008
00009
00010
00011 namespace OSDL
00012 {
00013
00014
00015 namespace Rendering
00016 {
00017
00018
00019
00020 class VideoRenderer ;
00021
00022
00023 class AudioRenderer ;
00024
00025
00045 class OSDL_DLL MultimediaRenderer : public Renderer
00046 {
00047
00048
00049 public:
00050
00051
00064 explicit MultimediaRenderer( bool registerToScheduler = true )
00065 throw( RenderingException ) ;
00066
00067
00072 virtual ~MultimediaRenderer() throw() ;
00073
00074
00075
00080 virtual bool hasVideoRenderer() const throw() ;
00081
00082
00090 virtual VideoRenderer & getVideoRenderer() const
00091 throw( RenderingException ) ;
00092
00093
00105 virtual void setVideoRenderer(
00106 VideoRenderer & newVideoRenderer ) throw() ;
00107
00108
00109
00114 virtual bool hasAudioRenderer() const throw() ;
00115
00116
00124 virtual AudioRenderer & getAudioRenderer() const
00125 throw( RenderingException ) ;
00126
00127
00139 virtual void setAudioRenderer(
00140 AudioRenderer & newAudioRenderer ) throw() ;
00141
00142
00143
00161 virtual void render(
00162 Events::RenderingTick currentRenderingTick = 0 ) throw() ;
00163
00164
00187 virtual void renderVideo(
00188 Events::RenderingTick currentRenderingTick = 0 )
00189 throw() = 0 ;
00190
00191
00214 virtual void renderAudio(
00215 Events::RenderingTick currentRenderingTick = 0 )
00216 throw() = 0 ;
00217
00218
00231 virtual void onRenderingSkipped(
00232 Events::RenderingTick skippedRenderingTick ) throw() ;
00233
00234
00246 virtual const std::string toString(
00247 Ceylan::VerbosityLevels level = Ceylan::high )
00248 const throw() ;
00249
00250
00251
00252
00253
00254 protected:
00255
00256
00261 VideoRenderer * _videoRenderer ;
00262
00263
00268 AudioRenderer * _audioRenderer ;
00269
00270
00271
00272 private:
00273
00274
00283 explicit MultimediaRenderer(
00284 const MultimediaRenderer & source ) throw() ;
00285
00286
00295 MultimediaRenderer & operator = (
00296 const MultimediaRenderer & source ) throw() ;
00297
00298
00299
00300 } ;
00301
00302 }
00303
00304 }
00305
00306
00307 #endif // OSDL_MULTIMEDIA_RENDERER_H_
00308