diff frontend/mikmodux.c @ 16:e5529b6e3b1c

Inistal commit of the Cheesy Mod Player (tm)
author darius
date Thu, 23 Apr 1998 07:35:49 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/frontend/mikmodux.c	Thu Apr 23 07:35:49 1998 +0000
@@ -0,0 +1,101 @@
+/*
+ * Basic mod player. Just takes the name of the mod to play
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <fnmatch.h>
+#include <signal.h>
+#include "mikmod.h"
+#include "mikmodux.h"
+#include "mmio.h"
+
+
+int 
+main(int argc, char *argv[])
+{
+    static          BOOL
+                    cfg_extspd = 1,		/* Extended Speed enable */
+                    cfg_panning = 1,	/* DMP panning enable (8xx effects) */
+                    cfg_loop = 0;		/* auto song-looping disable */
+    int
+                    cfg_maxchn = 64, c;
+
+    UNIMOD         *mf = NULL;
+
+    if (argc != 2) {
+		printf("Usage is mikmod <mod name>\n");
+		exit(1);
+    }
+
+	init_mikmod();
+
+    if ((mf = MikMod_LoadSong(argv[1], cfg_maxchn)) != NULL) {
+		mf->extspd = cfg_extspd;
+		mf->panflag = cfg_panning;
+		mf->loop = cfg_loop;
+
+		Player_Start(mf);
+
+		/*
+		 * set the number of voices to use.. you could add extra channels
+		 * here (e.g. md_numchn=mf->numchn+4; ) to use for your own
+		 * soundeffects:
+		 */
+
+		while (Player_Active()) {	/* if we have a quit signal, exit
+									 * loop */
+			MikMod_Update();
+
+			usleep(500);
+		}
+
+		Player_Stop();		/* stop playing */
+		MikMod_FreeSong(mf);	/* and free the module */
+    } else {
+		/* didn't work -> exit with errormsg. */
+		printf("MikMod Error\n");
+    }
+
+    MikMod_Exit();
+}
+
+void
+init_mikmod(void)
+{
+    /*
+     * Initialize soundcard parameters.. you _have_ to do this before calling
+     * MD_Init(), and it's illegal to change them after you've called
+     * MD_Init()
+     */
+
+    md_mixfreq = 44100;		/* standard mixing freq */
+    md_dmabufsize = 32768;	/* standard dma buf size (max 32000) */
+    md_device = 0;			/* standard device: autodetect */
+    md_volume = 96;			/* driver volume (max 128) */
+    md_musicvolume = 128;	/* music volume (max 128) */
+    md_sndfxvolume = 128;	/* sound effects volume (max 128) */
+    md_pansep = 128;		/* panning separation (0 = mono, 128 = full
+							 * stereo) */
+    /* md_stereodelay  = 10;               /* Stereo Delay (max 15) */
+    md_reverb = 0;			/* Reverb (max 15) */
+    md_mode =
+	DMODE_16BITS |
+	DMODE_STEREO |
+	DMODE_SOFT_MUSIC;		/* default mixing mode */
+
+    /* Register the loaders we want to use..  */
+    MikMod_RegisterAllLoaders();
+
+    /* Register the drivers we want to use: */
+    MikMod_RegisterAllDrivers();
+
+    MikMod_RegisterDriver(drv_wav);
+    MikMod_RegisterDriver(drv_raw);
+    MikMod_RegisterDriver(drv_nos);
+
+    MikMod_Init();
+
+}