152fc197aSPhilippe Houdoin #ifndef USB_LANGIDS_H 252fc197aSPhilippe Houdoin #define USB_LANGIDS_H 352fc197aSPhilippe Houdoin 452fc197aSPhilippe Houdoin // USB Language Identifiers, 3/29/2000, version 1.0 5*47abf6ebSPhilippe Houdoin // Reference: http://www.usb.org/developers/docs/USB_LANGIDs.pdf 652fc197aSPhilippe Houdoin 752fc197aSPhilippe Houdoin #define USB_LANGIDS_VERSION 0x0100 // version 1.0 852fc197aSPhilippe Houdoin 952fc197aSPhilippe Houdoin // descriptor string index 0 = supported LANGIDs array 1052fc197aSPhilippe Houdoin #define USB_LANGIDS_STRING_INDEX (0) 1152fc197aSPhilippe Houdoin 1252fc197aSPhilippe Houdoin #define USB_PRIMARY_LANGID_MASK (0x003F) // 9 to 0 bits 1352fc197aSPhilippe Houdoin #define USB_SUB_LANGID_MASK (0xFC00) // 15 to 10 bits 1452fc197aSPhilippe Houdoin 1552fc197aSPhilippe Houdoin #define USB_PRIMARY_LANGID(id) (id & USB_PRIMARY_LANGID_MASK) 1652fc197aSPhilippe Houdoin #define USB_SUB_LANGID(id) ((id & USB_SUB_LANGID_MASK) >> 10) 1752fc197aSPhilippe Houdoin 1852fc197aSPhilippe Houdoin enum { 1952fc197aSPhilippe Houdoin USB_LANGID_AFRIKAANS = 0x0436, // Afrikaans 2052fc197aSPhilippe Houdoin USB_LANGID_ALBANIAN = 0x041c, // Albanian 2152fc197aSPhilippe Houdoin USB_LANGID_ARABIC_SAUDI_ARABIA = 0x0401, // Arabic (Saudi Arabia) 2252fc197aSPhilippe Houdoin USB_LANGID_ARABIC_IRAK = 0x0801, // Arabic (Irak) 2352fc197aSPhilippe Houdoin USB_LANGID_ARABIC_EGYPT = 0x0c01, // Arabic (Egypt) 2452fc197aSPhilippe Houdoin USB_LANGID_ARABIC_LYBYA = 0x1001, // Arabic (Libya) 2552fc197aSPhilippe Houdoin USB_LANGID_ARABIC_ALGERIA = 0x1401, // Arabic (Algeria) 2652fc197aSPhilippe Houdoin USB_LANGID_ARABIC_MOROCCO = 0x1801, // Arabic (Morocco) 2752fc197aSPhilippe Houdoin USB_LANGID_ARABIC_TUNISIA = 0x1c01, // Arabic (Tunisia) 2852fc197aSPhilippe Houdoin USB_LANGID_ARABIC_OMAN = 0x2001, // Arabic (Oman) 2952fc197aSPhilippe Houdoin USB_LANGID_ARABIC_YEMEN = 0x2401, // Arabic (Yemen) 3052fc197aSPhilippe Houdoin USB_LANGID_ARABIC_SYRIA = 0x2801, // Arabic (Syria) 3152fc197aSPhilippe Houdoin USB_LANGID_ARABIC_JORDAN = 0x2c01, // Arabic (Jordan) 3252fc197aSPhilippe Houdoin USB_LANGID_ARABIC_LEBANON = 0x3001, // Arabic (Lebanon) 3352fc197aSPhilippe Houdoin USB_LANGID_ARABIC_KUWAIT = 0x3401, // Arabic (Kuwait) 3452fc197aSPhilippe Houdoin USB_LANGID_ARABIC_UAE = 0x3801, // Arabic (U.A.E.) 3552fc197aSPhilippe Houdoin USB_LANGID_ARABIC_BAHRAIN = 0x3c01, // Arabic (Bahrain) 3652fc197aSPhilippe Houdoin USB_LANGID_ARABIC_QATAR = 0x4001, // Arabic (Qatar) 3752fc197aSPhilippe Houdoin USB_LANGID_ARMENIAN = 0x042b, // Armenian 3852fc197aSPhilippe Houdoin USB_LANGID_ASSAMESE = 0x044d, // Assamese 3952fc197aSPhilippe Houdoin USB_LANGID_AZERI_LATIN = 0x042c, // Azeri (Latin) 4052fc197aSPhilippe Houdoin USB_LANGID_AZERI_CYRILLIC = 0x082c, // Azeri (Cyrillic) 4152fc197aSPhilippe Houdoin USB_LANGID_BASQUE = 0x042d, // Basque 4252fc197aSPhilippe Houdoin USB_LANGID_BELARUSSIAN = 0x0423, // Belarussian 4352fc197aSPhilippe Houdoin USB_LANGID_BENGALI = 0x0445, // Bengali 4452fc197aSPhilippe Houdoin USB_LANGID_BULGARIAN = 0x0402, // Bulgarian 4552fc197aSPhilippe Houdoin USB_LANGID_BURMESE = 0x0455, // Burmese 4652fc197aSPhilippe Houdoin USB_LANGID_CATALAN = 0x0403, // Catalan 4752fc197aSPhilippe Houdoin USB_LANGID_CHINESE_TAIWAN = 0x0404, // Chinese (Taiwan) 4852fc197aSPhilippe Houdoin USB_LANGID_CHINESE_PRC = 0x0804, // Chinese (PRC = People Republic of Chinese) 4952fc197aSPhilippe Houdoin USB_LANGID_CHINESE_HONG_KONG = 0x0c04, // Chinese (Hong Kong) 5052fc197aSPhilippe Houdoin USB_LANGID_CHINESE_SINGAPORE = 0x1004, // Chinese (Singapore) 5152fc197aSPhilippe Houdoin USB_LANGID_CHINESE_MACAU_SAR = 0x1404, // Chinese (Macau SAR) 5252fc197aSPhilippe Houdoin USB_LANGID_CROATIAN = 0x041a, // Croatian 5352fc197aSPhilippe Houdoin USB_LANGID_CZECH = 0x0405, // Czech 5452fc197aSPhilippe Houdoin USB_LANGID_DANISH = 0x0406, // Danish 5552fc197aSPhilippe Houdoin USB_LANGID_DUTCH_NETHERLANDS = 0x0413, // Dutch (Netherlands) 5652fc197aSPhilippe Houdoin USB_LANGID_DUTCH_BELGIUM = 0x0813, // Dutch (Belgium) 5752fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_UNITED_STATES = 0x0409, // English (United States) 5852fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_UNITED_KINGDOM = 0x0809, // English (United Kingdom) 5952fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_AUSTRALIAN = 0x0c09, // English (Australian) 6052fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_CANADIAN = 0x1009, // English (Canadian) 6152fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_NEW_ZEALAND = 0x1409, // English (New Zealand) 6252fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_IRELAND = 0x1809, // English (Ireland) 6352fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_SOUTH_AFRICA = 0x1c09, // English (South Africa) 6452fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_JAMAICA = 0x2009, // English (Jamaica) 6552fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_CARIBBEAN = 0x2409, // English (Caribbean) 6652fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_BELIZE = 0x2809, // English (Belize) 6752fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_TRINIDAD = 0x2c09, // English (Trinidad) 6852fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_ZIMBABWE = 0x3009, // English (Zimbabwe) 6952fc197aSPhilippe Houdoin USB_LANGID_ENGLISH_PHLIPPINES = 0x3409, // English (Philippines) 7052fc197aSPhilippe Houdoin USB_LANGID_ESTONIAN = 0x0425, // Estonian 7152fc197aSPhilippe Houdoin USB_LANGID_FAEROESE = 0x0438, // Faeroese 7252fc197aSPhilippe Houdoin USB_LANGID_FARSI = 0x0429, // Farsi 7352fc197aSPhilippe Houdoin USB_LANGID_FINNISH = 0x040b, // Finnish 7452fc197aSPhilippe Houdoin USB_LANGID_FRENCH_STANDARD = 0x040c, // French (Standard) 7552fc197aSPhilippe Houdoin USB_LANGID_FRENCH_BELGIAN = 0x080c, // French (Belgian) 7652fc197aSPhilippe Houdoin USB_LANGID_FRENCH_CANADIAN = 0x0c0c, // French (Canadian) 7752fc197aSPhilippe Houdoin USB_LANGID_FRENCH_SWITZERLAND = 0x100c, // French (Switzerland) 7852fc197aSPhilippe Houdoin USB_LANGID_FRENCH_LUXEMBOURG = 0x140c, // French (Luxembourg) 7952fc197aSPhilippe Houdoin USB_LANGID_FRENCH_MONACO = 0x180c, // French (Monaco) 8052fc197aSPhilippe Houdoin USB_LANGID_GEORGIAN = 0x0437, // Georgian 8152fc197aSPhilippe Houdoin USB_LANGID_GERMAN_STANDARD = 0x0407, // German (Standard) 8252fc197aSPhilippe Houdoin USB_LANGID_GERMAN_SWITZERLAND = 0x0807, // German (Switzerland) 8352fc197aSPhilippe Houdoin USB_LANGID_GERMAN_AUSTRIA = 0x0c07, // German (Austria) 8452fc197aSPhilippe Houdoin USB_LANGID_GERMAN_LUXEMBOURG = 0x1007, // German (Luxembourg) 8552fc197aSPhilippe Houdoin USB_LANGID_GERMAN_LIECHTENSTEIN = 0x1407, // German (Liechtenstein) 8652fc197aSPhilippe Houdoin USB_LANGID_GREEK = 0x0408, // Greek 8752fc197aSPhilippe Houdoin USB_LANGID_GUJARATI = 0x0447, // Gujarati 8852fc197aSPhilippe Houdoin USB_LANGID_HEBREW = 0x040d, // Hebrew 8952fc197aSPhilippe Houdoin USB_LANGID_HINDI = 0x0439, // Hindi 9052fc197aSPhilippe Houdoin USB_LANGID_HUNGARIAN = 0x040e, // Hungarian 9152fc197aSPhilippe Houdoin USB_LANGID_ICELANDIC = 0x040f, // Icelandic 9252fc197aSPhilippe Houdoin USB_LANGID_INDONESIAN = 0x0421, // Indonesian 9352fc197aSPhilippe Houdoin USB_LANGID_ITALIAN_STANDARD = 0x0410, // Italian (Standard) 9452fc197aSPhilippe Houdoin USB_LANGID_ITALIAN_SWITZERLAND = 0x0810, // Italian (Switzerland) 9552fc197aSPhilippe Houdoin USB_LANGID_JAPANESE = 0x0411, // Japanese 9652fc197aSPhilippe Houdoin USB_LANGID_KANNADA = 0x044b, // Kannada 9752fc197aSPhilippe Houdoin USB_LANGID_KASHMIRI_INDIA = 0x0860, // Kashmiri (India) 9852fc197aSPhilippe Houdoin USB_LANGID_KAZAKH = 0x043f, // Kazakh 9952fc197aSPhilippe Houdoin USB_LANGID_KONKANI = 0x0457, // Konkani 10052fc197aSPhilippe Houdoin USB_LANGID_KOREAN_JOHAB = 0x0412, // Korean (Johab) 10152fc197aSPhilippe Houdoin USB_LANGID_LATVIAN = 0x0426, // Latvian 10252fc197aSPhilippe Houdoin USB_LANGID_LITHUANIAN = 0x0427, // Lithuanian 10352fc197aSPhilippe Houdoin USB_LANGID_LITHUANIAN_CLASSIC = 0x0827, // Lithuanian (Classic) 10452fc197aSPhilippe Houdoin USB_LANGID_MACEDONIAN = 0x042f, // Macedonian 10552fc197aSPhilippe Houdoin USB_LANGID_MALAY_MALAYSIAN = 0x043e, // Malay (Malaysian) 10652fc197aSPhilippe Houdoin USB_LANGID_MALAY_BRUNEI_DARUSSALAM = 0x083e, // Malay (Brunei Darussalam) 10752fc197aSPhilippe Houdoin USB_LANGID_MALAYALAM = 0x044c, // Malayalam 10852fc197aSPhilippe Houdoin USB_LANGID_MANIPURI = 0x0458, // Manipuri 10952fc197aSPhilippe Houdoin USB_LANGID_MARATHI = 0x044e, // Marathi 11052fc197aSPhilippe Houdoin USB_LANGID_NEPALI_INDIA = 0x0861, // Nepali (India) 11152fc197aSPhilippe Houdoin USB_LANGID_NORWEGIAN_BOKMAL = 0x0414, // Norwegian (Bokmal) 11252fc197aSPhilippe Houdoin USB_LANGID_NORWEGIAN_NYNORSK = 0x0814, // Norwegian (Nynorsk) 11352fc197aSPhilippe Houdoin USB_LANGID_ORIYA = 0x0448, // Oriya 11452fc197aSPhilippe Houdoin USB_LANGID_POLISH = 0x0415, // Polish 11552fc197aSPhilippe Houdoin USB_LANGID_PORTUGUESE_BRAZIL = 0x0416, // Portuguese (Brazil) 11652fc197aSPhilippe Houdoin USB_LANGID_PORTUGUESE_STANDARD = 0x0816, // Portuguese (Standard) 11752fc197aSPhilippe Houdoin USB_LANGID_PUNJABI = 0x0446, // Punjabi 11852fc197aSPhilippe Houdoin USB_LANGID_ROMANIAN = 0x0418, // Romanian 11952fc197aSPhilippe Houdoin USB_LANGID_RUSSIAN = 0x0419, // Russian 12052fc197aSPhilippe Houdoin USB_LANGID_SANSKRIT = 0x044f, // Sanskrit 12152fc197aSPhilippe Houdoin USB_LANGID_SERBIAN_CYRILLIC = 0x0c1a, // Serbian (Cyrillic) 12252fc197aSPhilippe Houdoin USB_LANGID_SERBIAN_LATIN = 0x081a, // Serbian (Latin) 12352fc197aSPhilippe Houdoin USB_LANGID_SINDHI = 0x0459, // Sindhi 12452fc197aSPhilippe Houdoin USB_LANGID_SLOVAK = 0x041b, // Slovak 12552fc197aSPhilippe Houdoin USB_LANGID_SLOVENIAN = 0x0424, // Slovenian 12652fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_TRADITIONAL_SORT= 0x040a, // Spannish (Traditional Sort) 12752fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_MEXICAN = 0x080a, // Spannish (Mexican) 12852fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_MODERN_SORT = 0x0c0a, // Spannish (Modern Sort) 12952fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_GUATEMALA = 0x100a, // Spannish (Guatemala) 13052fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_COSTA_RICA = 0x140a, // Spannish (Costa Rica) 13152fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PANAMA = 0x180a, // Spannish (Panama) 13252fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_DOMINICAN_REPUBLIC = 0x1c0a, // Spannish (Dominican Republic) 13352fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_VENEZUELA = 0x200a, // Spannish (Venezuela) 13452fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_COLOMBIA = 0x240a, // Spannish (Colombia) 13552fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PERU = 0x280a, // Spannish (Peru) 13652fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_ARGENTINA = 0x2c0a, // Spannish (Argentina) 13752fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_ECUADOR = 0x300a, // Spannish (Ecuador) 13852fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_CHILE = 0x340a, // Spannish (Chile) 13952fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_URUGUAY = 0x380a, // Spannish (Uruguay) 14052fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PARAGUAY = 0x3c0a, // Spannish (Paraguay) 14152fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_BOLIVIA = 0x400a, // Spannish (Bolivia) 14252fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_EL_SALVADOR = 0x440a, // Spannish (El Salvador) 14352fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_HONDURAS = 0x480a, // Spannish (Honduras) 14452fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_NICARAGUA = 0x4c0a, // Spannish (Nicaragua) 14552fc197aSPhilippe Houdoin USB_LANGID_SPANNISH_PUERTO_RICO = 0x500a, // Spannish (Puerto Rico) 14652fc197aSPhilippe Houdoin USB_LANGID_SUTU = 0x0430, // Sutu 14752fc197aSPhilippe Houdoin USB_LANGID_SWAHILI_KENYA = 0x0441, // Swahili (Kenya) 14852fc197aSPhilippe Houdoin USB_LANGID_SWEDISH = 0x041d, // Swedish 14952fc197aSPhilippe Houdoin USB_LANGID_SWEDISH_FINLAND = 0x081d, // Swedish (Finland) 15052fc197aSPhilippe Houdoin USB_LANGID_TAMIL = 0x0449, // Tamil 15152fc197aSPhilippe Houdoin USB_LANGID_TATAR_TATARSTAN = 0x0444, // Tatar (Tatarstan) 15252fc197aSPhilippe Houdoin USB_LANGID_TELUGU = 0x044a, // Telugu 15352fc197aSPhilippe Houdoin USB_LANGID_THAI = 0x041e, // Thai 15452fc197aSPhilippe Houdoin USB_LANGID_TURKISH = 0x041f, // Turkish 15552fc197aSPhilippe Houdoin USB_LANGID_UKRAINIAN = 0x0422, // Ukrainian 15652fc197aSPhilippe Houdoin USB_LANGID_URDU_PAKISTAN = 0x0420, // Urdu (Pakistan) 15752fc197aSPhilippe Houdoin USB_LANGID_URDU_INDIA = 0x0820, // Urdu (India) 15852fc197aSPhilippe Houdoin USB_LANGID_UZBEK_LATIN = 0x0443, // Uzbek (Latin) 15952fc197aSPhilippe Houdoin USB_LANGID_UZBEK_CYRILLIC = 0x0843, // Uzbek (Cyrillic) 16052fc197aSPhilippe Houdoin USB_LANGID_VIETNAMESE = 0x042a, // Vietnamese 16152fc197aSPhilippe Houdoin 16252fc197aSPhilippe Houdoin USB_LANGID_HID_UDD = 0x04ff, // HID (Usage Data Descriptor) 16352fc197aSPhilippe Houdoin USB_LANGID_HID1 = 0xf0ff, // HID (Vendor Defined 1) 16452fc197aSPhilippe Houdoin USB_LANGID_HID2 = 0xf4ff, // HID (Vendor Defined 2) 16552fc197aSPhilippe Houdoin USB_LANGID_HID3 = 0xf8ff, // HID (Vendor Defined 3) 16652fc197aSPhilippe Houdoin USB_LANGID_HID4 = 0xfcff, // HID (Vendor Defined 4) 16752fc197aSPhilippe Houdoin 16852fc197aSPhilippe Houdoin USB_LANGID_INVALID = 0x0000 // Invalid LANG ID 16952fc197aSPhilippe Houdoin }; 17052fc197aSPhilippe Houdoin 17152fc197aSPhilippe Houdoin #endif // USB_LANGIDS_H 17252fc197aSPhilippe Houdoin 17352fc197aSPhilippe Houdoin 174