svvitch
digital signage player
|
00001 #pragma once 00002 00003 #include <queue> 00004 #include <Poco/Mutex.h> 00005 #include <Poco/Thread.h> 00006 #include <Poco/Runnable.h> 00007 00008 #include "Content.h" 00009 #include "Container.h" 00010 #include "CaptureScene.h" 00011 #include "MediaItem.h" 00012 #include "PerformanceTimer.h" 00013 #include "Renderer.h" 00014 #include "Workspace.h" 00015 00016 using std::queue; 00017 using std::string; 00018 using std::wstring; 00019 00020 00025 class MixContent: public Content 00026 { 00027 private: 00028 Poco::FastMutex _lock; 00029 00030 vector<ContentPtr> _contents; 00031 00032 bool _playing; 00033 PerformanceTimer _playTimer; 00034 00035 00036 public: 00037 MixContent(Renderer& renderer, int splitType); 00038 00039 ‾MixContent(); 00040 00041 00042 void initialize(); 00043 00045 bool open(const MediaItemPtr media, const int offset = 0); 00046 00047 00049 void play(); 00050 00052 void stop(); 00053 00054 bool useFastStop(); 00055 00057 const bool playing() const; 00058 00059 const bool finished(); 00060 00062 void close(); 00063 00064 void process(const DWORD& frame); 00065 00066 void draw(const DWORD& frame); 00067 }; 00068 00069 typedef MixContent* MixContentPtr;