⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audiotable.h

📁 完整的基于Conxant平台的USB电视棒的WIN驱动程序。
💻 H
字号:
/*+++ *******************************************************************\ 
* 
*  Copyright and Disclaimer: 
*  
*     --------------------------------------------------------------- 
*     This software is provided "AS IS" without warranty of any kind, 
*     either expressed or implied, including but not limited to the 
*     implied warranties of noninfringement, merchantability and/or 
*     fitness for a particular purpose.
*     --------------------------------------------------------------- 
*   
*     Copyright (c) 2008 Conexant Systems, Inc. 
*     All rights reserved. 
*
\******************************************************************* ---*/ 

extern "C" 
{
    #include <wdm.h>
}

#include <ksmedia.h>

#include "merlin.h" //For the AUDIO_STANDARD typedefs

////////////////////////////////////////////////////////////////////////////////
//Country codes 

#define CTRY_ALBANIA              355         // Albania
#define CTRY_ALGERIA              213         // Algeria
#define CTRY_ARGENTINA            54          // Argentina
#define CTRY_ARMENIA              374         // Armenia
#define CTRY_AUSTRALIA            61          // Australia
#define CTRY_AUSTRIA              43          // Austria
#define CTRY_AZERBAIJAN           994         // Azerbaijan
#define CTRY_BAHRAIN              973         // Bahrain
#define CTRY_BELARUS              375         // Belarus
#define CTRY_BELGIUM              32          // Belgium
#define CTRY_BELIZE               501         // Belize
#define CTRY_BOLIVIA              591         // Bolivia
#define CTRY_BRAZIL               55          // Brazil
#define CTRY_BRUNEI_DARUSSALAM    673         // Brunei Darussalam
#define CTRY_BULGARIA             359         // Bulgaria
#define CTRY_CANADA               2           // Canada
#define CTRY_CARIBBEAN            1           // Caribbean
#define CTRY_CHILE                56          // Chile
#define CTRY_COLOMBIA             57          // Colombia
#define CTRY_COSTA_RICA           506         // Costa Rica
#define CTRY_CROATIA              385         // Croatia
#define CTRY_CZECH                420         // Czech Republic
#define CTRY_DENMARK              45          // Denmark
#define CTRY_DOMINICAN_REPUBLIC   1           // Dominican Republic
#define CTRY_ECUADOR              593         // Ecuador
#define CTRY_EGYPT                20          // Egypt
#define CTRY_EL_SALVADOR          503         // El Salvador
#define CTRY_ESTONIA              372         // Estonia
#define CTRY_FAEROE_ISLANDS       298         // Faeroe Islands
#define CTRY_FINLAND              358         // Finland
#define CTRY_FRANCE               33          // France
#define CTRY_GEORGIA              995         // Georgia
#define CTRY_GERMANY              49          // Germany
#define CTRY_GREECE               30          // Greece
#define CTRY_GUATEMALA            502         // Guatemala
#define CTRY_HONDURAS             504         // Honduras
#define CTRY_HONG_KONG            852         // Hong Kong S.A.R., P.R.C.
#define CTRY_HUNGARY              36          // Hungary
#define CTRY_ICELAND              354         // Iceland
#define CTRY_INDIA                91          // India
#define CTRY_INDONESIA            62          // Indonesia
#define CTRY_IRAN                 981         // Iran
#define CTRY_IRAQ                 964         // Iraq
#define CTRY_IRELAND              353         // Ireland
#define CTRY_ISRAEL               972         // Israel
#define CTRY_ITALY                39          // Italy
#define CTRY_JAMAICA              1           // Jamaica
#define CTRY_JAPAN                81          // Japan
#define CTRY_JORDAN               962         // Jordan
#define CTRY_KAZAKSTAN            7           // Kazakstan
#define CTRY_KENYA                254         // Kenya
#define CTRY_KUWAIT               965         // Kuwait
#define CTRY_LATVIA               371         // Latvia
#define CTRY_LEBANON              961         // Lebanon
#define CTRY_LIBYA                218         // Libya
#define CTRY_LIECHTENSTEIN        41          // Liechtenstein
#define CTRY_LITHUANIA            370         // Lithuania
#define CTRY_LUXEMBOURG           352         // Luxembourg
#define CTRY_MACAU                853         // Macau
#define CTRY_MACEDONIA            389         // the Former Yugoslav Republic of Macedonia
#define CTRY_MALAYSIA             60          // Malaysia
#define CTRY_MEXICO               52          // Mexico
#define CTRY_MONACO               33          // Principality of Monaco
#define CTRY_MOROCCO              212         // Morocco
#define CTRY_NETHERLANDS          31          // Netherlands
#define CTRY_NEW_ZEALAND          64          // New Zealand
#define CTRY_NICARAGUA            505         // Nicaragua
#define CTRY_NORWAY               47          // Norway
#define CTRY_OMAN                 968         // Oman
#define CTRY_PAKISTAN             92          // Islamic Republic of Pakistan
#define CTRY_PANAMA               507         // Panama
#define CTRY_PARAGUAY             595         // Paraguay
#define CTRY_PERU                 51          // Peru
#define CTRY_PHILIPPINES          63          // Republic of the Philippines
#define CTRY_POLAND               48          // Poland
#define CTRY_PORTUGAL             351         // Portugal
#define CTRY_PRCHINA              86          // People's Republic of China
#define CTRY_PUERTO_RICO          1           // Puerto Rico
#define CTRY_QATAR                974         // Qatar
#define CTRY_ROMANIA              40          // Romania
#define CTRY_RUSSIA               7           // Russia
#define CTRY_SAUDI_ARABIA         966         // Saudi Arabia
#define CTRY_SERBIA               381         // Serbia
#define CTRY_SINGAPORE            65          // Singapore
#define CTRY_SLOVAK               421         // Slovak Republic
#define CTRY_SLOVENIA             386         // Slovenia
#define CTRY_SOUTH_AFRICA         27          // South Africa
#define CTRY_SOUTH_KOREA          82          // South Korea
#define CTRY_SPAIN                34          // Spain
#define CTRY_SWEDEN               46          // Sweden
#define CTRY_SWITZERLAND          41          // Switzerland
#define CTRY_SYRIA                963         // Syria
#define CTRY_TAIWAN               886         // Taiwan Region
#define CTRY_TATARSTAN            7           // Tatarstan
#define CTRY_THAILAND             66          // Thailand
#define CTRY_TRINIDAD_Y_TOBAGO    1           // Trinidad y Tobago
#define CTRY_TUNISIA              216         // Tunisia
#define CTRY_TURKEY               90          // Turkey
#define CTRY_UAE                  971         // U.A.E.
#define CTRY_UKRAINE              380         // Ukraine
#define CTRY_UNITED_KINGDOM       44          // United Kingdom
#define CTRY_UNITED_STATES        1           // United States
#define CTRY_URUGUAY              598         // Uruguay
#define CTRY_UZBEKISTAN           7           // Uzbekistan
#define CTRY_VENEZUELA            58          // Venezuela
#define CTRY_VIET_NAM             84          // Viet Nam
#define CTRY_YEMEN                967         // Yemen
#define CTRY_ZIMBABWE             263         // Zimbabwe


