X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fstl_binary_reader.h;h=9c2e61f4571b025fa29a7c90347237485031c8eb;hb=385a64deea15f8cf360d342fbc62c17ce86c2859;hp=b049b93668a5afa43ba09e3f9624bbbcbd776808;hpb=cd0958260b54af3514ac12b936bb76ca6de6978b;p=libsub.git diff --git a/src/stl_binary_reader.h b/src/stl_binary_reader.h index b049b93..9c2e61f 100644 --- a/src/stl_binary_reader.h +++ b/src/stl_binary_reader.h @@ -17,28 +17,15 @@ */ -#include #include "reader.h" +#include "stl_binary_tables.h" +#include namespace sub { -template -class STLCode -{ -public: - STLCode () - : value ((T) 0) - {} - - STLCode (T v, std::string d) - : value (v) - , description (d) - {} - - T value; - std::string description; -}; - +/** @class STLBinaryReader + * @brief A class to read binary STL files. + */ class STLBinaryReader : public Reader { public: @@ -47,151 +34,6 @@ public: std::map metadata () const; - enum DisplayStandard { - DISPLAY_STANDARD_UNDEFINED, - DISPLAY_STANDARD_OPEN_SUBTITLING, - DISPLAY_STANDARD_LEVEL_1_TELETEXT, - DISPLAY_STANDARD_LEVEL_2_TELETEXT - }; - - enum LanguageGroup { - LANGUAGE_GROUP_LATIN, - LANGUAGE_GROUP_LATIN_CYRILLIC, - LANGUAGE_GROUP_LATIN_ARABIC, - LANGUAGE_GROUP_LATIN_GREEK, - LANGUAGE_GROUP_LATIN_HEBREW - }; - - enum Language { - LANGUAGE_UNKNOWN, - LANGUAGE_ALBANIAN, - LANGUAGE_BRETON, - LANGUAGE_CATALAN, - LANGUAGE_CROATIAN, - LANGUAGE_WELSH, - LANGUAGE_CZECH, - LANGUAGE_DANISH, - LANGUAGE_GERMAN, - LANGUAGE_ENGLISH, - LANGUAGE_SPANISH, - LANGUAGE_ESPERANTO, - LANGUAGE_ESTONIAN, - LANGUAGE_BASQUE, - LANGUAGE_FAROESE, - LANGUAGE_FRENCH, - LANGUAGE_FRISIAN, - LANGUAGE_IRISH, - LANGUAGE_GAELIC, - LANGUAGE_GALACIAN, - LANGUAGE_ICELANDIC, - LANGUAGE_ITALIAN, - LANGUAGE_LAPPISH, - LANGUAGE_LATIN, - LANGUAGE_LATVIAN, - LANGUAGE_LUXEMBORGIAN, - LANGUAGE_LITHUANIAN, - LANGUAGE_HUNGARIAN, - LANGUAGE_MALTESE, - LANGUAGE_DUTCH, - LANGUAGE_NORWEGIAN, - LANGUAGE_OCCITAN, - LANGUAGE_POLISH, - LANGUAGE_PORTUGESE, - LANGUAGE_ROMANIAN, - LANGUAGE_ROMANSH, - LANGUAGE_SERBIAN, - LANGUAGE_SLOVAK, - LANGUAGE_SLOVENIAN, - LANGUAGE_FINNISH, - LANGUAGE_SWEDISH, - LANGUAGE_TURKISH, - LANGUAGE_FLEMISH, - LANGUAGE_WALLON, - LANGUAGE_AMHARIC, - LANGUAGE_ARABIC, - LANGUAGE_ARMENIAN, - LANGUAGE_ASSAMESE, - LANGUAGE_AZERBAIJANI, - LANGUAGE_BAMBORA, - LANGUAGE_BIELORUSSIAN, - LANGUAGE_BENGALI, - LANGUAGE_BULGARIAN, - LANGUAGE_BURMESE, - LANGUAGE_CHINESE, - LANGUAGE_CHURASH, - LANGUAGE_DARI, - LANGUAGE_FULANI, - LANGUAGE_GEORGIAN, - LANGUAGE_GREEK, - LANGUAGE_GUJURATI, - LANGUAGE_GURANI, - LANGUAGE_HAUSA, - LANGUAGE_HEBREW, - LANGUAGE_HINDI, - LANGUAGE_INDONESIAN, - LANGUAGE_JAPANESE, - LANGUAGE_KANNADA, - LANGUAGE_KAZAKH, - LANGUAGE_KHMER, - LANGUAGE_KOREAN, - LANGUAGE_LAOTIAN, - LANGUAGE_MACEDONIAN, - LANGUAGE_MALAGASAY, - LANGUAGE_MALAYSIAN, - LANGUAGE_MOLDAVIAN, - LANGUAGE_MARATHI, - LANGUAGE_NDEBELE, - LANGUAGE_NEPALI, - LANGUAGE_ORIYA, - LANGUAGE_PAPAMIENTO, - LANGUAGE_PERSIAN, - LANGUAGE_PUNJABI, - LANGUAGE_PUSHTU, - LANGUAGE_QUECHUA, - LANGUAGE_RUSSIAN, - LANGUAGE_RUTHENIAN, - LANGUAGE_SERBO_CROAT, - LANGUAGE_SHONA, - LANGUAGE_SINHALESE, - LANGUAGE_SOMALI, - LANGUAGE_SRANAN_TONGO, - LANGUAGE_SWAHILI, - LANGUAGE_TADZHIK, - LANGUAGE_TAMIL, - LANGUAGE_TATAR, - LANGUAGE_TELUGU, - LANGUAGE_THAI, - LANGUAGE_UKRANIAN, - LANGUAGE_URDU, - LANGUAGE_UZBEK, - LANGUAGE_VIETNAMESE, - LANGUAGE_ZULU - }; - - enum TimecodeStatus { - TIMECODE_STATUS_NOT_INTENDED_FOR_USE, - TIMECODE_STATUS_INTENDED_FOR_USE - }; - - enum CumulativeStatus { - CUMULATIVE_STATUS_NOT_CUMULATIVE, - CUMULATIVE_STATUS_FIRST, - CUMULATIVE_STATUS_INTERMEDIATE, - CUMULATIVE_STATUS_LAST - }; - - enum Justification { - JUSTIFICATION_NONE, - JUSTIFICATION_LEFT, - JUSTIFICATION_CENTRE, - JUSTIFICATION_RIGHT - }; - - enum Comment { - COMMENT_NO, - COMMENT_YES - }; - int code_page_number; int frame_rate; DisplayStandard display_standard; @@ -226,17 +68,8 @@ private: std::string get_string (int, int) const; int get_int (int, int) const; FrameTime get_timecode (int) const; - - void create_tables (); - - std::map > _display_standard_map; - std::map > _language_group_map; - std::map > _language_map; - std::map > _timecode_status_map; - std::map > _cumulative_status_map; - std::map > _justification_map; - std::map > _comment_map; + STLBinaryTables _tables; unsigned char* _buffer; };