aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-04-22 20:42:16 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-04-22 20:42:16 +0200
commit41c9e42e428c0216ef2e011985c060f79fcf8ebc (patch)
tree7c4cf219b6fe5cd78a9c04a6994f66a486a5669b /lib
parentc2f6474c1a8c25e9a89b073f8a41ab07cf21db3e (diff)
downloadenigma2-41c9e42e428c0216ef2e011985c060f79fcf8ebc.tar.gz
enigma2-41c9e42e428c0216ef2e011985c060f79fcf8ebc.zip
move meta file creation to c++
Diffstat (limited to 'lib')
-rw-r--r--lib/service/iservice.h2
-rw-r--r--lib/service/servicedvbrecord.cpp21
-rw-r--r--lib/service/servicedvbrecord.h4
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;