#include <stdlib.h>
#include "music.h"
#include "mikmod.h"
+#include "logger.h"
static void update_callback(void);
static int init(void)
{
+ md_mixfreq = 44100;
+ md_dmabufsize = 20000;
+ md_mode = DMODE_STEREO | DMODE_16BITS | DMODE_INTERP;
+ md_device = 0;
+
+ ML_RegisterLoader(&load_m15);
ML_RegisterLoader(&load_mod);
+ ML_RegisterLoader(&load_mtm);
ML_RegisterLoader(&load_s3m);
+ ML_RegisterLoader(&load_stm);
+ ML_RegisterLoader(&load_ult);
+ ML_RegisterLoader(&load_uni);
ML_RegisterLoader(&load_xm);
MD_RegisterDriver(&drv_nos);
MD_RegisterDriver(&drv_sb);
MD_RegisterDriver(&drv_gus);
- MD_RegisterPlayer(&update_callback);
+ MD_RegisterPlayer(update_callback);
- /*md_mode |= DMODE_INTERP;*/
if(!MD_Init()) {
- fprintf(stderr, "mikmod init failed: %s\n", myerr);
+ printlog("mikmod init failed: %s\n", myerr);
return -1;
}
- printf("using mikmod driver %s\n", md_driver->Name);
- printf(" %d bits, %s, %s mixing at %d Hz\n", md_mode & DMODE_16BITS ? 16 : 8,
+ printlog("using mikmod driver %s\n", md_driver->Name);
+ printlog(" %d bits, %s, %s mixing at %d Hz\n", md_mode & DMODE_16BITS ? 16 : 8,
md_mode & DMODE_STEREO ? "stereo" : "mono",
md_mode & DMODE_INTERP ? "interpolated" : "normal",
md_mixfreq);
}
if(!(mod = ML_LoadFN((const signed char*)fname))) {
- fprintf(stderr, "failed to load music: %s: %s\n", fname, myerr);
+ printlog("failed to load music: %s: %s\n", fname, myerr);
return -1;
}
+
+ MP_Init(mod);
md_numchn = mod->numchn;
+ printlog("opened module %s (%d channels)\n", fname, md_numchn);
return 0;
}
void music_close(void)
{
if(mod) {
+ printlog("shutting down music playback\n");
music_stop();
ML_Free(mod);
mod = 0;