10#ifndef LIBOPENMPT_EXT_HPP
11#define LIBOPENMPT_EXT_HPP
40 module_ext_impl * ext_impl;
44 LIBOPENMPT_CXX_API_MEMBER
void operator = (
const module_ext & );
46 LIBOPENMPT_CXX_API_MEMBER
module_ext( std::istream & stream, std::ostream & log = std::clog,
const std::map< std::string, std::string > & ctls = detail::initial_ctls_map() );
47 LIBOPENMPT_CXX_API_MEMBER
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 LIBOPENMPT_CXX_API_MEMBER
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 LIBOPENMPT_CXX_API_MEMBER
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 LIBOPENMPT_CXX_API_MEMBER
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 LIBOPENMPT_CXX_API_MEMBER
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 LIBOPENMPT_CXX_API_MEMBER
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 LIBOPENMPT_CXX_API_MEMBER
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 LIBOPENMPT_CXX_API_MEMBER
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
148#ifndef LIBOPENMPT_EXT_INTERFACE_INTERACTIVE
149#define LIBOPENMPT_EXT_INTERFACE_INTERACTIVE
165 virtual
void set_current_speed( std::int32_t speed ) = 0;
184 virtual
void set_tempo_factor(
double factor ) = 0;
191 virtual
double get_tempo_factor( ) const = 0;
201 virtual
void set_pitch_factor(
double factor ) = 0;
209 virtual
double get_pitch_factor( ) const = 0;
218 virtual
void set_global_volume(
double volume ) = 0;
225 virtual
double get_global_volume( ) const = 0;
235 virtual
void set_channel_volume( std::int32_t channel,
double volume ) = 0;
244 virtual
double get_channel_volume( std::int32_t channel ) const = 0;
253 virtual
void set_channel_mute_status( std::int32_t channel,
bool mute ) = 0;
262 virtual
bool get_channel_mute_status( std::int32_t channel ) const = 0;
271 virtual
void set_instrument_mute_status( std::int32_t instrument,
bool mute ) = 0;
280 virtual
bool get_instrument_mute_status( std::int32_t instrument ) const = 0;
294 virtual std::int32_t play_note( std::int32_t instrument, std::int32_t note,
double volume,
double panning ) = 0;
304 virtual
void stop_note( std::int32_t channel ) = 0;
309#ifndef LIBOPENMPT_EXT_INTERFACE_INTERACTIVE2
310#define LIBOPENMPT_EXT_INTERFACE_INTERACTIVE2
329 virtual
void note_off(int32_t channel ) = 0;
341 virtual
void note_fade(int32_t channel) = 0;
352 virtual
void set_channel_panning(int32_t channel,
double panning ) = 0;
362 virtual
double get_channel_panning( int32_t channel ) = 0;
374 virtual
void set_note_finetune(int32_t channel,
double finetune ) = 0;
385 virtual
double get_note_finetune( int32_t channel ) = 0;
390#ifndef LIBOPENMPT_EXT_INTERFACE_INTERACTIVE3
391#define LIBOPENMPT_EXT_INTERFACE_INTERACTIVE3
408 virtual
void set_current_tempo2(
double tempo ) = 0;
418#undef LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE
419#undef LIBOPENMPT_EXT_CXX_INTERFACE
Definition: libopenmpt_ext.hpp:315
Definition: libopenmpt_ext.hpp:396
Definition: libopenmpt_ext.hpp:154
Definition: libopenmpt_ext.hpp:109
virtual effect_type get_pattern_row_channel_effect_type(std::int32_t pattern, std::int32_t row, std::int32_t channel) const =0
Get pattern command type for pattern highlighting.
effect_type
Pattern command type.
Definition: libopenmpt_ext.hpp:114
virtual effect_type get_pattern_row_channel_volume_effect_type(std::int32_t pattern, std::int32_t row, std::int32_t channel) const =0
Get pattern command type for pattern highlighting.
Definition: libopenmpt_ext.hpp:37
LIBOPENMPT_CXX_API_MEMBER 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())
LIBOPENMPT_CXX_API_MEMBER 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())
LIBOPENMPT_CXX_API_MEMBER void * get_interface(const std::string &interface_id)
Retrieve a libopenmpt extension.
LIBOPENMPT_CXX_API_MEMBER 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())
LIBOPENMPT_CXX_API_MEMBER 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())
LIBOPENMPT_CXX_API_MEMBER 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())
virtual LIBOPENMPT_CXX_API_MEMBER ~module_ext()
LIBOPENMPT_CXX_API_MEMBER module_ext(std::istream &stream, std::ostream &log=std::clog, const std::map< std::string, std::string > &ctls=detail::initial_ctls_map())
LIBOPENMPT_CXX_API_MEMBER module_ext(const std::vector< char > &data, std::ostream &log=std::clog, const std::map< std::string, std::string > &ctls=detail::initial_ctls_map())
LIBOPENMPT_CXX_API_MEMBER 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())
Definition: libopenmpt.hpp:400
static const std::uint64_t probe_file_header_flags_modules LIBOPENMPT_ATTR_DEPRECATED
Probe for module formats in openmpt::probe_file_header().
Definition: libopenmpt.hpp:276
#define LIBOPENMPT_DECLARE_EXT_CXX_INTERFACE(name)
Definition: libopenmpt_ext.hpp:90
#define LIBOPENMPT_EXT_CXX_INTERFACE(name)
Definition: libopenmpt_ext.hpp:95
Definition: libopenmpt.hpp:130