#ifndef CPLEXOSDITEM_H #define CPLEXOSDITEM_H #include #include // Base class: cOsdItem #include #include #include "PVideo.h" #include "Stream.h" #include "Directory.h" #include "Plexservice.h" class cPlexOsdItem : public cOsdItem { private: plexclient::Video* item; plexclient::Directory* dir; plexclient::Stream stream; std::shared_ptr pservice; bool m_bVideo; bool m_bDir; public: cPlexOsdItem(const char* title); cPlexOsdItem(const char* title, std::shared_ptr service); cPlexOsdItem(const char* title, plexclient::Video* obj); cPlexOsdItem(const char* title, plexclient::Directory* obj); /** * @brief * @param title Title * @param obj will be copied */ cPlexOsdItem(const char* title, plexclient::Stream* obj); plexclient::Video* GetAttachedVideo(); plexclient::Directory* GetAttachedDirectory(); plexclient::Stream& GetAttachedStream() { return stream; } std::shared_ptr GetAttachedService(); bool IsVideo() const { return m_bVideo; } bool IsDir() const { return m_bDir; } //virtual eOSState ProcessKey(eKeys Key); //virtual void Set(void); //virtual void SetMenuItem(cSkinDisplayMenu* DisplayMenu, int Index, bool Current, bool Selectable); }; #endif // CPLEXOSDITEM_H