10 #ifndef LIBOPENMPT_EXT_HPP 11 #define LIBOPENMPT_EXT_HPP 35 class module_ext_impl;
40 module_ext_impl * ext_impl;
46 module_ext( std::istream & stream, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
47 module_ext(
const std::vector<char> & data, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
48 module_ext(
const char * data, std::size_t size, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
49 module_ext(
const void * data, std::size_t size, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
72 void * get_interface(
const std::string & interface_id );
78 #define LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE(name) \ 79 static const char name ## _id [] = # name ; \ 83 #define LIBOPENMPT_EXT_CXX_INTERFACE(name) \ 86 virtual ~ name () {} \ 91 #ifndef LIBOPENMPT_EXT_INTERFACE_PATTERN_VIS 92 #define LIBOPENMPT_EXT_INTERFACE_PATTERN_VIS 121 virtual effect_type get_pattern_row_channel_volume_effect_type( std::int32_t pattern, std::int32_t row, std::int32_t channel )
const = 0;
131 virtual effect_type get_pattern_row_channel_effect_type( std::int32_t pattern, std::int32_t row, std::int32_t channel )
const = 0;
136 #ifndef LIBOPENMPT_EXT_INTERFACE_INTERACTIVE 137 #define LIBOPENMPT_EXT_INTERFACE_INTERACTIVE 153 virtual void set_current_speed( std::int32_t speed ) = 0;
162 virtual void set_current_tempo( std::int32_t tempo ) = 0;
171 virtual void set_tempo_factor(
double factor ) = 0;
178 virtual double get_tempo_factor( )
const = 0;
188 virtual void set_pitch_factor(
double factor ) = 0;
195 virtual double get_pitch_factor( )
const = 0;
204 virtual void set_global_volume(
double volume ) = 0;
211 virtual double get_global_volume( )
const = 0;
221 virtual void set_channel_volume( std::int32_t channel,
double volume ) = 0;
230 virtual double get_channel_volume( std::int32_t channel )
const = 0;
239 virtual void set_channel_mute_status( std::int32_t channel,
bool mute ) = 0;
248 virtual bool get_channel_mute_status( std::int32_t channel )
const = 0;
257 virtual void set_instrument_mute_status( std::int32_t instrument,
bool mute ) = 0;
266 virtual bool get_instrument_mute_status( std::int32_t instrument )
const = 0;
278 virtual std::int32_t play_note( std::int32_t instrument, std::int32_t note,
double volume,
double panning ) = 0;
286 virtual void stop_note( std::int32_t channel ) = 0;
295 #undef LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE 296 #undef LIBOPENMPT_EXT_CXX_INTERFACE 306 #endif // LIBOPENMPT_EXT_HPP Definition: libopenmpt_ext.hpp:97
Definition: libopenmpt_ext.hpp:142
Definition: libopenmpt.hpp:132
#define LIBOPENMPT_EXT_CXX_INTERFACE(name)
Definition: libopenmpt_ext.hpp:83
Definition: libopenmpt_ext.hpp:37
Definition: libopenmpt.hpp:343
#define LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE(name)
Definition: libopenmpt_ext.hpp:78
effect_type
Pattern command type.
Definition: libopenmpt_ext.hpp:102