From: ghost Date: Wed, 22 Apr 2009 18:42:16 +0000 (+0200) Subject: move meta file creation to c++ X-Git-Tag: 2.6.0~333^2~2 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/41c9e42e428c0216ef2e011985c060f79fcf8ebc move meta file creation to c++ --- diff --git a/RecordTimer.py b/RecordTimer.py index 9f3b2ffb..6075141e 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -181,24 +181,12 @@ class RecordTimerEntry(timer.TimerEntry, object): if event_id is None: event_id = -1 - prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id) + prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id, self.name.replace("\n", ""), self.description.replace("\n", ""), ' '.join(self.tags)) if prep_res: - self.log(2, "'prepare' failed: error %d" % prep_res) - NavigationInstance.instance.stopRecordService(self.record_service) - self.record_service = None - return False - - self.log(3, "prepare ok, writing meta information to %s" % self.Filename) - try: - f = open(self.Filename + ".ts.meta", "w") - f.write(rec_ref.toString() + "\n") - f.write(self.name.replace("\n", "") + "\n") - f.write(self.description.replace("\n", "") + "\n") - f.write(str(self.begin) + "\n") - f.write(' '.join(self.tags)) - f.close() - except IOError: - self.log(4, "failed to write meta information") + if prep_rest == 255: + self.log(4, "failed to write meta information") + else: + self.log(2, "'prepare' failed: error %d" % prep_res) NavigationInstance.instance.stopRecordService(self.record_service) self.record_service = None return False diff --git a/lib/service/iservice.h b/lib/service/iservice.h index e27752a2..97930a7b 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -848,7 +848,7 @@ public: virtual RESULT connectEvent(const Slot2 &event, ePtr &connection)=0; #endif virtual SWIG_VOID(RESULT) getError(int &SWIG_OUTPUT)=0; - virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1)=0; + virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1, const char *name=0, const char *descr=0, const char *tags=0)=0; virtual RESULT prepareStreaming()=0; virtual RESULT start(bool simulate=false)=0; virtual RESULT stop()=0; diff --git a/lib/service/servicedvbrecord.cpp b/lib/service/servicedvbrecord.cpp index 5b7b5d8c..1b83a4c4 100644 --- a/lib/service/servicedvbrecord.cpp +++ b/lib/service/servicedvbrecord.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include /* for cutlist */ @@ -83,7 +84,7 @@ void eDVBServiceRecord::serviceEvent(int event) } } -RESULT eDVBServiceRecord::prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id) +RESULT eDVBServiceRecord::prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags) { m_filename = filename; m_streaming = 0; @@ -133,11 +134,25 @@ RESULT eDVBServiceRecord::prepare(const char *filename, time_t begTime, time_t e } } eEPGCache::getInstance()->Unlock(); + + } + if (ret) + return ret; + else + { + eDVBMetaParser meta; + meta.m_time_create = begTime; + meta.m_ref = m_ref; + meta.m_data_ok = 1; + if (name) + meta.m_name = name; + if (descr) + meta.m_description = descr; + ret = meta.updateMeta(filename) ? -255 : 0; } return ret; } - else - return -1; + return -1; } RESULT eDVBServiceRecord::prepareStreaming() diff --git a/lib/service/servicedvbrecord.h b/lib/service/servicedvbrecord.h index 856f92b3..e70547f1 100644 --- a/lib/service/servicedvbrecord.h +++ b/lib/service/servicedvbrecord.h @@ -18,7 +18,7 @@ class eDVBServiceRecord: public eDVBServiceBase, DECLARE_REF(eDVBServiceRecord); public: RESULT connectEvent(const Slot2 &event, ePtr &connection); - RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id); + RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags); RESULT prepareStreaming(); RESULT start(bool simulate=false); RESULT stop(); @@ -41,7 +41,7 @@ private: eServiceReferenceDVB m_ref; ePtr m_record; - ePtr m_con_record_event; + ePtr m_con_record_event; int m_recording, m_tuned, m_error; std::set m_pids_active;