mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Implemented the CableDeliverySystemDescriptor in libdtv
This commit is contained in:
		@@ -409,6 +409,7 @@ Gregoire Favre <greg@ulima.unil.ch>
 | 
				
			|||||||
Sven Grothklags <sven@uni-paderborn.de>
 | 
					Sven Grothklags <sven@uni-paderborn.de>
 | 
				
			||||||
 for fixing the cutting mechanism to make it re-sync in case a frame is larger
 | 
					 for fixing the cutting mechanism to make it re-sync in case a frame is larger
 | 
				
			||||||
 than the buffer
 | 
					 than the buffer
 | 
				
			||||||
 | 
					 for implementing the CableDeliverySystemDescriptor in libdtv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tomas Prybil <tomas.prybil@copper.se>
 | 
					Tomas Prybil <tomas.prybil@copper.se>
 | 
				
			||||||
 for translating OSD texts to the Swedish language
 | 
					 for translating OSD texts to the Swedish language
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							@@ -2109,9 +2109,10 @@ Video Disk Recorder Revision History
 | 
				
			|||||||
- The red ("Record") and yellow ("Pause") button in the "Main" menu are no longer
 | 
					- The red ("Record") and yellow ("Pause") button in the "Main" menu are no longer
 | 
				
			||||||
  available when replaying.
 | 
					  available when replaying.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2003-05-09: Version 1.1.31
 | 
					2003-05-10: Version 1.1.31
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Introduced the new function cPlugin::Initialize(), in order to be able to separate
 | 
					- Introduced the new function cPlugin::Initialize(), in order to be able to separate
 | 
				
			||||||
  the startup of a plugin into an "early" (Initialize()) and "late" (Start()) phase
 | 
					  the startup of a plugin into an "early" (Initialize()) and "late" (Start()) phase
 | 
				
			||||||
  (suggested by Andreas Schultz). Plugin authors should please read the section
 | 
					  (suggested by Andreas Schultz). Plugin authors should please read the section
 | 
				
			||||||
  about "Getting started" in PLUGINS.html and adapt their code if applicable.
 | 
					  about "Getting started" in PLUGINS.html and adapt their code if applicable.
 | 
				
			||||||
 | 
					- Implemented the CableDeliverySystemDescriptor in libdtv (thanks to Sven Grothklags)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1054,6 +1054,28 @@ struct SatelliteDeliverySystemDescriptor {
 | 
				
			|||||||
      ((struct SatelliteDeliverySystemDescriptor *)descr)->FEC = fec; \
 | 
					      ((struct SatelliteDeliverySystemDescriptor *)descr)->FEC = fec; \
 | 
				
			||||||
   } while (0)
 | 
					   } while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* CableDeliverySystemDescriptor */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct CableDeliverySystemDescriptor {
 | 
				
			||||||
 | 
					   struct NODE          Node;
 | 
				
			||||||
 | 
					   unsigned short       Tag;
 | 
				
			||||||
 | 
					   long                 Frequency;
 | 
				
			||||||
 | 
					   long                 SymbolRate;
 | 
				
			||||||
 | 
					   char                 FEC;
 | 
				
			||||||
 | 
					   char                 Modulation;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CreateCableDeliverySystemDescriptor(descr, freq, sr, fec, mod) \
 | 
				
			||||||
 | 
					   do \
 | 
				
			||||||
 | 
					   { \
 | 
				
			||||||
 | 
					      xCreateNode (((struct CableDeliverySystemDescriptor *)descr), NULL); \
 | 
				
			||||||
 | 
					      ((struct CableDeliverySystemDescriptor *)descr)->Tag = DESCR_CABLE_DEL_SYS; \
 | 
				
			||||||
 | 
					      ((struct CableDeliverySystemDescriptor *)descr)->Frequency = freq; \
 | 
				
			||||||
 | 
					      ((struct CableDeliverySystemDescriptor *)descr)->SymbolRate = sr; \
 | 
				
			||||||
 | 
					      ((struct CableDeliverySystemDescriptor *)descr)->FEC = fec; \
 | 
				
			||||||
 | 
					      ((struct CableDeliverySystemDescriptor *)descr)->Modulation = mod; \
 | 
				
			||||||
 | 
					   } while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ServiceListDescriptor */
 | 
					/* ServiceListDescriptor */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct ServiceListDescriptor {
 | 
					struct ServiceListDescriptor {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -540,6 +540,19 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
 | 
				
			|||||||
         }
 | 
					         }
 | 
				
			||||||
         break;
 | 
					         break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         case DESCR_CABLE_DEL_SYS:
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					            struct CableDeliverySystemDescriptor *cds =
 | 
				
			||||||
 | 
					                (struct CableDeliverySystemDescriptor *)Descriptor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            printf ("%sDescriptor: Cable Delivery System\n", Prepend);
 | 
				
			||||||
 | 
					            printf ("%s   Frequency: %ld\n", Prepend, cds->Frequency);
 | 
				
			||||||
 | 
					            printf ("%s   SymbolRate: %ld\n", Prepend, cds->SymbolRate);
 | 
				
			||||||
 | 
					            printf ("%s   FEC: %d\n", Prepend, cds->FEC);
 | 
				
			||||||
 | 
					            printf ("%s   Modulation: %d\n", Prepend, cds->Modulation);
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         case DESCR_SERVICE_LIST:
 | 
					         case DESCR_SERVICE_LIST:
 | 
				
			||||||
         {
 | 
					         {
 | 
				
			||||||
            struct ServiceListEntry *Entry;
 | 
					            struct ServiceListEntry *Entry;
 | 
				
			||||||
@@ -572,7 +585,6 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
 | 
				
			|||||||
         break;
 | 
					         break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         case DESCR_STUFFING:
 | 
					         case DESCR_STUFFING:
 | 
				
			||||||
         case DESCR_CABLE_DEL_SYS:
 | 
					 | 
				
			||||||
         case DESCR_VBI_DATA:
 | 
					         case DESCR_VBI_DATA:
 | 
				
			||||||
         case DESCR_VBI_TELETEXT:
 | 
					         case DESCR_VBI_TELETEXT:
 | 
				
			||||||
         case DESCR_MOSAIC:
 | 
					         case DESCR_MOSAIC:
 | 
				
			||||||
@@ -598,7 +610,7 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
 | 
				
			|||||||
         case DESCR_CELL_FREQ_LINK:
 | 
					         case DESCR_CELL_FREQ_LINK:
 | 
				
			||||||
         case DESCR_ANNOUNCEMENT_SUPPORT:
 | 
					         case DESCR_ANNOUNCEMENT_SUPPORT:
 | 
				
			||||||
         default:
 | 
					         default:
 | 
				
			||||||
            printf ("%sDescriptor: (noch nicht unterst<73>tzt)\n", Prepend);
 | 
					            printf ("%sDescriptor: %02x (noch nicht unterst<73>tzt)\n", Prepend, DescriptorTag (Descriptor));
 | 
				
			||||||
         break;
 | 
					         break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
   }
 | 
					   }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1064,6 +1064,36 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      case DESCR_CABLE_DEL_SYS:
 | 
				
			||||||
 | 
					//         fprintf (stderr, "got descriptor 0x%x\n", GetDescriptorTag(Buffer));
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					         descr_cable_delivery_system_t *cds;
 | 
				
			||||||
 | 
					         cds = (descr_cable_delivery_system_t *) Ptr;
 | 
				
			||||||
 | 
					         if (CheckBcdChar (cds->frequency1) && CheckBcdChar (cds->frequency2) &&
 | 
				
			||||||
 | 
					             CheckBcdChar (cds->frequency3) && CheckBcdChar (cds->frequency4) &&
 | 
				
			||||||
 | 
					             CheckBcdChar (cds->symbol_rate1) && CheckBcdChar (cds->symbol_rate1) &&
 | 
				
			||||||
 | 
					             CheckBcdChar (cds->symbol_rate3) && (cds->fec_inner != 0))
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					           CreateCableDeliverySystemDescriptor (Descriptor,
 | 
				
			||||||
 | 
					            BcdCharToInt (cds->frequency1) * 100 * 1000 * 1000 +
 | 
				
			||||||
 | 
					            BcdCharToInt (cds->frequency2) * 1000 * 1000 +
 | 
				
			||||||
 | 
					            BcdCharToInt (cds->frequency3) * 10 * 1000 +
 | 
				
			||||||
 | 
					            BcdCharToInt (cds->frequency4) * 100,
 | 
				
			||||||
 | 
					            BcdCharToInt (cds->symbol_rate1) * 10 * 1000 +
 | 
				
			||||||
 | 
					            BcdCharToInt (cds->symbol_rate2) * 100 +
 | 
				
			||||||
 | 
					            BcdCharToInt (cds->symbol_rate3),
 | 
				
			||||||
 | 
					            cds->fec_inner,
 | 
				
			||||||
 | 
					           cds->modulation
 | 
				
			||||||
 | 
					           );
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         /* else
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					            fprintf (stderr, "Illegal cds descriptor\n");
 | 
				
			||||||
 | 
					            siDumpDescriptor (Buffer);
 | 
				
			||||||
 | 
					         } */
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      case DESCR_SERVICE_LIST:
 | 
					      case DESCR_SERVICE_LIST:
 | 
				
			||||||
//         fprintf (stderr, "got descriptor 0x%x\n", GetDescriptorTag(Buffer));
 | 
					//         fprintf (stderr, "got descriptor 0x%x\n", GetDescriptorTag(Buffer));
 | 
				
			||||||
         CreateServiceListDescriptor (Descriptor);
 | 
					         CreateServiceListDescriptor (Descriptor);
 | 
				
			||||||
@@ -1119,7 +1149,6 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
 | 
				
			|||||||
      case DESCR_SMOOTHING_BUFFER:
 | 
					      case DESCR_SMOOTHING_BUFFER:
 | 
				
			||||||
      case DESCR_STD:
 | 
					      case DESCR_STD:
 | 
				
			||||||
      case DESCR_IBP:
 | 
					      case DESCR_IBP:
 | 
				
			||||||
      case DESCR_CABLE_DEL_SYS:
 | 
					 | 
				
			||||||
      case DESCR_VBI_DATA:
 | 
					      case DESCR_VBI_DATA:
 | 
				
			||||||
      case DESCR_VBI_TELETEXT:
 | 
					      case DESCR_VBI_TELETEXT:
 | 
				
			||||||
      case DESCR_MOSAIC:
 | 
					      case DESCR_MOSAIC:
 | 
				
			||||||
@@ -1181,7 +1210,6 @@ char *siGetDescriptorTextHandler (u_char *Buffer, int Length, int type)
 | 
				
			|||||||
         if ((*Buffer >= ' ' && *Buffer <= '~') || (*Buffer == '\n') ||
 | 
					         if ((*Buffer >= ' ' && *Buffer <= '~') || (*Buffer == '\n') ||
 | 
				
			||||||
             (*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer;
 | 
					             (*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer;
 | 
				
			||||||
         if (*Buffer == 0x8A) *tmp++ = '\n';
 | 
					         if (*Buffer == 0x8A) *tmp++ = '\n';
 | 
				
			||||||
         if (*Buffer == 0x86 || *Buffer == 0x87) *tmp++ = ' ';
 | 
					 | 
				
			||||||
         if ((*Buffer == 0x86 || *Buffer == 0x87) && !(GDT_NAME_DESCRIPTOR & type)) *tmp++ = ' ';
 | 
					         if ((*Buffer == 0x86 || *Buffer == 0x87) && !(GDT_NAME_DESCRIPTOR & type)) *tmp++ = ' ';
 | 
				
			||||||
         Buffer++;
 | 
					         Buffer++;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user