Version 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.
This commit is contained in:
Klaus Schmidinger
2003-02-16 18:00:00 +01:00
parent b09aaa00a5
commit b6e4637356
11 changed files with 153 additions and 100 deletions

20
ci.c
View File

@@ -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)