summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
fdb6f80)
simulate recordings now no more returned in normal nav.getRecordings() call..
to get a list of running simulate recordings you can use nav.getRecordings(True)
if ref:
if ref.flags & eServiceReference.isGroup:
ref = getBestPlayableServiceReference(ref, eServiceReference(), simulate)
if ref:
if ref.flags & eServiceReference.isGroup:
ref = getBestPlayableServiceReference(ref, eServiceReference(), simulate)
- service = ref and self.pnav and self.pnav.recordService(ref)
+ service = ref and self.pnav and self.pnav.recordService(ref, simulate)
if service is None:
print "record returned non-zero"
return service
if service is None:
print "record returned non-zero"
return service
ret = self.pnav and self.pnav.stopRecordService(service)
return ret
ret = self.pnav and self.pnav.stopRecordService(service)
return ret
- def getRecordings(self):
- return self.pnav and self.pnav.getRecordings()
+ def getRecordings(self, simulate=False):
+ return self.pnav and self.pnav.getRecordings(simulate)
def getCurrentService(self):
if not self.currentlyPlayingService:
def getCurrentService(self):
if not self.currentlyPlayingService:
-RESULT eNavigation::recordService(const eServiceReference &ref, ePtr<iRecordableService> &service)
+RESULT eNavigation::recordService(const eServiceReference &ref, ePtr<iRecordableService> &service, bool simulate)
{
assert(m_servicehandler);
RESULT res = m_servicehandler->record(ref, service);
{
assert(m_servicehandler);
RESULT res = m_servicehandler->record(ref, service);
- ePtr<eConnection> conn;
- service->connectEvent(slot(*this, &eNavigation::recordEvent), conn);
- m_recordings[service]=conn;
+ if (simulate)
+ m_simulate_recordings.insert(service);
+ else
+ {
+ ePtr<eConnection> conn;
+ service->connectEvent(slot(*this, &eNavigation::recordEvent), conn);
+ m_recordings[service]=conn;
+ }
RESULT eNavigation::stopRecordService(ePtr<iRecordableService> &service)
{
service->stop();
RESULT eNavigation::stopRecordService(ePtr<iRecordableService> &service)
{
service->stop();
- std::map<ePtr<iRecordableService>, ePtr<eConnection> >::iterator it =
- m_recordings.find(service);
- if (it != m_recordings.end())
+ std::set<ePtr<iRecordableService> >::iterator it =
+ m_simulate_recordings.find(service);
+ if (it != m_simulate_recordings.end())
- m_recordings.erase(it);
- /* send stop event */
- m_record_event(service, iRecordableService::evEnd);
+ m_simulate_recordings.erase(it);
+ else
+ {
+ std::map<ePtr<iRecordableService>, ePtr<eConnection> >::iterator it =
+ m_recordings.find(service);
+ if (it != m_recordings.end())
+ {
+ m_recordings.erase(it);
+ /* send stop event */
+ m_record_event(service, iRecordableService::evEnd);
+ return 0;
+ }
+ }
eDebug("try to stop non running recording!!"); // this should not happen
return -1;
}
eDebug("try to stop non running recording!!"); // this should not happen
return -1;
}
-PyObject *eNavigation::getRecordings(void)
+PyObject *eNavigation::getRecordings(bool simulate)
- ePyObject result = PyList_New(m_recordings.size());
+ ePyObject result = PyList_New(simulate ? m_simulate_recordings.size() : m_recordings.size());
- for (std::map<ePtr<iRecordableService>, ePtr<eConnection> >::iterator it(m_recordings.begin()); it != m_recordings.end(); ++it)
- PyList_SET_ITEM(result, pos++, NEW_iRecordableServicePtr(it->first));
+ if (simulate)
+ for (std::set<ePtr<iRecordableService> >::iterator it(m_simulate_recordings.begin()); it != m_simulate_recordings.end(); ++it)
+ PyList_SET_ITEM(result, pos++, NEW_iRecordableServicePtr(*it));
+ else
+ for (std::map<ePtr<iRecordableService>, ePtr<eConnection> >::iterator it(m_recordings.begin()); it != m_recordings.end(); ++it)
+ PyList_SET_ITEM(result, pos++, NEW_iRecordableServicePtr(it->first));
#include <lib/service/iservice.h>
#include <connection.h>
#include <map>
#include <lib/service/iservice.h>
#include <connection.h>
#include <map>
class eNavigation: public iObject, public Object
{
class eNavigation: public iObject, public Object
{
void serviceEvent(iPlayableService* service, int event);
std::map<ePtr<iRecordableService>, ePtr<eConnection>, std::less<iRecordableService*> > m_recordings;
void serviceEvent(iPlayableService* service, int event);
std::map<ePtr<iRecordableService>, ePtr<eConnection>, std::less<iRecordableService*> > m_recordings;
+ std::set<ePtr<iRecordableService>, std::less<iRecordableService*> > m_simulate_recordings;
+
Signal2<void,ePtr<iRecordableService>,int> m_record_event;
void recordEvent(iRecordableService* service, int event);
public:
Signal2<void,ePtr<iRecordableService>,int> m_record_event;
void recordEvent(iRecordableService* service, int event);
public:
RESULT getCurrentService(ePtr<iPlayableService> &service);
RESULT stopService(void);
RESULT getCurrentService(ePtr<iPlayableService> &service);
RESULT stopService(void);
- RESULT recordService(const eServiceReference &ref, ePtr<iRecordableService> &service);
+ RESULT recordService(const eServiceReference &ref, ePtr<iRecordableService> &service, bool simulate=false);
RESULT stopRecordService(ePtr<iRecordableService> &service);
RESULT stopRecordService(ePtr<iRecordableService> &service);
- PyObject *getRecordings(void);
+ PyObject *getRecordings(bool simulate=false);
RESULT pause(int p);
eNavigation(iServiceHandler *serviceHandler);
RESULT pause(int p);
eNavigation(iServiceHandler *serviceHandler);
return m_core->stopService();
}
return m_core->stopService();
}
-RESULT pNavigation::recordService(const eServiceReference &ref, ePtr<iRecordableService> &service)
+RESULT pNavigation::recordService(const eServiceReference &ref, ePtr<iRecordableService> &service, bool simulate)
- return m_core->recordService(ref, service);
+ return m_core->recordService(ref, service, simulate);
}
RESULT pNavigation::stopRecordService(ePtr<iRecordableService> &service)
}
RESULT pNavigation::stopRecordService(ePtr<iRecordableService> &service)
return m_core->stopRecordService(service);
}
return m_core->stopRecordService(service);
}
-PyObject *pNavigation::getRecordings(void)
+PyObject *pNavigation::getRecordings(bool simulate)
- return m_core->getRecordings();
+ return m_core->getRecordings(simulate);
}
void pNavigation::navEvent(int event)
}
void pNavigation::navEvent(int event)
RESULT pause(int p);
SWIG_VOID(RESULT) getCurrentService(ePtr<iPlayableService> &SWIG_OUTPUT);
RESULT pause(int p);
SWIG_VOID(RESULT) getCurrentService(ePtr<iPlayableService> &SWIG_OUTPUT);
- SWIG_VOID(RESULT) recordService(const eServiceReference &ref, ePtr<iRecordableService> &SWIG_OUTPUT);
+ SWIG_VOID(RESULT) recordService(const eServiceReference &ref, ePtr<iRecordableService> &SWIG_OUTPUT, bool simulate);
RESULT stopRecordService(ePtr<iRecordableService> &service);
RESULT stopRecordService(ePtr<iRecordableService> &service);
- PyObject *getRecordings(void);
+ PyObject *getRecordings(bool simulate=false);
private:
ePtr<eNavigation> m_core;
private:
ePtr<eNavigation> m_core;