1*52fc197aSPhilippe Houdoin #ifndef USB_LANGIDS_H 2*52fc197aSPhilippe Houdoin #define USB_LANGIDS_H 3*52fc197aSPhilippe Houdoin 4*52fc197aSPhilippe Houdoin // USB Language Identifiers, 3/29/2000, version 1.0 5*52fc197aSPhilippe Houdoin // (http://www.usb.org/developers/data/USB_LANGIDs.pdf) 6*52fc197aSPhilippe Houdoin 7*52fc197aSPhilippe Houdoin #define USB_LANGIDS_VERSION 0x0100 // version 1.0 8*52fc197aSPhilippe Houdoin 9*52fc197aSPhilippe Houdoin // descriptor string index 0 = supported LANGIDs array 10*52fc197aSPhilippe Houdoin #define USB_LANGIDS_STRING_INDEX (0) 11*52fc197aSPhilippe Houdoin 12*52fc197aSPhilippe Houdoin #define USB_PRIMARY_LANGID_MASK (0x003F) // 9 to 0 bits 13*52fc197aSPhilippe Houdoin #define USB_SUB_LANGID_MASK (0xFC00) // 15 to 10 bits 14*52fc197aSPhilippe Houdoin 15*52fc197aSPhilippe Houdoin #define USB_PRIMARY_LANGID(id) (id & USB_PRIMARY_LANGID_MASK) 16*52fc197aSPhilippe Houdoin #define USB_SUB_LANGID(id) ((id & USB_SUB_LANGID_MASK) >> 10) 17*52fc197aSPhilippe Houdoin 18*52fc197aSPhilippe Houdoin enum { 19*52fc197aSPhilippe Houdoin USB_LANGID_AFRIKAANS = 0x0436, // Afrikaans 20*52fc197aSPhilippe Houdoin USB_LANGID_ALBANIAN = 0x041c, // Albanian 21*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_SAUDI_ARABIA = 0x0401, // Arabic (Saudi Arabia) 22*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_IRAK = 0x0801, // Arabic (Irak) 23*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_EGYPT = 0x0c01, // Arabic (Egypt) 24*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_LYBYA = 0x1001, // Arabic (Libya) 25*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_ALGERIA = 0x1401, // Arabic (Algeria) 26*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_MOROCCO = 0x1801, // Arabic (Morocco) 27*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_TUNISIA = 0x1c01, // Arabic (Tunisia) 28*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_OMAN = 0x2001, // Arabic (Oman) 29*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_YEMEN = 0x2401, // Arabic (Yemen) 30*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_SYRIA = 0x2801, // Arabic (Syria) 31*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_JORDAN = 0x2c01, // Arabic (Jordan) 32*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_LEBANON = 0x3001, // Arabic (Lebanon) 33*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_KUWAIT = 0x3401, // Arabic (Kuwait) 34*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_UAE = 0x3801, // Arabic (U.A.E.) 35*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_BAHRAIN = 0x3c01, // Arabic (Bahrain) 36*52fc197aSPhilippe Houdoin USB_LANGID_ARABIC_QATAR = 0x4001, // Arabic (Qatar) 37*52fc197aSPhilippe Houdoin USB_LANGID_ARMENIAN = 0x042b, // Armenian 38*52fc197aSPhilippe Houdoin USB_LANGID_ASSAMESE = 0x044d, // Assamese 39*52fc197aSPhilippe Houdoin USB_LANGID_AZERI_LATIN = 0x042c, // Azeri (Latin) 40*52fc197aSPhilippe Houdoin USB_LANGID_AZERI_CYRILLIC = 0x082c, // Azeri (Cyrillic) 41*52fc197aSPhilippe Houdoin USB_LANGID_BASQUE = 0x042d, // Basque 42*52fc197aSPhilippe Houdoin USB_LANGID_BELARUSSIAN = 0x0423, // Belarussian 43*52fc197aSPhilippe Houdoin USB_LANGID_BENGALI = 0x0445, // Bengali 44*52fc197aSPhilippe Houdoin USB_LANGID_BULGARIAN = 0x0402, // Bulgarian 45*52fc197aSPhilippe Houdoin USB_LANGID_BURMESE = 0x0455, // Burmese 46*52fc197aSPhilippe Houdoin USB_LANGID_CATALAN = 0x0403, // Catalan 47*52fc197aSPhilippe Houdoin USB_LANGID_CHINESE_TAIWAN = 0x0404, // Chinese (Taiwan) 48*52fc197aSPhilippe Houdoin USB_LANGID_CHINESE_PRC = 0x0804, // Chinese (PRC = People Republic of Chinese) 49*52fc197aSPhilippe Houdoin USB_LANGID_CHINESE_HONG_KONG = 0x0c04, // Chinese (Hong Kong) 50*52fc197aSPhilippe Houdoin USB_LANGID_CHINESE_SINGAPORE = 0x1004, // Chinese (Singapore) 51*52fc197aSPhilippe Houdoin USB_LANGID_CHINESE_MACAU_SAR = 0x1404, // Chinese (Macau SAR) 52*52fc197aSPhilippe Houdoin USB_LANGID_CROATIAN = 0x041a, // Croatian 53*52fc197aSPhilippe Houdoin USB_LANGID_CZECH = 0x0405, // Czech 54*52fc197aSPhilippe Houdoin USB_LANGID_DANISH = 0x0406, // Danish 55*52fc197aSPhilippe Houdoin USB_LANGID_DUTCH_NETHERLANDS = 0x0413, // Dutch (Netherlands) 56*52fc197aSPhilippe Houdoin USB_LANGID_DUTCH_BELGIUM = 0x0813, // Dutch (Belgium) 57*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_UNITED_STATES = 0x0409, // English (United States) 58*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_UNITED_KINGDOM = 0x0809, // English (United Kingdom) 59*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_AUSTRALIAN = 0x0c09, // English (Australian) 60*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_CANADIAN = 0x1009, // English (Canadian) 61*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_NEW_ZEALAND = 0x1409, // English (New Zealand) 62*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_IRELAND = 0x1809, // English (Ireland) 63*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_SOUTH_AFRICA = 0x1c09, // English (South Africa) 64*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_JAMAICA = 0x2009, // English (Jamaica) 65*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_CARIBBEAN = 0x2409, // English (Caribbean) 66*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_BELIZE = 0x2809, // English (Belize) 67*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_TRINIDAD = 0x2c09, // English (Trinidad) 68*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_ZIMBABWE = 0x3009, // English (Zimbabwe) 69*52fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_PHLIPPINES = 0x3409, // English (Philippines) 70*52fc197aSPhilippe Houdoin USB_LANGID_ESTONIAN = 0x0425, // Estonian 71*52fc197aSPhilippe Houdoin USB_LANGID_FAEROESE = 0x0438, // Faeroese 72*52fc197aSPhilippe Houdoin USB_LANGID_FARSI = 0x0429, // Farsi 73*52fc197aSPhilippe Houdoin USB_LANGID_FINNISH = 0x040b, // Finnish 74*52fc197aSPhilippe Houdoin USB_LANGID_FRENCH_STANDARD = 0x040c, // French (Standard) 75*52fc197aSPhilippe Houdoin USB_LANGID_FRENCH_BELGIAN = 0x080c, // French (Belgian) 76*52fc197aSPhilippe Houdoin USB_LANGID_FRENCH_CANADIAN = 0x0c0c, // French (Canadian) 77*52fc197aSPhilippe Houdoin USB_LANGID_FRENCH_SWITZERLAND = 0x100c, // French (Switzerland) 78*52fc197aSPhilippe Houdoin USB_LANGID_FRENCH_LUXEMBOURG = 0x140c, // French (Luxembourg) 79*52fc197aSPhilippe Houdoin USB_LANGID_FRENCH_MONACO = 0x180c, // French (Monaco) 80*52fc197aSPhilippe Houdoin USB_LANGID_GEORGIAN = 0x0437, // Georgian 81*52fc197aSPhilippe Houdoin USB_LANGID_GERMAN_STANDARD = 0x0407, // German (Standard) 82*52fc197aSPhilippe Houdoin USB_LANGID_GERMAN_SWITZERLAND = 0x0807, // German (Switzerland) 83*52fc197aSPhilippe Houdoin USB_LANGID_GERMAN_AUSTRIA = 0x0c07, // German (Austria) 84*52fc197aSPhilippe Houdoin USB_LANGID_GERMAN_LUXEMBOURG = 0x1007, // German (Luxembourg) 85*52fc197aSPhilippe Houdoin USB_LANGID_GERMAN_LIECHTENSTEIN = 0x1407, // German (Liechtenstein) 86*52fc197aSPhilippe Houdoin USB_LANGID_GREEK = 0x0408, // Greek 87*52fc197aSPhilippe Houdoin USB_LANGID_GUJARATI = 0x0447, // Gujarati 88*52fc197aSPhilippe Houdoin USB_LANGID_HEBREW = 0x040d, // Hebrew 89*52fc197aSPhilippe Houdoin USB_LANGID_HINDI = 0x0439, // Hindi 90*52fc197aSPhilippe Houdoin USB_LANGID_HUNGARIAN = 0x040e, // Hungarian 91*52fc197aSPhilippe Houdoin USB_LANGID_ICELANDIC = 0x040f, // Icelandic 92*52fc197aSPhilippe Houdoin USB_LANGID_INDONESIAN = 0x0421, // Indonesian 93*52fc197aSPhilippe Houdoin USB_LANGID_ITALIAN_STANDARD = 0x0410, // Italian (Standard) 94*52fc197aSPhilippe Houdoin USB_LANGID_ITALIAN_SWITZERLAND = 0x0810, // Italian (Switzerland) 95*52fc197aSPhilippe Houdoin USB_LANGID_JAPANESE = 0x0411, // Japanese 96*52fc197aSPhilippe Houdoin USB_LANGID_KANNADA = 0x044b, // Kannada 97*52fc197aSPhilippe Houdoin USB_LANGID_KASHMIRI_INDIA = 0x0860, // Kashmiri (India) 98*52fc197aSPhilippe Houdoin USB_LANGID_KAZAKH = 0x043f, // Kazakh 99*52fc197aSPhilippe Houdoin USB_LANGID_KONKANI = 0x0457, // Konkani 100*52fc197aSPhilippe Houdoin USB_LANGID_KOREAN_JOHAB = 0x0412, // Korean (Johab) 101*52fc197aSPhilippe Houdoin USB_LANGID_LATVIAN = 0x0426, // Latvian 102*52fc197aSPhilippe Houdoin USB_LANGID_LITHUANIAN = 0x0427, // Lithuanian 103*52fc197aSPhilippe Houdoin USB_LANGID_LITHUANIAN_CLASSIC = 0x0827, // Lithuanian (Classic) 104*52fc197aSPhilippe Houdoin USB_LANGID_MACEDONIAN = 0x042f, // Macedonian 105*52fc197aSPhilippe Houdoin USB_LANGID_MALAY_MALAYSIAN = 0x043e, // Malay (Malaysian) 106*52fc197aSPhilippe Houdoin USB_LANGID_MALAY_BRUNEI_DARUSSALAM = 0x083e, // Malay (Brunei Darussalam) 107*52fc197aSPhilippe Houdoin USB_LANGID_MALAYALAM = 0x044c, // Malayalam 108*52fc197aSPhilippe Houdoin USB_LANGID_MANIPURI = 0x0458, // Manipuri 109*52fc197aSPhilippe Houdoin USB_LANGID_MARATHI = 0x044e, // Marathi 110*52fc197aSPhilippe Houdoin USB_LANGID_NEPALI_INDIA = 0x0861, // Nepali (India) 111*52fc197aSPhilippe Houdoin USB_LANGID_NORWEGIAN_BOKMAL = 0x0414, // Norwegian (Bokmal) 112*52fc197aSPhilippe Houdoin USB_LANGID_NORWEGIAN_NYNORSK = 0x0814, // Norwegian (Nynorsk) 113*52fc197aSPhilippe Houdoin USB_LANGID_ORIYA = 0x0448, // Oriya 114*52fc197aSPhilippe Houdoin USB_LANGID_POLISH = 0x0415, // Polish 115*52fc197aSPhilippe Houdoin USB_LANGID_PORTUGUESE_BRAZIL = 0x0416, // Portuguese (Brazil) 116*52fc197aSPhilippe Houdoin USB_LANGID_PORTUGUESE_STANDARD = 0x0816, // Portuguese (Standard) 117*52fc197aSPhilippe Houdoin USB_LANGID_PUNJABI = 0x0446, // Punjabi 118*52fc197aSPhilippe Houdoin USB_LANGID_ROMANIAN = 0x0418, // Romanian 119*52fc197aSPhilippe Houdoin USB_LANGID_RUSSIAN = 0x0419, // Russian 120*52fc197aSPhilippe Houdoin USB_LANGID_SANSKRIT = 0x044f, // Sanskrit 121*52fc197aSPhilippe Houdoin USB_LANGID_SERBIAN_CYRILLIC = 0x0c1a, // Serbian (Cyrillic) 122*52fc197aSPhilippe Houdoin USB_LANGID_SERBIAN_LATIN = 0x081a, // Serbian (Latin) 123*52fc197aSPhilippe Houdoin USB_LANGID_SINDHI = 0x0459, // Sindhi 124*52fc197aSPhilippe Houdoin USB_LANGID_SLOVAK = 0x041b, // Slovak 125*52fc197aSPhilippe Houdoin USB_LANGID_SLOVENIAN = 0x0424, // Slovenian 126*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_TRADITIONAL_SORT= 0x040a, // Spannish (Traditional Sort) 127*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_MEXICAN = 0x080a, // Spannish (Mexican) 128*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_MODERN_SORT = 0x0c0a, // Spannish (Modern Sort) 129*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_GUATEMALA = 0x100a, // Spannish (Guatemala) 130*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_COSTA_RICA = 0x140a, // Spannish (Costa Rica) 131*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PANAMA = 0x180a, // Spannish (Panama) 132*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_DOMINICAN_REPUBLIC = 0x1c0a, // Spannish (Dominican Republic) 133*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_VENEZUELA = 0x200a, // Spannish (Venezuela) 134*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_COLOMBIA = 0x240a, // Spannish (Colombia) 135*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PERU = 0x280a, // Spannish (Peru) 136*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_ARGENTINA = 0x2c0a, // Spannish (Argentina) 137*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_ECUADOR = 0x300a, // Spannish (Ecuador) 138*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_CHILE = 0x340a, // Spannish (Chile) 139*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_URUGUAY = 0x380a, // Spannish (Uruguay) 140*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PARAGUAY = 0x3c0a, // Spannish (Paraguay) 141*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_BOLIVIA = 0x400a, // Spannish (Bolivia) 142*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_EL_SALVADOR = 0x440a, // Spannish (El Salvador) 143*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_HONDURAS = 0x480a, // Spannish (Honduras) 144*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_NICARAGUA = 0x4c0a, // Spannish (Nicaragua) 145*52fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PUERTO_RICO = 0x500a, // Spannish (Puerto Rico) 146*52fc197aSPhilippe Houdoin USB_LANGID_SUTU = 0x0430, // Sutu 147*52fc197aSPhilippe Houdoin USB_LANGID_SWAHILI_KENYA = 0x0441, // Swahili (Kenya) 148*52fc197aSPhilippe Houdoin USB_LANGID_SWEDISH = 0x041d, // Swedish 149*52fc197aSPhilippe Houdoin USB_LANGID_SWEDISH_FINLAND = 0x081d, // Swedish (Finland) 150*52fc197aSPhilippe Houdoin USB_LANGID_TAMIL = 0x0449, // Tamil 151*52fc197aSPhilippe Houdoin USB_LANGID_TATAR_TATARSTAN = 0x0444, // Tatar (Tatarstan) 152*52fc197aSPhilippe Houdoin USB_LANGID_TELUGU = 0x044a, // Telugu 153*52fc197aSPhilippe Houdoin USB_LANGID_THAI = 0x041e, // Thai 154*52fc197aSPhilippe Houdoin USB_LANGID_TURKISH = 0x041f, // Turkish 155*52fc197aSPhilippe Houdoin USB_LANGID_UKRAINIAN = 0x0422, // Ukrainian 156*52fc197aSPhilippe Houdoin USB_LANGID_URDU_PAKISTAN = 0x0420, // Urdu (Pakistan) 157*52fc197aSPhilippe Houdoin USB_LANGID_URDU_INDIA = 0x0820, // Urdu (India) 158*52fc197aSPhilippe Houdoin USB_LANGID_UZBEK_LATIN = 0x0443, // Uzbek (Latin) 159*52fc197aSPhilippe Houdoin USB_LANGID_UZBEK_CYRILLIC = 0x0843, // Uzbek (Cyrillic) 160*52fc197aSPhilippe Houdoin USB_LANGID_VIETNAMESE = 0x042a, // Vietnamese 161*52fc197aSPhilippe Houdoin 162*52fc197aSPhilippe Houdoin USB_LANGID_HID_UDD = 0x04ff, // HID (Usage Data Descriptor) 163*52fc197aSPhilippe Houdoin USB_LANGID_HID1 = 0xf0ff, // HID (Vendor Defined 1) 164*52fc197aSPhilippe Houdoin USB_LANGID_HID2 = 0xf4ff, // HID (Vendor Defined 2) 165*52fc197aSPhilippe Houdoin USB_LANGID_HID3 = 0xf8ff, // HID (Vendor Defined 3) 166*52fc197aSPhilippe Houdoin USB_LANGID_HID4 = 0xfcff, // HID (Vendor Defined 4) 167*52fc197aSPhilippe Houdoin 168*52fc197aSPhilippe Houdoin USB_LANGID_INVALID = 0x0000 // Invalid LANG ID 169*52fc197aSPhilippe Houdoin }; 170*52fc197aSPhilippe Houdoin 171*52fc197aSPhilippe Houdoin #endif // USB_LANGIDS_H 172*52fc197aSPhilippe Houdoin 173*52fc197aSPhilippe Houdoin 174