00001 /* 00002 * File: resources.h 00003 * Author: savop 00004 * 00005 * Created on 30. September 2009, 15:17 00006 */ 00007 00008 #ifndef _RESOURCES_H 00009 #define _RESOURCES_H 00010 00011 #include "database.h" 00012 #include "object.h" 00013 #include <vdr/channels.h> 00014 #include <vdr/recording.h> 00015 00016 class cUPnPResourceMediator; 00017 class cMediaDatabase; 00018 00025 class cUPnPResources { 00026 private: 00027 cHash<cUPnPResource>* mResources; 00028 static cUPnPResources* mInstance; 00029 cUPnPResourceMediator* mMediator; 00030 cSQLiteDatabase* mDatabase; 00031 cUPnPResources(); 00032 public: 00044 int getResourcesOfObject(cUPnPClassObject* Object); 00054 int loadResources(); 00056 cUPnPResource* getResource(unsigned int ResourceID); 00057 virtual ~cUPnPResources(); 00065 static cUPnPResources* getInstance(); 00079 int createFromChannel(cUPnPClassVideoBroadcast* Object, cChannel* Channel); 00093 int createFromRecording(cUPnPClassVideoItem* Object, cRecording* Recording); 00107 int createFromFile(cUPnPClassItem* Object, cString File); 00108 }; 00109 00116 class cUPnPResourceMediator { 00117 friend class cUPnPResources; 00118 private: 00119 cSQLiteDatabase* mDatabase; 00120 cUPnPResourceMediator(); 00121 unsigned int getNextResourceID(); 00122 public: 00123 virtual ~cUPnPResourceMediator(); 00132 cUPnPResource* getResource(unsigned int ResourceID); 00144 int saveResource(cUPnPResource* Resource); 00158 cUPnPResource* newResource(cUPnPClassObject* Object, int ResourceType, cString ResourceFile, cString ContentType, cString ProtocolInfo); 00159 }; 00160 00161 #endif /* _RESOURCES_H */ 00162