LMMS
Loading...
Searching...
No Matches
fmopl.h File Reference

Go to the source code of this file.

Classes

struct  fm_opl_slot
struct  fm_opl_channel
struct  fm_opl_f

Macros

#define BUILD_YM3812   (HAS_YM3812)
#define OPL_OUTPUT_BIT   16
#define OSD_CPU_H
#define OPL_TYPE_WAVESEL   0x01 /* waveform select */
#define OPL_TYPE_ADPCM   0x02 /* DELTA-T ADPCM unit */
#define OPL_TYPE_KEYBOARD   0x04 /* keyboard interface */
#define OPL_TYPE_IO   0x08 /* I/O port */
#define OPL_TYPE_YM3526   (0)
#define OPL_TYPE_YM3812   (OPL_TYPE_WAVESEL)
#define OPL_TYPE_Y8950   (OPL_TYPE_ADPCM|OPL_TYPE_KEYBOARD|OPL_TYPE_IO)

Typedefs

typedef unsigned int UINT32
typedef signed char INT8
typedef signed short INT16
typedef signed int INT32
typedef INT16 OPLSAMPLE
typedef void(* OPL_TIMERHANDLER) (int channel, double interval_Sec)
typedef void(* OPL_IRQHANDLER) (int param, int irq)
typedef void(* OPL_UPDATEHANDLER) (int param, int min_interval_us)
typedef void(* OPL_PORTHANDLER_W) (int param, unsigned char data)
typedef unsigned char(* OPL_PORTHANDLER_R) (int param)
typedef struct fm_opl_slot OPL_SLOT
typedef struct fm_opl_channel OPL_CH
typedef struct fm_opl_f FM_OPL

Functions

FM_OPLOPLCreate (int type, int clock, int rate)
void OPLDestroy (FM_OPL *OPL)
void OPLSetTimerHandler (FM_OPL *OPL, OPL_TIMERHANDLER TimerHandler, int channelOffset)
void OPLSetIRQHandler (FM_OPL *OPL, OPL_IRQHANDLER IRQHandler, int param)
void OPLSetUpdateHandler (FM_OPL *OPL, OPL_UPDATEHANDLER UpdateHandler, int param)
void OPLSetPortHandler (FM_OPL *OPL, OPL_PORTHANDLER_W PortHandler_w, OPL_PORTHANDLER_R PortHandler_r, int param)
void OPLSetKeyboardHandler (FM_OPL *OPL, OPL_PORTHANDLER_W KeyboardHandler_w, OPL_PORTHANDLER_R KeyboardHandler_r, int param)
void OPLResetChip (FM_OPL *OPL)
int OPLWrite (FM_OPL *OPL, int a, int v)
unsigned char OPLRead (FM_OPL *OPL, int a)
int OPLTimerOver (FM_OPL *OPL, int c)
void YM3812UpdateOne (FM_OPL *OPL, INT16 *buffer, int length)
void Y8950UpdateOne (FM_OPL *OPL, INT16 *buffer, int length)

Macro Definition Documentation

◆ BUILD_YM3812

#define BUILD_YM3812   (HAS_YM3812)

◆ OPL_OUTPUT_BIT

#define OPL_OUTPUT_BIT   16

◆ OPL_TYPE_ADPCM

#define OPL_TYPE_ADPCM   0x02 /* DELTA-T ADPCM unit */

◆ OPL_TYPE_IO

#define OPL_TYPE_IO   0x08 /* I/O port */

◆ OPL_TYPE_KEYBOARD

#define OPL_TYPE_KEYBOARD   0x04 /* keyboard interface */

◆ OPL_TYPE_WAVESEL

#define OPL_TYPE_WAVESEL   0x01 /* waveform select */

◆ OPL_TYPE_Y8950

#define OPL_TYPE_Y8950   (OPL_TYPE_ADPCM|OPL_TYPE_KEYBOARD|OPL_TYPE_IO)

◆ OPL_TYPE_YM3526

#define OPL_TYPE_YM3526   (0)

◆ OPL_TYPE_YM3812

#define OPL_TYPE_YM3812   (OPL_TYPE_WAVESEL)

◆ OSD_CPU_H

#define OSD_CPU_H

Typedef Documentation

◆ FM_OPL

typedef struct fm_opl_f FM_OPL

◆ INT16

typedef signed short INT16

◆ INT32

typedef signed int INT32

◆ INT8

typedef signed char INT8

◆ OPL_CH

typedef struct fm_opl_channel OPL_CH

◆ OPL_IRQHANDLER

typedef void(* OPL_IRQHANDLER) (int param, int irq)

◆ OPL_PORTHANDLER_R

typedef unsigned char(* OPL_PORTHANDLER_R) (int param)

◆ OPL_PORTHANDLER_W

typedef void(* OPL_PORTHANDLER_W) (int param, unsigned char data)

◆ OPL_SLOT

typedef struct fm_opl_slot OPL_SLOT

◆ OPL_TIMERHANDLER

typedef void(* OPL_TIMERHANDLER) (int channel, double interval_Sec)

◆ OPL_UPDATEHANDLER

typedef void(* OPL_UPDATEHANDLER) (int param, int min_interval_us)

◆ OPLSAMPLE

typedef INT16 OPLSAMPLE

◆ UINT32

typedef unsigned int UINT32

Function Documentation

◆ OPLCreate()

FM_OPL * OPLCreate ( int type,
int clock,
int rate )

◆ OPLDestroy()

void OPLDestroy ( FM_OPL * OPL)

◆ OPLRead()

unsigned char OPLRead ( FM_OPL * OPL,
int a )

◆ OPLResetChip()

void OPLResetChip ( FM_OPL * OPL)

◆ OPLSetIRQHandler()

void OPLSetIRQHandler ( FM_OPL * OPL,
OPL_IRQHANDLER IRQHandler,
int param )

◆ OPLSetKeyboardHandler()

void OPLSetKeyboardHandler ( FM_OPL * OPL,
OPL_PORTHANDLER_W KeyboardHandler_w,
OPL_PORTHANDLER_R KeyboardHandler_r,
int param )

◆ OPLSetPortHandler()

void OPLSetPortHandler ( FM_OPL * OPL,
OPL_PORTHANDLER_W PortHandler_w,
OPL_PORTHANDLER_R PortHandler_r,
int param )

◆ OPLSetTimerHandler()

void OPLSetTimerHandler ( FM_OPL * OPL,
OPL_TIMERHANDLER TimerHandler,
int channelOffset )

◆ OPLSetUpdateHandler()

void OPLSetUpdateHandler ( FM_OPL * OPL,
OPL_UPDATEHANDLER UpdateHandler,
int param )

◆ OPLTimerOver()

int OPLTimerOver ( FM_OPL * OPL,
int c )

◆ OPLWrite()

int OPLWrite ( FM_OPL * OPL,
int a,
int v )

◆ Y8950UpdateOne()

void Y8950UpdateOne ( FM_OPL * OPL,
INT16 * buffer,
int length )

◆ YM3812UpdateOne()

void YM3812UpdateOne ( FM_OPL * OPL,
INT16 * buffer,
int length )