10 #ifndef LIBOPENMPT_HPP
11 #define LIBOPENMPT_HPP
22 #ifndef LIBOPENMPT_QUIRK_NO_CSTDINT
28 typedef ::int8_t int8_t;
29 typedef ::int16_t int16_t;
30 typedef ::int32_t int32_t;
31 typedef ::int64_t int64_t;
32 typedef ::uint8_t uint8_t;
33 typedef ::uint16_t uint16_t;
34 typedef ::uint32_t uint32_t;
35 typedef ::uint64_t uint64_t;
36 using namespace ::
std;
151 #if defined(_MSC_VER)
152 #pragma warning(push)
153 #pragma warning(disable:4275)
155 class LIBOPENMPT_CXX_API
exception :
public std::exception {
159 exception(
const std::string & text ) LIBOPENMPT_NOEXCEPT;
160 virtual ~
exception() LIBOPENMPT_NOEXCEPT;
161 virtual const char * what()
const LIBOPENMPT_NOEXCEPT;
163 #if defined(_MSC_VER)
187 LIBOPENMPT_DEPRECATED static const char library_features LIBOPENMPT_ATTR_DEPRECATED [] =
"library_features";
228 LIBOPENMPT_CXX_API std::string
get(
const std::string & key );
256 LIBOPENMPT_CXX_API
double could_open_probability( std::istream & stream,
double effort = 1.0, std::ostream & log = std::clog );
270 typedef std::map< std::string, std::string > initial_ctls_map;
288 RENDER_MASTERGAIN_MILLIBEL = 1,
295 RENDER_STEREOSEPARATION_PERCENT = 2,
308 RENDER_INTERPOLATIONFILTER_LENGTH = 3,
317 RENDER_VOLUMERAMPING_STRENGTH = 4
323 command_instrument = 1,
324 command_volumeffect = 2,
327 command_parameter = 5
335 void operator = (
const module & );
339 void set_impl( module_impl * i );
350 module( std::istream & stream, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
359 module(
const std::vector<std::uint8_t> & data, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
369 module(
const std::uint8_t * beg,
const std::uint8_t * end, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
379 module(
const std::uint8_t * data, std::size_t size, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
388 module(
const std::vector<char> & data, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
398 module(
const char * beg,
const char * end, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
408 module(
const char * data, std::size_t size, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
418 module(
const void * data, std::size_t size, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
429 void select_subsong( std::int32_t subsong );
436 std::int32_t get_selected_subsong()
const;
445 void set_repeat_count( std::int32_t repeat_count );
454 std::int32_t get_repeat_count()
const;
460 double get_duration_seconds()
const;
468 double set_position_seconds(
double seconds );
474 double get_position_seconds()
const;
485 double set_position_order_row( std::int32_t order, std::int32_t row );
495 std::int32_t get_render_param(
int param )
const;
504 void set_render_param(
int param, std::int32_t value );
519 std::size_t read( std::int32_t samplerate, std::size_t count, std::int16_t * mono );
533 std::size_t read( std::int32_t samplerate, std::size_t count, std::int16_t * left, std::int16_t * right );
549 std::size_t read( std::int32_t samplerate, std::size_t count, std::int16_t * left, std::int16_t * right, std::int16_t * rear_left, std::int16_t * rear_right );
562 std::size_t read( std::int32_t samplerate, std::size_t count,
float * mono );
576 std::size_t read( std::int32_t samplerate, std::size_t count,
float * left,
float * right );
592 std::size_t read( std::int32_t samplerate, std::size_t count,
float * left,
float * right,
float * rear_left,
float * rear_right );
605 std::size_t read_interleaved_stereo( std::int32_t samplerate, std::size_t count, std::int16_t * interleaved_stereo );
618 std::size_t read_interleaved_quad( std::int32_t samplerate, std::size_t count, std::int16_t * interleaved_quad );
631 std::size_t read_interleaved_stereo( std::int32_t samplerate, std::size_t count,
float * interleaved_stereo );
644 std::size_t read_interleaved_quad( std::int32_t samplerate, std::size_t count,
float * interleaved_quad );
652 std::vector<std::string> get_metadata_keys()
const;
671 std::string get_metadata(
const std::string & key )
const;
677 std::int32_t get_current_speed()
const;
682 std::int32_t get_current_tempo()
const;
687 std::int32_t get_current_order()
const;
692 std::int32_t get_current_pattern()
const;
697 std::int32_t get_current_row()
const;
702 std::int32_t get_current_playing_channels()
const;
710 float get_current_channel_vu_mono( std::int32_t channel )
const;
717 float get_current_channel_vu_left( std::int32_t channel )
const;
724 float get_current_channel_vu_right( std::int32_t channel )
const;
731 float get_current_channel_vu_rear_left( std::int32_t channel )
const;
738 float get_current_channel_vu_rear_right( std::int32_t channel )
const;
745 std::int32_t get_num_subsongs()
const;
751 std::int32_t get_num_channels()
const;
756 std::int32_t get_num_orders()
const;
761 std::int32_t get_num_patterns()
const;
766 std::int32_t get_num_instruments()
const;
771 std::int32_t get_num_samples()
const;
778 std::vector<std::string> get_subsong_names()
const;
784 std::vector<std::string> get_channel_names()
const;
790 std::vector<std::string> get_order_names()
const;
796 std::vector<std::string> get_pattern_names()
const;
802 std::vector<std::string> get_instrument_names()
const;
808 std::vector<std::string> get_sample_names()
const;
815 std::int32_t get_order_pattern( std::int32_t order )
const;
822 std::int32_t get_pattern_num_rows( std::int32_t pattern )
const;
832 std::uint8_t get_pattern_row_channel_command( std::int32_t pattern, std::int32_t row, std::int32_t channel,
int command )
const;
843 std::string format_pattern_row_channel_command( std::int32_t pattern, std::int32_t row, std::int32_t channel,
int command )
const;
865 std::string highlight_pattern_row_channel_command( std::int32_t pattern, std::int32_t row, std::int32_t channel,
int command )
const;
877 std::string format_pattern_row_channel( std::int32_t pattern, std::int32_t row, std::int32_t channel, std::size_t width = 0,
bool pad =
true )
const;
888 std::string highlight_pattern_row_channel( std::int32_t pattern, std::int32_t row, std::int32_t channel, std::size_t width = 0,
bool pad =
true )
const;
910 std::vector<std::string> get_ctls()
const;
918 std::string ctl_get(
const std::string & ctl )
const;
925 void ctl_set(
const std::string & ctl,
const std::string & value );
937 #endif // LIBOPENMPT_HPP
#define LIBOPENMPT_DEPRECATED
Definition: libopenmpt_config.h:149
static const char library_version LIBOPENMPT_ATTR_DEPRECATED[]
Return a verbose library version string from openmpt::string::get().
Definition: libopenmpt.hpp:185
render_param
Parameter index to use with openmpt::module::get_render_param and openmpt::module::set_render_param.
Definition: libopenmpt.hpp:281
Definition: libopenmpt.hpp:155
LIBOPENMPT_CXX_API std::uint32_t get_core_version()
Get the core version number.
Definition: libopenmpt.hpp:149
LIBOPENMPT_CXX_API std::uint32_t get_library_version()
Get the libopenmpt version number.
LIBOPENMPT_CXX_API bool is_extension_supported(const std::string &extension)
Query whether a file extension is supported.
LIBOPENMPT_CXX_API double could_open_probability(std::istream &stream, double effort=1.0, std::ostream &log=std::clog)
Roughly scan the input stream to find out whether libopenmpt might be able to open it...
command_index
Parameter index to use with openmpt::module::get_pattern_row_channel_command, openmpt::module::format...
Definition: libopenmpt.hpp:321
LIBOPENMPT_ATTR_DEPRECATED LIBOPENMPT_CXX_API double could_open_propability(std::istream &stream, double effort=1.0, std::ostream &log=std::clog)
Roughly scan the input stream to find out whether libopenmpt might be able to open it...
Definition: libopenmpt_ext.hpp:59
Definition: libopenmpt.hpp:274
LIBOPENMPT_CXX_API std::vector< std::string > get_supported_extensions()
Get a list of supported file extensions.