format, ac3 and crypted indicators now working
[enigma2.git] / lib / nav / pcore.h
index 3bb8f4ef8ec9b43c47857b73bdbac089e807c0e3..9d4cd00e67c1a76d8cb61ced042aa878df1f922d 100644 (file)
@@ -6,22 +6,37 @@
 
 /* a subset of eNavigation */
 
-class pNavigation: public iObject
+class pNavigation: public iObject, public Object
 {
-DECLARE_REF;
-private:
-       ePtr<eNavigation> m_core;
+DECLARE_REF(pNavigation);
 public:
-       PSignal1<void, int> event;
+       PSignal1<void, int> 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 */
+               evUpdatedInfo, /** the program info of this service was updated */
+       };
        
        pNavigation();
        
        RESULT playService(const eServiceReference &service);
+       SWIG_VOID(RESULT) recordService(const eServiceReference &ref, ePtr<iRecordableService> &SWIG_OUTPUT);
+       
        RESULT enqueueService(const eServiceReference &service);
-       RESULT getCurrentService(ePtr<iPlayableService> &service);
-       RESULT getPlaylist(ePtr<ePlaylist> &playlist);
+       SWIG_VOID(RESULT) getCurrentService(ePtr<iPlayableService> &SWIG_OUTPUT);
+       SWIG_VOID(RESULT) getPlaylist(ePtr<ePlaylist> &SWIG_OUTPUT);
+       RESULT stopService();
        
        RESULT pause(int p);
+private:
+       ePtr<eNavigation> m_core;
+       ePtr<eConnection> m_nav_event_connection;
+       void navEvent(eNavigation *nav, int event);
 };
 
 #endif