libopenmpt 0.7.6+release
cross-platform C++ and C library to decode tracked music files
libopenmpt.h File Reference
#include "libopenmpt_config.h"
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Classes

struct  openmpt_stream_callbacks
 Stream callbacks. More...
 
struct  openmpt_module_initial_ctl
 

Macros

#define OPENMPT_STRING_LIBRARY_VERSION   LIBOPENMPT_DEPRECATED_STRING( "library_version" )
 
#define OPENMPT_STRING_LIBRARY_FEATURES   LIBOPENMPT_DEPRECATED_STRING( "library_features" )
 
#define OPENMPT_STRING_CORE_VERSION   LIBOPENMPT_DEPRECATED_STRING( "core_version" )
 
#define OPENMPT_STRING_BUILD   LIBOPENMPT_DEPRECATED_STRING( "build" )
 
#define OPENMPT_STRING_CREDITS   LIBOPENMPT_DEPRECATED_STRING( "credits" )
 
#define OPENMPT_STRING_CONTACT   LIBOPENMPT_DEPRECATED_STRING( "contact" )
 
#define OPENMPT_STRING_LICENSE   LIBOPENMPT_DEPRECATED_STRING( "license" )
 
#define OPENMPT_STREAM_SEEK_SET   0
 
#define OPENMPT_STREAM_SEEK_CUR   1
 
#define OPENMPT_STREAM_SEEK_END   2
 
#define OPENMPT_ERROR_OK   0
 
#define OPENMPT_ERROR_BASE   256
 
#define OPENMPT_ERROR_UNKNOWN   ( OPENMPT_ERROR_BASE + 1 )
 
#define OPENMPT_ERROR_EXCEPTION   ( OPENMPT_ERROR_BASE + 11 )
 
#define OPENMPT_ERROR_OUT_OF_MEMORY   ( OPENMPT_ERROR_BASE + 21 )
 
#define OPENMPT_ERROR_RUNTIME   ( OPENMPT_ERROR_BASE + 30 )
 
#define OPENMPT_ERROR_RANGE   ( OPENMPT_ERROR_BASE + 31 )
 
#define OPENMPT_ERROR_OVERFLOW   ( OPENMPT_ERROR_BASE + 32 )
 
#define OPENMPT_ERROR_UNDERFLOW   ( OPENMPT_ERROR_BASE + 33 )
 
#define OPENMPT_ERROR_LOGIC   ( OPENMPT_ERROR_BASE + 40 )
 
#define OPENMPT_ERROR_DOMAIN   ( OPENMPT_ERROR_BASE + 41 )
 
#define OPENMPT_ERROR_LENGTH   ( OPENMPT_ERROR_BASE + 42 )
 
#define OPENMPT_ERROR_OUT_OF_RANGE   ( OPENMPT_ERROR_BASE + 43 )
 
#define OPENMPT_ERROR_INVALID_ARGUMENT   ( OPENMPT_ERROR_BASE + 44 )
 
#define OPENMPT_ERROR_GENERAL   ( OPENMPT_ERROR_BASE + 101 )
 
#define OPENMPT_ERROR_INVALID_MODULE_POINTER   ( OPENMPT_ERROR_BASE + 102 )
 
#define OPENMPT_ERROR_ARGUMENT_NULL_POINTER   ( OPENMPT_ERROR_BASE + 103 )
 
#define OPENMPT_ERROR_FUNC_RESULT_NONE   0
 
#define OPENMPT_ERROR_FUNC_RESULT_LOG   ( 1 << 0 )
 
#define OPENMPT_ERROR_FUNC_RESULT_STORE   ( 1 << 1 )
 
#define OPENMPT_ERROR_FUNC_RESULT_DEFAULT   ( OPENMPT_ERROR_FUNC_RESULT_LOG | OPENMPT_ERROR_FUNC_RESULT_STORE )
 
#define OPENMPT_PROBE_FILE_HEADER_FLAGS_MODULES   0x1ull
 
#define OPENMPT_PROBE_FILE_HEADER_FLAGS_CONTAINERS   0x2ull
 
#define OPENMPT_PROBE_FILE_HEADER_FLAGS_DEFAULT   ( OPENMPT_PROBE_FILE_HEADER_FLAGS_MODULES | OPENMPT_PROBE_FILE_HEADER_FLAGS_CONTAINERS )
 
