#ifndef CPLEXSDOSD_H #define CPLEXSDOSD_H #include #include #include #include #include #include #include #include "Config.h" #include "Plexservice.h" #include "plexgdm.h" #include "hlsPlayerControl.h" #include "browserGrid.h" #include #include enum eViews { viRootView, viDetailView }; enum eViewElementsRoot { verBackground, verHeader, verFooter, verInfopane, verWatch, verMessage }; enum eViewGrids { vgBrowser }; enum eViewElementsDetail { vedBackground, vedHeader, vedFooter }; class cPlexSdOsd : public skindesignerapi::cSkindesignerOsdObject { private: std::shared_ptr m_pBrowserGrid; std::shared_ptr m_pMessage; bool m_messageDisplayed; skindesignerapi::cOsdView* m_pRootView; void Flush(); void SwitchGrid(ePlexMenuTab currentTab); void DrawBackground(); void DrawFooter(); void DrawMessage(std::string message); public: cPlexSdOsd(); ~cPlexSdOsd(); virtual void Show(void); virtual eOSState ProcessKey(eKeys Key); bool SdSupport(); static cMutex RedrawMutex; }; #endif // CPLEXSDOSD_H