#ifndef YMF262_H
#define YMF262_H
namespace mame {
#define BUILD_YMF262 (HAS_YMF262)
#define OPL3_SAMPLE_BITS 16
#ifndef OSD_CPU_H
#define OSD_CPU_H
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef signed char INT8;
typedef signed short INT16;
typedef signed int INT32;
#endif
typedef stream_sample_t OPL3SAMPLE;
typedef void (*OPL3_TIMERHANDLER)(void *param,int timer,double interval_Sec);
typedef void (*OPL3_IRQHANDLER)(void *param,int irq);
typedef void (*OPL3_UPDATEHANDLER)(void *param,int min_interval_us);
#if BUILD_YMF262
void *YMF262Init(int clock, int rate);
void YMF262Shutdown(void *chip);
void YMF262ResetChip(void *chip);
int YMF262Write(void *chip, int a, int v);
unsigned char YMF262Read(void *chip, int a);
int YMF262TimerOver(void *chip, int c);
void YMF262UpdateOne(void *chip, OPL3SAMPLE **buffers, int length);
void YMF262SetTimerHandler(void *chip, OPL3_TIMERHANDLER TimerHandler, void *param);
void YMF262SetIRQHandler(void *chip, OPL3_IRQHANDLER IRQHandler, void *param);
void YMF262SetUpdateHandler(void *chip, OPL3_UPDATEHANDLER UpdateHandler, void *param);
#endif
}
#endif