diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2009-04-22 20:42:16 +0200 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2009-04-22 20:42:16 +0200 |
| commit | 41c9e42e428c0216ef2e011985c060f79fcf8ebc (patch) | |
| tree | 7c4cf219b6fe5cd78a9c04a6994f66a486a5669b /lib | |
| parent | c2f6474c1a8c25e9a89b073f8a41ab07cf21db3e (diff) | |
| download | enigma2-41c9e42e428c0216ef2e011985c060f79fcf8ebc.tar.gz enigma2-41c9e42e428c0216ef2e011985c060f79fcf8ebc.zip | |
move meta file creation to c++
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/service/iservice.h | 2 | ||||
| -rw-r--r-- | lib/service/servicedvbrecord.cpp | 21 | ||||
| -rw-r--r-- | lib/service/servicedvbrecord.h | 4 |
3 files changed, 21 insertions, 6 deletions
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<void,iRecordableService*,int> &event, ePtr<eConnection> &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 <lib/service/servicedvbrecord.h> #include <lib/base/eerror.h> #include <lib/dvb/epgcache.h> +#include <lib/dvb/metaparser.h> #include <fcntl.h> /* 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<void,iRecordableService*,int> &event, ePtr<eConnection> &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<iDVBTSRecorder> m_record; - ePtr<eConnection> m_con_record_event; + ePtr<eConnection> m_con_record_event; int m_recording, m_tuned, m_error; std::set<int> m_pids_active; |
