/******************************************************************** * * DMW_Xds.h * * * Copyright 2002-2004 Digital STREAM Technology, Inc. * All Rights Reserved * * DMW_XdsProcess.c, v 1.0 2003/11/27 cafrii * *******************************************************************/ typedef enum XDSControlClass { CurrentClass, FutureClass, ChannelClass, MiscellaneousClass, PublicServiceClass, PrivateClass } XDSControlClass_t; typedef DMW_Rating XdsRatingInfo; // Language for Audio / Caption Services // typedef enum { XDSL_UNKNOWN = 0, XDSL_AENGLISH = 1, XDSL_SPANISH = 2, XDSL_FRENCH =3, XDSL_GERMAN = 4, XDSL_ITALIAN = 5, XDSL_OTHER = 6, XDSL_NONE= 7 } XdsLanguageCode; typedef struct { // AudioServices // UINT8 mainAudioLanguage; // XdsLanguageCode type UINT8 mainAudioType; UINT8 sapLanguage; // XdsLanguageCode type UINT8 sapType; } XdsAudioInfo; typedef struct { // CaptionServices // // b6 b5 b4 b3 b2 b1 b0 // 1 L2 L1 L0 F C T // // F : 0 means field 1, 1 means field 2 // C : 0 means channel C1, 1 measn channel C2 // T : 0 means caption, 1 measn Text // UINT8 iCapService; // number of caption services UINT8 capLanguage[8]; UINT8 capServiceType[8]; } XdsCaptionInfo; typedef struct { // It is from CopyGenerationManagementSystemA UINT8 CGMS_A; /*Copy Generation Management System for Analog*/ UINT8 APS; /*Analog Protection System*/ UINT8 ASB; /*Analog Source Bit*/ } XdsCGMSA; typedef struct { // It is from AspectRatioInformation UINT8 startLine; UINT8 endLine; UINT8 squeezed; } XdsAspectRatioInfo; // 10h to 17h : Program Description Row 1 to Row 8 // // These packets form a sequence of up to eight packets that each can contain a variable number (O to 32) of // displayable characters used to provide a detailed description of the program. Each character is a closed // caption character in the range of 20h to 7Fh. // This description is free form and contains any information that the provider wishes to include. Some // examples: episode title, date of release, cast of characters, brief story synopsis, etc. // Each packet is used in numerical sequence. If a packet contains no informational characters, a blank line // shall be displayed. The first four rows should contain the most important information as some receivers may // not be capable of displaying all eight rows. // typedef struct { UINT8 row[8][32]; } XdsProgramDescription; //---------------------------------------------------------------- // // // // typedef struct XdsProgramInfo_t { UINT8 rf; //-------------------------------- // Basic Info // ProgramIdentificationNumber : start time & date // // contains four characters that define the program start time and date // relative to Coordinated Universal Time (UTC). // // A change in received Current Class Program Identification Number is interpreted by XDS // receivers as the start of a new current program. All previously received current program // information shall normally be discarded in this case. // #if 0 UINT8 startMinute; // 0 ~ 59 UINT8 startHour; // 0 ~ 23 UINT8 startDate; // 1 ~ 31 UINT8 startMonth; // 1 ~ 12 UINT8 bTapeDelay; // determine if an offest is necessary because of local station tape delay #else // cafrii 041222 add // UINT32 startTime; // GPS unit, converted using #endif // LengthTimeInShow : scheduled length of the program ,elapsed time // // composed of 2, 4 or 6 non-character-based informational characters. // It is used to indicate the scheduled length of the program as well as the elapsed time // for the program. // The first two informational characters are used to indicate the program's length in hours // and minutes. // The second two informational characters show the current time elapsed by the program in // hours and minutes. The final two informational characters extend the elapsed time // count with seconds. // UINT8 minLength; // 0 ~ 59 UINT8 hourLength; // 0 ~ 63 UINT8 minElapsed; UINT8 hourElapsed; UINT8 secElapsed; // 0 ~ 59 // ProgramName // // contains a variable number, 2 to 32, of Informational characters that define the program title. // Each character is a in the range of 20h to 7Fh. // // A change in received Current Class Program name is interpreted by XDS receivers as the // start of a new current program. // All previously received current program information shall normally be discarded in this case. // UINT8 programName[32+1]; // null-terminated ascii string //UINT8 programNameLength; //UINT8 *programName; // ProgramType // // contains a variable number, 2 to 32, of informational characters that define keywords // describing the type or category of program. // A single character is used to represent each entire keyword. // // Basic: 0x20 ~ 0x26, Detail: 0x27 ~ 0x7F // // All programs that use this packet shall specify one or more of Basic codes. // These keywords shall always be specified before any of the keywords from the Detail group. UINT8 programType[32]; // 0x00 (NULL) if not specified or shorter than 32 //UINT8 programTypeLength; //UINT8 *programTypeList; //-------------------------------- // Extended Info XdsRatingInfo *ratingInfo; XdsAudioInfo *audioInfo; XdsCaptionInfo *captionInfo; XdsCGMSA *cgmsaInfo; XdsAspectRatioInfo *aspectRatioInfo; // 0x0C, 0x0D Composite ÆÐŶÀº °¢ field º°·Î ³ª´©¾îÁ® ÀúÀåµÈ´Ù. XdsProgramDescription *programDescription; //-------------------------------- // Next Program Link struct XdsProgramInfo_t *pNext; //UINT8 receiveStatus; } XdsProgramInfo; //---------------------------------------------------------------- // // XdsChannelInfo // // RF ±âÁØÀ¸·Î sort. linked-list ¿¬°á. // // typedef struct XdsChannelInfo_t { UINT8 rf; // Network Name // local ä³Î¿¡¼­ »ç¿ëÇÏ´Â ³×Æ®¿÷ À̸§. ±æÀÌ´Â 2~32 // À̸§ÀÇ °¢ ±ÛÀÚ´Â 0x20 ~ 0x7F ±îÁöÀÇ Äڵ带 »ç¿ëÇÑ´Ù. // //UINT8 networkNameLength; UINT8 networkName[32+1]; // null-terminated ascii string // Call Letters // 4 ¶Ç´Â 6 ±ÛÀÚÀÓ. // ¾ÕÀÇ 4±ÛÀÚ´Â local ¹æ¼Û±¹ÀÇ call letter¸¦ ³ªÅ¸³½´Ù. // ¸¸¾à 3±ÛÀÚ¶ó¸é ¸¶Áö¸· ±ÛÀÚ´Â 0x20 (blank) ÀÌ´Ù. // 6±ÛÀÚ°¡ »ç¿ëµÇ¸é ¸¶Áö¸· 2±ÛÀÚ´Â FCC¿¡¼­ ÁöÁ¤ÇÑ channel number ¼ýÀÚÀÓ. (2~69) // (CATV¿¡¼­´Â freq Á¤º¸¿Í ´Ù¸¦ ¼ö ÀÖÀ½) // ºó °ø°£Àº 00 À¸·Î FILL // UINT8 stationId[6+1]; // null-terminated ascii string // Transmission Signal Identifier // UINT16 tsid; // Tape Delay // 'T' bit°¡ set µÈ ¸ðµç program info ¿¡ Àû¿ëµÈ´Ù. // µðÆúÆ® °ªÀº 0ÀÌ´Ù. // UINT8 tapeMinute; UINT8 tapeHour; // linked-list form // XdsProgramInfo *programs; struct XdsChannelInfo_t *pNext; } XdsChannelInfo; //---------------------------------------------------------------- typedef struct { // It is from TimeOfDay UINT8 iMinute; UINT8 iHour; UINT8 iDate; UINT8 iMonth; UINT8 iDay; UINT8 iYear; UINT8 bDaylightSaving; UINT8 bFeb28or29; UINT8 bSecondReset; UINT8 bTapeDelay; // It is from Local Time Zone & DST USE UINT8 timeZoneOffset; UINT8 daylightSaving; } XdsTimeInfo; enum XdsValidMask { XVM_NETWORK_NAME = 0x0001, XVM_CALL_LETTER = 0x0002, XVM_TSID = 0x0004, XVM_TAPE_DELAY = 0x0008, XVM_PROGRAM_ID = 0x0010, XVM_PROGRAM_LENGTH = 0x0020, XVM_PROGRAM_NAME = 0x0040, XVM_PROGRAM_TYPE = 0x0080, XVM_CONTENT_ADVISORY = 0x0100, XVM_AUDIO_SERVICES = 0x0200, XVM_CAPTION_SERVICES = 0x0400, XVM_CGMSA = 0x0800, XVM_ASPECT_RATIO = 0x1000, XVM_PROGRAM_DESCRIPTION = 0x2000, }; /******************************************************************* Update: 1.00 2004/12/20 first design from jina's *******************************************************************/