#ifndef __SKINDESIGNERSERVICES_H #define __SKINDESIGNERSERVICES_H using namespace std; #include #include #include enum eMenuType { mtList, mtText }; class cSDDisplayMenu : public cSkinDisplayMenu { public: virtual void SetTitle(const char *Title); virtual void SetPluginMenu(string name, int menu, int type, bool init); virtual bool SetItemPlugin(map *stringTokens, map *intTokens, map > > *loopTokens, int Index, bool Current, bool Selectable); virtual bool SetPluginText(map *stringTokens, map *intTokens, map > > *loopTokens); }; class cSkinDisplayPlugin { public: cSkinDisplayPlugin(void); virtual ~cSkinDisplayPlugin(void); virtual void Deactivate(bool hide); virtual void Activate(void); virtual void ClearViewElement(int id); virtual void DisplayViewElement(int id); virtual void SetViewElementIntTokens(map *intTokens); virtual void SetViewElementStringTokens(map *stringTokens); virtual void SetViewElementLoopTokens(map > > *loopTokens); virtual void InitGrids(int viewGridID); virtual void SetGrid(int viewGridID, long gridID, double x, double y, double width, double height, map *intTokens, map *stringTokens); virtual void SetGridCurrent(int viewGridID, long gridID, bool current); virtual void DeleteGrid(int viewGridID, long gridID); virtual void DisplayGrids(int viewGridID); virtual void ClearGrids(int viewGridID); virtual void SetTabIntTokens(map *intTokens); virtual void SetTabStringTokens(map *stringTokens); virtual void SetTabLoopTokens(map > > *loopTokens); virtual void SetTabs(void); virtual void TabLeft(void); virtual void TabRight(void); virtual void TabUp(void); virtual void TabDown(void); virtual void DisplayTabs(void); virtual void Flush(void); virtual bool ChannelLogoExists(string channelId); virtual string GetEpgImagePath(void); }; /********************************************************************* * Data Structures for Service Calls *********************************************************************/ // Data structure for service "RegisterPlugin" class RegisterPlugin { public: RegisterPlugin(void) { name = ""; }; void SetMenu(int key, string templateName) { menus.insert(pair(key, templateName)); } void SetView(int key, string templateName) { views.insert(pair(key, templateName)); } void SetSubView(int view, int subView, string templateName) { pair sub = make_pair(subView, templateName); subViews.insert(pair >(view, sub)); } void SetViewElement(int view, int viewElement, string name) { map< int, map >::iterator hit = viewElements.find(view); if (hit == viewElements.end()) { map vE; vE.insert(pair(viewElement, name)); viewElements.insert(pair >(view, vE)); } else { (hit->second).insert(pair(viewElement, name)); } } void SetViewGrid(int view, int viewGrid, string name) { map< int, map >::iterator hit = viewGrids.find(view); if (hit == viewGrids.end()) { map vG; vG.insert(pair(viewGrid, name)); viewGrids.insert(pair >(view, vG)); } else { (hit->second).insert(pair(viewGrid, name)); } } // in string name; //name of plugin map< int, string > menus; //menus as key -> templatename hashmap map< int, string> views; //standalone views as key -> templatename hashmap multimap< int, pair > subViews; //subviews of standalone views as view -> (subview, templatename) multimap map< int, map > viewElements; //viewelements as key -> (viewelement, viewelementname) hashmap map< int, map > viewGrids; //viewgrids as key -> (viewgrid, viewgridname) hashmap //out }; // Data structure for service "GetDisplayMenu" class GetDisplayMenu { public: GetDisplayMenu(void) { displayMenu = NULL; }; // in //out cSDDisplayMenu *displayMenu; }; // Data structure for service "GetDisplayPlugin" class GetDisplayPlugin { public: GetDisplayPlugin(void) { pluginName = ""; viewID = -1; subViewID = -1; displayPlugin = NULL; }; // in string pluginName; int viewID; int subViewID; //out cSkinDisplayPlugin *displayPlugin; }; #endif //__SKINDESIGNERSERVICES_H