9 static void update_callback(void);
10 static void MikMod_RegisterAllDrivers(void);
11 static void MikMod_RegisterAllLoaders(void);
17 static int initialized;
21 MikMod_RegisterAllDrivers();
22 MikMod_RegisterAllLoaders();
25 md_mode |= DMODE_SOFT_MUSIC | DMODE_16BITS | DMODE_STEREO | DMODE_INTERP;
26 if(MikMod_Init("") != 0) {
27 fprintf(stderr, "mikmod init failed: %s\n",
28 MikMod_strerror(MikMod_errno));
34 md_dmabufsize = 20000;
35 md_mode = DMODE_STEREO | DMODE_16BITS | DMODE_INTERP;
38 MD_RegisterPlayer(update_callback);
41 fprintf(stderr, "mikmod init failed: %s\n", myerr);
44 printf("using mikmod driver %s\n", md_driver->Name);
45 printf(" %d bits, %s, %s mixing at %d Hz\n", md_mode & DMODE_16BITS ? 16 : 8,
46 md_mode & DMODE_STEREO ? "stereo" : "mono",
47 md_mode & DMODE_INTERP ? "interpolated" : "normal",
55 int music_open(const char *fname)
65 if(!(mod = Player_Load(fname, 64, 0))) {
66 fprintf(stderr, "failed to load music: %s: %s\n", fname,
67 MikMod_strerror(MikMod_errno));
71 if(!(mod = ML_LoadFN((const signed char*)fname))) {
72 fprintf(stderr, "failed to load music: %s: %s\n", fname, myerr);
77 md_numchn = mod->numchn;
78 printf("opened module %s (%d channels)\n", fname, md_numchn);
83 void music_close(void)
86 printf("shutting down music playback\n");
106 void music_stop(void)
115 void music_update(void)
118 if(Player_Active()) {
127 static void update_callback(void)
133 static void MikMod_RegisterAllDrivers(void)
135 MD_RegisterDriver(&drv_nos);
136 MD_RegisterDriver(&drv_ss);
137 MD_RegisterDriver(&drv_sb);
138 MD_RegisterDriver(&drv_gus);
141 static void MikMod_RegisterAllLoaders(void)
143 ML_RegisterLoader(&load_m15);
144 ML_RegisterLoader(&load_mod);
145 ML_RegisterLoader(&load_mtm);
146 ML_RegisterLoader(&load_s3m);
147 ML_RegisterLoader(&load_stm);
148 ML_RegisterLoader(&load_ult);
149 ML_RegisterLoader(&load_uni);
150 ML_RegisterLoader(&load_xm);