9d4cd00e67c1a76d8cb61ced042aa878df1f922d
[vuplus_dvbapp] / lib / nav / pcore.h
1 #ifndef __lib_nav_pcore_h
2 #define __lib_nav_pcore_h
3
4 #include <lib/nav/core.h>
5 #include <lib/python/connections.h>
6
7 /* a subset of eNavigation */
8
9 class pNavigation: public iObject, public Object
10 {
11 DECLARE_REF(pNavigation);
12 public:
13         PSignal1<void, int> m_event;
14         
15         enum
16         {
17                 evStopService,  /** the "current" service was just stopped and likes to be deallocated (clear refs!) */
18                 evNewService,   /** a new "current" service was just started */
19                 evPlayFailed,   /** the next service (in playlist) or the one given in playService failed to play */
20                 evPlaylistDone, /** the last service in the playlist was just played */
21                 evUpdatedEventInfo, /** the "currently running" event info was updated */
22                 evUpdatedInfo, /** the program info of this service was updated */
23         };
24         
25         pNavigation();
26         
27         RESULT playService(const eServiceReference &service);
28         SWIG_VOID(RESULT) recordService(const eServiceReference &ref, ePtr<iRecordableService> &SWIG_OUTPUT);
29         
30         RESULT enqueueService(const eServiceReference &service);
31         SWIG_VOID(RESULT) getCurrentService(ePtr<iPlayableService> &SWIG_OUTPUT);
32         SWIG_VOID(RESULT) getPlaylist(ePtr<ePlaylist> &SWIG_OUTPUT);
33         RESULT stopService();
34         
35         RESULT pause(int p);
36 private:
37         ePtr<eNavigation> m_core;
38         ePtr<eConnection> m_nav_event_connection;
39         void navEvent(eNavigation *nav, int event);
40 };
41
42 #endif