summaryrefslogtreecommitdiff
path: root/ci.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-02-16 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-02-16 18:00:00 +0100
commitb6e4637356502e707fdfc4b97ed1856e08de3df1 (patch)
treed974f0cc0e63083c75e51958cf8ce0e25bd7060e /ci.c
parentb09aaa00a58ec72d0331a01f31b3df16d43ce90b (diff)
downloadvdr-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.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/ci.c b/ci.c
index c2e10fc..d345a3e 100644
--- a/ci.c
+++ b/ci.c
@@ -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)