mirror of
https://github.com/ZDoom/gzdoom.git
synced 2025-01-19 08:01:50 +00:00
- Remove external event callback handlers from fmopl.cpp.
SVN r3941 (trunk)
This commit is contained in:
parent
1640f841e8
commit
47d9859246
2 changed files with 0 additions and 83 deletions
|
@ -247,14 +247,6 @@ typedef struct fm_opl_f {
|
||||||
int T[2]; /* timer counters */
|
int T[2]; /* timer counters */
|
||||||
UINT8 st[2]; /* timer enable */
|
UINT8 st[2]; /* timer enable */
|
||||||
|
|
||||||
/* external event callback handlers */
|
|
||||||
OPL_TIMERHANDLER TimerHandler; /* TIMER handler */
|
|
||||||
int TimerParam; /* TIMER parameter */
|
|
||||||
OPL_IRQHANDLER IRQHandler; /* IRQ handler */
|
|
||||||
int IRQParam; /* IRQ parameter */
|
|
||||||
OPL_UPDATEHANDLER UpdateHandler;/* stream update handler */
|
|
||||||
int UpdateParam; /* stream update parameter */
|
|
||||||
|
|
||||||
UINT8 address; /* address register */
|
UINT8 address; /* address register */
|
||||||
UINT8 status; /* status flag */
|
UINT8 status; /* status flag */
|
||||||
UINT8 statusmask; /* status mask */
|
UINT8 statusmask; /* status mask */
|
||||||
|
@ -596,8 +588,6 @@ INLINE void OPL_STATUS_SET(FM_OPL *OPL,int flag)
|
||||||
if(OPL->status & OPL->statusmask)
|
if(OPL->status & OPL->statusmask)
|
||||||
{ /* IRQ on */
|
{ /* IRQ on */
|
||||||
OPL->status |= 0x80;
|
OPL->status |= 0x80;
|
||||||
/* callback user interrupt handler (IRQ is OFF to ON) */
|
|
||||||
if(OPL->IRQHandler) (OPL->IRQHandler)(OPL->IRQParam,1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -612,8 +602,6 @@ INLINE void OPL_STATUS_RESET(FM_OPL *OPL,int flag)
|
||||||
if (!(OPL->status & OPL->statusmask) )
|
if (!(OPL->status & OPL->statusmask) )
|
||||||
{
|
{
|
||||||
OPL->status &= 0x7f;
|
OPL->status &= 0x7f;
|
||||||
/* callback user interrupt handler (IRQ is ON to OFF) */
|
|
||||||
if(OPL->IRQHandler) (OPL->IRQHandler)(OPL->IRQParam,0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1357,14 +1345,12 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v)
|
||||||
{
|
{
|
||||||
double interval = st2 ? (double)OPL->T[1]*OPL_TIMERBASE : 0.0;
|
double interval = st2 ? (double)OPL->T[1]*OPL_TIMERBASE : 0.0;
|
||||||
OPL->st[1] = st2;
|
OPL->st[1] = st2;
|
||||||
if (OPL->TimerHandler) (OPL->TimerHandler)(OPL->TimerParam+1,interval);
|
|
||||||
}
|
}
|
||||||
/* timer 1 */
|
/* timer 1 */
|
||||||
if(OPL->st[0] != st1)
|
if(OPL->st[0] != st1)
|
||||||
{
|
{
|
||||||
double interval = st1 ? (double)OPL->T[0]*OPL_TIMERBASE : 0.0;
|
double interval = st1 ? (double)OPL->T[0]*OPL_TIMERBASE : 0.0;
|
||||||
OPL->st[0] = st1;
|
OPL->st[0] = st1;
|
||||||
if (OPL->TimerHandler) (OPL->TimerHandler)(OPL->TimerParam+0,interval);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1614,24 +1600,6 @@ static void OPLDestroy(FM_OPL *OPL)
|
||||||
free(OPL);
|
free(OPL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Optional handlers */
|
|
||||||
|
|
||||||
static void OPLSetTimerHandler(FM_OPL *OPL,OPL_TIMERHANDLER TimerHandler,int channelOffset)
|
|
||||||
{
|
|
||||||
OPL->TimerHandler = TimerHandler;
|
|
||||||
OPL->TimerParam = channelOffset;
|
|
||||||
}
|
|
||||||
static void OPLSetIRQHandler(FM_OPL *OPL,OPL_IRQHANDLER IRQHandler,int param)
|
|
||||||
{
|
|
||||||
OPL->IRQHandler = IRQHandler;
|
|
||||||
OPL->IRQParam = param;
|
|
||||||
}
|
|
||||||
static void OPLSetUpdateHandler(FM_OPL *OPL,OPL_UPDATEHANDLER UpdateHandler,int param)
|
|
||||||
{
|
|
||||||
OPL->UpdateHandler = UpdateHandler;
|
|
||||||
OPL->UpdateParam = param;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* YM3812 I/O interface */
|
/* YM3812 I/O interface */
|
||||||
static int OPLWrite(FM_OPL *OPL,int a,int v)
|
static int OPLWrite(FM_OPL *OPL,int a,int v)
|
||||||
{
|
{
|
||||||
|
@ -1641,7 +1609,6 @@ static int OPLWrite(FM_OPL *OPL,int a,int v)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ /* data port */
|
{ /* data port */
|
||||||
if(OPL->UpdateHandler) OPL->UpdateHandler(OPL->UpdateParam,0);
|
|
||||||
OPLWriteReg(OPL,OPL->address,v);
|
OPLWriteReg(OPL,OPL->address,v);
|
||||||
}
|
}
|
||||||
return OPL->status>>7;
|
return OPL->status>>7;
|
||||||
|
@ -1672,30 +1639,6 @@ INLINE void CSMKeyControll(OPL_CH *CH)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int OPLTimerOver(FM_OPL *OPL,int c)
|
|
||||||
{
|
|
||||||
if( c )
|
|
||||||
{ /* Timer B */
|
|
||||||
OPL_STATUS_SET(OPL,0x20);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ /* Timer A */
|
|
||||||
OPL_STATUS_SET(OPL,0x40);
|
|
||||||
/* CSM mode key,TL controll */
|
|
||||||
if( OPL->mode & 0x80 )
|
|
||||||
{ /* CSM mode total level latch and auto key on */
|
|
||||||
int ch;
|
|
||||||
if(OPL->UpdateHandler) OPL->UpdateHandler(OPL->UpdateParam,0);
|
|
||||||
for(ch=0; ch<9; ch++)
|
|
||||||
CSMKeyControll( &OPL->P_CH[ch] );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* reload timer */
|
|
||||||
if (OPL->TimerHandler) (OPL->TimerHandler)(OPL->TimerParam+c,(double)OPL->T[c]*OPL_TIMERBASE);
|
|
||||||
return OPL->status>>7;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void *YM3812Init()
|
void *YM3812Init()
|
||||||
{
|
{
|
||||||
/* emulator create */
|
/* emulator create */
|
||||||
|
@ -1730,27 +1673,6 @@ unsigned char YM3812Read(void *chip, int a)
|
||||||
/* YM3812 always returns bit2 and bit1 in HIGH state */
|
/* YM3812 always returns bit2 and bit1 in HIGH state */
|
||||||
return OPLRead(YM3812, a) | 0x06 ;
|
return OPLRead(YM3812, a) | 0x06 ;
|
||||||
}
|
}
|
||||||
int YM3812TimerOver(void *chip, int c)
|
|
||||||
{
|
|
||||||
FM_OPL *YM3812 = (FM_OPL *)chip;
|
|
||||||
return OPLTimerOver(YM3812, c);
|
|
||||||
}
|
|
||||||
|
|
||||||
void YM3812SetTimerHandler(void *chip, OPL_TIMERHANDLER TimerHandler, int channelOffset)
|
|
||||||
{
|
|
||||||
FM_OPL *YM3812 = (FM_OPL *)chip;
|
|
||||||
OPLSetTimerHandler(YM3812, TimerHandler, channelOffset);
|
|
||||||
}
|
|
||||||
void YM3812SetIRQHandler(void *chip,OPL_IRQHANDLER IRQHandler,int param)
|
|
||||||
{
|
|
||||||
FM_OPL *YM3812 = (FM_OPL *)chip;
|
|
||||||
OPLSetIRQHandler(YM3812, IRQHandler, param);
|
|
||||||
}
|
|
||||||
void YM3812SetUpdateHandler(void *chip,OPL_UPDATEHANDLER UpdateHandler,int param)
|
|
||||||
{
|
|
||||||
FM_OPL *YM3812 = (FM_OPL *)chip;
|
|
||||||
OPLSetUpdateHandler(YM3812, UpdateHandler, param);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* [RH] Full support for MIDI panning */
|
/* [RH] Full support for MIDI panning */
|
||||||
void YM3812SetStereo(void *chip, bool stereo)
|
void YM3812SetStereo(void *chip, bool stereo)
|
||||||
|
|
|
@ -30,15 +30,10 @@ void YM3812Shutdown(void *chip);
|
||||||
void YM3812ResetChip(void *chip);
|
void YM3812ResetChip(void *chip);
|
||||||
int YM3812Write(void *chip, int a, int v);
|
int YM3812Write(void *chip, int a, int v);
|
||||||
unsigned char YM3812Read(void *chip, int a);
|
unsigned char YM3812Read(void *chip, int a);
|
||||||
int YM3812TimerOver(void *chip, int c);
|
|
||||||
void YM3812UpdateOne(void *chip, float *buffer, int length);
|
void YM3812UpdateOne(void *chip, float *buffer, int length);
|
||||||
void YM3812SetStereo(void *chip, bool stereo);
|
void YM3812SetStereo(void *chip, bool stereo);
|
||||||
void YM3812SetPanning(void *chip, int c, int pan);
|
void YM3812SetPanning(void *chip, int c, int pan);
|
||||||
|
|
||||||
void YM3812SetTimerHandler(void *chip, OPL_TIMERHANDLER TimerHandler, int channelOffset);
|
|
||||||
void YM3812SetIRQHandler(void *chip, OPL_IRQHANDLER IRQHandler, int param);
|
|
||||||
void YM3812SetUpdateHandler(void *chip, OPL_UPDATEHANDLER UpdateHandler, int param);
|
|
||||||
|
|
||||||
FString YM3812GetVoiceString(void *chip);
|
FString YM3812GetVoiceString(void *chip);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue