diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2007-04-30 21:39:35 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2007-04-30 21:39:35 +0000 |
| commit | fa458113395a4b8da3954b656dbe6c55b30f224a (patch) | |
| tree | ab535494fa74ba597a83053c2619711d7d263b7a /lib/service | |
| parent | 46f28210d3fc839f621900e932f650e197688ce5 (diff) | |
| download | enigma2-fa458113395a4b8da3954b656dbe6c55b30f224a.tar.gz enigma2-fa458113395a4b8da3954b656dbe6c55b30f224a.zip | |
send write error messages down to service events
Diffstat (limited to 'lib/service')
| -rw-r--r-- | lib/service/iservice.h | 4 | ||||
| -rw-r--r-- | lib/service/servicedvbrecord.cpp | 15 | ||||
| -rw-r--r-- | lib/service/servicedvbrecord.h | 4 |
3 files changed, 21 insertions, 2 deletions
diff --git a/lib/service/iservice.h b/lib/service/iservice.h index df4e302f..b0042735 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -768,8 +768,8 @@ public: evRecordRunning, evRecordStopped, evNewProgramInfo, - evRecordFailed - /*evDiskFull*/ + evRecordFailed, + evRecordWriteError }; enum { NoError=0, diff --git a/lib/service/servicedvbrecord.cpp b/lib/service/servicedvbrecord.cpp index acd4a823..b34dad10 100644 --- a/lib/service/servicedvbrecord.cpp +++ b/lib/service/servicedvbrecord.cpp @@ -207,6 +207,8 @@ int eDVBServiceRecord::doRecord() } m_record->setTargetFD(fd); m_record->setTargetFilename(m_filename.c_str()); + m_record->connectEvent(slot(*this, &eDVBServiceRecord::recordEvent), m_con_record_event); + m_target_fd = fd; } @@ -374,3 +376,16 @@ PyObject *eDVBServiceRecord::getStreamingData() return r; } +void eDVBServiceRecord::recordEvent(int event) +{ + switch (event) + { + case iDVBTSRecorder::eventWriteError: + eWarning("[eDVBServiceRecord] record write error"); + stop(); + m_event((iRecordableService*)this, evRecordWriteError); + return; + default: + eDebug("unhandled record event %d", event); + } +} diff --git a/lib/service/servicedvbrecord.h b/lib/service/servicedvbrecord.h index 018e83f9..dcce3388 100644 --- a/lib/service/servicedvbrecord.h +++ b/lib/service/servicedvbrecord.h @@ -38,6 +38,7 @@ private: eServiceReferenceDVB m_ref; ePtr<iDVBTSRecorder> m_record; + ePtr<eConnection> m_con_record_event; int m_recording, m_tuned, m_error; std::set<int> m_pids_active; @@ -51,6 +52,9 @@ private: /* events */ void serviceEvent(int event); Signal2<void,iRecordableService*,int> m_event; + + /* recorder events */ + void recordEvent(int event); }; #endif |
