git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
retune on lostlock is now working :)
[enigma2.git]
/
lib
/
dvb
/
dvb.cpp
diff --git
a/lib/dvb/dvb.cpp
b/lib/dvb/dvb.cpp
index 6a0211ec54f3701e38d56b85f2e42a7ac6d123e2..32e19308fb561f4a230b5dfe8603aaec986eacb3 100644
(file)
--- a/
lib/dvb/dvb.cpp
+++ b/
lib/dvb/dvb.cpp
@@
-591,8
+591,9
@@
void eDVBChannel::frontendStateChanged(iDVBFrontend*fe)
ourstate = state_tuning;
} else if (state == iDVBFrontend::stateLostLock)
{
ourstate = state_tuning;
} else if (state == iDVBFrontend::stateLostLock)
{
- eDebug("OURSTATE: lost lock");
- ourstate = state_unavailable;
+ eDebug("OURSTATE: lost lock.. retune");
+ ourstate = state_tuning;
+ m_frontend->get().tune(*m_feparm);
} else if (state == iDVBFrontend::stateFailed)
{
eDebug("OURSTATE: failed");
} else if (state == iDVBFrontend::stateFailed)
{
eDebug("OURSTATE: failed");
@@
-652,6
+653,7
@@
RESULT eDVBChannel::setChannel(const eDVBChannelID &channelid, ePtr<iDVBFrontend
/* if tuning fails, shutdown the channel immediately. */
int res;
res = m_frontend->get().tune(*feparm);
/* if tuning fails, shutdown the channel immediately. */
int res;
res = m_frontend->get().tune(*feparm);
+ m_feparm = feparm;
if (res)
{
if (res)
{
@@
-749,6
+751,7
@@
RESULT eDVBChannel::playFile(const char *file)
m_stateChanged(this);
m_pvr_thread = new eFilePushThread();
m_stateChanged(this);
m_pvr_thread = new eFilePushThread();
+ m_pvr_thread->enablePVRCommit(1);
m_pvr_thread->start(m_pvr_fd_src, m_pvr_fd_dst);
CONNECT(m_pvr_thread->m_event, eDVBChannel::pvrEvent);
m_pvr_thread->start(m_pvr_fd_src, m_pvr_fd_dst);
CONNECT(m_pvr_thread->m_event, eDVBChannel::pvrEvent);