#define OPENMPT_PROBE_FILE_HEADER_FLAGS_NONE   0x0ull
 
#define OPENMPT_PROBE_FILE_HEADER_RESULT_SUCCESS   1
 
#define OPENMPT_PROBE_FILE_HEADER_RESULT_FAILURE   0
 
#define OPENMPT_PROBE_FILE_HEADER_RESULT_WANTMOREDATA   (-1)
 
#define OPENMPT_PROBE_FILE_HEADER_RESULT_ERROR   (-255)
 
#define OPENMPT_MODULE_RENDER_MASTERGAIN_MILLIBEL   1
 Master Gain. More...
 
#define OPENMPT_MODULE_RENDER_STEREOSEPARATION_PERCENT   2
 Stereo Separation. More...
 
#define OPENMPT_MODULE_RENDER_INTERPOLATIONFILTER_LENGTH   3
 Interpolation Filter. More...
 
#define OPENMPT_MODULE_RENDER_VOLUMERAMPING_STRENGTH   4
 Volume Ramping Strength. More...
 
#define OPENMPT_MODULE_COMMAND_NOTE   0
 
#define OPENMPT_MODULE_COMMAND_INSTRUMENT   1
 
#define OPENMPT_MODULE_COMMAND_VOLUMEEFFECT   2
 
#define OPENMPT_MODULE_COMMAND_EFFECT   3
 
#define OPENMPT_MODULE_COMMAND_VOLUME   4
 
#define OPENMPT_MODULE_COMMAND_PARAMETER   5
 

Typedefs

typedef size_t(* openmpt_stream_read_func) (void *stream, void *dst, size_t bytes)
 Read bytes from stream. More...
 
typedef int(* openmpt_stream_seek_func) (void *stream, int64_t offset, int whence)
 Seek stream position. More...
 
typedef int64_t(* openmpt_stream_tell_func) (void *stream)
 Tell stream position. More...
 
typedef struct openmpt_stream_callbacks openmpt_stream_callbacks
 Stream callbacks. More...
 
typedef void(* openmpt_log_func) (const char *message, void *user)
 Logging function. More...
 
typedef int(* openmpt_error_func) (int error, void *user)
 Error function. More...
 
typedef struct openmpt_module openmpt_module
 Opaque type representing a libopenmpt module. More...
 
typedef struct openmpt_module_initial_ctl openmpt_module_initial_ctl
 

Functions

uint32_t openmpt_get_library_version (void)
 Get the libopenmpt version number. More...
 
uint32_t openmpt_get_core_version (void)
 Get the core version number. More...
 
void openmpt_free_string (const char *str)
 Free a string returned by libopenmpt. More...
 
const char * openmpt_get_string (const char *key)
 Get library related metadata. More...
 
const char * openmpt_get_supported_extensions (void)
 Get a list of supported file extensions. More...
 
int openmpt_is_extension_supported (const char *extension)
 Query whether a file extension is supported. More...
 
void openmpt_log_func_default (const char *message, void *user)
 Default logging function. More...
 
void openmpt_log_func_silent (const char *message, void *user)
 Silent logging function. More...
 
int openmpt_error_is_transient (int error)
 Check whether the error is transient. More...
 
const char * openmpt_error_string (int error)
 Convert error code to text. More...
 
int openmpt_error_func_default (int error, void *user)
 Default error function. More...
 
int openmpt_error_func_log (int error, void *user)
 Log error function. More...
 
int openmpt_error_func_store (int error, void *user)
 Store error function. More...
 
int openmpt_error_func_ignore (int error, void *user)
 Ignore error function. More...
 
int openmpt_error_func_errno (int error, void *user)
 Errno error function. More...
 
void * openmpt_error_func_errno_userdata (int *error)
 User pointer for openmpt_error_func_errno. More...
 
double openmpt_could_open_probability (openmpt_stream_callbacks stream_callbacks, void *stream, double effort, openmpt_log_func logfunc, void *user)
 Roughly scan the input stream to find out whether libopenmpt might be able to open it. More...
 
double openmpt_could_open_propability (openmpt_stream_callbacks stream_callbacks, void *stream, double effort, openmpt_log_func logfunc, void *user)
 Roughly scan the input stream to find out whether libopenmpt might be able to open it. More...
 
double openmpt_could_open_probability2 (openmpt_stream_callbacks stream_callbacks, void *stream, double effort, openmpt_log_func logfunc, void *loguser, openmpt_error_func errfunc, void *erruser, int *error, const char **error_message)
 Roughly scan the input stream to find out whether libopenmpt might be able to open it. More...
 
size_t openmpt_probe_file_header_get_recommended_size (void)
 Get recommended header size for successfull format probing. More...
 
int openmpt_probe_file_header (uint64_t flags, const void *data, size_t size, uint64_t filesize, openmpt_log_func logfunc, void *loguser, openmpt_error_func errfunc, void *erruser, int *error, const char **error_message)
 Probe the provided bytes from the beginning of a file for supported file format headers to find out whether libopenmpt might be able to open it. More...
 
int openmpt_probe_file_header_without_filesize (uint64_t flags, const void *data, size_t size, openmpt_log_func logfunc, void *loguser, openmpt_error_func errfunc, void *erruser, int *error, const char **error_message)
 Probe the provided bytes from the beginning of a file for supported file format headers to find out whether libopenmpt might be able to open it. More...
 
int openmpt_probe_file_header_from_stream (uint64_t flags, openmpt_stream_callbacks stream_callbacks, void *stream, openmpt_log_func logfunc, void *loguser, openmpt_error_func errfunc, void *erruser, int *error, const char **error_message)
 Probe the provided bytes from the beginning of a file for supported file format headers to find out whether libopenmpt might be able to open it. More...
 
openmpt_moduleopenmpt_module_create (openmpt_stream_callbacks stream_callbacks, void *stream, openmpt_log_func logfunc, void *loguser, const openmpt_module_initial_ctl *ctls)
 Construct an openmpt_module. More...
 
openmpt_moduleopenmpt_module_create2 (openmpt_stream_callbacks stream_callbacks, void *stream, openmpt_log_func logfunc, void *loguser, openmpt_error_func errfunc, void *erruser, int *error, const char **error_message, const openmpt_module_initial_ctl *ctls)
 Construct an openmpt_module. More...
 
openmpt_moduleopenmpt_module_create_from_memory (const void *filedata, size_t filesize, openmpt_log_func logfunc, void *loguser, const openmpt_module_initial_ctl *ctls)
 Construct an openmpt_module. More...
 
openmpt_moduleopenmpt_module_create_from_memory2 (const void *filedata, size_t filesize, openmpt_log_func logfunc, void *loguser, openmpt_error_func errfunc, void *erruser, int *error, const char **error_message, const openmpt_module_initial_ctl *ctls)
 Construct an openmpt_module. More...
 
void openmpt_module_destroy (openmpt_module *mod)
 Unload a previously created openmpt_module from memory. More...
 
void openmpt_module_set_log_func (openmpt_module *mod, openmpt_log_func logfunc, void *loguser)
 Set logging function. More...
 
void openmpt_module_set_error_func (openmpt_module *mod, openmpt_error_func errfunc, void *erruser)
 Set error function. More...
 
int openmpt_module_error_get_last (openmpt_module *mod)
 Get last error. More...
 
const char * openmpt_module_error_get_last_message (openmpt_module *mod)
 Get last error message. More...
 
void openmpt_module_error_set_last (openmpt_module *mod, int error)
 Set last error. More...
 
void openmpt_module_error_clear (openmpt_module *mod)
 Clear last error. More...
 
int openmpt_module_select_subsong (openmpt_module *mod, int32_t subsong)
 Select a sub-song from a multi-song module. More...
 
int32_t openmpt_module_get_selected_subsong (openmpt_module *mod)
 Get currently selected sub-song from a multi-song module. More...
 
int openmpt_module_set_repeat_count (openmpt_module *mod, int32_t repeat_count)
 Set Repeat Count. More...
 
int32_t openmpt_module_get_repeat_count (openmpt_module *mod)
 Get Repeat Count. More...
 
double openmpt_module_get_duration_seconds (openmpt_module *mod)
 approximate song duration More...
 
