diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-04-30 18:01:16 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-04-30 18:01:16 +0000 |
| commit | b2ec733c0227ae072b8d3b19bfb9fd98e2b6961e (patch) | |
| tree | 888d14160cdc34708ed3107e98dec8d1d07970c8 /lib | |
| parent | 39542988a01b4e836d3d6680470995c0f550a10b (diff) | |
| download | enigma2-b2ec733c0227ae072b8d3b19bfb9fd98e2b6961e.tar.gz enigma2-b2ec733c0227ae072b8d3b19bfb9fd98e2b6961e.zip | |
- add record
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/nav/core.cpp | 25 | ||||
| -rw-r--r-- | lib/nav/core.h | 6 | ||||
| -rw-r--r-- | lib/nav/pcore.cpp | 10 | ||||
| -rw-r--r-- | lib/nav/pcore.h | 3 |
4 files changed, 44 insertions, 0 deletions
diff --git a/lib/nav/core.cpp b/lib/nav/core.cpp index 99dcf2ec..2dfe630d 100644 --- a/lib/nav/core.cpp +++ b/lib/nav/core.cpp @@ -115,6 +115,31 @@ RESULT eNavigation::stopService(void) return 0; } +RESULT eNavigation::recordService(const eServiceReference &service) +{ + if (m_recordingService) + endRecording(); + + assert(m_servicehandler); + RESULT res = m_servicehandler->record(service, m_recordingService); + if (m_recordingService) + { + res = m_recordingService->start(); + } + if (res) + m_recordingService = 0; + return res; +} + +RESULT eNavigation::endRecording() +{ + if (!m_recordingService) + return -1; + m_recordingService->stop(); + m_recordingService = 0; + return 0; +} + RESULT eNavigation::pause(int dop) { if (!m_runningService) diff --git a/lib/nav/core.h b/lib/nav/core.h index 6c94fe2c..c4306e39 100644 --- a/lib/nav/core.h +++ b/lib/nav/core.h @@ -11,6 +11,9 @@ class eNavigation: public iObject, public Object DECLARE_REF(eNavigation); private: ePtr<iPlayableService> m_runningService; + + ePtr<iRecordableService> m_recordingService; + ePtr<iServiceHandler> m_servicehandler; Signal2<void,eNavigation*,int> m_event; ePtr<eConnection> m_service_event_conn; @@ -35,6 +38,9 @@ public: RESULT getPlaylist(ePtr<ePlaylist> &playlist); RESULT stopService(void); + RESULT recordService(const eServiceReference &service); + RESULT endRecording(); + RESULT pause(int p); eNavigation(iServiceHandler *serviceHandler); virtual ~eNavigation(); diff --git a/lib/nav/pcore.cpp b/lib/nav/pcore.cpp index 2d036a1e..23df0030 100644 --- a/lib/nav/pcore.cpp +++ b/lib/nav/pcore.cpp @@ -21,6 +21,16 @@ RESULT pNavigation::playService(const eServiceReference &service) return m_core->playService(service); } +RESULT pNavigation::recordService(const eServiceReference &service) +{ + return m_core->recordService(service); +} + +RESULT pNavigation::endRecording() +{ + return m_core->endRecording(); +} + RESULT pNavigation::enqueueService(const eServiceReference &service) { return m_core->enqueueService(service); diff --git a/lib/nav/pcore.h b/lib/nav/pcore.h index 1a910b82..018209bc 100644 --- a/lib/nav/pcore.h +++ b/lib/nav/pcore.h @@ -24,6 +24,9 @@ public: pNavigation(); RESULT playService(const eServiceReference &service); + RESULT recordService(const eServiceReference &service); + RESULT endRecording(); + RESULT enqueueService(const eServiceReference &service); RESULT getCurrentService(ePtr<iPlayableService> &service); RESULT getPlaylist(ePtr<ePlaylist> &playlist); |
