DOS logger now redirects stdout/stderr instead of providing a new
[dosdemo] / src / dos / music.c
index 5ed6b48..5f3b84a 100644 (file)
@@ -9,8 +9,18 @@ static int initialized;
 
 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);
@@ -18,9 +28,8 @@ static int init(void)
        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);
                return -1;
@@ -48,13 +57,17 @@ int music_open(const char *fname)
                fprintf(stderr, "failed to load music: %s: %s\n", fname, myerr);
                return -1;
        }
+
+       MP_Init(mod);
        md_numchn = mod->numchn;
+       printf("opened module %s (%d channels)\n", fname, md_numchn);
        return 0;
 }
 
 void music_close(void)
 {
        if(mod) {
+               printf("shutting down music playback\n");
                music_stop();
                ML_Free(mod);
                mod = 0;
@@ -78,4 +91,6 @@ void music_update(void)
 
 static void update_callback(void)
 {
+       MP_HandleTick();
+       MD_SetBPM(mp_bpm);
 }