1 /* 2 mkvmerge -- utility for splicing together matroska files 3 from component media subtypes 4 5 Distributed under the GPL v2 6 see the file COPYING for details 7 or visit https://www.gnu.org/licenses/old-licenses/gpl-2.0.html 8 9 IO callback class definitions 10 11 Written by Moritz Bunkus <moritz@bunkus.org>. 12 */ 13 14 #pragma once 15 16 enum class byte_order_mark_e {utf8, utf16_le, utf16_be, utf32_le, utf32_be, none}; 17 18 class mm_io_c; 19 using mm_io_cptr = std::shared_ptr<mm_io_c>; 20 21 class mm_file_io_c; 22 using mm_file_io_cptr = std::shared_ptr<mm_file_io_c>; 23 24 class mm_mem_io_c; 25 using mm_mem_io_cptr = std::shared_ptr<mm_mem_io_c>; 26 27 class mm_mpls_multi_file_io_c; 28 using mm_mpls_multi_file_io_cptr = std::shared_ptr<mm_mpls_multi_file_io_c>; 29 30 class mm_multi_file_io_c; 31 using mm_multi_file_io_cptr = std::shared_ptr<mm_multi_file_io_c>; 32 33 class mm_null_io_c; 34 using mm_null_io_cptr = std::shared_ptr<mm_null_io_c>; 35 36 class mm_proxy_io_c; 37 using mm_proxy_io_cptr = std::shared_ptr<mm_proxy_io_c>; 38 39 class mm_read_buffer_io_c; 40 using mm_read_buffer_io_cptr = std::shared_ptr<mm_read_buffer_io_c>; 41 42 class mm_stdio_c; 43 using mm_stdio_cptr = std::shared_ptr<mm_stdio_c>; 44 45 class mm_text_io_c; 46 using mm_text_io_cptr = std::shared_ptr<mm_text_io_c>; 47 48 class mm_write_buffer_io_c; 49 using mm_write_buffer_io_cptr = std::shared_ptr<mm_write_buffer_io_c>; 50