btcard.cpp

来自「一个开放源码的bt848/878驱动程序的源码」· C++ 代码 · 共 1,724 行 · 第 1/5 页

CPP
1,724
字号
			1,1,0, PLL_NONE,  HwTuner::TC_Unknown },
		{/* "Bt848A based with 14Mhz ref. Xtal", */ 4, 0, 0, No_Digital,
			NONE, 3, 0,{0,3,2,1} , {0,0,0,0} , 
			0,0,0, PLL_14, HwTuner::TC_Absent } ,
		{/* "Bt8xx based with 28Mhz ref. Xtal and 4 Composite ins", */ 4, 0, 0, No_Digital,
			NONE, NONE, 0,{0,3,2,1} , {0,0,0,0} , 
			0,0,0, PLL_28, HwTuner::TC_Absent } ,
		{/* "FlyVideo 2000S", */ 3, 3, 0, No_Digital,
			0, 2, 0x18e0, { 2, 3, 0}, { 0x1080 , 0x18e0 , 0x1000 , 0x1000 , 0x1080 },
			1,1,0, PLL_28, HwTuner::TC_Unknown },

		{/* "Hoontech 878TV/FM", */ 3, 1, 0, No_Digital,
			0, 2, 0x0000300F, { 2, 3, 0}, { 0x1002 , 0x1002 , 0x4002 , 0x4002 , 0x3003 }, // Audio tuner uses 0x700F
			1,1,0, PLL_28, HwTuner::TC_Unknown },
		{/* "KWorld TV878RF-PRO", */ 3, 4, 0,  No_Digital,/* Contributed by Zvone <zdigas@public.srce.hr> */
			0, 2, 0x1c8007, { 2, 3, 1, 0}, { 0x1c0000 , 0x080009 , 0x080002 , 0x080002 , 0x080009 },
			1,1,0, PLL_28, HwTuner::TC_Unknown }, // (Philips BG+DK tuner)
		{/* "Gallant InterVisionTV IV550", */ 3, 3, 0,  No_Digital,/* Contributed by A. Jackson <ade.jackson@btopenworld.com> */
			0, 2, 0x0080ff, { 2, 3, 1, 0}, { 0x000001 , 0x000001 , 0x000041 , 0x000041 , 0x000040 },
			1,1,0, PLL_28, HwTuner::TC_Unknown }, 
		{/* "Mach TV 878", */ 3, 4, 0, No_Digital,
			1, 2, 0x1c800f, { 2, 3, 1, 0}, { 0x08000a , 0x080009 , 0x08000c , 0x08000c , 0x08000c },
			1,1,0, PLL_28, HwTuner::TC_Unknown }, 

	/* 0x58 */
		
		{/* "Asonic Skyeye BT878", */ 3, 3, 0, No_Digital,
			0, 2, 0x00000f, { 2, 3, 1, 0}, { 0x000001 , 0x000001 , 0x000002 , 0x000002 , 0x000009 },
			1,1,0, PLL_28, HwTuner::TC_Unknown }, 
		{/* "Jetway PciTV Station", */ 1, 1, 0, No_Digital,/* Justin Smith <moose_999@hotmail.com> PAL BGI RC */ 
			0, NONE, 0x1c8007, { 2, 3, 1, 0}, { 0x080000 , 0x080000 , 0x080003 , 0x080003 , 0x080003 },
			1,1,0, PLL_28, HwTuner::TC_Unknown }, 
		{/* "Boeder TV/FM Capture Card 68.404", */ 3, 4, 0, No_Digital,/* T鮪u Janno <tjanno@neti.ee> */
			0, 2, 0xfff03f, { 2, 3, 1, 0}, { 0xebb002 , 0xebb003 , 0xebb002 , 0xebb002 , 0xebb003 },
			1,1,1, PLL_28, HwTuner::TC_Unknown }, 
		{/* "Spirit TV Tuner", */ 3, 3, 0, No_Digital,/* Metabolis <meta@wiw.org> */
			0, 2, 0x00000f, { 2, 3, 1, 0}, { 0x000002 , 0x000002 , 0x000001 , 0x000001 , 0x000003 },
			1,1,0, PLL_28, HwTuner::TC_Unknown }, 

		{/* "AVerMedia TVPhone (old)", */ 3, 1, 0, No_Digital,
			0, 3,0x00702c, { 2, 3, 1}, { 0x00600e, 0x006006, 0x00600a, 0x00600a, 0x006002} ,
			1,1,0, PLL_35, HwTuner::TC_Unknown },
		{/* "SDI Silk 100 (S-Video Jumper)", */ 4, 1, 1, CCIR656_Digital,
			NONE, 0,0, { 2, 0, 1, 3, 2}, { 0, 0, 0, 0, 0} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },
		{/* "SDI Silk 100 (C-Video Jumper)", */ 4, 1, 1, CCIR656_Digital,
			NONE, NONE,0, { 0, 1, 2, 3}, { 0, 0, 0, 0, 0} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },
		{/* "Sasem 4-Channel Dev Board (S-Video Jumper)", */ 4, 1, 1, CCIR656_Digital,
			NONE, 0,0, { 2, 2, 2,2,2}, { 0, 0, 0, 0, 0} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },

	/* 0x60 */
		{/* "Typhoon TV-Tuner Art.Nr.: 50272", */ 3, 1, 0, No_Digital,
			0, 2, 0xffffff, { 2, 1, 3,0}, { 0xffff21, 0xffff21, 0xffff24, 0xffff24, 0xffff29} ,
			1,1,0, PLL_28, HwTuner::TC_Unknown },
		{/* "3cam PCI Video Capture Card", */ 3, 1, 0, No_Digital,
			NONE, 2, 0x00000f, { 2, 3, 1,0}, { 0x000001, 0x000001, 0x000002, 0x000002, 0x000001} ,
			1,1,0, PLL_28, HwTuner::TC_Absent },
		{/* "Cucus Video Capture Card", */ 1, 1, 0, No_Digital,
			NONE, NONE, 0x00000f, { 3, 0, 0,0}, { 0x000003, 0x000003, 0x000003, 0x000003, 0x000003} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },
		{/* "High-speed Video Capture Card C8-T.N.C.", */ 2, 1, 0, No_Digital,
			NONE, 1,    0x00000f, { 3, 1, 0,0}, { 0x000001, 0x000001, 0x000001, 0x000001, 0x000001} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },

		{/* "Skywell Magic TV Card", */ 3, 1, 0, No_Digital,
			0, 1,    0x000007, { 2, 1, 3, 0}, { 0, 0, 2, 0, 1} ,
			1,1,0, PLL_28, HwTuner::TC_Unknown },
		{/* "SDI Silk 200 (S-Video Jumper)", */ 4, 1, 3, CCIR656_Digital,
			NONE, 0, 0x1F800, { 2, 0, 1, 3, 2}, { 0xD, 0xE, 0xB, 0x7, 0} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },
		{/* "SDI Silk 200 (C-Video Jumper)", */ 4, 1, 3, CCIR656_Digital,
			NONE, NONE, 0x1F800, { 0, 1, 2, 3, 2}, { 0xD, 0xE, 0xB, 0x7, 0} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },
		{/* "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", */ 3, 1, 0, No_Digital,
			0, 2, 0x7, { 2, 3, 1, 0}, { 0, 1, 2, 3, 4} ,
			0,0,0, PLL_28, HwTuner::TC_Unknown },

	/* 0x68 */
		{/* "Primavision Video Capture card", */ 4, 0, 0, No_Digital,
			NONE, NONE, 0x0, { 2, 2, 2, 2}, { 0, 0, 0, 0, 0} ,
			0,0,0, PLL_28, HwTuner::TC_Absent },

		{/* "GrandTec 16", */ 16, 1, 0, No_Digital,
			NONE, NONE, 0/*0x18e0*/, { 2, 1, 3, 0}, { 0, 0, 0, 0, 0},
			0,0,0, PLL_28, HwTuner::TC_Absent },

		{/* "Trust 814 PCI", */ 4, 1, 0, No_Digital,
			NONE, NONE, 0, { 2, 2, 2, 2}, { 0, 0, 0, 0, 0},
			0,0,0, PLL_28, HwTuner::TC_Absent },

		{/* "SweetSpot/PDI Deluxe", */ 2, 1, 4, CCIR656_Digital,
			NONE, 0, 0, { 1, 3, 0, 0, 0/*and up...*/}, { 0,0,0,0,0 },
			1,1,0, PLL_28, HwTuner::TC_Absent },

        {/* "Aimslab VHX Deluxe", */ 3, 1, 0, No_Digital,
			0, 2, 7, { 2, 1, 1}, { 0, 2, 1,/*1,2,*/ 3, 4}, // (Composite over SVideo)
			1,1,0, PLL_NONE,  HwTuner::TC_Unknown  },

	/* 0x6D */
 		{/* "Custom card...", */ 3, 1, 1, No_Digital,
 			0, 2, 0x18e0, { 2, 3, 0}, { 0x1080 , 0x18e0 , 0x1000 , 0x1000 , 0x1080 },
 			1,1,0, PLL_28, HwTuner::TC_Unknown }

};

// Table with relationship between Vendor and Subvendor code and card
/* ----------------------------------------------------------------------- */
/* list of card IDs for bt878+ cards                                       */

BtCard::CARD BtCard::Card[] = {
	{ 0x00011002, BtCard::ATI_TVWONDER			/*,"ATI TV Wonder"				*/},
	{ 0x00011461, BtCard::AVPHONE98				/*,"AVerMedia TVPhone98"		*/},
	{ 0x00021461, BtCard::AVERMEDIA98			/*,"Avermedia TVCapture 98"		*/},
	{ 0x00031002, BtCard::ATI_TVWONDERVE		/*,"ATI TV Wonder/VE"			*/},
	{ 0x00031461, BtCard::AVPHONE98				/*,"AVerMedia TVPhone98"		*/},
	{ 0x00041461, BtCard::AVERMEDIA98			/*,"AVerMedia TVCapture 98"		*/},
	{ 0x001211bd, BtCard::PINNACLE				/*,"Pinnacle PCTV"				*/},
	{ 0x001c11bd, BtCard::PINNACLE				/*,"Pinnacle PCTV Sat"			*/},
	{ 0x00790e11, BtCard::WINDVR				/*,"Canopus WinDVR PCI"			*/},
	{ 0x010114c7, BtCard::MODTEC_205			/*,"Modular Technology PCTV"	*/},
    { 0x010115cb, BtCard::GMV1					/*,"AG GMV1"					*/},
	{ 0x013214F1, BtCard::CONEXANTFOGHORNREVA	/*,"Conexant Foghorn NTSC/ATSC-A"*/ },
	{ 0x023214F1, BtCard::CONEXANTFOGHORNREVB	/*,"Conexant Foghorn NTSC/ATSC-B"*/ },
	{ 0x03116000, BtCard::SENSORAY311			/*,"Sensoray 311"				*/},
	{ 0x033214F1, BtCard::CONEXANTFOGHORNREVC	/*,"Conexant Foghorn NTSC/ATSC-C"*/ },
	{ 0x10b42636, BtCard::HAUPPAUGE878			/*,"STB ???"					*/},
	{ 0x1117153b, BtCard::TERRATVALUE			/*,"Terratec TValue"			*/},
	{ 0x1118153b, BtCard::TERRATVALUE			/*,"Terratec TValue"			*/},
	{ 0x1119153b, BtCard::TERRATVALUE			/*,"Terratec TValue"			*/},
	{ 0x111a153b, BtCard::TERRATVALUE			/*,"Terratec TValue"			*/},
	{ 0x1123153b, BtCard::TERRATVRADIO			/*,"Terratec TV Radio+"			*/},
	{ 0x1127153b, BtCard::TERRATV				/*,"Terratec TV+"				*/},
	{ 0x1134153b, BtCard::TERRATVALUE			/*,"Terratec TValue"			*/},
	{ 0x1135153b, BtCard::TERRATVALUER			/*,"Terratec TValue Radio"		*/},
	{ 0x1200bd11, BtCard::PINNACLE				/*,"Pinnacle PCTV"				*/},
	{ 0x1322127A, BtCard::ROCKWELLNTSCXEVK		/*,"Rockwell Bt878A NTSC XEVK"*/ },
	{ 0x13eb0070, BtCard::HAUPPAUGE878			/*,"Hauppauge WinTV"			*/},
	{ 0x14610002, BtCard::AVERMEDIA98			/*,"Avermedia TVCapture 98"		*/},
	{ 0x182214F1, BtCard::CONEXANTNTSCXEVK		/*,"Conexant Bt878A NTSC XEVK"*/ },
	{ 0x18501851, BtCard::CHRONOS_VS2			/*,"Flyvideo 98 (LR50)/ Chronos Video Shuttle II"	*/},
	{ 0x18511851, BtCard::FLYVIDEO98EZ			/*,"Flyvideo 98EZ (LR51)/ CyberMail AV"				*/},
	{ 0x18521852, BtCard::TYPHOON_TVIEW			/*,"Flyvideo 98FM (LR50)/ Typhoon TView TV/FM Tuner / CyberVideo Xtreme" */},
	{ 0x217d6606, BtCard::WINFAST2000			/*,"Leadtek WinFast TV 2000"	*/},
	{ 0x263610b4, BtCard::STB2					/*,"STB TV PCI FM, P/N 6000704" */},
	{ 0x3000121a, BtCard::VOODOOTV_FM			/*,"3Dfx VoodooTV FM/ VoodooTV 200"*/},
	{ 0x3000144f, BtCard::MAGICTVIEW063			/*,"(Askey Magic/others) TView99 CPH06x"			*/},
	{ 0x300014ff, BtCard::MAGICTVIEW061			/*,"TView 99 (CPH061)"			*/},
	{ 0x3002144f, BtCard::MAGICTVIEW061			/*,"(Askey Magic/others) TView99 CPH05x"			*/},
	{ 0x300214ff, BtCard::PHOEBE_TVMAS			/*,"Phoebe TV Master (CPH060)"			*/},
	{ 0x3005144f, BtCard::MAGICTVIEW061			/*,"(Askey Magic/others) TView99 CPH061/06L (T1/LC)"*/},
	{ 0x300214ff, BtCard::PHOEBE_TVMAS			/*,"Phoebe TV Master"			*/},
	{ 0x3100121a, BtCard::VOODOOTV_FM			/*,"3Dfx VoodooTV FM/ VoodooTV 200 (OEM)"*/},
	{ 0x31323334, BtCard::GRANDTEC				/*,"GrandTec XCapture"*/ },
	{ 0x39000070, BtCard::HAUPPAUGE878			/*,"Hauppauge WinTV-D"			*/},
	{ 0x400a15b0, BtCard::ZOLTRIX_GENIE			/*,"Zoltrix Genie TV"			*/},
	{ 0x400d15b0, BtCard::ZOLTRIX_GENIE			/*,"Zoltrix Genie TV / Radio"	*/},
	{ 0x401015b0, BtCard::ZOLTRIX_GENIE			/*,"Zoltrix Genie TV / Radio"	*/},
	{ 0x401615b0, BtCard::ZOLTRIX_GENIE			/*,"Zoltrix Genie TV / Radio"	*/},
 	{ 0x402010fc, BtCard::GVBCTV3PCI			/*,"I-O Data Co. GV-BCV3/PCI"	*/},
	{ 0x405010fc, BtCard::GVBCTV4PCI			/*,"I-O Data Co. GV-BCV4/PCI"	*/},
	{ 0x45000070, BtCard::HAUPPAUGE878			/*,"Hauppauge WinTV/PVR"		*/},
	{ 0x5018153b, BtCard::TERRATVALUE			/*,"Terratec TValue"			*/},
	{ 0x6606107d, BtCard::WINFAST2000			/*,"Leadtek WinFast TV 2000"	*/},
	{ 0xa0fca1a0, BtCard::ZOLTRIX				/*,"Face to Face Tvmax"			*/},    
	{ 0xff000070, BtCard::HAUPPAUGE878			/*,"Osprey-100"					*/},
	{ 0xff010070, BtCard::HAUPPAUGE878			/*,"Osprey-200"					*/},
	{ 0x81828384, BtCard::GRANDTEC16			/*,"GrandTec Grand X Guard 16"	*/},	
	{ 0x01020304, BtCard::TRUST814PCI			/*,"Trust 814 PCI"				*/},
#if 0 /* probably wrong */
	{ 0x6606217d, BtCard::WINFAST2000			/*,"Leadtek WinFast TV 2000"	*/},
#endif
	{ 0, BtCard::UNKNOWN						/*, NULL						*/}
};

// Miro Specific
/* Mapping from MIRO coding to the tuners supported */
HwTuner::Tuner BtCard::miro_tunermap[] = 
{	
	HwTuner::TC_TEMIC_PAL			,HwTuner::TC_TEMIC_NTSC		,HwTuner::TC_PHILIPS_NTSC	,HwTuner::TC_PHILIPS_SECAM,   
	HwTuner::TC_Absent				,HwTuner::TC_PHILIPS_PAL	,HwTuner::TC_TEMIC_NTSC		,HwTuner::TC_TEMIC_PAL,  
	HwTuner::TC_PHILIPS_SECAM		,HwTuner::TC_TEMIC_PAL		,HwTuner::TC_Absent			,HwTuner::TC_PHILIPS_PAL,  
	HwTuner::TC_PHILIPS_PAL			,HwTuner::TC_PHILIPS_NTSC	,HwTuner::TC_TEMIC_PAL_DK	,HwTuner::TC_PHILIPS_PAL_I,
				
	HwTuner::TC_TEMIC_4006FH5_PAL	,HwTuner::TC_PHILIPS_NTSC	,HwTuner::TC_TEMIC_NTSC_M	,HwTuner::TC_PHILIPS_PAL_I, 
	HwTuner::TC_Absent				,HwTuner::TC_PHILIPS_PAL_I	,HwTuner::TC_Absent			,HwTuner::TC_PHILIPS_SECAM,  
	HwTuner::TC_PHILIPS_PAL_I		,HwTuner::TC_PHILIPS_NTSC	,HwTuner::TC_TEMIC_PAL_DK	,HwTuner::TC_PHILIPS_PAL_I, 
	HwTuner::TC_Absent				,HwTuner::TC_Absent			,HwTuner::TC_Absent			,HwTuner::TC_Absent  
};

bool BtCard::miro_fmtuner[] = 
{ 
	false	,false	,false	,false	,   
	false	,false	,false	,false	,  
	false	,false	,false	,false	,  
	false	,false	,false	,true	,
	true	,true	,true	,true	,   
	true	,true	,true	,false	,  
	false	,false	,false	,false	,  
	false	,false	,false	,false 
};

// Hauppauge Specific
BtCard::hauppauge_tunerentry BtCard::hauppauge_tuner[] = 
{
	{ HwTuner::TC_Absent						/*,""						*/},
	{ HwTuner::TC_Absent						/*,"External"				*/},
	{ HwTuner::TC_Absent						/*,"Unspecified"			*/},
	{ HwTuner::TC_PHILIPS_PAL					/*,"Philips FI1216"			*/},
	/*4*/	
	{ HwTuner::TC_PHILIPS_SECAM					/*,"Philips FI1216MF"		*/},
	{ HwTuner::TC_PHILIPS_NTSC					/*,"Philips FI1236"			*/},
	{ HwTuner::TC_PHILIPS_PAL_I					/*,"Philips FI1246"			*/},
	{ HwTuner::TC_PHILIPS_PAL_DK				/*,"Philips FI1256"			*/},
	/*8*/
	{ HwTuner::TC_PHILIPS_PAL					/*,"Philips FI1216 MK2"		*/},
	{ HwTuner::TC_PHILIPS_SECAM					/*,"Philips FI1216MF MK2"	*/},
	{ HwTuner::TC_PHILIPS_NTSC					/*,"Philips FI1236 MK2"		*/},
	{ HwTuner::TC_PHILIPS_PAL_I					/*,"Philips FI1246 MK2"		*/},
	/*12*/
	{ HwTuner::TC_PHILIPS_PAL_DK				/*,"Philips FI1256 MK2"		*/},
	{ HwTuner::TC_TEMIC_NTSC					/*,"Temic 4032FY5"			*/},
	{ HwTuner::TC_TEMIC_PAL						/*,"Temic 4002FH5"			*/},
	{ HwTuner::TC_TEMIC_PAL_I					/*,"Temic 4062FY5"			*/},
	/*16*/
	{ HwTuner::TC_PHILIPS_PAL					/*,"Philips FR1216 MK2"		*/},
	{ HwTuner::TC_PHILIPS_SECAM					/*,"Philips FR1216MF MK2"	*/},
	{ HwTuner::TC_PHILIPS_NTSC					/*,"Philips FR1236 MK2"		*/},
	{ HwTuner::TC_PHILIPS_PAL_I					/*,"Philips FR1246 MK2"		*/},
	/*20*/
	{ HwTuner::TC_PHILIPS_PAL_DK				/*,"Philips FR1256 MK2"		*/},
	{ HwTuner::TC_PHILIPS_PAL					/*,"Philips FM1216"			*/},
	{ HwTuner::TC_PHILIPS_SECAM					/*,"Philips FM1216MF"		*/},
	{ HwTuner::TC_PHILIPS_NTSC					/*,"Philips FM1236"			*/},
	/*24*/
	{ HwTuner::TC_PHILIPS_PAL_I					/*,"Philips FM1246"			*/},
	{ HwTuner::TC_PHILIPS_PAL_DK				/*,"Philips FM1256"			*/},
	{ HwTuner::TC_TEMIC_4036FY5_NTSC			/*,"Temic 4036FY5"			*/},
	{ HwTuner::TC_Absent						/*,"Samsung TCPN9082D"		*/},
	/*28*/
	{ HwTuner::TC_Absent						/*,"Samsung TCPM9092P"		*/},
	{ HwTuner::TC_TEMIC_4006FH5_PAL				/*,"Temic 4006FH5"			*/},
	{ HwTuner::TC_Absent						/*,"Samsung TCPN9085D"		*/},
	{ HwTuner::TC_Absent						/*,"Samsung TCPB9085P"		*/},
	/*32*/
	{ HwTuner::TC_Absent						/*,"Samsung TCPL9091P"		*/},
	{ HwTuner::TC_TEMIC_4039FR5_NTSC			/*,"Temic 4039FR5"			*/},
	{ HwTuner::TC_PHILIPS_FQ1216ME				/*,"Philips FQ1216 ME"		*/},
	{ HwTuner::TC_TEMIC_4066FY5_PAL_I			/*,"Temic 4066FY5"			*/},
	/*36*/
	{ HwTuner::TC_Absent						/*,"Philips TD1536"			*/},
	{ HwTuner::TC_Absent						/*,"Philips TD1536D"		*/},
	{ HwTuner::TC_PHILIPS_NTSC					/*,"Philips FMR1236"		*/},
	{ HwTuner::TC_Absent						/*,"Philips FI1256MP"		*/},
	/*40*/
	{ HwTuner::TC_Absent						/*,"Samsung TCPQ9091P"		*/},
	{ HwTuner::TC_TEMIC_4006FN5_MULTI_PAL		/*,"Temic 4006FN5"			*/},
	{ HwTuner::TC_TEMIC_4009FR5_PAL				/*,"Temic 4009FR5"			*/},
	{ HwTuner::TC_TEMIC_4046FM5					/*,"Temic 4046FM5"			*/},
	/*44*/
	{ HwTuner::TC_TEMIC_4009FN5_MULTI_PAL_FM	/*,"Temic 4009FN5"			*/},
	{ HwTuner::TC_Absent						/*,"Philips TD1536D_FH_44"	*/},
	{ HwTuner::TC_LG_NTSC_FM					/*,"LG TP18NSR01F"			*/},
	{ HwTuner::TC_LG_PAL_FM						/*,"LG TP18PSB01D"			*/},
	{ HwTuner::TC_LG_PAL						/*,"LG TP18PSB11D"			*/},	
	{ HwTuner::TC_LG_PAL_I_FM					/*,"LG TAPC-I001D"			*/},
	{ HwTuner::TC_LG_PAL_I						/*,"LG TAPC-I701D"			*/}

};

/* ----------------------------------------------------------------------- */
/* AVermedia specific */

HwTuner::Tuner BtCard::avermedia_tuner_0_table[] = {
	HwTuner::TC_PHILIPS_NTSC,  HwTuner::TC_PHILIPS_PAL,
	HwTuner::TC_PHILIPS_PAL,   HwTuner::TC_PHILIPS_PAL,
	HwTuner::TC_PHILIPS_PAL,   HwTuner::TC_PHILIPS_PAL,
	HwTuner::TC_PHILIPS_SECAM, HwTuner::TC_PHILIPS_SECAM,
	HwTuner::TC_PHILIPS_SECAM, HwTuner::TC_PHILIPS_PAL};

#if 0
HwTuner::Tuner BtCard::avermedia_tuner_0_fm_table[] = {
	PHILIPS_FR1236_NTSC,  PHILIPS_FR1216_PAL,
	PHILIPS_FR1216_PAL,   PHILIPS_FR1216_PAL,
	PHILIPS_FR1216_PAL,   PHILIPS_FR1216_PAL,
	PHILIPS_FR1236_SECAM, PHILIPS_FR1236_SECAM,
	PHILIPS_FR1236_SECAM, PHILIPS_FR1216_PAL};
#endif

HwTuner::Tuner BtCard::avermedia_tuner_1_table[] = {
	HwTuner::TC_TEMIC_NTSC,  HwTuner::TC_TEMIC_PAL,
	HwTuner::TC_TEMIC_PAL,   HwTuner::TC_TEMIC_PAL,
	HwTuner::TC_TEMIC_PAL,   HwTuner::TC_TEMIC_PAL,
	HwTuner::TC_TEMIC_4012FY5, HwTuner::TC_TEMIC_4012FY5, //HwTuner::TC_TEMIC_SECAM
	HwTuner::TC_TEMIC_4012FY5, HwTuner::TC_TEMIC_PAL};

// I2C Addresses
#define I2C_STBEE       0xae
#define I2C_HAUPEE      0xa0

// PCX200
#define I2C_MAX517		0x5E
#define I2C_12C508		0x1E


// Audio functions: All these depend on the Hardware
bool BtCard::AudioSetInput( AudioConnector audioConnector )
{
	// If Specified Tuner OR Radio, use appropiate connector instead of specified
	if (audioConnector == AudioConTuner ||
		audioConnector == AudioConRadio) {
		audioConnector = TunerConnector;
	}

	// Only set the connector if unmuted and the connector has changed!
	if (!bAudioMuted && 
			(AudioMux != audioConnector) ) {

		// Get card information
		CInfo* Info = GetCardInfo(); 

		// Enable the corresponding GPIO pins to select audio sources...
		GetBtPisces().SetGPOE( GetBtPisces().GetGPOE() | Info->gpoe );

		// Set the correct bits to enable the Line Source
		ULONG Val;
		GetBtPisces().GetGPDATA(&Val,1,0);
		Val &= ~Info->gpoe;									// Keep all bits not involved into audio switching: all the others set to 0
		Val |=  Info->gpoe & Info->audiomux[audioConnector];	// And select the audio source without disrupting the other bits...
		GetBtPisces().SetGPDATA(&Val,1,0);
	
		// Now, For all the AudioChips, set the input!
		for (DWORD Idx = 0 ; Idx < AudioCount ; Idx ++) {
			AudioChip[Idx]->SetAudioConnector(audioConnector);
		}
	}

	// Remember last source !!
	AudioMux = audioConnector;

	return true;
}      

// Unmute card

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?