X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmusic.c;h=fe8ed6d940786a8565bfd98077d9f1bb30d768cc;hb=HEAD;hp=8af61545a80b52198d2caf0b1cb33904490cc1a9;hpb=a6290d5ab0d369d6807bad92d05a4f38560bf111;p=dosdemo diff --git a/src/music.c b/src/music.c deleted file mode 100644 index 8af6154..0000000 --- a/src/music.c +++ /dev/null @@ -1,152 +0,0 @@ -#include -#include "music.h" -#include "mikmod.h" - -#ifdef __WATCOMC__ -#define USE_OLDMIK -typedef UNIMOD MODULE; - -static void update_callback(void); -static void MikMod_RegisterAllDrivers(void); -static void MikMod_RegisterAllLoaders(void); -#else -#define USE_NEWMIK -#endif - -static MODULE *mod; -static int initialized; - -static int init(void) -{ - MikMod_RegisterAllDrivers(); - MikMod_RegisterAllLoaders(); - -#ifdef USE_NEWMIK - md_mode |= DMODE_SOFT_MUSIC | DMODE_16BITS | DMODE_STEREO | DMODE_INTERP; - if(MikMod_Init("") != 0) { - fprintf(stderr, "mikmod init failed: %s\n", - MikMod_strerror(MikMod_errno)); - return -1; - } - -#else - md_mixfreq = 44100; - md_dmabufsize = 20000; - md_mode = DMODE_STEREO | DMODE_16BITS | DMODE_INTERP; - md_device = 0; - - MD_RegisterPlayer(update_callback); - - if(!MD_Init()) { - fprintf(stderr, "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, - md_mode & DMODE_STEREO ? "stereo" : "mono", - md_mode & DMODE_INTERP ? "interpolated" : "normal", - md_mixfreq); - - atexit(MD_Exit); -#endif - return 0; -} - -int music_open(const char *fname) -{ - if(!initialized) { - if(init() == -1) { - return -1; - } - initialized = 1; - } - -#ifdef USE_NEWMIK - if(!(mod = Player_Load(fname, 64, 0))) { - fprintf(stderr, "failed to load music: %s: %s\n", fname, - MikMod_strerror(MikMod_errno)); - return -1; - } -#else - if(!(mod = ML_LoadFN((const signed 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); -#endif - return 0; -} - -void music_close(void) -{ - if(mod) { - printf("shutting down music playback\n"); - music_stop(); -#ifdef USE_NEWMIK - Player_Free(mod); -#else - ML_Free(mod); -#endif - mod = 0; - } -} - -void music_play(void) -{ -#ifdef USE_NEWMIK - Player_Start(mod); -#else - MD_PlayStart(); -#endif -} - -void music_stop(void) -{ -#ifdef USE_NEWMIK - Player_Stop(); -#else - MD_PlayStop(); -#endif -} - -void music_update(void) -{ -#ifdef USE_NEWMIK - if(Player_Active()) { - MikMod_Update(); - } -#else - MD_Update(); -#endif -} - -#ifdef USE_OLDMIK -static void update_callback(void) -{ - MP_HandleTick(); - MD_SetBPM(mp_bpm); -} - -static void MikMod_RegisterAllDrivers(void) -{ - MD_RegisterDriver(&drv_nos); - MD_RegisterDriver(&drv_ss); - MD_RegisterDriver(&drv_sb); - MD_RegisterDriver(&drv_gus); -} - -static void MikMod_RegisterAllLoaders(void) -{ - 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); -} -#endif