svvitch
digital signage player
D:/vs_workspace/switch_sf/src/svvitch/MixContent.h
Go to the documentation of this file.
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;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines