#include <linux/export.h>
#include "emux_voice.h"
#include <sound/asoundef.h>
#define LIMITVALUE(x, a, b) …
#define LIMITMAX(x, a) …
static int get_zone(struct snd_emux *emu, struct snd_emux_port *port,
int *notep, int vel, struct snd_midi_channel *chan,
struct snd_sf_zone **table);
static int get_bank(struct snd_emux_port *port, struct snd_midi_channel *chan);
static void terminate_note1(struct snd_emux *emu, int note,
struct snd_midi_channel *chan, int free);
static void exclusive_note_off(struct snd_emux *emu, struct snd_emux_port *port,
int exclass);
static void terminate_voice(struct snd_emux *emu, struct snd_emux_voice *vp, int free);
static void update_voice(struct snd_emux *emu, struct snd_emux_voice *vp, int update);
static void setup_voice(struct snd_emux_voice *vp);
static int calc_pan(struct snd_emux_voice *vp);
static int calc_volume(struct snd_emux_voice *vp);
static int calc_pitch(struct snd_emux_voice *vp);
void
snd_emux_note_on(void *p, int note, int vel, struct snd_midi_channel *chan)
{ … }
void
snd_emux_note_off(void *p, int note, int vel, struct snd_midi_channel *chan)
{ … }
void snd_emux_timer_callback(struct timer_list *t)
{ … }
void
snd_emux_key_press(void *p, int note, int vel, struct snd_midi_channel *chan)
{ … }
void
snd_emux_update_channel(struct snd_emux_port *port, struct snd_midi_channel *chan, int update)
{ … }
void
snd_emux_update_port(struct snd_emux_port *port, int update)
{ … }
void
snd_emux_control(void *p, int type, struct snd_midi_channel *chan)
{ … }
static void
terminate_note1(struct snd_emux *emu, int note, struct snd_midi_channel *chan, int free)
{ … }
void
snd_emux_terminate_note(void *p, int note, struct snd_midi_channel *chan)
{ … }
void
snd_emux_terminate_all(struct snd_emux *emu)
{ … }
EXPORT_SYMBOL(…);
void
snd_emux_sounds_off_all(struct snd_emux_port *port)
{ … }
static void
exclusive_note_off(struct snd_emux *emu, struct snd_emux_port *port, int exclass)
{ … }
static void
terminate_voice(struct snd_emux *emu, struct snd_emux_voice *vp, int free)
{ … }
static void
update_voice(struct snd_emux *emu, struct snd_emux_voice *vp, int update)
{ … }
#if 0
static const unsigned short voltarget[16] = {
0xEAC0, 0xE0C8, 0xD740, 0xCE20, 0xC560, 0xBD08, 0xB500, 0xAD58,
0xA5F8, 0x9EF0, 0x9830, 0x91C0, 0x8B90, 0x85A8, 0x8000, 0x7A90
};
#endif
#define LO_BYTE(v) …
#define HI_BYTE(v) …
static void
setup_voice(struct snd_emux_voice *vp)
{ … }
static const unsigned char pan_volumes[256] = …;
static int
calc_pan(struct snd_emux_voice *vp)
{ … }
static const unsigned char voltab1[128] = …;
static const unsigned char voltab2[128] = …;
static const unsigned char expressiontab[128] = …;
static int
calc_volume(struct snd_emux_voice *vp)
{ … }
static int
calc_pitch(struct snd_emux_voice *vp)
{ … }
static int
get_bank(struct snd_emux_port *port, struct snd_midi_channel *chan)
{ … }
static int
get_zone(struct snd_emux *emu, struct snd_emux_port *port,
int *notep, int vel, struct snd_midi_channel *chan,
struct snd_sf_zone **table)
{ … }
void
snd_emux_init_voices(struct snd_emux *emu)
{ … }
void snd_emux_lock_voice(struct snd_emux *emu, int voice)
{ … }
EXPORT_SYMBOL(…);
void snd_emux_unlock_voice(struct snd_emux *emu, int voice)
{ … }
EXPORT_SYMBOL(…);