/**********************************************************************************************/ /* The MIT License */ /* */ /* Copyright 2016-2017 Twitch Interactive, Inc. or its affiliates. All Rights Reserved. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining a copy */ /* of this software and associated documentation files (the "Software"), to deal */ /* in the Software without restriction, including without limitation the rights */ /* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell */ /* copies of the Software, and to permit persons to whom the Software is */ /* furnished to do so, subject to the following conditions: */ /* */ /* The above copyright notice and this permission notice shall be included in */ /* all copies or substantial portions of the Software. */ /* */ /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR */ /* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, */ /* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE */ /* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER */ /* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, */ /* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN */ /* THE SOFTWARE. */ /**********************************************************************************************/ #ifndef LIBCAPTION_EIA608_CHARMAP_H #define LIBCAPTION_EIA608_CHARMAP_H #ifdef __cplusplus extern "C" { #endif #define EIA608_CHAR_COUNT 176 extern const char* eia608_char_map[EIA608_CHAR_COUNT]; // Helper char #define EIA608_CHAR_NULL "" // Basic North American character set #define EIA608_CHAR_SPACE "\x20" #define EIA608_CHAR_EXCLAMATION_MARK "\x21" #define EIA608_CHAR_QUOTATION_MARK "\x22" #define EIA608_CHAR_NUMBER_SIGN "\x23" #define EIA608_CHAR_DOLLAR_SIGN "\x24" #define EIA608_CHAR_PERCENT_SIGN "\x25" #define EIA608_CHAR_AMPERSAND "\x26" #define EIA608_CHAR_LEFT_SINGLE_QUOTATION_MARK "\xE2\x80\x98" #define EIA608_CHAR_LEFT_PARENTHESIS "\x28" #define EIA608_CHAR_RIGHT_PARENTHESIS "\x29" #define EIA608_CHAR_LATIN_SMALL_LETTER_A_WITH_ACUTE "\xC3\xA1" #define EIA608_CHAR_PLUS_SIGN "\x2B" #define EIA608_CHAR_COMMA "\x2C" #define EIA608_CHAR_HYPHEN_MINUS "\x2D" #define EIA608_CHAR_FULL_STOP "\x2E" #define EIA608_CHAR_SOLIDUS "\x2F" // Basic North American character set #define EIA608_CHAR_DIGIT_ZERO "\x30" #define EIA608_CHAR_DIGIT_ONE "\x31" #define EIA608_CHAR_DIGIT_TWO "\x32" #define EIA608_CHAR_DIGIT_THREE "\x33" #define EIA608_CHAR_DIGIT_FOUR "\x34" #define EIA608_CHAR_DIGIT_FIVE "\x35" #define EIA608_CHAR_DIGIT_SIX "\x36" #define EIA608_CHAR_DIGIT_SEVEN "\x37" #define EIA608_CHAR_DIGIT_EIGHT "\x38" #define EIA608_CHAR_DIGIT_NINE "\x39" #define EIA608_CHAR_COLON "\x3A" #define EIA608_CHAR_SEMICOLON "\x3B" #define EIA608_CHAR_LESS_THAN_SIGN "\x3C" #define EIA608_CHAR_EQUALS_SIGN "\x3D" #define EIA608_CHAR_GREATER_THAN_SIGN "\x3E" #define EIA608_CHAR_QUESTION_MARK "\x3F" // Basic North American character set #define EIA608_CHAR_COMMERCIAL_AT "\x40" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_A "\x41" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_B "\x42" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_C "\x43" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_D "\x44" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_E "\x45" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_F "\x46" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_G "\x47" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_H "\x48" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_I "\x49" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_J "\x4A" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_K "\x4B" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_L "\x4C" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_M "\x4D" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_N "\x4E" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_O "\x4F" // Basic North American character set #define EIA608_CHAR_LATIN_CAPITAL_LETTER_P "\x50" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_Q "\x51" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_R "\x52" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_S "\x53" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_T "\x54" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_U "\x55" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_V "\x56" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_W "\x57" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_X "\x58" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_Y "\x59" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_Z "\x5A" #define EIA608_CHAR_LEFT_SQUARE_BRACKET "\x5B" #define EIA608_CHAR_LATIN_SMALL_LETTER_E_WITH_ACUTE "\xC3\xA9" #define EIA608_CHAR_RIGHT_SQUARE_BRACKET "\x5D" #define EIA608_CHAR_LATIN_SMALL_LETTER_I_WITH_ACUTE "\xC3\xAD" #define EIA608_CHAR_LATIN_SMALL_LETTER_O_WITH_ACUTE "\xC3\xB3" // Basic North American character set #define EIA608_CHAR_LATIN_SMALL_LETTER_U_WITH_ACUTE "\xC3\xBA" #define EIA608_CHAR_LATIN_SMALL_LETTER_A "\x61" #define EIA608_CHAR_LATIN_SMALL_LETTER_B "\x62" #define EIA608_CHAR_LATIN_SMALL_LETTER_C "\x63" #define EIA608_CHAR_LATIN_SMALL_LETTER_D "\x64" #define EIA608_CHAR_LATIN_SMALL_LETTER_E "\x65" #define EIA608_CHAR_LATIN_SMALL_LETTER_F "\x66" #define EIA608_CHAR_LATIN_SMALL_LETTER_G "\x67" #define EIA608_CHAR_LATIN_SMALL_LETTER_H "\x68" #define EIA608_CHAR_LATIN_SMALL_LETTER_I "\x69" #define EIA608_CHAR_LATIN_SMALL_LETTER_J "\x6A" #define EIA608_CHAR_LATIN_SMALL_LETTER_K "\x6B" #define EIA608_CHAR_LATIN_SMALL_LETTER_L "\x6C" #define EIA608_CHAR_LATIN_SMALL_LETTER_M "\x6D" #define EIA608_CHAR_LATIN_SMALL_LETTER_N "\x6E" #define EIA608_CHAR_LATIN_SMALL_LETTER_O "\x6F" // Basic North American character set #define EIA608_CHAR_LATIN_SMALL_LETTER_P "\x70" #define EIA608_CHAR_LATIN_SMALL_LETTER_Q "\x71" #define EIA608_CHAR_LATIN_SMALL_LETTER_R "\x72" #define EIA608_CHAR_LATIN_SMALL_LETTER_S "\x73" #define EIA608_CHAR_LATIN_SMALL_LETTER_T "\x74" #define EIA608_CHAR_LATIN_SMALL_LETTER_U "\x75" #define EIA608_CHAR_LATIN_SMALL_LETTER_V "\x76" #define EIA608_CHAR_LATIN_SMALL_LETTER_W "\x77" #define EIA608_CHAR_LATIN_SMALL_LETTER_X "\x78" #define EIA608_CHAR_LATIN_SMALL_LETTER_Y "\x79" #define EIA608_CHAR_LATIN_SMALL_LETTER_Z "\x7A" #define EIA608_CHAR_LATIN_SMALL_LETTER_C_WITH_CEDILLA "\xC3\xA7" #define EIA608_CHAR_DIVISION_SIGN "\xC3\xB7" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_N_WITH_TILDE "\xC3\x91" #define EIA608_CHAR_LATIN_SMALL_LETTER_N_WITH_TILDE "\xC3\xB1" #define EIA608_CHAR_FULL_BLOCK "\xE2\x96\x88" // Special North American character set[edit] #define EIA608_CHAR_REGISTERED_SIGN "\xC2\xAE" #define EIA608_CHAR_DEGREE_SIGN "\xC2\xB0" #define EIA608_CHAR_VULGAR_FRACTION_ONE_HALF "\xC2\xBD" #define EIA608_CHAR_INVERTED_QUESTION_MARK "\xC2\xBF" #define EIA608_CHAR_TRADE_MARK_SIGN "\xE2\x84\xA2" #define EIA608_CHAR_CENT_SIGN "\xC2\xA2" #define EIA608_CHAR_POUND_SIGN "\xC2\xA3" #define EIA608_CHAR_EIGHTH_NOTE "\xE2\x99\xAA" #define EIA608_CHAR_LATIN_SMALL_LETTER_A_WITH_GRAVE "\xC3\xA0" #define EIA608_CHAR_NO_BREAK_SPACE "\xC2\xA0" #define EIA608_CHAR_LATIN_SMALL_LETTER_E_WITH_GRAVE "\xC3\xA8" #define EIA608_CHAR_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX "\xC3\xA2" #define EIA608_CHAR_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX "\xC3\xAA" #define EIA608_CHAR_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX "\xC3\xAE" #define EIA608_CHAR_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX "\xC3\xB4" #define EIA608_CHAR_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX "\xC3\xBB" // Extended Western European character set : Extended Spanish/Miscellaneous #define EIA608_CHAR_LATIN_CAPITAL_LETTER_A_WITH_ACUTE "\xC3\x81" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_E_WITH_ACUTE "\xC3\x89" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_O_WITH_ACUTE "\xC3\x93" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_U_WITH_ACUTE "\xC3\x9A" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS "\xC3\x9C" #define EIA608_CHAR_LATIN_SMALL_LETTER_U_WITH_DIAERESIS "\xC3\xBC" #define EIA608_CHAR_RIGHT_SINGLE_QUOTATION_MARK "\xE2\x80\x99" #define EIA608_CHAR_INVERTED_EXCLAMATION_MARK "\xC2\xA1" #define EIA608_CHAR_ASTERISK "\x2A" #define EIA608_CHAR_APOSTROPHE "\x27" #define EIA608_CHAR_EM_DASH "\xE2\x80\x94" #define EIA608_CHAR_COPYRIGHT_SIGN "\xC2\xA9" #define EIA608_CHAR_SERVICE_MARK "\xE2\x84\xA0" #define EIA608_CHAR_BULLET "\xE2\x80\xA2" #define EIA608_CHAR_LEFT_DOUBLE_QUOTATION_MARK "\xE2\x80\x9C" #define EIA608_CHAR_RIGHT_DOUBLE_QUOTATION_MARK "\xE2\x80\x9D" // Extended Western European character set : Extended French #define EIA608_CHAR_LATIN_CAPITAL_LETTER_A_WITH_GRAVE "\xC3\x80" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX "\xC3\x82" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA "\xC3\x87" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_E_WITH_GRAVE "\xC3\x88" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX "\xC3\x8A" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS "\xC3\x8B" #define EIA608_CHAR_LATIN_SMALL_LETTER_E_WITH_DIAERESIS "\xC3\xAB" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX "\xC3\x8E" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS "\xC3\x8F" #define EIA608_CHAR_LATIN_SMALL_LETTER_I_WITH_DIAERESIS "\xC3\xAF" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX "\xC3\x94" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_U_WITH_GRAVE "\xC3\x99" #define EIA608_CHAR_LATIN_SMALL_LETTER_U_WITH_GRAVE "\xC3\xB9" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX "\xC3\x9B" #define EIA608_CHAR_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK "\xC2\xAB" #define EIA608_CHAR_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK "\xC2\xBB" // Extended Western European character set : Portuguese #define EIA608_CHAR_LATIN_CAPITAL_LETTER_A_WITH_TILDE "\xC3\x83" #define EIA608_CHAR_LATIN_SMALL_LETTER_A_WITH_TILDE "\xC3\xA3" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_I_WITH_ACUTE "\xC3\x8D" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_I_WITH_GRAVE "\xC3\x8C" #define EIA608_CHAR_LATIN_SMALL_LETTER_I_WITH_GRAVE "\xC3\xAC" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_O_WITH_GRAVE "\xC3\x92" #define EIA608_CHAR_LATIN_SMALL_LETTER_O_WITH_GRAVE "\xC3\xB2" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_O_WITH_TILDE "\xC3\x95" #define EIA608_CHAR_LATIN_SMALL_LETTER_O_WITH_TILDE "\xC3\xB5" #define EIA608_CHAR_LEFT_CURLY_BRACKET "\x7B" #define EIA608_CHAR_RIGHT_CURLY_BRACKET "\x7D" #define EIA608_CHAR_REVERSE_SOLIDUS "\x5C" #define EIA608_CHAR_CIRCUMFLEX_ACCENT "\x5E" #define EIA608_CHAR_LOW_LINE "\x5F" #define EIA608_CHAR_VERTICAL_LINE "\x7C" #define EIA608_CHAR_TILDE "\x7E" // Extended Western European character set : German/Danish #define EIA608_CHAR_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS "\xC3\x84" #define EIA608_CHAR_LATIN_SMALL_LETTER_A_WITH_DIAERESIS "\xC3\xA4" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS "\xC3\x96" #define EIA608_CHAR_LATIN_SMALL_LETTER_O_WITH_DIAERESIS "\xC3\xB6" #define EIA608_CHAR_LATIN_SMALL_LETTER_SHARP_S "\xC3\x9F" #define EIA608_CHAR_YEN_SIGN "\xC2\xA5" #define EIA608_CHAR_CURRENCY_SIGN "\xC2\xA4" #define EIA608_CHAR_BROKEN_BAR "\xC2\xA6" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE "\xC3\x85" #define EIA608_CHAR_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE "\xC3\xA5" #define EIA608_CHAR_LATIN_CAPITAL_LETTER_O_WITH_STROKE "\xC3\x98" #define EIA608_CHAR_LATIN_SMALL_LETTER_O_WITH_STROKE "\xC3\xB8" #define EIA608_CHAR_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT "\xE2\x94\x8C" // top left #define EIA608_CHAR_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT "\xE2\x94\x90" // top right #define EIA608_CHAR_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT "\xE2\x94\x94" // lower left #define EIA608_CHAR_BOX_DRAWINGS_LIGHT_UP_AND_LEFT "\xE2\x94\x98" // bottom right #ifdef __cplusplus } #endif #endif