X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fservice%2Fservicedvbrecord.cpp;h=0287acfd4ba4bbe116ce2528e62535d8a1f4fe3c;hp=08cd24710e89e4978ed2b0f720f458eff5faaa72;hb=68d8c8097853dca09312fc40fadb44956ffdca92;hpb=8e3b33ff38bd7c006351b1921ac8f3d1606de39f diff --git a/lib/service/servicedvbrecord.cpp b/lib/service/servicedvbrecord.cpp index 08cd247..0287acf 100644 --- a/lib/service/servicedvbrecord.cpp +++ b/lib/service/servicedvbrecord.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include /* for cutlist */ @@ -14,7 +15,8 @@ DEFINE_REF(eDVBServiceRecord); -eDVBServiceRecord::eDVBServiceRecord(const eServiceReferenceDVB &ref): m_ref(ref) +eDVBServiceRecord::eDVBServiceRecord(const eServiceReferenceDVB &ref, bool isstreamclient = false): + m_ref(ref),m_is_stream_client(isstreamclient) { CONNECT(m_service_handler.serviceEvent, eDVBServiceRecord::serviceEvent); CONNECT(m_event_handler.m_eit_changed, eDVBServiceRecord::gotNewEvent); @@ -232,9 +234,28 @@ int eDVBServiceRecord::doPrepare() /* allocate a ts recorder if we don't already have one. */ if (m_state == stateIdle) { + bool isstreamclient = false; m_pids_active.clear(); m_state = statePrepared; - return m_service_handler.tune(m_ref, 0, 0, m_simulate); + ePtr source; + if (!m_ref.path.empty()) + { + if (m_is_stream_client) + { + isstreamclient = true; + eHttpStream *f = new eHttpStream(); + f->open(m_ref.path.c_str()); + source = ePtr(f); + } + else + { + /* re-record a recording */ + eRawFile *f = new eRawFile(); + f->open(m_ref.path.c_str()); + source = ePtr(f); + } + } + return m_service_handler.tuneExt(m_ref, 0, source, m_ref.path.c_str(), 0, m_simulate, 0, isstreamclient); } return 0; }