Fixed reacting on changes in CICAM settings (needed to restart VDR before)

This commit is contained in:
Klaus Schmidinger 2002-03-08 15:19:49 +01:00
parent 59b8e71d67
commit 5d666161d6
4 changed files with 12 additions and 8 deletions

View File

@ -1073,3 +1073,4 @@ Video Disk Recorder Revision History
Bernd Schweikert).
- Fixed avoiding the primary DVB interface in case Setup.PrimaryLimit is 0.
- Fixed handling CICAM settings if the first one of a DVB card was FTA.
- Fixed reacting on changes in CICAM settings (needed to restart VDR before).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbapi.c 1.156 2002/03/08 15:06:37 kls Exp $
* $Id: dvbapi.c 1.157 2002/03/08 15:14:04 kls Exp $
*/
#include "dvbapi.h"
@ -1690,7 +1690,6 @@ cDvbApi::cDvbApi(int n)
ca = -1;
priority = DEFAULTPRIORITY;
cardIndex = n;
SetCaCaps();
// Devices that are only present on DVB-C or DVB-S cards:
@ -1851,8 +1850,10 @@ cDvbApi *cDvbApi::GetDvbApi(int Ca, int Priority)
void cDvbApi::SetCaCaps(void)
{
for (int i = 0; i < MAXCACAPS; i++)
caCaps[i] = Setup.CaCaps[CardIndex()][i];
for (int d = 0; d < NumDvbApis; d++) {
for (int i = 0; i < MAXCACAPS; i++)
dvbApi[d]->caCaps[i] = Setup.CaCaps[dvbApi[d]->CardIndex()][i];
}
}
int cDvbApi::ProvidesCa(int Ca)
@ -1907,6 +1908,7 @@ bool cDvbApi::Init(void)
isyslog(LOG_INFO, "found %d video device%s", NumDvbApis, NumDvbApis > 1 ? "s" : "");
else
esyslog(LOG_ERR, "ERROR: no video device found, giving up!");
SetCaCaps();
return NumDvbApis > 0;
}

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbapi.h 1.64 2002/03/03 14:51:20 kls Exp $
* $Id: dvbapi.h 1.65 2002/03/08 15:11:50 kls Exp $
*/
#ifndef __DVBAPI_H
@ -125,8 +125,8 @@ public:
// recording and stop recording if necessary.
int CardIndex(void) { return cardIndex; }
// Returns the card index of this DvbApi (0 ... MAXDVBAPI - 1).
void SetCaCaps(void);
// Sets the CaCaps of this DVB device according to the Setup data.
static void SetCaCaps(void);
// Sets the CaCaps of all DVB devices according to the Setup data.
int ProvidesCa(int Ca);
// Checks whether this DVB device provides the given value in its
// caCaps. Returns 0 if the value is not provided, 1 if only this

3
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.160 2002/03/03 16:12:29 kls Exp $
* $Id: menu.c 1.161 2002/03/08 15:18:20 kls Exp $
*/
#include "menu.h"
@ -1954,6 +1954,7 @@ eOSState cMenuSetup::ProcessKey(eKeys Key)
cDvbApi::PrimaryDvbApi->SetVideoFormat(data.VideoFormat ? VIDEO_FORMAT_16_9 : VIDEO_FORMAT_4_3);
Setup = data;
Setup.Save();
cDvbApi::SetCaCaps();
break;
default: break;
}