//===========================================================================
// Country code to audio and video standard mapping table
//
//
//===========================================================================

typedef struct _TV_AUDIO_ENTRY{
	KS_AnalogVideoStandard	video_standard;
	AUDIO_STANDARD			audio_standard;
}TV_AUDIO_ENTRY, *PTV_AUDIO_ENTRY;


//Each video standard maps to a single primary and fallback audio standard 
//NOTE: There is one exception, and that is South Korea which uses 
// NTSC_M Video and A2 Audio
static const TV_AUDIO_ENTRY g_video_to_audio_table[] = 
{
//	Video Standard				Primary Audio		
	{KS_AnalogVideo_NTSC_M,     AUDIO_STANDARD_BTSC},
	{KS_AnalogVideo_NTSC_M_J,   AUDIO_STANDARD_EIAJ},

    {KS_AnalogVideo_PAL_B,      AUDIO_STANDARD_NICAM_BG}, //Fallback =  A2 BG
	{KS_AnalogVideo_PAL_D,      AUDIO_STANDARD_NICAM_DK}, //Fallback =  A2 DK
	{KS_AnalogVideo_PAL_G,      AUDIO_STANDARD_NICAM_BG}, //Fallback =  A2 BG
	{KS_AnalogVideo_PAL_I,      AUDIO_STANDARD_NICAM_I},  //Fallback =  A1
	{KS_AnalogVideo_PAL_M,      AUDIO_STANDARD_BTSC},
	{KS_AnalogVideo_PAL_N,      AUDIO_STANDARD_BTSC},

    {KS_AnalogVideo_SECAM_B,    AUDIO_STANDARD_NICAM_BG}, //Fallback = A2 BG
    {KS_AnalogVideo_SECAM_D,    AUDIO_STANDARD_NICAM_DK}, //Fallback = A2 DK
    {KS_AnalogVideo_SECAM_L,    AUDIO_STANDARD_NICAM_L}   //Fallback = AM
};

