1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

The file 'ca.conf' is obsolete and has been removed; revised all descriptions regarding CICAM

This commit is contained in:
Klaus Schmidinger 2006-01-07 14:10:17 +01:00
parent 2e0a3f273a
commit e0d5ebf8fd
12 changed files with 81 additions and 120 deletions

View File

@ -4124,3 +4124,5 @@ Video Disk Recorder Revision History
- Fixed the "Day" field of the "Edit timer" menu when pressing '0' to switch - Fixed the "Day" field of the "Edit timer" menu when pressing '0' to switch
from "single shot" to "weekly", followed by the "Right" key (reported by from "single shot" to "weekly", followed by the "Right" key (reported by
Andreas Böttger). Andreas Böttger).
- The file 'ca.conf' is obsolete and has been removed.
- Revised all descriptions regarding CICAM.

16
MANUAL
View File

@ -656,17 +656,11 @@ Version 1.2
CICAM: CICAM:
CICAM DVBn m Defines the "Conditional Access" capabilities of the DVB CICAM DVBn m Shows the CAMs that each device contains, where 'n' is
card 'n'. Each DVB card can provide up to two CICAM the number of the device, and 'm' is the number of the
methods ('m' = [1, 2]). Common Interface slot of that device. The "Red" key
can be pressed to enter the CAM menu, and the "Green" key
In the 'setup.conf' file the value consists of the card triggers a reset of the selected CAM.
number, followed by a list of decryption method values
(defined in 'ca.conf').
For instance
CaCaps = 3 101 102
would define that card number 3 is able to decrypt
"Premiere World" and the "ORF".
Recording: Recording:

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: channels.h 1.36 2005/09/17 09:59:14 kls Exp $ * $Id: channels.h 1.37 2006/01/07 13:00:43 kls Exp $
*/ */
#ifndef __CHANNELS_H #ifndef __CHANNELS_H
@ -39,6 +39,14 @@
#define MAXLANGCODE1 4 // a 3 letter language code, zero terminated #define MAXLANGCODE1 4 // a 3 letter language code, zero terminated
#define MAXLANGCODE2 8 // up to two 3 letter language codes, separated by '+' and zero terminated #define MAXLANGCODE2 8 // up to two 3 letter language codes, separated by '+' and zero terminated
#define CA_FTA 0x0000
#define CA_DVB_MIN 0x0001
#define CA_DVB_MAX 0x000F
#define CA_USER_MIN 0x0010
#define CA_USER_MAX 0x00FF
#define CA_ENCRYPTED_MIN 0x0100
#define CA_ENCRYPTED_MAX 0xFFFF
struct tChannelParameterMap { struct tChannelParameterMap {
int userValue; int userValue;
int driverValue; int driverValue;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: config.c 1.139 2006/01/04 14:37:54 kls Exp $ * $Id: config.c 1.140 2006/01/07 12:28:49 kls Exp $
*/ */
#include "config.h" #include "config.h"
@ -120,24 +120,6 @@ bool cSVDRPhost::Accepts(in_addr_t Address)
return (Address & mask) == addr.s_addr; return (Address & mask) == addr.s_addr;
} }
// -- cCaDefinition ----------------------------------------------------------
cCaDefinition::cCaDefinition(void)
{
number = 0;
description = NULL;
}
cCaDefinition::~cCaDefinition()
{
free(description);
}
bool cCaDefinition::Parse(const char *s)
{
return 2 == sscanf(s, "%d %a[^\n]", &number, &description) && description && *description;
}
// -- cCommands -------------------------------------------------------------- // -- cCommands --------------------------------------------------------------
cCommands Commands; cCommands Commands;
@ -158,21 +140,6 @@ bool cSVDRPhosts::Acceptable(in_addr_t Address)
return false; return false;
} }
// -- cCaDefinitions ---------------------------------------------------------
cCaDefinitions CaDefinitions;
const cCaDefinition *cCaDefinitions::Get(int Number)
{
cCaDefinition *p = First();
while (p) {
if (p->Number() == Number)
return p;
p = (cCaDefinition *)p->Next();
}
return NULL;
}
// -- cSetupLine ------------------------------------------------------------- // -- cSetupLine -------------------------------------------------------------
cSetupLine::cSetupLine(void) cSetupLine::cSetupLine(void)

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: config.h 1.237 2006/01/04 13:41:59 kls Exp $ * $Id: config.h 1.238 2006/01/07 12:57:42 kls Exp $
*/ */
#ifndef __CONFIG_H #ifndef __CONFIG_H
@ -61,20 +61,6 @@ public:
bool Accepts(in_addr_t Address); bool Accepts(in_addr_t Address);
}; };
#define CACONFBASE 100
class cCaDefinition : public cListObject {
private:
int number;
char *description;
public:
cCaDefinition(void);
~cCaDefinition();
bool Parse(const char *s);
int Number(void) const { return number; }
const char *Description(void) const { return description; }
};
template<class T> class cConfig : public cList<T> { template<class T> class cConfig : public cList<T> {
private: private:
char *fileName; char *fileName;
@ -166,15 +152,9 @@ public:
bool Acceptable(in_addr_t Address); bool Acceptable(in_addr_t Address);
}; };
class cCaDefinitions : public cConfig<cCaDefinition> {
public:
const cCaDefinition *Get(int Number);
};
extern cCommands Commands; extern cCommands Commands;
extern cCommands RecordingCommands; extern cCommands RecordingCommands;
extern cSVDRPhosts SVDRPhosts; extern cSVDRPhosts SVDRPhosts;
extern cCaDefinitions CaDefinitions;
class cSetupLine : public cListObject { class cSetupLine : public cListObject {
private: private:

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.c 1.117 2006/01/06 13:50:00 kls Exp $ * $Id: device.c 1.118 2006/01/07 14:09:17 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -647,7 +647,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
ciHandler->SetSource(Channel->Source(), Channel->Transponder()); ciHandler->SetSource(Channel->Source(), Channel->Transponder());
// Men at work - please stand clear! ;-) // Men at work - please stand clear! ;-)
#ifdef XXX_DO_MULTIPLE_CA_CHANNELS #ifdef XXX_DO_MULTIPLE_CA_CHANNELS
if (Channel->Ca() > CACONFBASE) { if (Channel->Ca() >= CA_ENCRYPTED_MIN) {
#endif #endif
ciHandler->AddPid(Channel->Sid(), Channel->Vpid(), 2); ciHandler->AddPid(Channel->Sid(), Channel->Vpid(), 2);
for (const int *Apid = Channel->Apids(); *Apid; Apid++) for (const int *Apid = Channel->Apids(); *Apid; Apid++)

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbdevice.c 1.147 2006/01/05 15:30:06 kls Exp $ * $Id: dvbdevice.c 1.148 2006/01/07 14:05:59 kls Exp $
*/ */
#include "dvbdevice.h" #include "dvbdevice.h"
@ -503,7 +503,7 @@ bool cDvbDevice::Ready(void)
int cDvbDevice::ProvidesCa(const cChannel *Channel) const int cDvbDevice::ProvidesCa(const cChannel *Channel) const
{ {
if (Channel->Ca() >= 0x0100 && ciHandler) { if (Channel->Ca() >= CA_ENCRYPTED_MIN && ciHandler) {
unsigned short ids[MAXCAIDS + 1]; unsigned short ids[MAXCAIDS + 1];
for (int i = 0; i <= MAXCAIDS; i++) // '<=' copies the terminating 0! for (int i = 0; i <= MAXCAIDS; i++) // '<=' copies the terminating 0!
ids[i] = Channel->Ca(i); ids[i] = Channel->Ca(i);
@ -767,7 +767,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
if (Channel->Vpid() && !HasPid(Channel->Vpid()) || Channel->Apid(0) && !HasPid(Channel->Apid(0))) { if (Channel->Vpid() && !HasPid(Channel->Vpid()) || Channel->Apid(0) && !HasPid(Channel->Apid(0))) {
#ifdef DO_MULTIPLE_RECORDINGS #ifdef DO_MULTIPLE_RECORDINGS
#ifndef DO_MULTIPLE_CA_CHANNELS #ifndef DO_MULTIPLE_CA_CHANNELS
if (Ca() > CACONFBASE || Channel->Ca() > CACONFBASE) if (Ca() >= CA_ENCRYPTED_MIN || Channel->Ca() >= CA_ENCRYPTED_MIN)
needsDetachReceivers = Ca() != Channel->Ca(); needsDetachReceivers = Ca() != Channel->Ca();
else else
#endif #endif

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: eitscan.c 1.29 2005/11/05 15:24:36 kls Exp $ * $Id: eitscan.c 1.30 2006/01/07 14:10:17 kls Exp $
*/ */
#include "eitscan.h" #include "eitscan.h"
@ -147,7 +147,7 @@ void cEITScanner::Process(void)
for (cScanData *ScanData = scanList->First(); ScanData; ScanData = scanList->Next(ScanData)) { for (cScanData *ScanData = scanList->First(); ScanData; ScanData = scanList->Next(ScanData)) {
const cChannel *Channel = ScanData->GetChannel(); const cChannel *Channel = ScanData->GetChannel();
if (Channel) { if (Channel) {
if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) { if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= CA_ENCRYPTED_MIN) {
if (Device->ProvidesTransponder(Channel)) { if (Device->ProvidesTransponder(Channel)) {
if (!Device->Receiving()) { if (!Device->Receiving()) {
bool MaySwitchTransponder = Device->MaySwitchTransponder(); bool MaySwitchTransponder = Device->MaySwitchTransponder();

44
i18n.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: i18n.c 1.227 2006/01/06 16:03:41 kls Exp $ * $Id: i18n.c 1.228 2006/01/07 12:50:33 kls Exp $
* *
* Translations provided by: * Translations provided by:
* *
@ -1494,6 +1494,48 @@ const tI18nPhrase Phrases[] = {
"CA", "CA",
"CA", "CA",
}, },
{ "Free To Air",
"frei empfangbar",
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
},
{ "encrypted",
"verschlüsselt",
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
"",//TODO
},
{ "Sid", { "Sid",
"Sid", "Sid",
"Sid", "Sid",

33
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menu.c 1.387 2006/01/06 11:44:25 kls Exp $ * $Id: menu.c 1.388 2006/01/07 13:51:09 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -42,28 +42,25 @@
// --- cMenuEditCaItem ------------------------------------------------------- // --- cMenuEditCaItem -------------------------------------------------------
class cMenuEditCaItem : public cMenuEditIntItem { class cMenuEditCaItem : public cMenuEditIntItem {
private:
const cCaDefinition *ca;
bool allowCardNr;
protected: protected:
virtual void Set(void); virtual void Set(void);
public: public:
cMenuEditCaItem(const char *Name, int *Value, bool AllowCardNr = false); cMenuEditCaItem(const char *Name, int *Value);
eOSState ProcessKey(eKeys Key); eOSState ProcessKey(eKeys Key);
}; };
cMenuEditCaItem::cMenuEditCaItem(const char *Name, int *Value, bool AllowCardNr) cMenuEditCaItem::cMenuEditCaItem(const char *Name, int *Value)
:cMenuEditIntItem(Name, Value, 0) :cMenuEditIntItem(Name, Value, 0)
{ {
ca = CaDefinitions.Get(*Value);
allowCardNr = AllowCardNr;
Set(); Set();
} }
void cMenuEditCaItem::Set(void) void cMenuEditCaItem::Set(void)
{ {
if (ca) if (*value == CA_FTA)
SetValue(ca->Description()); SetValue(tr("Free To Air"));
else if (*value >= CA_ENCRYPTED_MIN)
SetValue(tr("encrypted"));
else else
cMenuEditIntItem::Set(); cMenuEditIntItem::Set();
} }
@ -73,18 +70,8 @@ eOSState cMenuEditCaItem::ProcessKey(eKeys Key)
eOSState state = cMenuEditItem::ProcessKey(Key); eOSState state = cMenuEditItem::ProcessKey(Key);
if (state == osUnknown) { if (state == osUnknown) {
if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly? if (NORMALKEY(Key) == kLeft && *value >= CA_ENCRYPTED_MIN)
if (ca && ca->Prev()) { *value = CA_FTA;
ca = (cCaDefinition *)ca->Prev();
*value = ca->Number();
}
}
else if (NORMALKEY(Key) == kRight) {
if (ca && ca->Next() && (allowCardNr || ((cCaDefinition *)ca->Next())->Number() > MAXDEVICES)) {
ca = (cCaDefinition *)ca->Next();
*value = ca->Number();
}
}
else else
return cMenuEditIntItem::ProcessKey(Key); return cMenuEditIntItem::ProcessKey(Key);
Set(); Set();
@ -266,7 +253,7 @@ void cMenuEditChannel::Setup(void)
Add(new cMenuEditIntItem( tr("Dpid1"), &data.dpids[0], 0, 0x1FFF)); Add(new cMenuEditIntItem( tr("Dpid1"), &data.dpids[0], 0, 0x1FFF));
Add(new cMenuEditIntItem( tr("Dpid2"), &data.dpids[1], 0, 0x1FFF)); Add(new cMenuEditIntItem( tr("Dpid2"), &data.dpids[1], 0, 0x1FFF));
Add(new cMenuEditIntItem( tr("Tpid"), &data.tpid, 0, 0x1FFF)); Add(new cMenuEditIntItem( tr("Tpid"), &data.tpid, 0, 0x1FFF));
Add(new cMenuEditCaItem( tr("CA"), &data.caids[0], true));//XXX Add(new cMenuEditCaItem( tr("CA"), &data.caids[0]));
Add(new cMenuEditIntItem( tr("Sid"), &data.sid, 1, 0xFFFF)); Add(new cMenuEditIntItem( tr("Sid"), &data.sid, 1, 0xFFFF));
/* XXX not yet used /* XXX not yet used
Add(new cMenuEditIntItem( tr("Nid"), &data.nid, 0)); Add(new cMenuEditIntItem( tr("Nid"), &data.nid, 0));

22
vdr.5
View File

@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the .\" License as specified in the file COPYING that comes with the
.\" vdr distribution. .\" vdr distribution.
.\" .\"
.\" $Id: vdr.5 1.41 2006/01/06 14:21:49 kls Exp $ .\" $Id: vdr.5 1.42 2006/01/07 12:30:49 kls Exp $
.\" .\"
.TH vdr 5 "19 Mar 2005" "1.3.38" "Video Disk Recorder Files" .TH vdr 5 "19 Mar 2005" "1.3.38" "Video Disk Recorder Files"
.SH NAME .SH NAME
@ -152,7 +152,7 @@ tab (@);
l l. l l.
\fB0000\fR@Free To Air \fB0000\fR@Free To Air
\fB0001...000F\fR@explicitly requires the device with the given number \fB0001...000F\fR@explicitly requires the device with the given number
\fB0010...00FF\fR@reserved for user defined assignments defined in \fIca.conf\fR \fB0010...00FF\fR@reserved for user defined assignments
\fB0100...FFFF\fR@specific decryption methods as broadcast in the data stream\fR \fB0100...FFFF\fR@specific decryption methods as broadcast in the data stream\fR
.TE .TE
Values in the range 0001...00FF will not be overwritten, all other values Values in the range 0001...00FF will not be overwritten, all other values
@ -389,24 +389,6 @@ l l.
There can be any number of actions in a line, including none at all - in which case There can be any number of actions in a line, including none at all - in which case
the entry would be used only to set the LOF to use for the given frequency range the entry would be used only to set the LOF to use for the given frequency range
and polarization. and polarization.
.SS CONDITIONAL ACCESS
The file \fIca.conf\fR defines the numbers to be used in the \fBConditional access\fR
field of channels in \fIchannels.conf\fR and assigns descriptive texts to them.
Example:
\fB101 Premiere World\fR
Anything after (and including) a '#' character is comment.
Value lines consist of an integer number, followed by a text describing
this decryption method (typically the name of the pay tv service using this
decryption method).
The special value \fB0\fR means \fBFree To Air\fR, which can be used for
channels that don't require additional decryption hardware.
The values \fB1...4\fR can be used for channels that for some reason explicitly
need a given DVB card (for backward compatibility).
.SS REMOTE CONTROL KEYS .SS REMOTE CONTROL KEYS
The file \fIremote.conf\fR contains the key assignments for all remote control The file \fIremote.conf\fR contains the key assignments for all remote control
units. Each line consists of one key assignment in the following format: units. Each line consists of one key assignment in the following format:

3
vdr.c
View File

@ -22,7 +22,7 @@
* *
* The project's page is at http://www.cadsoft.de/vdr * The project's page is at http://www.cadsoft.de/vdr
* *
* $Id: vdr.c 1.230 2006/01/06 12:47:16 kls Exp $ * $Id: vdr.c 1.231 2006/01/07 12:27:45 kls Exp $
*/ */
#include <getopt.h> #include <getopt.h>
@ -514,7 +514,6 @@ int main(int argc, char *argv[])
Commands.Load(AddDirectory(ConfigDirectory, "commands.conf"), true) && Commands.Load(AddDirectory(ConfigDirectory, "commands.conf"), true) &&
RecordingCommands.Load(AddDirectory(ConfigDirectory, "reccmds.conf"), true) && RecordingCommands.Load(AddDirectory(ConfigDirectory, "reccmds.conf"), true) &&
SVDRPhosts.Load(AddDirectory(ConfigDirectory, "svdrphosts.conf"), true) && SVDRPhosts.Load(AddDirectory(ConfigDirectory, "svdrphosts.conf"), true) &&
CaDefinitions.Load(AddDirectory(ConfigDirectory, "ca.conf"), true) &&
Keys.Load(AddDirectory(ConfigDirectory, "remote.conf")) && Keys.Load(AddDirectory(ConfigDirectory, "remote.conf")) &&
KeyMacros.Load(AddDirectory(ConfigDirectory, "keymacros.conf"), true) KeyMacros.Load(AddDirectory(ConfigDirectory, "keymacros.conf"), true)
)) ))