diff options
author | Matthias Schwarzott <zzam@gentoo.org> | 2005-11-09 21:28:05 +0000 |
---|---|---|
committer | Matthias Schwarzott <zzam@gentoo.org> | 2005-11-09 21:28:05 +0000 |
commit | d689fa219e35966022dad0d169e030efd8ab5831 (patch) | |
tree | 5cad1d942ee17ed99593d976f024de9660f41b11 /media-video | |
parent | Changed virtual/alsa to sys-kernel/gentoo-sources except on architectures wit... (diff) | |
download | historical-d689fa219e35966022dad0d169e030efd8ab5831.tar.gz historical-d689fa219e35966022dad0d169e030efd8ab5831.tar.bz2 historical-d689fa219e35966022dad0d169e030efd8ab5831.zip |
Version bumped. This version includes some bugfixes.
Package-Manager: portage-2.0.51.22-r3
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/vdr/ChangeLog | 9 | ||||
-rw-r--r-- | media-video/vdr/Manifest | 6 | ||||
-rw-r--r-- | media-video/vdr/files/digest-vdr-1.3.36 | 5 | ||||
-rw-r--r-- | media-video/vdr/files/vdr-1.3.36-SourceCaps-for-lnb-sharing.patch | 215 | ||||
-rw-r--r-- | media-video/vdr/files/vdr-1.3.36-SourceCaps.patch | 214 | ||||
-rw-r--r-- | media-video/vdr/vdr-1.3.36.ebuild | 201 |
6 files changed, 648 insertions, 2 deletions
diff --git a/media-video/vdr/ChangeLog b/media-video/vdr/ChangeLog index 53db256776cf..a5bfc2cff359 100644 --- a/media-video/vdr/ChangeLog +++ b/media-video/vdr/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for media-video/vdr # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/ChangeLog,v 1.26 2005/10/24 11:30:35 zzam Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/ChangeLog,v 1.27 2005/11/09 21:28:05 zzam Exp $ + +*vdr-1.3.36 (09 Nov 2005) + + 09 Nov 2005; Matthias Schwarzott <zzam@gentoo.org> + +files/vdr-1.3.36-SourceCaps.patch, + +files/vdr-1.3.36-SourceCaps-for-lnb-sharing.patch, +vdr-1.3.36.ebuild: + Version bumped. This version includes some bugfixes. *vdr-1.3.34-r2 (24 Oct 2005) diff --git a/media-video/vdr/Manifest b/media-video/vdr/Manifest index ac3c26d28aaa..c739dda27c30 100644 --- a/media-video/vdr/Manifest +++ b/media-video/vdr/Manifest @@ -1,14 +1,18 @@ MD5 85028e3cc03f1ac1ba27a5ee0391e96d vdr-1.2.6-r1.ebuild 1433 MD5 3157799f6d2dea384d8db6a8673e8325 vdr-1.3.34-r1.ebuild 4491 +MD5 076f2745aa3aa1d66aee58e18c5a2ae3 vdr-1.3.36.ebuild 4792 MD5 27cbd03c0fde4fcddf379f306ea8e981 vdr-1.3.27.ebuild 4236 MD5 8554f7d2baba12e38b4c15115f4e2f20 vdr-1.3.34-r2.ebuild 4537 -MD5 289ffc88d5174a9551f0c58b559ba8fa ChangeLog 3799 +MD5 89ada8f5b245228a85f2c9c1abf8d1bf ChangeLog 4047 MD5 a973dfa1638779880ca99f1c1435cac7 metadata.xml 259 MD5 4d3ece4e7bb6ec5913f33dd5952e658e vdr-1.3.34.ebuild 4225 MD5 aa18122fb081cdc19d419d53ad1f63de files/vdr-1.2.6_CAN-2005-0071.patch 893 MD5 4e0e788481ae4a07c9260bcdbaab3465 files/digest-vdr-1.3.27 370 MD5 3d3b8b271925155442f660f5a9da86da files/digest-vdr-1.3.34 366 +MD5 6608205ec103c06aea6c3532edf13e30 files/digest-vdr-1.3.36 366 +MD5 4e70ea0094c7bccffbdd3ac93f3010af files/vdr-1.3.36-SourceCaps-for-lnb-sharing.patch 7957 MD5 472e23b8b78fd88b22e140386af74b3d files/vdr-1.3.32-daemon.patch 794 +MD5 d43cfe3b33e25f0d6b9fe2e7a05ae082 files/vdr-1.3.36-SourceCaps.patch 7729 MD5 5df3de1f888e3fc8f8ba27623a19f40b files/digest-vdr-1.2.6-r1 62 MD5 aa8d0f66c8831be73c049584d6143c8b files/vdr-1.2.6-gentoo.diff 1995 MD5 3d3b8b271925155442f660f5a9da86da files/digest-vdr-1.3.34-r1 366 diff --git a/media-video/vdr/files/digest-vdr-1.3.36 b/media-video/vdr/files/digest-vdr-1.3.36 new file mode 100644 index 000000000000..8e962fd89b9a --- /dev/null +++ b/media-video/vdr/files/digest-vdr-1.3.36 @@ -0,0 +1,5 @@ +MD5 43fd33cdc3980773543f83017f747148 vdr-1.3.36.tar.bz2 513639 +MD5 c64d982f9fe110e6cdc0ce023301a36c configurableLNBshare-VDR_1.3.36.patch 20066 +MD5 f83f881f2f7f906dd1980c1fa8280ec2 vdr-1.3.36-enAIO-2.7.diff.gz 11475 +MD5 006d29b6d95c36b57a9d0be0e365e1d7 vdr-1.3.36-bigpatch-test1.tar.bz2 140154 +MD5 3b276851190bac5dc03ab81ba55ac193 vdr-jumpplay-0.6-1.3.29.diff 18904 diff --git a/media-video/vdr/files/vdr-1.3.36-SourceCaps-for-lnb-sharing.patch b/media-video/vdr/files/vdr-1.3.36-SourceCaps-for-lnb-sharing.patch new file mode 100644 index 000000000000..309157fdf14f --- /dev/null +++ b/media-video/vdr/files/vdr-1.3.36-SourceCaps-for-lnb-sharing.patch @@ -0,0 +1,215 @@ +diff -ru vdr-1.3.34-lnbsharing/config.c vdr-1.3.34-lnbsharing-sourcecaps/config.c +--- vdr-1.3.34-lnbsharing/config.c 2005-10-08 23:39:10.000000000 +0200 ++++ vdr-1.3.34-lnbsharing-sourcecaps/config.c 2005-10-08 23:37:04.000000000 +0200 +@@ -15,6 +15,7 @@ + #include "interface.h" + #include "plugin.h" + #include "recording.h" ++#include "sources.h" + + // IMPORTANT NOTE: in the 'sscanf()' calls there is a blank after the '%d' + // format characters in order to allow any number of blanks after a numeric +@@ -300,6 +301,8 @@ + MultiSpeedMode = 0; + ShowReplayMode = 0; + ResumeID = 0; ++ memset(SourceCaps, 0, sizeof SourceCaps); ++ SourceCapsSet = false; + CurrentChannel = -1; + CurrentVolume = MAXVOLUME; + CurrentDolby = 0; +@@ -407,6 +410,49 @@ + return true; + } + ++void cSetup::StoreSourceCaps(const char *Name) ++{ ++ cSetupLine *l; ++ while ((l = Get(Name)) != NULL) ++ Del(l); ++ ++ for (int i = 0; i < MAXDEVICES; i++) { ++ char buffer[KILOBYTE(10)]={0,}, *q = buffer; ++ int j = 0; ++ while (SourceCaps[i][j] && j < MAXSOURCECAPS) { ++ if (j==0) ++ q += snprintf(buffer, sizeof(buffer), "%i ", i+1); ++ q += snprintf(q, sizeof(buffer) - (q-buffer), "%s ", *cSource::ToString(SourceCaps[i][j++])); ++ } ++ if (*buffer) ++ Store(Name, buffer, NULL, true); ++ } ++} ++ ++bool cSetup::ParseSourceCaps(const char *Value) ++{ ++ char *p; ++ int d = strtol(Value, &p, 10)-1, i = 0; ++ while (p < Value+strlen(Value)) { ++ if (*p==0) return true; ++ if (isblank(*p)) ++p; ++ if (isalpha(*p)) { ++ int source = cSource::FromString(p); ++ if (source != cSource::stNone) { ++ SourceCaps[d][i++] = source; ++ SourceCapsSet = true; ++ } ++ else ++ return false; ++ while (!isblank(*p) && *p) ++ ++p; ++ if (i>MAXSOURCECAPS) ++ return false; ++ } ++ } ++ return true; ++} ++ + bool cSetup::Parse(const char *Name, const char *Value) + { + if (!strcasecmp(Name, "OSDLanguage")) OSDLanguage = atoi(Value); +@@ -464,6 +510,7 @@ + else if (!strcasecmp(Name, "MultiSpeedMode")) MultiSpeedMode = atoi(Value); + else if (!strcasecmp(Name, "ShowReplayMode")) ShowReplayMode = atoi(Value); + else if (!strcasecmp(Name, "ResumeID")) ResumeID = atoi(Value); ++ else if (!strcasecmp(Name, "SourceCaps")) return ParseSourceCaps(Value); + else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value); + else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value); + else if (!strcasecmp(Name, "CurrentDolby")) CurrentDolby = atoi(Value); +@@ -545,6 +592,7 @@ + Store("MultiSpeedMode", MultiSpeedMode); + Store("ShowReplayMode", ShowReplayMode); + Store("ResumeID", ResumeID); ++ if (SourceCapsSet) StoreSourceCaps("SourceCaps"); + Store("CurrentChannel", CurrentChannel); + Store("CurrentVolume", CurrentVolume); + Store("CurrentDolby", CurrentDolby); +diff -ru vdr-1.3.34-lnbsharing/config.h vdr-1.3.34-lnbsharing-sourcecaps/config.h +--- vdr-1.3.34-lnbsharing/config.h 2005-10-08 23:39:10.000000000 +0200 ++++ vdr-1.3.34-lnbsharing-sourcecaps/config.h 2005-10-08 23:37:04.000000000 +0200 +@@ -30,6 +30,9 @@ + #define MINOSDHEIGHT 324 + #define MAXOSDHEIGHT 567 + ++#define MAXDEVICES 16 // the maximum number of devices in the system ++#define MAXSOURCECAPS 128 // the maximum number of different sources per device ++ + #define MaxFileName 256 + #define MaxSkinName 16 + #define MaxThemeName 16 +@@ -198,6 +201,8 @@ + void StoreLanguages(const char *Name, int *Values); + bool ParseLanguages(const char *Value, int *Values); + bool Parse(const char *Name, const char *Value); ++ void StoreSourceCaps(const char *Name); ++ bool ParseSourceCaps(const char *Value); + cSetupLine *Get(const char *Name, const char *Plugin = NULL); + void Store(const char *Name, const char *Value, const char *Plugin = NULL, bool AllowMultiple = false); + void Store(const char *Name, int Value, const char *Plugin = NULL); +@@ -252,6 +257,8 @@ + int MultiSpeedMode; + int ShowReplayMode; + int ResumeID; ++ int SourceCaps[MAXDEVICES][MAXSOURCECAPS]; ++ bool SourceCapsSet; + int CurrentChannel; + int CurrentVolume; + int CurrentDolby; +diff -ru vdr-1.3.34-lnbsharing/device.c vdr-1.3.34-lnbsharing-sourcecaps/device.c +--- vdr-1.3.34-lnbsharing/device.c 2005-10-08 23:39:10.000000000 +0200 ++++ vdr-1.3.34-lnbsharing-sourcecaps/device.c 2005-10-08 23:37:04.000000000 +0200 +@@ -184,8 +184,10 @@ + for (int i = 0; i < MAXRECEIVERS; i++) + receiver[i] = NULL; + +- if (numDevices < MAXDEVICES) ++ if (numDevices < MAXDEVICES) { + device[numDevices++] = this; ++ SetSourceCaps(cardIndex); ++ } + else + esyslog("ERROR: too many devices!"); + } +@@ -440,6 +442,17 @@ + return d; + } + ++void cDevice::SetSourceCaps(int Index) ++{ ++ for (int d = 0; d < numDevices; d++) { ++ if (Index < 0 || Index == device[d]->CardIndex()) { ++ for (int i = 0; i < MAXSOURCECAPS; i++) ++ device[d]->sourceCaps[i] = Setup.SourceCaps[device[d]->CardIndex()][i]; ++ } ++ } ++} ++ ++ + void cDevice::Shutdown(void) + { + primaryDevice = NULL; +diff -ru vdr-1.3.34-lnbsharing/device.h vdr-1.3.34-lnbsharing-sourcecaps/device.h +--- vdr-1.3.34-lnbsharing/device.h 2005-10-08 23:39:10.000000000 +0200 ++++ vdr-1.3.34-lnbsharing-sourcecaps/device.h 2005-10-08 23:37:36.000000000 +0200 +@@ -23,7 +23,6 @@ + #include "thread.h" + #include "tools.h" + +-#define MAXDEVICES 16 // the maximum number of devices in the system + #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device + #define MAXRECEIVERS 16 // the maximum number of receivers per device + #define MAXVOLUME 255 +@@ -160,6 +159,8 @@ + ///< would not be affected by switching to the requested channel. + //ML-Ende + ++ static void SetSourceCaps(int Index = -1); ++ ///< Sets the SourceCaps of the given device according to the Setup data. + static void Shutdown(void); + ///< Closes down all devices. + ///< Must be called at the end of the program. +@@ -167,6 +168,7 @@ + static int nextCardIndex; + int cardIndex; + protected: ++ int sourceCaps[MAXSOURCECAPS]; + cDevice(void); + virtual ~cDevice(); + virtual bool Ready(void); +diff -ru vdr-1.3.34-lnbsharing/dvbdevice.c vdr-1.3.34-lnbsharing-sourcecaps/dvbdevice.c +--- vdr-1.3.34-lnbsharing/dvbdevice.c 2005-10-08 23:38:46.000000000 +0200 ++++ vdr-1.3.34-lnbsharing-sourcecaps/dvbdevice.c 2005-10-08 23:37:04.000000000 +0200 +@@ -754,10 +754,17 @@ + bool cDvbDevice::ProvidesSource(int Source) const + { + int type = Source & cSource::st_Mask; +- return type == cSource::stNone +- || type == cSource::stCable && frontendType == FE_QAM +- || type == cSource::stSat && frontendType == FE_QPSK +- || type == cSource::stTerr && frontendType == FE_OFDM; ++ if (Setup.SourceCapsSet && type == cSource::stSat && frontendType == FE_QPSK) { ++ for (int i = 0; i < MAXSOURCECAPS; i++) ++ if (sourceCaps[i] == Source) ++ return true; ++ return false; ++ } ++ else ++ return type == cSource::stNone ++ || type == cSource::stCable && frontendType == FE_QAM ++ || type == cSource::stSat && frontendType == FE_QPSK ++ || type == cSource::stTerr && frontendType == FE_OFDM; + } + + bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const +diff -ru vdr-1.3.34-lnbsharing/sources.c vdr-1.3.34-lnbsharing-sourcecaps/sources.c +--- vdr-1.3.34-lnbsharing/sources.c 2005-10-08 23:38:46.000000000 +0200 ++++ vdr-1.3.34-lnbsharing-sourcecaps/sources.c 2005-10-08 23:37:04.000000000 +0200 +@@ -68,7 +68,7 @@ + int pos = 0; + bool dot = false; + bool neg = false; +- while (*++s) { ++ while (*++s && !isblank(*s)) { + switch (toupper(*s)) { + case '0' ... '9': pos *= 10; + pos += *s - '0'; diff --git a/media-video/vdr/files/vdr-1.3.36-SourceCaps.patch b/media-video/vdr/files/vdr-1.3.36-SourceCaps.patch new file mode 100644 index 000000000000..ed97f027a30c --- /dev/null +++ b/media-video/vdr/files/vdr-1.3.36-SourceCaps.patch @@ -0,0 +1,214 @@ +diff -ur vdr-1.3.33/config.c vdr-1.3.33+SourceCaps/config.c +--- vdr-1.3.33/config.c 2005-09-09 17:08:59.000000000 +0200 ++++ vdr-1.3.33+SourceCaps/config.c 2005-09-25 20:25:45.869496656 +0200 +@@ -15,6 +15,7 @@ + #include "interface.h" + #include "plugin.h" + #include "recording.h" ++#include "sources.h" + + // IMPORTANT NOTE: in the 'sscanf()' calls there is a blank after the '%d' + // format characters in order to allow any number of blanks after a numeric +@@ -300,6 +301,8 @@ + MultiSpeedMode = 0; + ShowReplayMode = 0; + ResumeID = 0; ++ memset(SourceCaps, 0, sizeof SourceCaps); ++ SourceCapsSet = false; + CurrentChannel = -1; + CurrentVolume = MAXVOLUME; + CurrentDolby = 0; +@@ -401,6 +404,49 @@ + return true; + } + ++void cSetup::StoreSourceCaps(const char *Name) ++{ ++ cSetupLine *l; ++ while ((l = Get(Name)) != NULL) ++ Del(l); ++ ++ for (int i = 0; i < MAXDEVICES; i++) { ++ char buffer[KILOBYTE(10)]={0,}, *q = buffer; ++ int j = 0; ++ while (SourceCaps[i][j] && j < MAXSOURCECAPS) { ++ if (j==0) ++ q += snprintf(buffer, sizeof(buffer), "%i ", i+1); ++ q += snprintf(q, sizeof(buffer) - (q-buffer), "%s ", *cSource::ToString(SourceCaps[i][j++])); ++ } ++ if (*buffer) ++ Store(Name, buffer, NULL, true); ++ } ++} ++ ++bool cSetup::ParseSourceCaps(const char *Value) ++{ ++ char *p; ++ int d = strtol(Value, &p, 10)-1, i = 0; ++ while (p < Value+strlen(Value)) { ++ if (*p==0) return true; ++ if (isblank(*p)) ++p; ++ if (isalpha(*p)) { ++ int source = cSource::FromString(p); ++ if (source != cSource::stNone) { ++ SourceCaps[d][i++] = source; ++ SourceCapsSet = true; ++ } ++ else ++ return false; ++ while (!isblank(*p) && *p) ++ ++p; ++ if (i>MAXSOURCECAPS) ++ return false; ++ } ++ } ++ return true; ++} ++ + bool cSetup::Parse(const char *Name, const char *Value) + { + if (!strcasecmp(Name, "OSDLanguage")) OSDLanguage = atoi(Value); +@@ -458,6 +504,7 @@ + else if (!strcasecmp(Name, "MultiSpeedMode")) MultiSpeedMode = atoi(Value); + else if (!strcasecmp(Name, "ShowReplayMode")) ShowReplayMode = atoi(Value); + else if (!strcasecmp(Name, "ResumeID")) ResumeID = atoi(Value); ++ else if (!strcasecmp(Name, "SourceCaps")) return ParseSourceCaps(Value); + else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value); + else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value); + else if (!strcasecmp(Name, "CurrentDolby")) CurrentDolby = atoi(Value); +@@ -523,6 +570,7 @@ + Store("MultiSpeedMode", MultiSpeedMode); + Store("ShowReplayMode", ShowReplayMode); + Store("ResumeID", ResumeID); ++ if (SourceCapsSet) StoreSourceCaps("SourceCaps"); + Store("CurrentChannel", CurrentChannel); + Store("CurrentVolume", CurrentVolume); + Store("CurrentDolby", CurrentDolby); +diff -ur vdr-1.3.33/config.h vdr-1.3.33+SourceCaps/config.h +--- vdr-1.3.33/config.h 2005-09-14 18:04:09.000000000 +0200 ++++ vdr-1.3.33+SourceCaps/config.h 2005-09-25 20:25:45.871496352 +0200 +@@ -30,6 +30,9 @@ + #define MINOSDHEIGHT 324 + #define MAXOSDHEIGHT 567 + ++#define MAXDEVICES 16 // the maximum number of devices in the system ++#define MAXSOURCECAPS 128 // the maximum number of different sources per device ++ + #define MaxFileName 256 + #define MaxSkinName 16 + #define MaxThemeName 16 +@@ -198,6 +201,8 @@ + void StoreLanguages(const char *Name, int *Values); + bool ParseLanguages(const char *Value, int *Values); + bool Parse(const char *Name, const char *Value); ++ void StoreSourceCaps(const char *Name); ++ bool ParseSourceCaps(const char *Value); + cSetupLine *Get(const char *Name, const char *Plugin = NULL); + void Store(const char *Name, const char *Value, const char *Plugin = NULL, bool AllowMultiple = false); + void Store(const char *Name, int Value, const char *Plugin = NULL); +@@ -252,6 +257,8 @@ + int MultiSpeedMode; + int ShowReplayMode; + int ResumeID; ++ int SourceCaps[MAXDEVICES][MAXSOURCECAPS]; ++ bool SourceCapsSet; + int CurrentChannel; + int CurrentVolume; + int CurrentDolby; +diff -ur vdr-1.3.33/device.c vdr-1.3.33+SourceCaps/device.c +--- vdr-1.3.33/device.c 2005-09-17 16:29:44.000000000 +0200 ++++ vdr-1.3.33+SourceCaps/device.c 2005-09-25 20:25:45.873496048 +0200 +@@ -174,8 +174,10 @@ + for (int i = 0; i < MAXRECEIVERS; i++) + receiver[i] = NULL; + +- if (numDevices < MAXDEVICES) ++ if (numDevices < MAXDEVICES) { + device[numDevices++] = this; ++ SetSourceCaps(cardIndex); ++ } + else + esyslog("ERROR: too many devices!"); + } +@@ -313,6 +315,17 @@ + return d; + } + ++void cDevice::SetSourceCaps(int Index) ++{ ++ for (int d = 0; d < numDevices; d++) { ++ if (Index < 0 || Index == device[d]->CardIndex()) { ++ for (int i = 0; i < MAXSOURCECAPS; i++) ++ device[d]->sourceCaps[i] = Setup.SourceCaps[device[d]->CardIndex()][i]; ++ } ++ } ++} ++ ++ + void cDevice::Shutdown(void) + { + primaryDevice = NULL; +diff -ur vdr-1.3.33/device.h vdr-1.3.33+SourceCaps/device.h +--- vdr-1.3.33/device.h 2005-09-17 16:29:28.000000000 +0200 ++++ vdr-1.3.33+SourceCaps/device.h 2005-09-25 20:25:45.874495896 +0200 +@@ -23,7 +23,6 @@ + #include "thread.h" + #include "tools.h" + +-#define MAXDEVICES 16 // the maximum number of devices in the system + #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device + #define MAXRECEIVERS 16 // the maximum number of receivers per device + #define MAXVOLUME 255 +@@ -133,6 +132,8 @@ + ///< given Priority. + ///< See ProvidesChannel() for more information on how + ///< priorities are handled, and the meaning of NeedsDetachReceivers. ++ static void SetSourceCaps(int Index = -1); ++ ///< Sets the SourceCaps of the given device according to the Setup data. + static void Shutdown(void); + ///< Closes down all devices. + ///< Must be called at the end of the program. +@@ -140,6 +141,7 @@ + static int nextCardIndex; + int cardIndex; + protected: ++ int sourceCaps[MAXSOURCECAPS]; + cDevice(void); + virtual ~cDevice(); + virtual bool Ready(void); +diff -ur vdr-1.3.33/dvbdevice.c vdr-1.3.33+SourceCaps/dvbdevice.c +--- vdr-1.3.33/dvbdevice.c 2005-08-21 11:17:20.000000000 +0200 ++++ vdr-1.3.33+SourceCaps/dvbdevice.c 2005-09-25 20:25:45.876495592 +0200 +@@ -754,10 +754,17 @@ + bool cDvbDevice::ProvidesSource(int Source) const + { + int type = Source & cSource::st_Mask; +- return type == cSource::stNone +- || type == cSource::stCable && frontendType == FE_QAM +- || type == cSource::stSat && frontendType == FE_QPSK +- || type == cSource::stTerr && frontendType == FE_OFDM; ++ if (Setup.SourceCapsSet && type == cSource::stSat && frontendType == FE_QPSK) { ++ for (int i = 0; i < MAXSOURCECAPS; i++) ++ if (sourceCaps[i] == Source) ++ return true; ++ return false; ++ } ++ else ++ return type == cSource::stNone ++ || type == cSource::stCable && frontendType == FE_QAM ++ || type == cSource::stSat && frontendType == FE_QPSK ++ || type == cSource::stTerr && frontendType == FE_OFDM; + } + + bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const +--- vdr-1.3.23/sources.c 2004-12-26 12:58:52.000000000 +0100 ++++ vdr-1.3.23+SourceCaps/sources.c 2005-02-16 00:29:02.652355896 +0100 +@@ -68,7 +68,7 @@ + int pos = 0; + bool dot = false; + bool neg = false; +- while (*++s) { ++ while (*++s && !isblank(*s)) { + switch (toupper(*s)) { + case '0' ... '9': pos *= 10; + pos += *s - '0'; diff --git a/media-video/vdr/vdr-1.3.36.ebuild b/media-video/vdr/vdr-1.3.36.ebuild new file mode 100644 index 000000000000..d79f4ee7f72c --- /dev/null +++ b/media-video/vdr/vdr-1.3.36.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/vdr-1.3.36.ebuild,v 1.1 2005/11/09 21:28:05 zzam Exp $ + +inherit eutils + +IUSE="lirc vfat rcu + lnbsharing sourcecaps aio bigpatch jumpplay" + +# Names of patches +FNAME_AIO="${P}-enAIO-2.7.diff" +FNAME_BIGPATCH="${P}-bigpatch-test1" +FNAME_JUMPPLAY="vdr-jumpplay-0.6-1.3.29.diff" +FNAME_LNBSHARING="configurableLNBshare-VDR_1.3.36.patch" +FNAME_SOURCECAPS_NORMAL="vdr-1.3.36-SourceCaps.patch" +FNAME_SOURCECAPS_LNBSHARING="vdr-1.3.36-SourceCaps-for-lnb-sharing.patch" + +DESCRIPTION="Video Disk Recorder - turns a pc into a powerful set top box for DVB" +HOMEPAGE="http://www.cadsoft.de/vdr/" +SRC_URI="ftp://ftp.cadsoft.de/vdr/Developer/${P}.tar.bz2 + lnbsharing? ( http://xn--ltzke-jua.de/dvb/VDR_LNB_sharing_patch/${FNAME_LNBSHARING} ) + aio? ( http://www.saunalahti.fi/~rahrenbe/vdr/patches/${FNAME_AIO}.gz ) + bigpatch? ( http://bigpatch.vdr-developer.org/${PV}/${FNAME_BIGPATCH}.tar.bz2 ) + jumpplay? ( http://www.toms-cafe.de/vdr/download/${FNAME_JUMPPLAY} )" + +KEYWORDS="~amd64 ~x86" +SLOT="0" +LICENSE="GPL-2" + + +_DEPEND="media-libs/jpeg + lirc? ( app-misc/lirc ) + sys-apps/gawk" + +RDEPEND="${_DEPEND} + dev-lang/perl + media-tv/vdrplugin-rebuild + media-tv/gentoo-vdr-scripts" + +DEPEND="${_DEPEND} + || ( + >=sys-kernel/linux-headers-2.6.11-r2 + media-tv/linuxtv-dvb + )" + +# Relevant Pathes for vdr on gentoo +DVB_DIR=/usr/include +VDR_INCLUDE_DIR=/usr/include/vdr +PLUGIN_DIR=/usr/lib/vdr/plugins +CONF_DIR=/etc/vdr +RC_DIR=/usr/lib/vdr/rcscript +CAP_FILE=${S}/vdr-capabilities.sh +CAPS="# Capabilities of the vdr-executable for use by startscript etc." +VDR_HOME=/var/vdr + +add_cap() { + while [ "$1" ]; do + CAPS="${CAPS}\n$1=1" + shift + done +} + +pkg_setup() { + enewgroup vdr + enewuser vdr -1 /bin/bash ${VDR_HOME} vdr,video +} + +src_unpack() { + unpack ${A} + cd ${S} + + ebegin "Changing pathes for gentoo" + sed -e 's-$(DVBDIR)/include-$(DVBDIR)-' -i Makefile + + sed \ + -e 's-ConfigDirectory = VideoDirectory;-ConfigDirectory = CONFIGDIR;-' \ + -i vdr.c + + cat > Make.config <<-EOT + # + # Generated by ebuild ${PF} + # + DVBDIR = ${DVB_DIR} + PLUGINLIBDIR = ${PLUGIN_DIR} + CONFIGDIR = ${CONF_DIR} + + DEFINES += -DCONFIGDIR=\"\$(CONFIGDIR)\" + EOT + eend 0 + + if use rcu; then + echo "REMOTE=RCU" >> Make.config + use lirc && ewarn "Only one remotes can be used: dropping lirc and keeping rcu" + else + use lirc && echo "REMOTE=LIRC" >> Make.config + fi + use vfat && echo "VFAT=1" >> Make.config + + # apply standard patches + local MY_SOURCECAPS="${FILESDIR}/${FNAME_SOURCECAPS_NORMAL}" + + epatch "${FILESDIR}/1.3.34/vdr-1.3.34-shutdown-retry.diff" + + if use bigpatch; then + epatch "${WORKDIR}/BigPatch/bigpatch-current.diff" + add_cap PATCHED_BIGPATCH PATCHED_SOURCECAPS PATCHED_LNBSHARING PATCHED_AIO + else + # All these patches are included in bigpatch + if use aio; then + if use lnbsharing; then + ewarn "At the moment lnbsharing can not be combined with aio, dropping aio patch!" + else + epatch "../${FNAME_AIO}" + add_cap PATCHED_AIO + fi + fi + + if use lnbsharing; then + epatch "${DISTDIR}/${FNAME_LNBSHARING}" + MY_SOURCECAPS="${FILESDIR}/${FNAME_SOURCECAPS_LNBSHARING}" + add_cap PATCHED_LNBSHARING + fi + + use sourcecaps && epatch "${MY_SOURCECAPS}" + add_cap PATCHED_SOURCECAPS + + if use jumpplay; then + if use sourcecaps; then + ewarn "At the moment sourcecaps can not be combined with jumpplay, dropping jumpplay patch." + else + epatch "${DISTDIR}/${FNAME_JUMPPLAY}" + fi + fi + fi + + + + # apply local patches defined by variable VDR_LOCAL_PATCHES_DIR + if test -n "${VDR_LOCAL_PATCHES_DIR}"; then + echo + einfo "Applying local patches" + for LOCALPATCH in ${VDR_LOCAL_PATCHES_DIR}/${PV}/*.{diff,patch}; do + test -f "${LOCALPATCH}" && epatch "${LOCALPATCH}" + done + fi + + if [[ -n "${VDRSOURCE_DIR}" ]]; then + cp -r ${S} ${T}/source-tree + fi + + + add_cap CAP_IRCTRL_RUNTIME_PARAM \ + CAP_VFAT_RUNTIME_PARAM \ + CAP_SHUTDOWN_AUTO_RETRY + + echo -e ${CAPS} > ${CAP_FILE} +} + +src_install() { + exeinto /usr/bin + doexe vdr + doexe svdrpsend.pl + + insinto ${VDR_INCLUDE_DIR} + doins *.h + doins Make.config + + insinto ${VDR_INCLUDE_DIR}/libsi + doins libsi/*.h + + diropts -m755 -ovdr -gvdr + keepdir ${CONF_DIR} + keepdir ${CONF_DIR}/plugins + keepdir ${VDR_HOME} + keepdir ${VDR_HOME}/video + + insinto ${CONF_DIR} + insopts -m0644 -ovdr -gvdr + doins *.conf channels.conf.* + insopts -m0644 + diropts -m755 + + + keepdir "${PLUGIN_DIR}" + + doman vdr.1 vdr.5 + + insinto ${RC_DIR} + doins ${CAP_FILE} + + if [[ -n "${VDRSOURCE_DIR}" ]]; then + einfo "Installing sources" + insinto ${VDRSOURCE_DIR}/${P} + doins -r ${T}/source-tree/* + keepdir ${VDRSOURCE_DIR}/${P}/PLUGINS/lib + fi +} + +pkg_postinst() { + einfo "It is a good idea to run vdrplugin-rebuild now" +} |