git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix empty expressions in dvb list search
[enigma2.git]
/
lib
/
service
/
servicedvbrecord.cpp
diff --git
a/lib/service/servicedvbrecord.cpp
b/lib/service/servicedvbrecord.cpp
index a0359351da175029a9c4bc000e8474f616ee2f1f..d0da074a0dfe29b7c1fb053fd9bae8522d430645 100644
(file)
--- a/
lib/service/servicedvbrecord.cpp
+++ b/
lib/service/servicedvbrecord.cpp
@@
-12,6
+12,7
@@
eDVBServiceRecord::eDVBServiceRecord(const eServiceReferenceDVB &ref): m_ref(ref
m_state = stateIdle;
m_want_record = 0;
m_tuned = 0;
m_state = stateIdle;
m_want_record = 0;
m_tuned = 0;
+ m_target_fd = -1;
}
void eDVBServiceRecord::serviceEvent(int event)
}
void eDVBServiceRecord::serviceEvent(int event)
@@
-48,10
+49,13
@@
RESULT eDVBServiceRecord::prepare(const char *filename, time_t begTime, time_t e
{
eEPGCache::getInstance()->Lock();
const eit_event_struct *event = 0;
{
eEPGCache::getInstance()->Lock();
const eit_event_struct *event = 0;
+ eServiceReferenceDVB ref = m_ref.getParentServiceReference();
+ if (!ref.valid())
+ ref = m_ref;
if ( eit_event_id != -1 )
{
eDebug("query epg event id %d", eit_event_id);
if ( eit_event_id != -1 )
{
eDebug("query epg event id %d", eit_event_id);
- eEPGCache::getInstance()->lookupEventId(
m_
ref, eit_event_id, event);
+ eEPGCache::getInstance()->lookupEventId(ref, eit_event_id, event);
}
if ( !event && (begTime != -1 && endTime != -1) )
{
}
if ( !event && (begTime != -1 && endTime != -1) )
{
@@
-64,7
+68,7
@@
RESULT eDVBServiceRecord::prepare(const char *filename, time_t begTime, time_t e
beg.tm_hour, beg.tm_min, beg.tm_sec,
end.tm_hour, end.tm_min, end.tm_sec,
query.tm_hour, query.tm_min, query.tm_sec);
beg.tm_hour, beg.tm_min, beg.tm_sec,
end.tm_hour, end.tm_min, end.tm_sec,
query.tm_hour, query.tm_min, query.tm_sec);
- eEPGCache::getInstance()->lookupEventTime(
m_
ref, queryTime, event);
+ eEPGCache::getInstance()->lookupEventTime(ref, queryTime, event);
}
if ( event )
{
}
if ( event )
{
@@
-105,6
+109,11
@@
RESULT eDVBServiceRecord::stop()
{
if (m_record)
m_record->stop();
{
if (m_record)
m_record->stop();
+ if (m_target_fd >= 0)
+ {
+ ::close(m_target_fd);
+ m_target_fd = -1;
+ }
m_state = statePrepared;
}
m_state = statePrepared;
}
@@
-167,6
+176,7
@@
int eDVBServiceRecord::doRecord()
}
m_record->setTargetFD(fd);
m_record->setTargetFilename(m_filename.c_str());
}
m_record->setTargetFD(fd);
m_record->setTargetFilename(m_filename.c_str());
+ m_target_fd = fd;
}
eDebug("starting recording..");
}
eDebug("starting recording..");