mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-10-09 23:53:28 -04:00
mikmod: Update to libmikmod 3.3.14
Fixes several loader issues Change-Id: Iaa5136bc6da85ba846d0dd38bfdb0ed610200147
This commit is contained in:
parent
5880b6111c
commit
b34fcd602a
14 changed files with 62 additions and 155 deletions
|
|
@ -1,7 +1,7 @@
|
|||
mikmod (https://mikmod.sourceforge.net/)
|
||||
|
||||
Based on upstream commit 72424e1bebab470fbf8a2914dcd7903b742205e6
|
||||
corresponding to mikmod 3.2.9 / libmikmod 3.3.12
|
||||
Based on upstream commit 0c6c2f7f8fb8dd6954ab0407b400e9646b9c2cf0
|
||||
corresponding to pre mikmod 3.2.10 / libmikmod 3.3.14
|
||||
|
||||
Heavily customized for rockbox use:
|
||||
|
||||
|
|
|
|||
|
|
@ -424,8 +424,15 @@ static int AMF_Load(int curious)
|
|||
if(mh->version>=11) {
|
||||
memset(mh->panpos,0,32);
|
||||
_mm_read_SBYTES(mh->panpos,(mh->version>=13)?32:16,modreader);
|
||||
} else if(mh->version>=9)
|
||||
} else if(mh->version>=9) {
|
||||
_mm_read_UBYTES(channel_remap,16,modreader);
|
||||
for(t = 0; t < 16 && t < mh->numchannels; t++) {
|
||||
if(channel_remap[t] >= mh->numchannels) {
|
||||
_mm_errno=MMERR_NOT_A_MODULE;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mh->version>=13) {
|
||||
mh->songbpm=_mm_read_UBYTE(modreader);
|
||||
|
|
|
|||
|
|
@ -238,6 +238,7 @@ static int DSM_Load(int curious)
|
|||
DSMINST s;
|
||||
SAMPLE *q;
|
||||
int cursmp=0,curpat=0,track=0;
|
||||
unsigned int numtrk;
|
||||
(void)curious;
|
||||
|
||||
blocklp=0;
|
||||
|
|
@ -270,7 +271,12 @@ static int DSM_Load(int curious)
|
|||
of.modtype=MikMod_strdup(DSM_Version);
|
||||
of.numchn=mh->numtrk;
|
||||
of.numpat=mh->numpat;
|
||||
of.numtrk=of.numchn*of.numpat;
|
||||
numtrk=of.numchn*of.numpat;
|
||||
if(of.numchn>DSM_MAXCHAN || numtrk>65535) {
|
||||
_mm_errno = MMERR_LOADING_HEADER;
|
||||
return 0;
|
||||
}
|
||||
of.numtrk=(UWORD)numtrk;
|
||||
of.songname=DupStr(mh->songname,28,1); /* make a cstr of songname */
|
||||
of.reppos=0;
|
||||
of.flags |= UF_PANNING;
|
||||
|
|
|
|||
|
|
@ -541,7 +541,6 @@ static int IMF_Load(int curious)
|
|||
_mm_read_I_UWORDS(ih.panenv,IMFENVCNT,modreader);
|
||||
_mm_read_I_UWORDS(ih.pitenv,IMFENVCNT,modreader);
|
||||
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define IMF_FinishLoadingEnvelope(name) \
|
||||
ih. name##pts=_mm_read_UBYTE(modreader); \
|
||||
ih. name##sus=_mm_read_UBYTE(modreader); \
|
||||
|
|
@ -551,17 +550,6 @@ static int IMF_Load(int curious)
|
|||
_mm_skip_BYTE(modreader); \
|
||||
_mm_skip_BYTE(modreader); \
|
||||
_mm_skip_BYTE(modreader)
|
||||
#else
|
||||
#define IMF_FinishLoadingEnvelope(name) \
|
||||
ih. name/**/pts=_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/sus=_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/beg=_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/end=_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/flg=_mm_read_UBYTE(modreader); \
|
||||
_mm_skip_BYTE(modreader); \
|
||||
_mm_skip_BYTE(modreader); \
|
||||
_mm_skip_BYTE(modreader)
|
||||
#endif
|
||||
|
||||
IMF_FinishLoadingEnvelope(vol);
|
||||
IMF_FinishLoadingEnvelope(pan);
|
||||
|
|
@ -594,7 +582,6 @@ static int IMF_Load(int curious)
|
|||
d->samplenumber[u]=ih.what[u]>ih.numsmp?0xffff:ih.what[u]+of.numsmp;
|
||||
d->volfade=ih.volfade;
|
||||
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define IMF_ProcessEnvelope(name) \
|
||||
for (u = 0; u < (IMFENVCNT >> 1); u++) { \
|
||||
d-> name##env[u].pos = ih. name##env[u << 1]; \
|
||||
|
|
@ -610,23 +597,6 @@ static int IMF_Load(int curious)
|
|||
\
|
||||
if ((d-> name##flg&EF_ON)&&(d-> name##pts<2)) \
|
||||
d-> name##flg&=~EF_ON
|
||||
#else
|
||||
#define IMF_ProcessEnvelope(name) \
|
||||
for (u = 0; u < (IMFENVCNT >> 1); u++) { \
|
||||
d-> name/**/env[u].pos = ih. name/**/env[u << 1]; \
|
||||
d-> name/**/env[u].val = ih. name/**/env[(u << 1)+ 1]; \
|
||||
} \
|
||||
if (ih. name/**/flg&1) d-> name/**/flg|=EF_ON; \
|
||||
if (ih. name/**/flg&2) d-> name/**/flg|=EF_SUSTAIN; \
|
||||
if (ih. name/**/flg&4) d-> name/**/flg|=EF_LOOP; \
|
||||
d-> name/**/susbeg=d-> name/**/susend=ih. name/**/sus; \
|
||||
d-> name/**/beg=ih. name/**/beg; \
|
||||
d-> name/**/end=ih. name/**/end; \
|
||||
d-> name/**/pts=ih. name/**/pts; \
|
||||
\
|
||||
if ((d-> name/**/flg&EF_ON)&&(d-> name/**/pts<2)) \
|
||||
d-> name/**/flg&=~EF_ON
|
||||
#endif
|
||||
|
||||
IMF_ProcessEnvelope(vol);
|
||||
IMF_ProcessEnvelope(pan);
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ static int IT_Init(void)
|
|||
{
|
||||
if(!(mh=(ITHEADER*)MikMod_malloc(sizeof(ITHEADER)))) return 0;
|
||||
if(!(poslookup=(UBYTE*)MikMod_malloc(256*sizeof(UBYTE)))) return 0;
|
||||
if(!(itpat=(ITNOTE*)MikMod_malloc(200*64*sizeof(ITNOTE)))) return 0;
|
||||
if(!(itpat=(ITNOTE*)MikMod_malloc(256*64*sizeof(ITNOTE)))) return 0;
|
||||
if(!(mask=(UBYTE*)MikMod_calloc(64,sizeof(UBYTE)))) return 0;
|
||||
if(!(last=(ITNOTE*)MikMod_calloc(64,sizeof(ITNOTE)))) return 0;
|
||||
|
||||
|
|
@ -338,10 +338,10 @@ static int IT_ReadPattern(UWORD patrows)
|
|||
int row=0,flag,ch;
|
||||
unsigned int blah;
|
||||
ITNOTE *itt=itpat,dummy,*n,*l;
|
||||
ITNOTE *ite=&itpat[200*64 -1];
|
||||
ITNOTE *ite=&itpat[256*64 -1];
|
||||
UBYTE *m;
|
||||
|
||||
memset(itt,255,200*64*sizeof(ITNOTE));
|
||||
memset(itt,255,256*64*sizeof(ITNOTE));
|
||||
|
||||
do {
|
||||
if(_mm_eof(modreader)) {
|
||||
|
|
@ -783,7 +783,6 @@ static int IT_Load(int curious)
|
|||
}
|
||||
} else {
|
||||
/* load IT 2xx volume, pan and pitch envelopes */
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define IT_LoadEnvelope(name,type) \
|
||||
ih. name##flg =_mm_read_UBYTE(modreader); \
|
||||
ih. name##pts =_mm_read_UBYTE(modreader); \
|
||||
|
|
@ -798,22 +797,6 @@ static int IT_Load(int curious)
|
|||
ih. name##tick[lp]=_mm_read_I_UWORD(modreader); \
|
||||
} \
|
||||
_mm_skip_BYTE(modreader)
|
||||
#else
|
||||
#define IT_LoadEnvelope(name,type) \
|
||||
ih. name/**/flg =_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/pts =_mm_read_UBYTE(modreader); \
|
||||
if (ih. name/**/pts > ITENVCNT) \
|
||||
ih. name/**/pts = ITENVCNT; \
|
||||
ih. name/**/beg =_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/end =_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/susbeg=_mm_read_UBYTE(modreader); \
|
||||
ih. name/**/susend=_mm_read_UBYTE(modreader); \
|
||||
for(lp=0;lp<ITENVCNT;lp++) { \
|
||||
ih. name/**/node[lp]=_mm_read_/**/type (modreader); \
|
||||
ih. name/**/tick[lp]=_mm_read_I_UWORD(modreader); \
|
||||
} \
|
||||
_mm_skip_BYTE(modreader)
|
||||
#endif
|
||||
|
||||
IT_LoadEnvelope(vol,UBYTE);
|
||||
IT_LoadEnvelope(pan,SBYTE);
|
||||
|
|
@ -875,7 +858,6 @@ static int IT_Load(int curious)
|
|||
d->rpanvar = ih.rpanvar;
|
||||
}
|
||||
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define IT_ProcessEnvelope(name) \
|
||||
if(ih. name##flg&1) d-> name##flg|=EF_ON; \
|
||||
if(ih. name##flg&2) d-> name##flg|=EF_LOOP; \
|
||||
|
|
@ -891,23 +873,6 @@ static int IT_Load(int curious)
|
|||
\
|
||||
if((d-> name##flg&EF_ON)&&(d-> name##pts<2)) \
|
||||
d-> name##flg&=~EF_ON
|
||||
#else
|
||||
#define IT_ProcessEnvelope(name) \
|
||||
if(ih. name/**/flg&1) d-> name/**/flg|=EF_ON; \
|
||||
if(ih. name/**/flg&2) d-> name/**/flg|=EF_LOOP; \
|
||||
if(ih. name/**/flg&4) d-> name/**/flg|=EF_SUSTAIN; \
|
||||
d-> name/**/pts=ih. name/**/pts; \
|
||||
d-> name/**/beg=ih. name/**/beg; \
|
||||
d-> name/**/end=ih. name/**/end; \
|
||||
d-> name/**/susbeg=ih. name/**/susbeg; \
|
||||
d-> name/**/susend=ih. name/**/susend; \
|
||||
\
|
||||
for(u=0;u<ih. name/**/pts;u++) \
|
||||
d-> name/**/env[u].pos=ih. name/**/tick[u]; \
|
||||
\
|
||||
if((d-> name/**/flg&EF_ON)&&(d-> name/**/pts<2)) \
|
||||
d-> name/**/flg&=~EF_ON
|
||||
#endif
|
||||
|
||||
IT_ProcessEnvelope(vol);
|
||||
|
||||
|
|
|
|||
|
|
@ -282,7 +282,12 @@ static int OKT_doPBOD(int patnum)
|
|||
int u;
|
||||
|
||||
if (!patnum) {
|
||||
of.numtrk = of.numpat * of.numchn;
|
||||
const unsigned int numtrk = of.numpat * of.numchn;
|
||||
if (numtrk > 65535) {
|
||||
_mm_errno = MMERR_LOADING_PATTERN;
|
||||
return 0;
|
||||
}
|
||||
of.numtrk = (UWORD)numtrk;
|
||||
|
||||
if (!AllocTracks() || !AllocPatterns())
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ static UBYTE ReadUltEvent(ULTEVENT* event)
|
|||
static int ULT_Load(int curious)
|
||||
{
|
||||
int t,u,tracks=0;
|
||||
unsigned int numtrk;
|
||||
SAMPLE *q;
|
||||
ULTSAMPLE s;
|
||||
ULTHEADER mh;
|
||||
|
|
@ -211,9 +212,14 @@ static int ULT_Load(int curious)
|
|||
noc=_mm_read_UBYTE(modreader);
|
||||
RBnop=_mm_read_UBYTE(modreader);
|
||||
|
||||
of.numchn=++noc;
|
||||
of.numpat=++RBnop;
|
||||
of.numtrk=of.numchn*of.numpat;
|
||||
of.numchn=noc+1;
|
||||
of.numpat=RBnop+1;
|
||||
numtrk=of.numchn*of.numpat;
|
||||
if (numtrk>65535) {
|
||||
_mm_errno = MMERR_LOADING_HEADER;
|
||||
return 0;
|
||||
}
|
||||
of.numtrk=(UWORD)numtrk;
|
||||
|
||||
for(t=0;t<256;t++) {
|
||||
if(of.positions[t]==255) {
|
||||
|
|
|
|||
|
|
@ -307,7 +307,6 @@ static int loadinstr6(void)
|
|||
i->rpanvar = _mm_read_UBYTE(modreader);
|
||||
i->volfade = _mm_read_M_UWORD(modreader);
|
||||
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define UNI_LoadEnvelope6(name) \
|
||||
i-> name##flg=_mm_read_UBYTE(modreader); \
|
||||
i-> name##pts=_mm_read_UBYTE(modreader); \
|
||||
|
|
@ -315,23 +314,11 @@ static int loadinstr6(void)
|
|||
i-> name##susend=_mm_read_UBYTE(modreader); \
|
||||
i-> name##beg=_mm_read_UBYTE(modreader); \
|
||||
i-> name##end=_mm_read_UBYTE(modreader); \
|
||||
if (i-> name##pts > ENVPOINTS) goto fail; \
|
||||
for(w=0;w<(universion>=0x100?32:i-> name##pts);w++) { \
|
||||
i-> name##env[w].pos=_mm_read_M_SWORD(modreader); \
|
||||
i-> name##env[w].val=_mm_read_M_SWORD(modreader); \
|
||||
}
|
||||
#else
|
||||
#define UNI_LoadEnvelope6(name) \
|
||||
i-> name/**/flg=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/pts=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/susbeg=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/susend=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/beg=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/end=_mm_read_UBYTE(modreader); \
|
||||
for (w=0;w<(universion>=0x100?32:i-> name/**/pts);w++) { \
|
||||
i-> name/**/env[w].pos=_mm_read_M_SWORD(modreader); \
|
||||
i-> name/**/env[w].val=_mm_read_M_SWORD(modreader); \
|
||||
}
|
||||
#endif
|
||||
|
||||
UNI_LoadEnvelope6(vol);
|
||||
UNI_LoadEnvelope6(pan);
|
||||
|
|
@ -348,6 +335,7 @@ static int loadinstr6(void)
|
|||
i->insname=readstring();
|
||||
|
||||
if(_mm_eof(modreader)) {
|
||||
fail:
|
||||
_mm_errno = MMERR_LOADING_SAMPLEINFO;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -372,7 +360,6 @@ static int loadinstr5(void)
|
|||
for(u=0;u<96;u++)
|
||||
i->samplenumber[u]=of.numsmp+_mm_read_UBYTE(modreader);
|
||||
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define UNI_LoadEnvelope5(name) \
|
||||
i-> name##flg=_mm_read_UBYTE(modreader); \
|
||||
i-> name##pts=_mm_read_UBYTE(modreader); \
|
||||
|
|
@ -384,19 +371,6 @@ static int loadinstr5(void)
|
|||
i-> name##env[u].pos=_mm_read_I_SWORD(modreader); \
|
||||
i-> name##env[u].val=_mm_read_I_SWORD(modreader); \
|
||||
}
|
||||
#else
|
||||
#define UNI_LoadEnvelope5(name) \
|
||||
i-> name/**/flg=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/pts=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/susbeg=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/susend=i-> name/**/susbeg; \
|
||||
i-> name/**/beg=_mm_read_UBYTE(modreader); \
|
||||
i-> name/**/end=_mm_read_UBYTE(modreader); \
|
||||
for(u=0;u<12;u++) { \
|
||||
i-> name/**/env[u].pos=_mm_read_I_SWORD(modreader); \
|
||||
i-> name/**/env[u].val=_mm_read_I_SWORD(modreader); \
|
||||
}
|
||||
#endif
|
||||
|
||||
UNI_LoadEnvelope5(vol);
|
||||
UNI_LoadEnvelope5(pan);
|
||||
|
|
@ -619,6 +593,10 @@ static int UNI_Load(int curious)
|
|||
/* positions */
|
||||
if(!AllocPositions(of.numpos)) return 0;
|
||||
if(universion>=6) {
|
||||
if(mh.numchn>UF_MAXCHAN) {
|
||||
_mm_errno=MMERR_LOADING_HEADER;
|
||||
return 0;
|
||||
}
|
||||
if(universion>=0x100)
|
||||
_mm_read_M_UWORDS(of.positions,of.numpos,modreader);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -533,7 +533,6 @@ static int LoadInstruments(void)
|
|||
d->samplenumber[u]=pth.what[u]+of.numsmp;
|
||||
d->volfade = pth.volfade;
|
||||
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define XM_ProcessEnvelope(name) \
|
||||
for (u = 0; u < XMENVPTS; u++) { \
|
||||
d-> name##env[u].pos = pth. name##env[u << 1]; \
|
||||
|
|
@ -553,28 +552,6 @@ static int LoadInstruments(void)
|
|||
\
|
||||
if ((d-> name##flg&EF_ON)&&(d-> name##pts<2)) \
|
||||
d-> name##flg&=~EF_ON
|
||||
#else
|
||||
#define XM_ProcessEnvelope(name) \
|
||||
for (u = 0; u < XMENVPTS; u++) { \
|
||||
d-> name/**/env[u].pos = pth. name/**/env[u << 1]; \
|
||||
d-> name/**/env[u].val = pth. name/**/env[(u << 1)+ 1]; \
|
||||
} \
|
||||
if (pth. name/**/flg&1) d-> name/**/flg|=EF_ON; \
|
||||
if (pth. name/**/flg&2) d-> name/**/flg|=EF_SUSTAIN; \
|
||||
if (pth. name/**/flg&4) d-> name/**/flg|=EF_LOOP; \
|
||||
d-> name/**/susbeg=d-> name/**/susend= \
|
||||
pth. name/**/sus; \
|
||||
d-> name/**/beg=pth. name/**/beg; \
|
||||
d-> name/**/end=pth. name/**/end; \
|
||||
d-> name/**/pts=pth. name/**/pts; \
|
||||
\
|
||||
/* scale envelope */ \
|
||||
for (p = 0; p < XMENVPTS; p++) \
|
||||
d-> name/**/env[p].val<<=2; \
|
||||
\
|
||||
if ((d-> name/**/flg&EF_ON)&&(d-> name/**/pts<2)) \
|
||||
d-> name/**/flg&=~EF_ON
|
||||
#endif
|
||||
|
||||
XM_ProcessEnvelope(vol);
|
||||
XM_ProcessEnvelope(pan);
|
||||
|
|
|
|||
|
|
@ -93,6 +93,9 @@ static void _mm_registeralldrivers(void)
|
|||
#ifdef DRV_OS2
|
||||
_mm_registerdriver(&drv_os2);
|
||||
#endif
|
||||
#ifdef DRV_WASAPI
|
||||
_mm_registerdriver(&drv_wasapi);
|
||||
#endif
|
||||
#ifdef DRV_XAUDIO2
|
||||
_mm_registerdriver(&drv_xaudio2);
|
||||
#endif
|
||||
|
|
@ -123,6 +126,9 @@ static void _mm_registeralldrivers(void)
|
|||
#ifdef DRV_N64
|
||||
_mm_registerdriver(&drv_n64);
|
||||
#endif
|
||||
#ifdef DRV_VITA
|
||||
_mm_registerdriver(&drv_vita);
|
||||
#endif
|
||||
|
||||
/* dos drivers - wss first, since some cards emulate sb */
|
||||
#ifdef DRV_WSS
|
||||
|
|
|
|||
|
|
@ -145,13 +145,13 @@ typedef unsigned short int UWORD;
|
|||
#if defined(_LP64) || defined(__LP64__) || defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(__powerpc64__)
|
||||
/* 64 bit architectures: */
|
||||
typedef signed int SLONG;
|
||||
#if !defined(_MIKMOD_AMIGA) && !defined(WIN32)
|
||||
#if !(defined(_WIN32) || defined(_MIKMOD_AMIGA))
|
||||
typedef unsigned int ULONG;
|
||||
#endif
|
||||
|
||||
#else /* 32 bit architectures: */
|
||||
typedef signed long int SLONG;
|
||||
#if !(defined(_MIKMOD_OS2) || defined(_MIKMOD_AMIGA))
|
||||
#if !(defined(_MIKMOD_OS2) || defined(_MIKMOD_WIN32) || defined(_MIKMOD_AMIGA))
|
||||
typedef unsigned long int ULONG;
|
||||
#endif
|
||||
#endif
|
||||
|
|
@ -293,6 +293,7 @@ enum {
|
|||
|
||||
MMERR_MAX
|
||||
};
|
||||
#define MMERR_WASAPI_SAMPLERATE MMERR_SGI_SPEED
|
||||
|
||||
/*
|
||||
* ========== Error handling
|
||||
|
|
@ -826,6 +827,7 @@ MIKMODAPI extern struct MDRIVER drv_dart; /* OS/2 Direct Audio RealTime */
|
|||
MIKMODAPI extern struct MDRIVER drv_os2; /* OS/2 MMPM/2 */
|
||||
|
||||
MIKMODAPI extern struct MDRIVER drv_ds; /* Win32 DirectSound driver */
|
||||
MIKMODAPI extern struct MDRIVER drv_wasapi; /* Win32 WASAPI driver */
|
||||
MIKMODAPI extern struct MDRIVER drv_xaudio2;/* Win32 XAudio2 driver */
|
||||
MIKMODAPI extern struct MDRIVER drv_win; /* Win32 multimedia API driver */
|
||||
|
||||
|
|
@ -836,6 +838,7 @@ MIKMODAPI extern struct MDRIVER drv_dc; /* Dreamcast driver */
|
|||
MIKMODAPI extern struct MDRIVER drv_gp32; /* GP32 Sound driver */
|
||||
MIKMODAPI extern struct MDRIVER drv_psp; /* PlayStation Portable driver */
|
||||
MIKMODAPI extern struct MDRIVER drv_n64; /* Nintendo64 driver */
|
||||
MIKMODAPI extern struct MDRIVER drv_vita; /* PlayStation Vita driver */
|
||||
|
||||
MIKMODAPI extern struct MDRIVER drv_wss; /* DOS WSS driver */
|
||||
MIKMODAPI extern struct MDRIVER drv_sb; /* DOS S/B driver */
|
||||
|
|
|
|||
|
|
@ -33,6 +33,14 @@ extern "C" {
|
|||
|
||||
#include <stdarg.h>
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(disable:4389) /* signed/unsigned mismatch ( <, <=, >, >= ) */
|
||||
#pragma warning(disable:4018) /* signed/unsigned mismatch ( ==, != ) */
|
||||
#pragma warning(disable:4761) /* integral size mismatch in argument; conversion supplied (for MSVC6 and older.) */
|
||||
#pragma warning(disable:4244) /* conversion from 'type' to 'int', possible loss of data */
|
||||
#pragma warning(disable:4267) /* conversion from 'size_t' to 'type', possible loss of data */
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && !defined(__cplusplus) && !defined(HAVE_CONFIG_H)
|
||||
#define inline __inline
|
||||
#endif
|
||||
|
|
@ -902,5 +910,3 @@ void MikMod_afree(void *); /* frees if ptr != NULL */
|
|||
#endif
|
||||
|
||||
#endif /* _MIKMOD_INTERNALS_H */
|
||||
|
||||
/* ex:set ts=4: */
|
||||
|
|
|
|||
|
|
@ -132,14 +132,14 @@ static const char *_mm_errmsg[MMERR_MAX+1] =
|
|||
#endif
|
||||
|
||||
/* SGI driver errors */
|
||||
#ifdef DRV_SGI
|
||||
"Unsupported sample rate",
|
||||
#ifdef DRV_SGI
|
||||
"Hardware does not support 16 bit sound",
|
||||
"Hardware does not support 8 bit sound",
|
||||
"Hardware does not support stereo sound",
|
||||
"Hardware does not support mono sound",
|
||||
#else
|
||||
_mmerr_invalid, _mmerr_invalid, _mmerr_invalid,
|
||||
_mmerr_invalid, _mmerr_invalid,
|
||||
_mmerr_invalid, _mmerr_invalid,
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -107,7 +107,6 @@ static int (*VC_VoiceStopped_ptr)(UBYTE);
|
|||
static SLONG (*VC_VoiceGetPosition_ptr)(UBYTE);
|
||||
static ULONG (*VC_VoiceRealVolume_ptr)(UBYTE);
|
||||
|
||||
#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C
|
||||
#define VC_PROC0(suffix) \
|
||||
MIKMODAPI void VC_##suffix (void) { VC_##suffix##_ptr(); }
|
||||
|
||||
|
|
@ -126,27 +125,6 @@ MIKMODAPI void VC_##suffix (typ1 a,typ2 b) { VC_##suffix##_ptr(a,b); }
|
|||
#define VC_FUNC2(suffix,ret,typ1,typ2) \
|
||||
MIKMODAPI ret VC_##suffix (typ1 a,typ2 b) { return VC_##suffix##_ptr(a,b); }
|
||||
|
||||
#else
|
||||
|
||||
#define VC_PROC0(suffix) \
|
||||
MIKMODAPI void VC_/**/suffix (void) { VC_/**/suffix/**/_ptr(); }
|
||||
|
||||
#define VC_FUNC0(suffix,ret) \
|
||||
MIKMODAPI ret VC_/**/suffix (void) { return VC_/**/suffix/**/_ptr(); }
|
||||
|
||||
#define VC_PROC1(suffix,typ1) \
|
||||
MIKMODAPI void VC_/**/suffix (typ1 a) { VC_/**/suffix/**/_ptr(a); }
|
||||
|
||||
#define VC_FUNC1(suffix,ret,typ1) \
|
||||
MIKMODAPI ret VC_/**/suffix (typ1 a) { return VC_/**/suffix/**/_ptr(a); }
|
||||
|
||||
#define VC_PROC2(suffix,typ1,typ2) \
|
||||
MIKMODAPI void VC_/**/suffix (typ1 a,typ2 b) { VC_/**/suffix/**/_ptr(a,b); }
|
||||
|
||||
#define VC_FUNC2(suffix,ret,typ1,typ2) \
|
||||
MIKMODAPI ret VC_/**/suffix (typ1 a,typ2 b) { return VC_/**/suffix/**/_ptr(a,b); }
|
||||
#endif
|
||||
|
||||
VC_FUNC0(Init,int)
|
||||
VC_PROC0(Exit)
|
||||
VC_FUNC0(SetNumVoices,int)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue