aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RecordTimer.py22
-rw-r--r--lib/service/iservice.h2
-rw-r--r--lib/service/servicedvbrecord.cpp21
-rw-r--r--lib/service/servicedvbrecord.h4
4 files changed, 26 insertions, 23 deletions
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<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;