From b2ec733c0227ae072b8d3b19bfb9fd98e2b6961e Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Sat, 30 Apr 2005 18:01:16 +0000 Subject: [PATCH 1/1] - add record --- lib/nav/core.cpp | 25 +++++++++++++++++++++++++ lib/nav/core.h | 6 ++++++ lib/nav/pcore.cpp | 10 ++++++++++ lib/nav/pcore.h | 3 +++ 4 files changed, 44 insertions(+) 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 m_runningService; + + ePtr m_recordingService; + ePtr m_servicehandler; Signal2 m_event; ePtr m_service_event_conn; @@ -35,6 +38,9 @@ public: RESULT getPlaylist(ePtr &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 &service); RESULT getPlaylist(ePtr &playlist); -- 2.30.2