svvitch
digital signage player
|
00001 #pragma once 00002 00003 #include <vector> 00004 #include <Poco/HashMap.h> 00005 #include <Poco/Logger.h> 00006 #include <Poco/Mutex.h> 00007 #include <Poco/Path.h> 00008 00009 #include "Container.h" 00010 #include "MediaItem.h" 00011 #include "PlayList.h" 00012 #include "Schedule.h" 00013 #include "Renderer.h" 00014 00015 using std::string; 00016 using std::vector; 00017 00018 00023 class Workspace 00024 { 00025 private: 00026 Poco::Logger& _log; 00027 00028 Poco::FastMutex _lock; 00029 00030 Path _file; 00031 string _signature; 00032 00033 vector<MediaItemPtr> _media; 00034 Poco::HashMap<string, MediaItemPtr> _mediaMap; 00035 vector<string> _existsFiles; 00036 00037 vector<PlayListPtr> _playlist; 00038 Poco::HashMap<string, PlayListPtr> _playlistMap; 00039 00040 vector<string> _fonts; 00041 00042 vector<SchedulePtr> _schedule; 00043 00044 void release(); 00045 00046 public: 00047 Workspace(Path file); 00048 00049 ‾Workspace(); 00050 00051 const Path& file() const; 00052 00053 bool parse(); 00054 00055 bool checkUpdate(); 00056 00057 const int getMediaCount(); 00058 00059 const MediaItemPtr getMedia(int i); 00060 00061 const MediaItemPtr getMedia(string id); 00062 00063 const int getPlaylistCount(); 00064 00065 const PlayListPtr getPlaylist(int i); 00066 00067 const PlayListPtr getPlaylist(string id); 00068 00069 const vector<string> getFonts(); 00070 00071 const int getScheduleCount(); 00072 00073 const SchedulePtr getSchedule(int i); 00074 00075 const vector<string> existsFiles(); 00076 00077 const string signature() const; 00078 }; 00079 00080 00081 typedef Workspace* WorkspacePtr;