vdr 1.7.0 does not compile

Message ID 48025C8A.20003@gmx.de
State New
Headers

Commit Message

Reinhard Nissl April 13, 2008, 7:18 p.m. UTC
  Hi,

Helmut Auer schrieb:

>> dvbdevice.c
>> dvbdevice.c: In member function 'bool cDvbTuner::SetFrontend()':
>> dvbdevice.c:271: error: 'struct dvbfe_info' has no member named 'delivery'
>> dvbdevice.c:286: error: 'struct dvbfe_info' has no member named 'delivery'
>> dvbdevice.c:307: error: 'struct dvbfe_info' has no member named 'delivery'
>> make: *** [dvbdevice.o] Error 1
>>
>> The driver I am using ist http://jusst.de/hg/multiproto svn from today, 
>> and the included frontend.h really has no delivery member in this structure.
>
> delivery was removed 5 weeks ago:
> http://jusst.de/hg/multiproto/log/46df93f7bcee/linux/include/linux/dvb/frontend.h

The attached patch should make it build.

Bye.
  

Patch

diff -Nurp ../vdr-1.7.0-orig/dvbdevice.c ./dvbdevice.c
--- ../vdr-1.7.0-orig/dvbdevice.c	2008-04-13 16:15:35.000000000 +0200
+++ ./dvbdevice.c	2008-04-13 21:16:45.000000000 +0200
@@ -266,10 +266,6 @@  bool cDvbTuner::SetFrontend(void)
 
      tuneTimeout = DVBS_TUNE_TIMEOUT;
      lockTimeout = DVBS_LOCK_TIMEOUT;
-
-     dvbfe_info feinfo;
-     feinfo.delivery = Frontend.delivery;
-     CHECK(ioctl(fd_frontend, DVBFE_GET_INFO, &feinfo)); //switch system
      }
   else if (frontendType & DVBFE_DELSYS_DVBC) {
      Frontend.delivery = DVBFE_DELSYS_DVBC;
@@ -281,10 +277,6 @@  bool cDvbTuner::SetFrontend(void)
 
      tuneTimeout = DVBC_TUNE_TIMEOUT;
      lockTimeout = DVBC_LOCK_TIMEOUT;
-
-     dvbfe_info feinfo;
-     feinfo.delivery = Frontend.delivery;
-     CHECK(ioctl(fd_frontend, DVBFE_GET_INFO, &feinfo)); //switch system
      }
   else if (frontendType & DVBFE_DELSYS_DVBT) {
      Frontend.delivery = DVBFE_DELSYS_DVBT;
@@ -302,15 +294,12 @@  bool cDvbTuner::SetFrontend(void)
 
      tuneTimeout = DVBT_TUNE_TIMEOUT;
      lockTimeout = DVBT_LOCK_TIMEOUT;
-
-     dvbfe_info feinfo;
-     feinfo.delivery = Frontend.delivery;
-     CHECK(ioctl(fd_frontend, DVBFE_GET_INFO, &feinfo)); //switch system
      }
   else {
      esyslog("ERROR: attempt to set channel with unknown DVB frontend type");
      return false;
      }
+  CHECK(ioctl(fd_frontend, DVBFE_SET_DELSYS, &Frontend.delivery)); //switch system
   if (ioctl(fd_frontend, DVBFE_SET_PARAMS, &Frontend) < 0) {
      esyslog("ERROR: frontend %d: %m", cardIndex);
      return false;