18 #ifndef MT32EMU_C_INTERFACE_H 19 #define MT32EMU_C_INTERFACE_H 23 #include "../globals.h" 27 #undef MT32EMU_EXPORT_V 28 #define MT32EMU_EXPORT MT32EMU_EXPORT_ATTRIBUTE 29 #define MT32EMU_EXPORT_V(symbol_version_tag) MT32EMU_EXPORT 42 #if MT32EMU_EXPORTS_TYPE == 2 44 #undef MT32EMU_EXPORT_V 45 #define MT32EMU_EXPORT 46 #define MT32EMU_EXPORT_V(symbol_version_tag) MT32EMU_EXPORT 53 MT32EMU_EXPORT mt32emu_report_handler_version MT32EMU_C_CALL mt32emu_get_supported_report_handler_version(
void);
59 MT32EMU_EXPORT mt32emu_midi_receiver_version MT32EMU_C_CALL mt32emu_get_supported_midi_receiver_version(
void);
69 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_get_library_version_int(
void);
74 MT32EMU_EXPORT
const char * MT32EMU_C_CALL mt32emu_get_library_version_string(
void);
80 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_get_stereo_output_samplerate(
const mt32emu_analog_output_mode analog_output_mode);
87 MT32EMU_EXPORT mt32emu_analog_output_mode MT32EMU_C_CALL mt32emu_get_best_analog_output_mode(
const double target_samplerate);
97 MT32EMU_EXPORT_V(2.5) size_t MT32EMU_C_CALL mt32emu_get_machine_ids(const
char **machine_ids,
size_t machine_ids_size);
106 MT32EMU_EXPORT_V(2.5)
size_t MT32EMU_C_CALL mt32emu_get_rom_ids(const
char **rom_ids,
size_t rom_ids_size, const
char *machine_id);
116 MT32EMU_EXPORT_V(2.5) mt32emu_return_code MT32EMU_C_CALL mt32emu_identify_rom_data(
mt32emu_rom_info *rom_info, const mt32emu_bit8u *data,
size_t data_size, const
char *machine_id);
126 MT32EMU_EXPORT_V(2.5) mt32emu_return_code MT32EMU_C_CALL mt32emu_identify_rom_file(
mt32emu_rom_info *rom_info, const
char *filename, const
char *machine_id);
131 MT32EMU_EXPORT mt32emu_context MT32EMU_C_CALL mt32emu_create_context(
mt32emu_report_handler_i report_handler,
void *instance_data);
134 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_free_context(mt32emu_context context);
146 MT32EMU_EXPORT mt32emu_return_code MT32EMU_C_CALL mt32emu_add_rom_data(mt32emu_context context, const mt32emu_bit8u *data,
size_t data_size, const mt32emu_sha1_digest *sha1_digest);
155 MT32EMU_EXPORT mt32emu_return_code MT32EMU_C_CALL mt32emu_add_rom_file(mt32emu_context context, const
char *filename);
166 MT32EMU_EXPORT_V(2.5) mt32emu_return_code MT32EMU_C_CALL mt32emu_merge_and_add_rom_data(mt32emu_context context, const mt32emu_bit8u *part1_data,
size_t part1_data_size, const mt32emu_sha1_digest *part1_sha1_digest, const mt32emu_bit8u *part2_data,
size_t part2_data_size, const mt32emu_sha1_digest *part2_sha1_digest);
175 MT32EMU_EXPORT_V(2.5) mt32emu_return_code MT32EMU_C_CALL mt32emu_merge_and_add_rom_files(mt32emu_context context, const
char *part1_filename, const
char *part2_filename);
193 MT32EMU_EXPORT_V(2.5) mt32emu_return_code MT32EMU_C_CALL mt32emu_add_machine_rom_file(mt32emu_context context, const
char *machine_id, const
char *filename);
199 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_get_rom_info(mt32emu_const_context context,
mt32emu_rom_info *rom_info);
205 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_partial_count(mt32emu_context context, const mt32emu_bit32u partial_count);
211 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_analog_output_mode(mt32emu_context context, const mt32emu_analog_output_mode analog_output_mode);
222 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_stereo_output_samplerate(mt32emu_context context, const
double samplerate);
231 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_samplerate_conversion_quality(mt32emu_context context, const mt32emu_samplerate_conversion_quality quality);
238 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_select_renderer_type(mt32emu_context context, const mt32emu_renderer_type renderer_type);
244 MT32EMU_EXPORT mt32emu_renderer_type MT32EMU_C_CALL mt32emu_get_selected_renderer_type(mt32emu_context context);
251 MT32EMU_EXPORT mt32emu_return_code MT32EMU_C_CALL mt32emu_open_synth(mt32emu_const_context context);
254 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_close_synth(mt32emu_const_context context);
257 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_open(mt32emu_const_context context);
266 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_get_actual_stereo_output_samplerate(mt32emu_const_context context);
273 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_convert_output_to_synth_timestamp(mt32emu_const_context context, mt32emu_bit32u output_timestamp);
280 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_convert_synth_to_output_timestamp(mt32emu_const_context context, mt32emu_bit32u synth_timestamp);
283 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_flush_midi_queue(mt32emu_const_context context);
290 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_set_midi_event_queue_size(mt32emu_const_context context, const mt32emu_bit32u queue_size);
303 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_configure_midi_event_queue_sysex_storage(mt32emu_const_context context, const mt32emu_bit32u storage_buffer_size);
311 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_midi_receiver(mt32emu_context context,
mt32emu_midi_receiver_i midi_receiver,
void *instance_data);
317 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_get_internal_rendered_sample_count(mt32emu_const_context context);
334 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_parse_stream(mt32emu_const_context context, const mt32emu_bit8u *stream, mt32emu_bit32u length);
342 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_parse_stream_at(mt32emu_const_context context, const mt32emu_bit8u *stream, mt32emu_bit32u length, mt32emu_bit32u timestamp);
349 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_play_short_message(mt32emu_const_context context, mt32emu_bit32u message);
356 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_play_short_message_at(mt32emu_const_context context, mt32emu_bit32u message, mt32emu_bit32u timestamp);
359 MT32EMU_EXPORT mt32emu_return_code MT32EMU_C_CALL mt32emu_play_msg(mt32emu_const_context context, mt32emu_bit32u msg);
361 MT32EMU_EXPORT mt32emu_return_code MT32EMU_C_CALL mt32emu_play_sysex(mt32emu_const_context context, const mt32emu_bit8u *sysex, mt32emu_bit32u len);
364 MT32EMU_EXPORT mt32emu_return_code MT32EMU_C_CALL mt32emu_play_msg_at(mt32emu_const_context context, mt32emu_bit32u msg, mt32emu_bit32u timestamp);
366 MT32EMU_EXPORT mt32emu_return_code MT32EMU_C_CALL mt32emu_play_sysex_at(mt32emu_const_context context, const mt32emu_bit8u *sysex, mt32emu_bit32u len, mt32emu_bit32u timestamp);
378 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_play_msg_now(mt32emu_const_context context, mt32emu_bit32u msg);
383 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_play_msg_on_part(mt32emu_const_context context, mt32emu_bit8u part, mt32emu_bit8u code, mt32emu_bit8u note, mt32emu_bit8u velocity);
389 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_play_sysex_now(mt32emu_const_context context, const mt32emu_bit8u *sysex, mt32emu_bit32u len);
394 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_write_sysex(mt32emu_const_context context, mt32emu_bit8u channel, const mt32emu_bit8u *sysex, mt32emu_bit32u len);
397 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_reverb_enabled(mt32emu_const_context context, const mt32emu_boolean reverb_enabled);
399 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_reverb_enabled(mt32emu_const_context context);
405 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_reverb_overridden(mt32emu_const_context context, const mt32emu_boolean reverb_overridden);
407 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_reverb_overridden(mt32emu_const_context context);
414 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_reverb_compatibility_mode(mt32emu_const_context context, const mt32emu_boolean mt32_compatible_mode);
416 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_mt32_reverb_compatibility_mode(mt32emu_const_context context);
418 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_default_reverb_mt32_compatible(mt32emu_const_context context);
425 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_preallocate_reverb_memory(mt32emu_const_context context, const mt32emu_boolean enabled);
428 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_dac_input_mode(mt32emu_const_context context, const mt32emu_dac_input_mode mode);
430 MT32EMU_EXPORT mt32emu_dac_input_mode MT32EMU_C_CALL mt32emu_get_dac_input_mode(mt32emu_const_context context);
433 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_midi_delay_mode(mt32emu_const_context context, const mt32emu_midi_delay_mode mode);
435 MT32EMU_EXPORT mt32emu_midi_delay_mode MT32EMU_C_CALL mt32emu_get_midi_delay_mode(mt32emu_const_context context);
442 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_output_gain(mt32emu_const_context context,
float gain);
444 MT32EMU_EXPORT
float MT32EMU_C_CALL mt32emu_get_output_gain(mt32emu_const_context context);
456 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_reverb_output_gain(mt32emu_const_context context,
float gain);
458 MT32EMU_EXPORT
float MT32EMU_C_CALL mt32emu_get_reverb_output_gain(mt32emu_const_context context);
472 MT32EMU_EXPORT_V(2.6)
void MT32EMU_C_CALL mt32emu_set_part_volume_override(mt32emu_const_context context, mt32emu_bit8u part_number, mt32emu_bit8u volume_override);
478 MT32EMU_EXPORT_V(2.6) mt32emu_bit8u MT32EMU_C_CALL mt32emu_get_part_volume_override(mt32emu_const_context context, mt32emu_bit8u part_number);
481 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_reversed_stereo_enabled(mt32emu_const_context context, const mt32emu_boolean enabled);
483 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_reversed_stereo_enabled(mt32emu_const_context context);
493 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_nice_amp_ramp_enabled(mt32emu_const_context context, const mt32emu_boolean enabled);
495 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_nice_amp_ramp_enabled(mt32emu_const_context context);
506 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_nice_panning_enabled(mt32emu_const_context context, const mt32emu_boolean enabled);
508 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_nice_panning_enabled(mt32emu_const_context context);
520 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_set_nice_partial_mixing_enabled(mt32emu_const_context context, const mt32emu_boolean enabled);
522 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_nice_partial_mixing_enabled(mt32emu_const_context context);
530 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_render_bit16s(mt32emu_const_context context, mt32emu_bit16s *stream, mt32emu_bit32u len);
532 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_render_float(mt32emu_const_context context,
float *stream, mt32emu_bit32u len);
540 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_render_bit16s_streams(mt32emu_const_context context, const
mt32emu_dac_output_bit16s_streams *streams, mt32emu_bit32u len);
542 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_render_float_streams(mt32emu_const_context context, const
mt32emu_dac_output_float_streams *streams, mt32emu_bit32u len);
545 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_has_active_partials(mt32emu_const_context context);
548 MT32EMU_EXPORT mt32emu_boolean MT32EMU_C_CALL mt32emu_is_active(mt32emu_const_context context);
551 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_get_partial_count(mt32emu_const_context context);
558 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_get_part_states(mt32emu_const_context context);
566 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_get_partial_states(mt32emu_const_context context, mt32emu_bit8u *partial_states);
574 MT32EMU_EXPORT mt32emu_bit32u MT32EMU_C_CALL mt32emu_get_playing_notes(mt32emu_const_context context, mt32emu_bit8u part_number, mt32emu_bit8u *keys, mt32emu_bit8u *velocities);
582 MT32EMU_EXPORT const
char * MT32EMU_C_CALL mt32emu_get_patch_name(mt32emu_const_context context, mt32emu_bit8u part_number);
592 MT32EMU_EXPORT_V(2.7) mt32emu_boolean MT32EMU_C_CALL mt32emu_get_sound_group_name(mt32emu_const_context context,
char *sound_group_name, mt32emu_bit8u timbre_group, mt32emu_bit8u timbre_number);
601 MT32EMU_EXPORT_V(2.7) mt32emu_boolean MT32EMU_C_CALL mt32emu_get_sound_name(mt32emu_const_context context,
char *sound_name, mt32emu_bit8u timbreGroup, mt32emu_bit8u timbreNumber);
604 MT32EMU_EXPORT
void MT32EMU_C_CALL mt32emu_read_memory(mt32emu_const_context context, mt32emu_bit32u addr, mt32emu_bit32u len, mt32emu_bit8u *data);
616 MT32EMU_EXPORT_V(2.6) mt32emu_boolean MT32EMU_C_CALL mt32emu_get_display_state(mt32emu_const_context context,
char *target_buffer, const mt32emu_boolean narrow_lcd);
623 MT32EMU_EXPORT_V(2.6)
void MT32EMU_C_CALL mt32emu_set_main_display_mode(mt32emu_const_context context);
631 MT32EMU_EXPORT_V(2.6)
void MT32EMU_C_CALL mt32emu_set_display_compatibility(mt32emu_const_context context, mt32emu_boolean old_mt32_compatibility_enabled);
633 MT32EMU_EXPORT_V(2.6) mt32emu_boolean MT32EMU_C_CALL mt32emu_is_display_old_mt32_compatible(mt32emu_const_context context);
638 MT32EMU_EXPORT_V(2.6) mt32emu_boolean MT32EMU_C_CALL mt32emu_is_default_display_old_mt32_compatible(mt32emu_const_context context);
Definition: c_types.h:106
Definition: c_types.h:205
Definition: c_types.h:427
Definition: c_types.h:237