X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e677ac4a7bf81391877c909a703e5918ce4a511b..a072a06516d83d3a11c52544bf2f7cb8ab567b4e:/lib/nav/pcore.h diff --git a/lib/nav/pcore.h b/lib/nav/pcore.h index 3bb8f4ef..5da59d08 100644 --- a/lib/nav/pcore.h +++ b/lib/nav/pcore.h @@ -6,22 +6,35 @@ /* a subset of eNavigation */ -class pNavigation: public iObject +class pNavigation: public iObject, public Object { -DECLARE_REF; -private: - ePtr m_core; +DECLARE_REF(pNavigation); public: - PSignal1 event; + PSignal1 m_event; + + enum + { + evStopService, /** the "current" service was just stopped and likes to be deallocated (clear refs!) */ + evNewService, /** a new "current" service was just started */ + evPlayFailed, /** the next service (in playlist) or the one given in playService failed to play */ + evPlaylistDone, /** the last service in the playlist was just played */ + evUpdatedEventInfo /** the "currently running" event info was updated */ + }; pNavigation(); RESULT playService(const eServiceReference &service); + RESULT recordService(const eServiceReference &ref, ePtr &service); + RESULT enqueueService(const eServiceReference &service); RESULT getCurrentService(ePtr &service); RESULT getPlaylist(ePtr &playlist); RESULT pause(int p); +private: + ePtr m_core; + ePtr m_nav_event_connection; + void navEvent(eNavigation *nav, int event); }; #endif