diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2003-02-16 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2003-02-16 18:00:00 +0100 |
commit | b6e4637356502e707fdfc4b97ed1856e08de3df1 (patch) | |
tree | d974f0cc0e63083c75e51958cf8ce0e25bd7060e /ci.c | |
parent | b09aaa00a58ec72d0331a01f31b3df16d43ce90b (diff) | |
download | vdr-patch-lnbsharing-b6e4637356502e707fdfc4b97ed1856e08de3df1.tar.gz vdr-patch-lnbsharing-b6e4637356502e707fdfc4b97ed1856e08de3df1.tar.bz2 |
Version 1.1.25vdr-1.1.25
- Fixed high CPU load during replay (thanks to Marcel Wiesweg for pointing out this
one).
- Fixed margin handling in cRingBufferLinear.
- Now polling the output device in 'Transfer Mode' and retrying to put packets
into the ring buffer.
- Resetting the CAM slot in case communication breaks down.
- Improved keyboard detection (thanks to Werner Fink).
- Updated 'channels.conf.terr' (thanks to Andy Carter).
- Fixed broken support for raw OSDs of plugins (thanks to Marcel Wiesweg for
reporting this one).
- Broken CAM connections are now restored automatically.
Diffstat (limited to 'ci.c')
-rw-r--r-- | ci.c | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.c 1.5 2003/02/09 14:47:57 kls Exp $ + * $Id: ci.c 1.7 2003/02/16 11:20:55 kls Exp $ */ /* XXX TODO @@ -1423,8 +1423,9 @@ int cCiHandler::CloseAllSessions(int Slot) return result; } -void cCiHandler::Process(void) +bool cCiHandler::Process(void) { + bool result = true; cMutexLock MutexLock(&mutex); for (int Slot = 0; Slot < numSlots; Slot++) { tc = tpl->Process(Slot); @@ -1453,19 +1454,20 @@ void cCiHandler::Process(void) } } } - else { - if (!CloseAllSessions(Slot)) { - if (tpl->ModuleReady(Slot)) { - dbgprotocol("Module ready in slot %d\n", Slot); - tpl->NewConnection(Slot); - } - } + else if (CloseAllSessions(Slot)) { + tpl->ResetSlot(Slot); + result = false; + } + else if (tpl->ModuleReady(Slot)) { + dbgprotocol("Module ready in slot %d\n", Slot); + tpl->NewConnection(Slot); } } for (int i = 0; i < MAX_CI_SESSION; i++) { if (sessions[i]) sessions[i]->Process(); } + return result; } bool cCiHandler::EnterMenu(int Slot) |