double openmpt_module_set_position_seconds (openmpt_module *mod, double seconds)
 Set approximate current song position. More...
 
double openmpt_module_get_position_seconds (openmpt_module *mod)
 Get current song position. More...
 
double openmpt_module_set_position_order_row (openmpt_module *mod, int32_t order, int32_t row)
 Set approximate current song position. More...
 
int openmpt_module_get_render_param (openmpt_module *mod, int param, int32_t *value)
 Get render parameter. More...
 
int openmpt_module_set_render_param (openmpt_module *mod, int param, int32_t value)
 Set render parameter. More...
 
size_t openmpt_module_read_mono (openmpt_module *mod, int32_t samplerate, size_t count, int16_t *mono)
 Render audio data. More...
 
size_t openmpt_module_read_stereo (openmpt_module *mod, int32_t samplerate, size_t count, int16_t *left, int16_t *right)
 Render audio data. More...
 
size_t openmpt_module_read_quad (openmpt_module *mod, int32_t samplerate, size_t count, int16_t *left, int16_t *right, int16_t *rear_left, int16_t *rear_right)
 Render audio data. More...
 
size_t openmpt_module_read_float_mono (openmpt_module *mod, int32_t samplerate, size_t count, float *mono)
 Render audio data. More...
 
size_t openmpt_module_read_float_stereo (openmpt_module *mod, int32_t samplerate, size_t count, float *left, float *right)
 Render audio data. More...
 
size_t openmpt_module_read_float_quad (openmpt_module *mod, int32_t samplerate, size_t count, float *left, float *right, float *rear_left, float *rear_right)
 Render audio data. More...
 
size_t openmpt_module_read_interleaved_stereo (openmpt_module *mod, int32_t samplerate, size_t count, int16_t *interleaved_stereo)
 Render audio data. More...
 
size_t openmpt_module_read_interleaved_quad (openmpt_module *mod, int32_t samplerate, size_t count, int16_t *interleaved_quad)
 Render audio data. More...
 
size_t openmpt_module_read_interleaved_float_stereo (openmpt_module *mod, int32_t samplerate, size_t count, float *interleaved_stereo)
 Render audio data. More...
 
size_t openmpt_module_read_interleaved_float_quad (openmpt_module *mod, int32_t samplerate, size_t count, float *interleaved_quad)
 Render audio data. More...
 
const char * openmpt_module_get_metadata_keys (openmpt_module *mod)
 Get the list of supported metadata item keys. More...
 
const char * openmpt_module_get_metadata (openmpt_module *mod, const char *key)
 Get a metadata item value. More...
 
double openmpt_module_get_current_estimated_bpm (openmpt_module *mod)
 
int32_t openmpt_module_get_current_speed (openmpt_module *mod)
 Get the current speed. More...
 
int32_t openmpt_module_get_current_tempo (openmpt_module *mod)
 Get the current tempo. More...
 
double openmpt_module_get_current_tempo2 (openmpt_module *mod)
 Get the current tempo. More...
 
int32_t openmpt_module_get_current_order (openmpt_module *mod)
 Get the current order. More...
 
int32_t openmpt_module_get_current_pattern (openmpt_module *mod)
 Get the current pattern. More...
 
int32_t openmpt_module_get_current_row (openmpt_module *mod)
 Get the current row. More...
 
int32_t openmpt_module_get_current_playing_channels (openmpt_module *mod)
 Get the current amount of playing channels. More...
 
float openmpt_module_get_current_channel_vu_mono (openmpt_module *mod, int32_t channel)
 Get an approximate indication of the channel volume. More...
 
float openmpt_module_get_current_channel_vu_left (openmpt_module *mod, int32_t channel)
 Get an approximate indication of the channel volume on the front-left speaker. More...
 
float openmpt_module_get_current_channel_vu_right (openmpt_module *mod, int32_t channel)
 Get an approximate indication of the channel volume on the front-right speaker. More...
 
float openmpt_module_get_current_channel_vu_rear_left (openmpt_module *mod, int32_t channel)
 Get an approximate indication of the channel volume on the rear-left speaker. More...
 
float openmpt_module_get_current_channel_vu_rear_right (openmpt_module *mod, int32_t channel)
 Get an approximate indication of the channel volume on the rear-right speaker. More...
 
