36#ifndef __LIBDRAGON_AUDIO_XM64_H
37#define __LIBDRAGON_AUDIO_XM64_H
48typedef struct xm_context_s xm_context_t;
60typedef struct xm64player_s {
70 int patidx, row, tick;
FILE * fh
open handle of XM64 file
Definition xm64.h:64
xm_context_t * ctx
libxm context
Definition xm64.h:61
int first_ch
first channel used in the mixer
Definition xm64.h:65
void xm64player_open(xm64player_t *player, const char *fn)
Open a XM64 module file and prepare for playback.
Definition xm64.c:101
int xm64player_num_channels(xm64player_t *player)
Get the number of channels in the XM64 file.
Definition xm64.c:174
void xm64player_set_loop(xm64player_t *player, bool loop)
Configure a XM64 file for looping.
Definition xm64.c:178
void xm64player_play(xm64player_t *player, int first_ch)
Start playing the XM64 module.
Definition xm64.c:182
void xm64player_set_effect_callback(xm64player_t *player, void(*cb)(void *, uint8_t, uint8_t, uint8_t), void *ctx)
Set a custom effect callback to allow music synchronization.
Definition xm64.c:241
void xm64player_set_vol(xm64player_t *player, float volume)
Change the volume of the player.
Definition xm64.c:235
void xm64player_seek(xm64player_t *player, int patidx, int row, int tick)
Seek to a specific position of the XM module.
Definition xm64.c:225
bool looping
true if the XM is configured to loop
Definition xm64.h:68
void xm64player_close(xm64player_t *player)
Close and deallocate the XM64 player.
Definition xm64.c:245
bool playing
playing flag
Definition xm64.h:66
int nwaves
number of waves (XM "samples")
Definition xm64.h:63
void xm64player_tell(xm64player_t *player, int *patidx, int *row, float *secs)
Read the current position of the XM module.
Definition xm64.c:210
bool stop_requested
user requested stop playing
Definition xm64.h:67
waveform_t * waves
array of all waveforms (one per XM "sample")
Definition xm64.h:62
void xm64player_stop(xm64player_t *player)
Stop XM playback.
Definition xm64.c:205
Player of a .XM64 file.
Definition xm64.h:60