mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Added cDevice::HasCi() so that devices with Common Interface can be avoided when tuning to an FTA channel
This commit is contained in:
		| @@ -2050,3 +2050,7 @@ J | ||||
|  | ||||
| Peter Pinnau <vdr@unterbrecher.de> | ||||
|  for reporting that 'uint32_t' requires uncluding stdint.h in font.h on some systems | ||||
|  | ||||
| Petri Helin <phelin@googlemail.com> | ||||
|  for suggesting to avoid budget DVB cards with Common Interface when tuning to an | ||||
|  FTA channel | ||||
|   | ||||
							
								
								
									
										6
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -5081,3 +5081,9 @@ Video Disk Recorder Revision History | ||||
|   without valid CA ids VDR can't decide which CAM slot to use. However, since VDR now | ||||
|   automatically determines which CAM can decrypt which channel, setting fixed | ||||
|   channel/device relations should no longer be necessary. | ||||
|  | ||||
| 2007-01-13: Version 1.5.1 | ||||
|  | ||||
| - Added cDevice::HasCi() so that devices with Common Interface can be avoided | ||||
|   when tuning to an FTA channel, thus preserving the CAM resources even on budget | ||||
|   DVB cards (suggested by Petri Helin). | ||||
|   | ||||
							
								
								
									
										10
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								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.283 2007/01/07 14:09:31 kls Exp $ | ||||
|  * $Id: config.h 1.284 2007/01/13 11:42:43 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef __CONFIG_H | ||||
| @@ -21,13 +21,13 @@ | ||||
|  | ||||
| // VDR's own version number: | ||||
|  | ||||
| #define VDRVERSION  "1.5.0" | ||||
| #define VDRVERSNUM   10500  // Version * 10000 + Major * 100 + Minor | ||||
| #define VDRVERSION  "1.5.1" | ||||
| #define VDRVERSNUM   10501  // Version * 10000 + Major * 100 + Minor | ||||
|  | ||||
| // The plugin API's version number: | ||||
|  | ||||
| #define APIVERSION  "1.5.0" | ||||
| #define APIVERSNUM   10500  // Version * 10000 + Major * 100 + Minor | ||||
| #define APIVERSION  "1.5.1" | ||||
| #define APIVERSNUM   10501  // Version * 10000 + Major * 100 + Minor | ||||
|  | ||||
| // When loading plugins, VDR searches them by their APIVERSION, which | ||||
| // may be smaller than VDRVERSION in case there have been no changes to | ||||
|   | ||||
							
								
								
									
										8
									
								
								device.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								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.138 2007/01/07 14:41:07 kls Exp $ | ||||
|  * $Id: device.c 1.139 2007/01/13 12:05:00 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "device.h" | ||||
| @@ -334,6 +334,7 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView | ||||
|              imp <<= 8; imp |= min(max((NumUsableSlots ? SlotPriority[j] : 0) + MAXPRIORITY, 0), 0xFF);              // use the CAM slot with the lowest priority (+MAXPRIORITY to assure that values -99..99 can be used) | ||||
|              imp <<= 1; imp |= ndr;                                                                                  // avoid devices if we need to detach existing receivers | ||||
|              imp <<= 1; imp |= device[i]->IsPrimaryDevice();                                                         // avoid the primary device | ||||
|              imp <<= 1; imp |= NumUsableSlots ? 0 : device[i]->HasCi();                                              // avoid cards with Common Interface for FTA channels | ||||
|              imp <<= 1; imp |= device[i]->HasDecoder();                                                              // avoid full featured cards | ||||
|              imp <<= 1; imp |= NumUsableSlots ? !ChannelCamRelations.CamDecrypt(Channel->GetChannelID(), j + 1) : 0; // prefer CAMs that are known to decrypt this channel | ||||
|              if (imp < Impact) { | ||||
| @@ -367,6 +368,11 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView | ||||
|   return d; | ||||
| } | ||||
|  | ||||
| bool cDevice::HasCi(void) | ||||
| { | ||||
|   return false; | ||||
| } | ||||
|  | ||||
| void cDevice::SetCamSlot(cCamSlot *CamSlot) | ||||
| { | ||||
|   camSlot = CamSlot; | ||||
|   | ||||
							
								
								
									
										4
									
								
								device.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								device.h
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: device.h 1.80 2007/01/07 14:38:00 kls Exp $ | ||||
|  * $Id: device.h 1.81 2007/01/13 11:33:57 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef __DEVICE_H | ||||
| @@ -314,6 +314,8 @@ private: | ||||
|   time_t startScrambleDetection; | ||||
|   cCamSlot *camSlot; | ||||
| public: | ||||
|   virtual bool HasCi(void); | ||||
|          ///< Returns true if this device has a Common Interface. | ||||
|   void SetCamSlot(cCamSlot *CamSlot); | ||||
|          ///< Sets the given CamSlot to be used with this device. | ||||
|   cCamSlot *CamSlot(void) const { return camSlot; } | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: dvbdevice.c 1.161 2007/01/07 14:09:51 kls Exp $ | ||||
|  * $Id: dvbdevice.c 1.162 2007/01/13 11:37:00 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "dvbdevice.h" | ||||
| @@ -509,6 +509,11 @@ cSpuDecoder *cDvbDevice::GetSpuDecoder(void) | ||||
|   return spuDecoder; | ||||
| } | ||||
|  | ||||
| bool cDvbDevice::HasCi(void) | ||||
| { | ||||
|   return ciAdapter; | ||||
| } | ||||
|  | ||||
| uchar *cDvbDevice::GrabImage(int &Size, bool Jpeg, int Quality, int SizeX, int SizeY) | ||||
| { | ||||
|   if (devVideoIndex < 0) | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: dvbdevice.h 1.42 2007/01/07 14:39:52 kls Exp $ | ||||
|  * $Id: dvbdevice.h 1.43 2007/01/13 11:35:07 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef __DVBDEVICE_H | ||||
| @@ -84,6 +84,11 @@ protected: | ||||
| protected: | ||||
|   virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask); | ||||
|  | ||||
| // Common Interface facilities: | ||||
|  | ||||
| public: | ||||
|   virtual bool HasCi(void); | ||||
|  | ||||
| // Image Grab facilities | ||||
|  | ||||
| private: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user