summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--MANUAL16
-rw-r--r--channels.h10
-rw-r--r--config.c35
-rw-r--r--config.h22
-rw-r--r--device.c4
-rw-r--r--dvbdevice.c6
-rw-r--r--eitscan.c4
-rw-r--r--i18n.c44
-rw-r--r--menu.c33
-rw-r--r--vdr.522
-rw-r--r--vdr.c3
12 files changed, 81 insertions, 120 deletions
diff --git a/HISTORY b/HISTORY
index 047b3048..5c38a542 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4124,3 +4124,5 @@ Video Disk Recorder Revision History
- 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
Andreas Böttger).
+- The file 'ca.conf' is obsolete and has been removed.
+- Revised all descriptions regarding CICAM.
diff --git a/MANUAL b/MANUAL
index d725a487..53f571cf 100644
--- a/MANUAL
+++ b/MANUAL
@@ -656,17 +656,11 @@ Version 1.2
CICAM:
- CICAM DVBn m Defines the "Conditional Access" capabilities of the DVB
- card 'n'. Each DVB card can provide up to two CICAM
- methods ('m' = [1, 2]).
-
- In the 'setup.conf' file the value consists of the card
- 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".
+ CICAM DVBn m Shows the CAMs that each device contains, where 'n' is
+ the number of the device, and 'm' is the number of the
+ Common Interface slot of that device. The "Red" key
+ can be pressed to enter the CAM menu, and the "Green" key
+ triggers a reset of the selected CAM.
Recording:
diff --git a/channels.h b/channels.h
index 62cb52e3..b4882522 100644
--- a/channels.h
+++ b/channels.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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
@@ -39,6 +39,14 @@
#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 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 {
int userValue;
int driverValue;
diff --git a/config.c b/config.c
index 6e02e3f8..ec06a329 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@@ -120,24 +120,6 @@ bool cSVDRPhost::Accepts(in_addr_t Address)
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 Commands;
@@ -158,21 +140,6 @@ bool cSVDRPhosts::Acceptable(in_addr_t Address)
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(void)
diff --git a/config.h b/config.h
index 3c6a1524..73c3d7d6 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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
@@ -61,20 +61,6 @@ public:
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> {
private:
char *fileName;
@@ -166,15 +152,9 @@ public:
bool Acceptable(in_addr_t Address);
};
-class cCaDefinitions : public cConfig<cCaDefinition> {
-public:
- const cCaDefinition *Get(int Number);
- };
-
extern cCommands Commands;
extern cCommands RecordingCommands;
extern cSVDRPhosts SVDRPhosts;
-extern cCaDefinitions CaDefinitions;
class cSetupLine : public cListObject {
private:
diff --git a/device.c b/device.c
index 53320335..829cd5b1 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@@ -647,7 +647,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
ciHandler->SetSource(Channel->Source(), Channel->Transponder());
// Men at work - please stand clear! ;-)
#ifdef XXX_DO_MULTIPLE_CA_CHANNELS
- if (Channel->Ca() > CACONFBASE) {
+ if (Channel->Ca() >= CA_ENCRYPTED_MIN) {
#endif
ciHandler->AddPid(Channel->Sid(), Channel->Vpid(), 2);
for (const int *Apid = Channel->Apids(); *Apid; Apid++)
diff --git a/dvbdevice.c b/dvbdevice.c
index 6f99939e..52c52cea 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@@ -503,7 +503,7 @@ bool cDvbDevice::Ready(void)
int cDvbDevice::ProvidesCa(const cChannel *Channel) const
{
- if (Channel->Ca() >= 0x0100 && ciHandler) {
+ if (Channel->Ca() >= CA_ENCRYPTED_MIN && ciHandler) {
unsigned short ids[MAXCAIDS + 1];
for (int i = 0; i <= MAXCAIDS; i++) // '<=' copies the terminating 0!
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))) {
#ifdef DO_MULTIPLE_RECORDINGS
#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();
else
#endif
diff --git a/eitscan.c b/eitscan.c
index 7a89141b..5966f50f 100644
--- a/eitscan.c
+++ b/eitscan.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@@ -147,7 +147,7 @@ void cEITScanner::Process(void)
for (cScanData *ScanData = scanList->First(); ScanData; ScanData = scanList->Next(ScanData)) {
const cChannel *Channel = ScanData->GetChannel();
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->Receiving()) {
bool MaySwitchTransponder = Device->MaySwitchTransponder();
diff --git a/i18n.c b/i18n.c
index f114f25e..124f0f60 100644
--- a/i18n.c
+++ b/i18n.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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:
*
@@ -1494,6 +1494,48 @@ const tI18nPhrase Phrases[] = {
"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",
diff --git a/menu.c b/menu.c
index a6996f71..1111fc6b 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@@ -42,28 +42,25 @@
// --- cMenuEditCaItem -------------------------------------------------------
class cMenuEditCaItem : public cMenuEditIntItem {
-private:
- const cCaDefinition *ca;
- bool allowCardNr;
protected:
virtual void Set(void);
public:
- cMenuEditCaItem(const char *Name, int *Value, bool AllowCardNr = false);
+ cMenuEditCaItem(const char *Name, int *Value);
eOSState ProcessKey(eKeys Key);
};
-cMenuEditCaItem::cMenuEditCaItem(const char *Name, int *Value, bool AllowCardNr)
+cMenuEditCaItem::cMenuEditCaItem(const char *Name, int *Value)
:cMenuEditIntItem(Name, Value, 0)
{
- ca = CaDefinitions.Get(*Value);
- allowCardNr = AllowCardNr;
Set();
}
void cMenuEditCaItem::Set(void)
{
- if (ca)
- SetValue(ca->Description());
+ if (*value == CA_FTA)
+ SetValue(tr("Free To Air"));
+ else if (*value >= CA_ENCRYPTED_MIN)
+ SetValue(tr("encrypted"));
else
cMenuEditIntItem::Set();
}
@@ -73,18 +70,8 @@ eOSState cMenuEditCaItem::ProcessKey(eKeys Key)
eOSState state = cMenuEditItem::ProcessKey(Key);
if (state == osUnknown) {
- if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly?
- if (ca && ca->Prev()) {
- 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();
- }
- }
+ if (NORMALKEY(Key) == kLeft && *value >= CA_ENCRYPTED_MIN)
+ *value = CA_FTA;
else
return cMenuEditIntItem::ProcessKey(Key);
Set();
@@ -266,7 +253,7 @@ void cMenuEditChannel::Setup(void)
Add(new cMenuEditIntItem( tr("Dpid1"), &data.dpids[0], 0, 0x1FFF));
Add(new cMenuEditIntItem( tr("Dpid2"), &data.dpids[1], 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));
/* XXX not yet used
Add(new cMenuEditIntItem( tr("Nid"), &data.nid, 0));
diff --git a/vdr.5 b/vdr.5
index da6f25d7..f0ffc521 100644
--- a/vdr.5
+++ b/vdr.5
@@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the
.\" 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"
.SH NAME
@@ -152,7 +152,7 @@ tab (@);
l l.
\fB0000\fR@Free To Air
\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
.TE
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
the entry would be used only to set the LOF to use for the given frequency range
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
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:
diff --git a/vdr.c b/vdr.c
index eb88bc3d..ad0b57dd 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* 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>
@@ -514,7 +514,6 @@ int main(int argc, char *argv[])
Commands.Load(AddDirectory(ConfigDirectory, "commands.conf"), true) &&
RecordingCommands.Load(AddDirectory(ConfigDirectory, "reccmds.conf"), true) &&
SVDRPhosts.Load(AddDirectory(ConfigDirectory, "svdrphosts.conf"), true) &&
- CaDefinitions.Load(AddDirectory(ConfigDirectory, "ca.conf"), true) &&
Keys.Load(AddDirectory(ConfigDirectory, "remote.conf")) &&
KeyMacros.Load(AddDirectory(ConfigDirectory, "keymacros.conf"), true)
))