#ifndef __OPL4_LOCAL_H
#define __OPL4_LOCAL_H
#include <sound/opl4.h>
#define OPL4_REG_TEST0 …
#define OPL4_REG_TEST1 …
#define OPL4_REG_MEMORY_CONFIGURATION …
#define OPL4_MODE_BIT …
#define OPL4_MTYPE_BIT …
#define OPL4_TONE_HEADER_MASK …
#define OPL4_DEVICE_ID_MASK …
#define OPL4_REG_MEMORY_ADDRESS_HIGH …
#define OPL4_REG_MEMORY_ADDRESS_MID …
#define OPL4_REG_MEMORY_ADDRESS_LOW …
#define OPL4_REG_MEMORY_DATA …
#define OPL4_REG_TONE_NUMBER …
#define OPL4_REG_F_NUMBER …
#define OPL4_TONE_NUMBER_BIT8 …
#define OPL4_F_NUMBER_LOW_MASK …
#define OPL4_REG_OCTAVE …
#define OPL4_F_NUMBER_HIGH_MASK …
#define OPL4_BLOCK_MASK …
#define OPL4_PSEUDO_REVERB_BIT …
#define OPL4_REG_LEVEL …
#define OPL4_TOTAL_LEVEL_MASK …
#define OPL4_LEVEL_DIRECT_BIT …
#define OPL4_REG_MISC …
#define OPL4_KEY_ON_BIT …
#define OPL4_DAMP_BIT …
#define OPL4_LFO_RESET_BIT …
#define OPL4_OUTPUT_CHANNEL_BIT …
#define OPL4_PAN_POT_MASK …
#define OPL4_REG_LFO_VIBRATO …
#define OPL4_LFO_FREQUENCY_MASK …
#define OPL4_VIBRATO_DEPTH_MASK …
#define OPL4_CHORUS_SEND_MASK …
#define OPL4_REG_ATTACK_DECAY1 …
#define OPL4_ATTACK_RATE_MASK …
#define OPL4_DECAY1_RATE_MASK …
#define OPL4_REG_LEVEL_DECAY2 …
#define OPL4_DECAY_LEVEL_MASK …
#define OPL4_DECAY2_RATE_MASK …
#define OPL4_REG_RELEASE_CORRECTION …
#define OPL4_RELEASE_RATE_MASK …
#define OPL4_RATE_INTERPOLATION_MASK …
#define OPL4_REG_TREMOLO …
#define OPL4_TREMOLO_DEPTH_MASK …
#define OPL4_REVERB_SEND_MASK …
#define OPL4_REG_MIX_CONTROL_FM …
#define OPL4_REG_MIX_CONTROL_PCM …
#define OPL4_MIX_LEFT_MASK …
#define OPL4_MIX_RIGHT_MASK …
#define OPL4_REG_ATC …
#define OPL4_ATC_BIT …
#define OPL4_STATUS_BUSY …
#define OPL4_STATUS_LOAD …
#define OPL4_MAX_VOICES …
#define SNDRV_SEQ_DEV_ID_OPL4 …
struct opl4_sound { … };
struct opl4_region { … };
struct opl4_region_ptr { … };
struct opl4_voice { … };
struct snd_opl4 { … };
void snd_opl4_write(struct snd_opl4 *opl4, u8 reg, u8 value);
u8 snd_opl4_read(struct snd_opl4 *opl4, u8 reg);
void snd_opl4_read_memory(struct snd_opl4 *opl4, char *buf, int offset, int size);
void snd_opl4_write_memory(struct snd_opl4 *opl4, const char *buf, int offset, int size);
int snd_opl4_create_mixer(struct snd_opl4 *opl4);
#ifdef CONFIG_SND_PROC_FS
int snd_opl4_create_proc(struct snd_opl4 *opl4);
void snd_opl4_free_proc(struct snd_opl4 *opl4);
#else
static inline int snd_opl4_create_proc(struct snd_opl4 *opl4) { return 0; }
static inline void snd_opl4_free_proc(struct snd_opl4 *opl4) {}
#endif
extern int volume_boost;
void snd_opl4_synth_reset(struct snd_opl4 *opl4);
void snd_opl4_synth_shutdown(struct snd_opl4 *opl4);
void snd_opl4_note_on(void *p, int note, int vel, struct snd_midi_channel *chan);
void snd_opl4_note_off(void *p, int note, int vel, struct snd_midi_channel *chan);
void snd_opl4_terminate_note(void *p, int note, struct snd_midi_channel *chan);
void snd_opl4_control(void *p, int type, struct snd_midi_channel *chan);
void snd_opl4_sysex(void *p, unsigned char *buf, int len, int parsed, struct snd_midi_channel_set *chset);
int snd_yrw801_detect(struct snd_opl4 *opl4);
extern const struct opl4_region_ptr snd_yrw801_regions[];
#endif