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<std::byte> & data, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
48 module_ext(
const std::vector<std::uint8_t> & data, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
49 module_ext(
const std::vector<char> & data, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
50 module_ext(
const std::byte * data, std::size_t size, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
51 module_ext(
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() );
52 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() );
53 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() );
76 void * get_interface(
const std::string & interface_id );
90 #define LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE(name) \
91 static const char name ## _id [] = # name ; \
95 #define LIBOPENMPT_EXT_CXX_INTERFACE(name) \
98 virtual ~ name () {} \
103 #ifndef LIBOPENMPT_EXT_INTERFACE_PATTERN_VIS
104 #define LIBOPENMPT_EXT_INTERFACE_PATTERN_VIS
133 virtual effect_type get_pattern_row_channel_volume_effect_type( std::int32_t pattern, std::int32_t row, std::int32_t channel )
const = 0;
143 virtual effect_type get_pattern_row_channel_effect_type( std::int32_t pattern, std::int32_t row, std::int32_t channel )
const = 0;
148 #ifndef LIBOPENMPT_EXT_INTERFACE_INTERACTIVE
149 #define LIBOPENMPT_EXT_INTERFACE_INTERACTIVE
165 virtual
void set_current_speed(
std::int32_t speed ) = 0;
174 virtual
void set_current_tempo(
std::int32_t tempo ) = 0;
183 virtual
void set_tempo_factor(
double factor ) = 0;
190 virtual
double get_tempo_factor( ) const = 0;
200 virtual
void set_pitch_factor(
double factor ) = 0;
208 virtual
double get_pitch_factor( ) const = 0;
217 virtual
void set_global_volume(
double volume ) = 0;
224 virtual
double get_global_volume( ) const = 0;
234 virtual
void set_channel_volume(
std::int32_t channel,
double volume ) = 0;
243 virtual
double get_channel_volume(
std::int32_t channel ) const = 0;
252 virtual
void set_channel_mute_status(
std::int32_t channel,
bool mute ) = 0;
261 virtual
bool get_channel_mute_status(
std::int32_t channel ) const = 0;
270 virtual
void set_instrument_mute_status(
std::int32_t instrument,
bool mute ) = 0;
279 virtual
bool get_instrument_mute_status(
std::int32_t instrument ) const = 0;
293 virtual
std::int32_t play_note(
std::int32_t instrument,
std::int32_t note,
double volume,
double panning ) = 0;
303 virtual
void stop_note(
std::int32_t channel ) = 0;
308 #ifndef LIBOPENMPT_EXT_INTERFACE_INTERACTIVE2
309 #define LIBOPENMPT_EXT_INTERFACE_INTERACTIVE2
328 virtual
void note_off(int32_t channel ) = 0;
340 virtual
void note_fade(int32_t channel) = 0;
351 virtual
void set_channel_panning(int32_t channel,
double panning ) = 0;
361 virtual
double get_channel_panning( int32_t channel ) = 0;
373 virtual
void set_note_finetune(int32_t channel,
double finetune ) = 0;
384 virtual
double get_note_finetune( int32_t channel ) = 0;
393 #undef LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE
394 #undef LIBOPENMPT_EXT_CXX_INTERFACE
404 #endif // LIBOPENMPT_EXT_HPP
Definition: libopenmpt_ext.hpp:314
Definition: libopenmpt_ext.hpp:109
Definition: libopenmpt_ext.hpp:154
Definition: libopenmpt.hpp:130
#define LIBOPENMPT_EXT_CXX_INTERFACE(name)
Definition: libopenmpt_ext.hpp:95
Definition: libopenmpt_ext.hpp:37
Definition: libopenmpt.hpp:397
effect_type
Pattern command type.
Definition: libopenmpt_ext.hpp:114
#define LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE(name)
Definition: libopenmpt_ext.hpp:90