OSDN Git Service

attempted font system added
[proj16/16.git] / src / v2 / source / MAPED / MIKMOD.H
diff --git a/src/v2/source/MAPED/MIKMOD.H b/src/v2/source/MAPED/MIKMOD.H
deleted file mode 100644 (file)
index 0111ccb..0000000
+++ /dev/null
@@ -1,580 +0,0 @@
-#ifndef MIKMOD_H\r
-#define MIKMOD_H\r
-\r
-#include <stdio.h>\r
-#include "mtypes.h"                    /* include atomic mikmod types */\r
-\r
-\r
-#define mikbanner \\r
-"=======================================================================\n" \\r
-"MIKMOD v2.10 - Portable version -  Programmed by MikMak of HaRDCoDE '95\n" \\r
-"=======================================================================\n" \\r
-"This program is SHAREWARE - Read MIKMOD.TXT for more info\n" \\r
-"E-Mail : mikmak@stack.urc.tue.nl\n"\r
-\r
-\r
-/*\r
-       error variables:\r
-       ===============\r
-*/\r
-\r
-extern char *ERROR_ALLOC_STRUCT;\r
-extern char *ERROR_LOADING_PATTERN;\r
-extern char *ERROR_LOADING_TRACK;\r
-extern char *ERROR_LOADING_HEADER;\r
-extern char *ERROR_NOT_A_MODULE;\r
-extern char *ERROR_LOADING_SAMPLEINFO;\r
-extern char *ERROR_OUT_OF_HANDLES;\r
-extern char *ERROR_SAMPLE_TOO_BIG;\r
-extern char *myerr;\r
-\r
-\r
-\r
-#define _mm_rewind(x) _mm_fseek(x,0,SEEK_SET)\r
-int  _mm_fseek(FILE *stream,long offset,int whence);\r
-void _mm_setiobase(long iobase);\r
-long _mm_ftell(FILE *stream);\r
-\r
-\r
-extern SBYTE  _mm_read_SBYTE   (FILE *fp);\r
-extern UBYTE _mm_read_UBYTE  (FILE *fp);\r
-\r
-extern SWORD  _mm_read_M_SWORD (FILE *fp);\r
-extern SWORD  _mm_read_I_SWORD (FILE *fp);\r
-\r
-extern UWORD _mm_read_M_UWORD(FILE *fp);\r
-extern UWORD _mm_read_I_UWORD(FILE *fp);\r
-\r
-extern SLONG  _mm_read_M_SLONG (FILE *fp);\r
-extern SLONG  _mm_read_I_SLONG (FILE *fp);\r
-\r
-extern ULONG _mm_read_M_ULONG(FILE *fp);\r
-extern ULONG _mm_read_I_ULONG(FILE *fp);\r
-\r
-extern int _mm_read_str(char *str, int size, FILE *fp);\r
-\r
-extern int _mm_read_SBYTES    (SBYTE  *buffer, int number, FILE *fp);\r
-extern int _mm_read_UBYTES   (UBYTE *buffer, int number, FILE *fp);\r
-\r
-extern int _mm_read_M_SWORDS  (SWORD  *buffer, int number, FILE *fp);\r
-extern int _mm_read_I_SWORDS  (SWORD  *buffer, int number, FILE *fp);\r
-\r
-extern int _mm_read_M_UWORDS (UWORD *buffer, int number, FILE *fp);\r
-extern int _mm_read_I_UWORDS (UWORD *buffer, int number, FILE *fp);\r
-\r
-extern int _mm_read_M_SLONGS  (SLONG  *buffer, int number, FILE *fp);\r
-extern int _mm_read_I_SLONGS  (SLONG  *buffer, int number, FILE *fp);\r
-\r
-extern int _mm_read_M_ULONGS (ULONG *buffer, int number, FILE *fp);\r
-extern int _mm_read_I_ULONGS (ULONG *buffer, int number, FILE *fp);\r
-\r
-\r
-extern void _mm_write_SBYTE            (SBYTE data,FILE *fp);\r
-extern void _mm_write_UBYTE    (UBYTE data,FILE *fp);\r
-\r
-extern void _mm_write_M_SWORD  (SWORD data,FILE *fp);\r
-extern void _mm_write_I_SWORD  (SWORD data,FILE *fp);\r
-\r
-extern void _mm_write_M_UWORD  (UWORD data,FILE *fp);\r
-extern void _mm_write_I_UWORD  (UWORD data,FILE *fp);\r
-\r
-extern void _mm_write_M_SLONG  (SLONG data,FILE *fp);\r
-extern void _mm_write_I_SLONG  (SLONG data,FILE *fp);\r
-\r
-extern void _mm_write_M_ULONG  (ULONG data,FILE *fp);\r
-extern void _mm_write_I_ULONG  (ULONG data,FILE *fp);\r
-\r
-extern void _mm_write_SBYTES           (SBYTE *data,  int number,FILE *fp);\r
-extern void _mm_write_UBYTES   (UBYTE *data, int number,FILE *fp);\r
-\r
-extern void _mm_write_M_SWORDS (SWORD *data,  int number,FILE *fp);\r
-extern void _mm_write_I_SWORDS (SWORD *data,  int number,FILE *fp);\r
-\r
-extern void _mm_write_M_UWORDS (UWORD *data, int number,FILE *fp);\r
-extern void _mm_write_I_UWORDS (UWORD *data, int number,FILE *fp);\r
-\r
-extern void _mm_write_M_SLONGS (SLONG *data,  int number,FILE *fp);\r
-extern void _mm_write_I_SLONGS (SLONG *data,  int number,FILE *fp);\r
-\r
-extern void _mm_write_M_ULONGS (ULONG *data, int number,FILE *fp);\r
-extern void _mm_write_I_ULONGS (ULONG *data, int number,FILE *fp);\r
-\r
-\r
-/**************************************************************************\r
-****** Unitrack stuff: ****************************************************\r
-**************************************************************************/\r
-\r
-/*\r
-       prototypes:\r
-*/\r
-\r
-void   UniSetRow(UBYTE *t);\r
-UBYTE  UniGetByte(void);\r
-UBYTE  *UniFindRow(UBYTE *t,UWORD row);\r
-void           UniReset(void);\r
-void           UniWrite(UBYTE data);\r
-void           UniNewline(void);\r
-void   UniInstrument(UBYTE ins);\r
-void   UniNote(UBYTE note);\r
-void   UniPTEffect(UBYTE eff,UBYTE dat);\r
-UBYTE  *UniDup(void);\r
-void   UniSkipOpcode(UBYTE op);\r
-BOOL   UniInit(void);\r
-void   UniCleanup(void);\r
-UWORD   TrkLen(UBYTE *t);\r
-BOOL    MyCmp(UBYTE *a,UBYTE *b,UWORD l);\r
-\r
-/*\r
-       all known effects:\r
-*/\r
-\r
-enum {\r
-               UNI_NOTE=1,\r
-               UNI_INSTRUMENT,\r
-               UNI_PTEFFECT0,\r
-               UNI_PTEFFECT1,\r
-               UNI_PTEFFECT2,\r
-               UNI_PTEFFECT3,\r
-               UNI_PTEFFECT4,\r
-               UNI_PTEFFECT5,\r
-               UNI_PTEFFECT6,\r
-               UNI_PTEFFECT7,\r
-               UNI_PTEFFECT8,\r
-               UNI_PTEFFECT9,\r
-               UNI_PTEFFECTA,\r
-               UNI_PTEFFECTB,\r
-               UNI_PTEFFECTC,\r
-               UNI_PTEFFECTD,\r
-               UNI_PTEFFECTE,\r
-               UNI_PTEFFECTF,\r
-               UNI_S3MEFFECTA,\r
-               UNI_S3MEFFECTD,\r
-               UNI_S3MEFFECTE,\r
-               UNI_S3MEFFECTF,\r
-               UNI_S3MEFFECTI,\r
-               UNI_S3MEFFECTQ,\r
-               UNI_S3MEFFECTT,\r
-               UNI_XMEFFECTA,\r
-                UNI_XMEFFECTG,\r
-                UNI_XMEFFECTH,\r
-               UNI_XMEFFECTP\r
-};\r
-\r
-\r
-/**************************************************************************\r
-****** mikmod types: ******************************************************\r
-**************************************************************************/\r
-\r
-\r
-/*\r
-       Sample format flags:\r
-*/\r
-\r
-#define SF_16BITS       1\r
-#define SF_SIGNED      2\r
-#define SF_DELTA        4\r
-#define SF_BIG_ENDIAN  8\r
-#define SF_LOOP         16\r
-#define SF_BIDI         32\r
-#define SF_OWNPAN       64\r
-#define SF_REVERSE             128\r
-\r
-\r
-/*\r
-       Envelope flags:\r
-*/\r
-\r
-#define EF_ON           1\r
-#define EF_SUSTAIN      2\r
-#define EF_LOOP         4\r
-\r
-\r
-/*\r
-       Unimod flags\r
-*/\r
-\r
-#define UF_XMPERIODS    1               /* if set use XM periods/finetuning */\r
-#define UF_LINEAR       2               /* if set use LINEAR periods */\r
-\r
-\r
-typedef struct ENVPT{\r
-       SWORD pos;\r
-       SWORD val;\r
-} ENVPT;\r
-\r
-\r
-typedef struct SAMPLE{\r
-       UWORD c2spd;            /* finetune frequency */\r
-       SBYTE transpose;        /* transpose value */\r
-       UBYTE volume;           /* volume 0-64 */\r
-       UBYTE panning;          /* panning */\r
-       ULONG length;           /* length of sample (in samples!) */\r
-       ULONG loopstart;        /* repeat position (relative to start, in samples) */\r
-       ULONG loopend;          /* repeat end */\r
-       UWORD flags;            /* sample format */\r
-       ULONG seekpos;                  /* seek position in file */\r
-       char *samplename;       /* name of the sample */\r
-       SWORD handle;           /* sample handle */\r
-} SAMPLE;\r
-\r
-\r
-typedef struct INSTRUMENT{\r
-       UBYTE numsmp;\r
-       UBYTE samplenumber[96];\r
-\r
-       UBYTE volflg;           /* bit 0: on 1: sustain 2: loop */\r
-       UBYTE volpts;\r
-       UBYTE volsus;\r
-       UBYTE volbeg;\r
-       UBYTE volend;\r
-       ENVPT volenv[12];\r
-\r
-       UBYTE panflg;           /* bit 0: on 1: sustain 2: loop */\r
-       UBYTE panpts;\r
-       UBYTE pansus;\r
-       UBYTE panbeg;\r
-       UBYTE panend;\r
-       ENVPT panenv[12];\r
-\r
-       UBYTE vibtype;\r
-       UBYTE vibsweep;\r
-       UBYTE vibdepth;\r
-       UBYTE vibrate;\r
-\r
-       UWORD volfade;\r
-       char  *insname;\r
-       SAMPLE *samples;\r
-} INSTRUMENT;\r
-\r
-\r
-/*\r
-       MikMod UNImod types:\r
-       ====================\r
-*/\r
-\r
-typedef struct UNIMOD{\r
-       UBYTE           numchn;                 /* number of channels */\r
-       UWORD       numpos;         /* number of positions in this song */\r
-       UWORD           reppos;                 /* restart position */\r
-       UWORD       numpat;         /* number of patterns in this song */\r
-       UWORD       numtrk;         /* number of tracks */\r
-       UWORD       numins;         /* number of samples */\r
-       UBYTE       initspeed;      /* */\r
-       UBYTE       inittempo;      /* */\r
-       UBYTE       positions[256]; /* all positions */\r
-       UBYTE       panning[32];        /* 32 panning positions */\r
-       UBYTE       flags;          /* */\r
-       char       *songname;       /* name of the song */\r
-       char       *modtype;        /* string type of module */\r
-       char       *comment;        /* module comments */\r
-       INSTRUMENT *instruments;    /* all samples */\r
-       UWORD      *patterns;       /* array of PATTERN */\r
-       UWORD      *pattrows;       /* array of number of rows for each pattern */\r
-       UBYTE     **tracks;         /* array of pointers to tracks */\r
-} UNIMOD;\r
-\r
-\r
-/**************************************************************************\r
-****** Loader stuff: ******************************************************\r
-**************************************************************************/\r
-\r
-/*\r
-       loader structure:\r
-*/\r
-\r
-typedef struct LOADER{\r
-       struct LOADER *next;\r
-       char    *type;\r
-       char    *version;\r
-       BOOL    (*Init)(void);\r
-       BOOL    (*Test)(void);\r
-       BOOL    (*Load)(void);\r
-       void    (*Cleanup)(void);\r
-} LOADER;\r
-\r
-\r
-/*\r
-       public loader variables:\r
-*/\r
-\r
-extern UNIMOD of;\r
-extern FILE *modfp;\r
-extern UWORD finetune[16];\r
-\r
-\r
-/*\r
-       main loader prototypes:\r
-*/\r
-\r
-void   ML_InfoLoader(void);\r
-void   ML_RegisterLoader(LOADER *ldr);\r
-UNIMOD *ML_LoadFP(FILE *fp);\r
-UNIMOD *ML_LoadFN(char *filename);\r
-void   ML_Free(UNIMOD *mf);\r
-\r
-\r
-/*\r
-       other loader prototypes: (used by the loader modules)\r
-*/\r
-\r
-BOOL   InitTracks(void);\r
-void   AddTrack(UBYTE *tr);\r
-BOOL   ReadComment(UWORD len);\r
-BOOL   AllocPatterns(void);\r
-BOOL   AllocTracks(void);\r
-BOOL   AllocInstruments(void);\r
-BOOL   AllocSamples(INSTRUMENT *i);\r
-char    *DupStr(char *s,UWORD len);\r
-void   *MyMalloc(size_t size);\r
-void   *MyCalloc(size_t nitems,size_t size);\r
-\r
-\r
-/*\r
-       Declare external loaders:\r
-*/\r
-extern LOADER load_uni;\r
-extern LOADER load_mod;\r
-extern LOADER load_m15;\r
-extern LOADER load_mtm;\r
-extern LOADER load_s3m;\r
-extern LOADER load_stm;\r
-extern LOADER load_ult;\r
-extern LOADER load_xm;\r
-\r
-\r
-/**************************************************************************\r
-****** Wavload stuff: *****************************************************\r
-**************************************************************************/\r
-\r
-SAMPLE *MW_LoadWavFP(FILE *fp);\r
-SAMPLE *MW_LoadWavFN(char *filename);\r
-void MW_FreeWav(SAMPLE *si);\r
-\r
-\r
-/**************************************************************************\r
-****** Driver stuff: ******************************************************\r
-**************************************************************************/\r
-\r
-/*\r
-       max. number of handles a driver has to provide. (not strict)\r
-*/\r
-\r
-#define MAXSAMPLEHANDLES 128\r
-\r
-\r
-/*\r
-       possible mixing mode bits:\r
-*/\r
-\r
-#define DMODE_STEREO    1\r
-#define DMODE_16BITS    2\r
-#define DMODE_INTERP   4\r
-\r
-\r
-/*\r
-       driver structure:\r
-*/\r
-\r
-typedef struct DRIVER{\r
-       struct DRIVER *next;\r
-       char    *Name;\r
-       char    *Version;\r
-       BOOL    (*IsPresent)            (void);\r
-       SWORD   (*SampleLoad)           (FILE *fp,ULONG size,ULONG reppos,ULONG repend,UWORD flags);\r
-       void    (*SampleUnLoad)         (SWORD handle);\r
-       BOOL    (*Init)                 (void);\r
-       void    (*Exit)                 (void);\r
-       void    (*PlayStart)            (void);\r
-       void    (*PlayStop)             (void);\r
-       void    (*Update)               (void);\r
-       void    (*VoiceSetVolume)               (UBYTE voice,UBYTE vol);\r
-       void    (*VoiceSetFrequency)    (UBYTE voice,ULONG frq);\r
-       void    (*VoiceSetPanning)              (UBYTE voice,UBYTE pan);\r
-       void    (*VoicePlay)                    (UBYTE voice,SWORD handle,ULONG start,ULONG size,ULONG reppos,ULONG repend,UWORD flags);\r
-} DRIVER;\r
-\r
-\r
-/*\r
-       public driver variables:\r
-*/\r
-\r
-extern DRIVER *md_driver;\r
-extern UWORD md_device;\r
-extern UWORD md_mixfreq;\r
-extern UWORD md_dmabufsize;\r
-extern UWORD md_mode;\r
-extern UBYTE md_numchn;\r
-extern UBYTE md_bpm;\r
-extern void (*md_player)(void);\r
-\r
-/*\r
-       main driver prototypes:\r
-*/\r
-\r
-void MD_InfoDriver(void);\r
-void MD_RegisterDriver(DRIVER *drv);\r
-void MD_RegisterPlayer(void (*plr)(void));\r
-SWORD MD_SampleLoad(FILE *fp,ULONG size,ULONG reppos,ULONG repend,UWORD flags);\r
-void MD_SampleUnLoad(SWORD handle);\r
-BOOL MD_Init(void);\r
-void MD_Exit(void);\r
-void MD_PlayStart(void);\r
-void MD_PlayStop(void);\r
-void MD_SetBPM(UBYTE bpm);\r
-void MD_Update(void);\r
-void MD_VoiceSetVolume(UBYTE voice,UBYTE ivol);\r
-void MD_VoiceSetFrequency(UBYTE voice,ULONG frq);\r
-void MD_VoiceSetPanning(UBYTE voice,ULONG pan);\r
-void MD_VoicePlay(UBYTE voice,SWORD handle,ULONG start,ULONG size,ULONG reppos,ULONG repend,UWORD flags);\r
-void SL_Init(FILE *fp,UWORD infmt,UWORD outfmt);\r
-void SL_Load(void *buffer,ULONG length);\r
-\r
-/*\r
-       Declare external drivers:\r
-*/\r
-\r
-extern DRIVER drv_gus;         /* gravis ultrasound driver */\r
-extern DRIVER drv_sb;          /* soundblaster DSP driver */\r
-extern DRIVER drv_ss;          /* ensoniq soundscape driver */\r
-extern DRIVER drv_nos;         /* nosound driver */\r
-extern DRIVER drv_raw;         /* file output driver */\r
-extern DRIVER drv_w95;         /* win95 driver */\r
-extern DRIVER drv_awe;         /* experimental SB-AWE driver */\r
-extern DRIVER drv_vox;         /* linux voxware driver */\r
-extern DRIVER drv_af;       /* Dec Alpha AudioFile driver */\r
-extern DRIVER drv_sun;      /* Sun driver */\r
-extern DRIVER drv_os2;      /* Os2 driver */\r
-extern DRIVER drv_tim;          /* timing driver */\r
-\r
-/**************************************************************************\r
-****** Player stuff: ******************************************************\r
-**************************************************************************/\r
-\r
-\r
-typedef struct ENVPR{\r
-       UBYTE flg;          /* envelope flag */\r
-       UBYTE pts;                      /* number of envelope points */\r
-       UBYTE sus;                      /* envelope sustain index */\r
-       UBYTE beg;                      /* envelope loop begin */\r
-       UBYTE end;                      /* envelope loop end */\r
-       SWORD p;                        /* current envelope counter */\r
-       UWORD a;                        /* envelope index a */\r
-       UWORD b;                        /* envelope index b */\r
-       ENVPT *env;                     /* envelope points */\r
-} ENVPR;\r
-\r
-\r
-typedef struct AUDTMP{\r
-       INSTRUMENT      *i;\r
-       SAMPLE      *s;\r
-\r
-        UWORD fadevol;          /* fading volume */\r
-\r
-       ENVPR venv;\r
-       ENVPR penv;\r
-\r
-       UBYTE keyon;            /* if true=key is pressed. */\r
-       UBYTE kick;                     /* if true=sample has to be restarted */\r
-       UBYTE sample;           /* which sample number (0-31) */\r
-       SWORD handle;           /* which sample-handle */\r
-\r
-       ULONG start;            /* The start byte index in the sample */\r
-\r
-       UBYTE panning;          /* panning position */\r
-       UBYTE pansspd;          /* panslide speed */\r
-\r
-       SBYTE volume;           /* amiga volume (0 t/m 64) to play the sample at */\r
-       UWORD period;           /* period to play the sample at */\r
-\r
-       /* You should not have to use the values\r
-          below in the player routine */\r
-\r
-       SBYTE transpose;\r
-\r
-       UBYTE note;                     /* */\r
-\r
-       SWORD ownper;\r
-       SWORD ownvol;\r
-\r
-       UBYTE *row;                     /* row currently playing on this channel */\r
-\r
-       SBYTE retrig;           /* retrig value (0 means don't retrig) */\r
-       UWORD c2spd;            /* what finetune to use */\r
-\r
-       SBYTE tmpvolume;        /* tmp volume */\r
-\r
-       UWORD tmpperiod;        /* tmp period */\r
-       UWORD wantedperiod;     /* period to slide to (with effect 3 or 5) */\r
-\r
-       UWORD slidespeed;       /* */\r
-       UWORD portspeed;        /* noteslide speed (toneportamento) */\r
-\r
-       UBYTE s3mtremor;        /* s3m tremor (effect I) counter */\r
-       UBYTE s3mtronof;        /* s3m tremor ontime/offtime */\r
-\r
-       UBYTE s3mvolslide;      /* last used volslide */\r
-\r
-       UBYTE s3mrtgspeed;      /* last used retrig speed */\r
-       UBYTE s3mrtgslide;      /* last used retrig slide */\r
-\r
-       UBYTE glissando;        /* glissando (0 means off) */\r
-       UBYTE wavecontrol;      /* */\r
-\r
-       SBYTE vibpos;           /* current vibrato position */\r
-       UBYTE vibspd;           /* "" speed */\r
-       UBYTE vibdepth;         /* "" depth */\r
-\r
-       SBYTE trmpos;           /* current tremolo position */\r
-       UBYTE trmspd;           /* "" speed */\r
-       UBYTE trmdepth;         /* "" depth */\r
-\r
-       UWORD soffset;          /* last used sample-offset (effect 9) */\r
-} AUDTMP;\r
-\r
-\r
-extern AUDTMP mp_audio[32];            /* max eight channels */\r
-extern UBYTE  mp_bpm;                  /* beats-per-minute speed */\r
-extern UWORD  mp_patpos;               /* current row number (0-63) */\r
-extern SWORD  mp_sngpos;               /* current song position */\r
-extern UWORD  mp_sngspd;               /* current songspeed */\r
-\r
-extern BOOL  mp_loop;\r
-extern BOOL  mp_panning;\r
-extern BOOL  mp_extspd;\r
-extern UBYTE mp_volume;\r
-\r
-/*\r
-       player prototypes:\r
-*/\r
-\r
-int     MP_Ready(void);\r
-void MP_NextPosition(void);\r
-void MP_PrevPosition(void);\r
-void MP_SetPosition(UWORD pos);\r
-void MP_HandleTick(void);\r
-void MP_Init(UNIMOD *m);\r
-\r
-\r
-/**************************************************************************\r
-****** Virtual channel stuff: *********************************************\r
-**************************************************************************/\r
-\r
-BOOL    VC_Init(void);\r
-void    VC_Exit(void);\r
-\r
-void    VC_PlayStart(void);\r
-void    VC_PlayStop(void);\r
-\r
-SWORD   VC_SampleLoad(FILE *fp,ULONG size,ULONG reppos,ULONG repend,UWORD flags);\r
-void    VC_SampleUnload(SWORD handle);\r
-\r
-void    VC_WriteSamples(SBYTE *buf,UWORD todo);\r
-UWORD   VC_WriteBytes(SBYTE *buf,UWORD todo);\r
-void    VC_SilenceBytes(SBYTE *buf,UWORD todo);\r
-\r
-void   VC_VoiceSetVolume(UBYTE voice,UBYTE vol);\r
-void   VC_VoiceSetFrequency(UBYTE voice,ULONG frq);\r
-void   VC_VoiceSetPanning(UBYTE voice,UBYTE pan);\r
-void   VC_VoicePlay(UBYTE voice,SWORD handle,ULONG start,ULONG size,ULONG reppos,ULONG repend,UWORD flags);\r
-\r
-#endif\r