int32_t openmpt_module_get_num_subsongs (openmpt_module *mod)
 Get the number of sub-songs. More...
 
int32_t openmpt_module_get_num_channels (openmpt_module *mod)
 Get the number of pattern channels. More...
 
int32_t openmpt_module_get_num_orders (openmpt_module *mod)
 Get the number of orders. More...
 
int32_t openmpt_module_get_num_patterns (openmpt_module *mod)
 Get the number of patterns. More...
 
int32_t openmpt_module_get_num_instruments (openmpt_module *mod)
 Get the number of instruments. More...
 
int32_t openmpt_module_get_num_samples (openmpt_module *mod)
 Get the number of samples. More...
 
const char * openmpt_module_get_subsong_name (openmpt_module *mod, int32_t index)
 Get a sub-song name. More...
 
const char * openmpt_module_get_channel_name (openmpt_module *mod, int32_t index)
 Get a channel name. More...
 
const char * openmpt_module_get_order_name (openmpt_module *mod, int32_t index)
 Get an order name. More...
 
const char * openmpt_module_get_pattern_name (openmpt_module *mod, int32_t index)
 Get a pattern name. More...
 
const char * openmpt_module_get_instrument_name (openmpt_module *mod, int32_t index)
 Get an instrument name. More...
 
const char * openmpt_module_get_sample_name (openmpt_module *mod, int32_t index)
 Get a sample name. More...
 
int32_t openmpt_module_get_order_pattern (openmpt_module *mod, int32_t order)
 Get pattern at order position. More...
 
int32_t openmpt_module_get_pattern_num_rows (openmpt_module *mod, int32_t pattern)
 Get the number of rows in a pattern. More...
 
uint8_t openmpt_module_get_pattern_row_channel_command (openmpt_module *mod, int32_t pattern, int32_t row, int32_t channel, int command)
 Get raw pattern content. More...
 
const char * openmpt_module_format_pattern_row_channel_command (openmpt_module *mod, int32_t pattern, int32_t row, int32_t channel, int command)
 Get formatted (human-readable) pattern content. More...
 
const char * openmpt_module_highlight_pattern_row_channel_command (openmpt_module *mod, int32_t pattern, int32_t row, int32_t channel, int command)
 Get highlighting information for formatted pattern content. More...
 
const char * openmpt_module_format_pattern_row_channel (openmpt_module *mod, int32_t pattern, int32_t row, int32_t channel, size_t width, int pad)
 Get formatted (human-readable) pattern content. More...
 
const char * openmpt_module_highlight_pattern_row_channel (openmpt_module *mod, int32_t pattern, int32_t row, int32_t channel, size_t width, int pad)
 Get highlighting information for formatted pattern content. More...
 
const char * openmpt_module_get_ctls (openmpt_module *mod)
 Retrieve supported ctl keys. More...
 
const char * openmpt_module_ctl_get (openmpt_module *mod, const char *ctl)
 Get current ctl value. More...
 
int openmpt_module_ctl_get_boolean (openmpt_module *mod, const char *ctl)
 Get current ctl boolean value. More...
 
int64_t openmpt_module_ctl_get_integer (openmpt_module *mod, const char *ctl)
 Get current ctl integer value. More...
 
double openmpt_module_ctl_get_floatingpoint (openmpt_module *mod, const char *ctl)
 Get current ctl floatingpoint value. More...
 
const char * openmpt_module_ctl_get_text (openmpt_module *mod, const char *ctl)
 Get current ctl string value. More...
 
int openmpt_module_ctl_set (openmpt_module *mod, const char *ctl, const char *value)
 Set ctl value. More...
 
int openmpt_module_ctl_set_boolean (openmpt_module *mod, const char *ctl, int value)
 Set ctl boolean value. More...
 
int openmpt_module_ctl_set_integer (openmpt_module *mod, const char *ctl, int64_t value)
 Set ctl integer value. More...
 
int openmpt_module_ctl_set_floatingpoint (openmpt_module *mod, const char *ctl, double value)
 Set ctl floatingpoint value. More...
 
int openmpt_module_ctl_set_text (openmpt_module *mod, const char *ctl, const char *value)
 Set ctl string value. More...