//Video standard and FM-deemphasis by coutry code.  

typedef struct _COUNTRY_TABLE_ENTRY{
    DWORD                   country_code;
    KS_AnalogVideoStandard  video_standard;
}COUNTRY_TABLE_ENTRY, *PCOUNTRY_TABLE_ENTRY;

static const COUNTRY_TABLE_ENTRY g_country_to_video_table[] = 
{
//	Country Code				Video Standard		
	{CTRY_UNITED_STATES,        KS_AnalogVideo_NTSC_M},
    {CTRY_UNITED_KINGDOM,       KS_AnalogVideo_PAL_I},
    {CTRY_GERMANY,              KS_AnalogVideo_PAL_B},
    {CTRY_JAPAN,                KS_AnalogVideo_NTSC_M_J},
    {CTRY_SPAIN,                KS_AnalogVideo_PAL_B},
    {CTRY_ALBANIA,              KS_AnalogVideo_PAL_B},
    {CTRY_ALGERIA,              KS_AnalogVideo_PAL_B},
    {CTRY_ARGENTINA,            KS_AnalogVideo_PAL_N},
    {CTRY_ARMENIA,              KS_AnalogVideo_SECAM_D},
    {CTRY_AUSTRALIA,            KS_AnalogVideo_PAL_B},
    {CTRY_AUSTRIA,              KS_AnalogVideo_PAL_B},
    {CTRY_AZERBAIJAN,           KS_AnalogVideo_SECAM_D},
    {CTRY_BAHRAIN,              KS_AnalogVideo_PAL_B},
    {CTRY_BELARUS,              KS_AnalogVideo_SECAM_D},
    {CTRY_BELGIUM,              KS_AnalogVideo_PAL_B},
    {CTRY_BELIZE,               KS_AnalogVideo_NTSC_M},
    {CTRY_BOLIVIA,              KS_AnalogVideo_NTSC_M},
    {CTRY_BRAZIL,               KS_AnalogVideo_PAL_M},
    {CTRY_BRUNEI_DARUSSALAM,    KS_AnalogVideo_PAL_B},
    {CTRY_BULGARIA,             KS_AnalogVideo_SECAM_D},
    {CTRY_CANADA,               KS_AnalogVideo_NTSC_M},
    {CTRY_CHILE,                KS_AnalogVideo_NTSC_M},
    {CTRY_COLOMBIA,             KS_AnalogVideo_NTSC_M},
    {CTRY_COSTA_RICA,           KS_AnalogVideo_NTSC_M},
    {CTRY_CROATIA,              KS_AnalogVideo_PAL_B},
    {CTRY_CZECH,                KS_AnalogVideo_PAL_D},
    {CTRY_DENMARK,              KS_AnalogVideo_PAL_B},
    {CTRY_ECUADOR,              KS_AnalogVideo_NTSC_M},
    {CTRY_EGYPT,                KS_AnalogVideo_SECAM_B},
    {CTRY_EL_SALVADOR,          KS_AnalogVideo_NTSC_M},
    {CTRY_ESTONIA,              KS_AnalogVideo_PAL_B},
    {CTRY_FAEROE_ISLANDS,       KS_AnalogVideo_PAL_B},
    {CTRY_FINLAND,              KS_AnalogVideo_PAL_B},
    {CTRY_FRANCE,               KS_AnalogVideo_SECAM_L},
    {CTRY_GEORGIA,              KS_AnalogVideo_SECAM_D},
    {CTRY_GREECE,               KS_AnalogVideo_PAL_B},
    {CTRY_GUATEMALA,            KS_AnalogVideo_NTSC_M},
    {CTRY_HONDURAS,             KS_AnalogVideo_NTSC_M},
    {CTRY_HONG_KONG,            KS_AnalogVideo_PAL_I},
    {CTRY_HUNGARY,              KS_AnalogVideo_PAL_B},
    {CTRY_ICELAND,              KS_AnalogVideo_PAL_B},
    {CTRY_INDIA,                KS_AnalogVideo_PAL_B},
    {CTRY_INDONESIA,            KS_AnalogVideo_PAL_B},
    {CTRY_IRAN,                 KS_AnalogVideo_SECAM_B},
    {CTRY_IRAQ,                 KS_AnalogVideo_SECAM_B},
    {CTRY_IRELAND,              KS_AnalogVideo_PAL_I},
    {CTRY_ISRAEL,               KS_AnalogVideo_PAL_B},
    {CTRY_ITALY,                KS_AnalogVideo_PAL_B},
    {CTRY_JORDAN,               KS_AnalogVideo_PAL_B},
    {CTRY_KAZAKSTAN,            KS_AnalogVideo_SECAM_D},
    {CTRY_KENYA,                KS_AnalogVideo_PAL_B},
    {CTRY_KUWAIT,               KS_AnalogVideo_PAL_B},
    {CTRY_LATVIA,               KS_AnalogVideo_PAL_B},
    {CTRY_LEBANON,              KS_AnalogVideo_PAL_B},
    {CTRY_LIBYA,                KS_AnalogVideo_PAL_B},
    {CTRY_LIECHTENSTEIN,        KS_AnalogVideo_PAL_B},
    {CTRY_LITHUANIA,            KS_AnalogVideo_PAL_B},
    {CTRY_LUXEMBOURG,           KS_AnalogVideo_PAL_B},
    {CTRY_MACAU,                KS_AnalogVideo_PAL_I},
    {CTRY_MACEDONIA,            KS_AnalogVideo_PAL_B},
    {CTRY_MALAYSIA,             KS_AnalogVideo_PAL_B},
    {CTRY_MEXICO,               KS_AnalogVideo_NTSC_M},
    {CTRY_MONACO,               KS_AnalogVideo_SECAM_L},
    {CTRY_MOROCCO,              KS_AnalogVideo_SECAM_B},
    {CTRY_NETHERLANDS,          KS_AnalogVideo_PAL_B},
    {CTRY_NEW_ZEALAND,          KS_AnalogVideo_PAL_B},
    {CTRY_NICARAGUA,            KS_AnalogVideo_NTSC_M},
    {CTRY_NORWAY,               KS_AnalogVideo_PAL_B},
    {CTRY_OMAN,                 KS_AnalogVideo_PAL_B},
    {CTRY_PAKISTAN,             KS_AnalogVideo_PAL_B},
    {CTRY_PANAMA,               KS_AnalogVideo_NTSC_M},
    {CTRY_PARAGUAY,             KS_AnalogVideo_PAL_N},
    {CTRY_PERU,                 KS_AnalogVideo_NTSC_M},
    {CTRY_PHILIPPINES,          KS_AnalogVideo_NTSC_M},
    {CTRY_POLAND,               KS_AnalogVideo_PAL_D},
    {CTRY_PORTUGAL,             KS_AnalogVideo_PAL_B},
    {CTRY_PRCHINA,              KS_AnalogVideo_PAL_D},
    {CTRY_QATAR,                KS_AnalogVideo_PAL_B},
    {CTRY_ROMANIA,              KS_AnalogVideo_PAL_D},
    {CTRY_RUSSIA,               KS_AnalogVideo_SECAM_D},
    {CTRY_SAUDI_ARABIA,         KS_AnalogVideo_PAL_B},
    {CTRY_SERBIA,               KS_AnalogVideo_PAL_B},
    {CTRY_SINGAPORE,            KS_AnalogVideo_PAL_B},
    {CTRY_SLOVAK,               KS_AnalogVideo_PAL_B},
    {CTRY_SLOVENIA,             KS_AnalogVideo_PAL_B},
    {CTRY_SOUTH_AFRICA,         KS_AnalogVideo_PAL_I},
    {CTRY_SOUTH_KOREA,          KS_AnalogVideo_NTSC_M},
    {CTRY_SWEDEN,               KS_AnalogVideo_PAL_B},
    {CTRY_SWITZERLAND,          KS_AnalogVideo_PAL_B},
    {CTRY_SYRIA,                KS_AnalogVideo_SECAM_B},
    {CTRY_TAIWAN,               KS_AnalogVideo_NTSC_M},
    {CTRY_TATARSTAN,            KS_AnalogVideo_SECAM_D},	
    {CTRY_THAILAND,             KS_AnalogVideo_PAL_B},
    {CTRY_TUNISIA,              KS_AnalogVideo_SECAM_B},
    {CTRY_TURKEY,               KS_AnalogVideo_PAL_B},
    {CTRY_UAE,                  KS_AnalogVideo_PAL_B},
    {CTRY_UKRAINE,              KS_AnalogVideo_SECAM_D},
    {CTRY_URUGUAY,              KS_AnalogVideo_PAL_N},
    {CTRY_UZBEKISTAN,           KS_AnalogVideo_SECAM_D},
    {CTRY_VENEZUELA,            KS_AnalogVideo_NTSC_M},
    {CTRY_VIET_NAM,             KS_AnalogVideo_SECAM_D},
    {CTRY_YEMEN,                KS_AnalogVideo_PAL_B},
    {CTRY_ZIMBABWE,             KS_AnalogVideo_PAL_B},
};

⌨️ 快捷键说明

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