diff options
Diffstat (limited to 'include/sound/emux_synth.h')
| -rw-r--r-- | include/sound/emux_synth.h | 105 |
1 files changed, 53 insertions, 52 deletions
diff --git a/include/sound/emux_synth.h b/include/sound/emux_synth.h index c6970aac9bdc..b2d6b2acc7c7 100644 --- a/include/sound/emux_synth.h +++ b/include/sound/emux_synth.h | |||
| @@ -36,39 +36,40 @@ | |||
| 36 | */ | 36 | */ |
| 37 | #define SNDRV_EMUX_USE_RAW_EFFECT | 37 | #define SNDRV_EMUX_USE_RAW_EFFECT |
| 38 | 38 | ||
| 39 | 39 | struct snd_emux; | |
| 40 | /* | 40 | struct snd_emux_port; |
| 41 | * typedefs | 41 | struct snd_emux_voice; |
| 42 | */ | 42 | struct snd_emux_effect_table; |
| 43 | typedef struct snd_emux_effect_table snd_emux_effect_table_t; | ||
| 44 | typedef struct snd_emux_port snd_emux_port_t; | ||
| 45 | typedef struct snd_emux_voice snd_emux_voice_t; | ||
| 46 | typedef struct snd_emux snd_emux_t; | ||
| 47 | |||
| 48 | 43 | ||
| 49 | /* | 44 | /* |
| 50 | * operators | 45 | * operators |
| 51 | */ | 46 | */ |
| 52 | typedef struct snd_emux_operators { | 47 | struct snd_emux_operators { |
| 53 | struct module *owner; | 48 | struct module *owner; |
| 54 | snd_emux_voice_t *(*get_voice)(snd_emux_t *emu, snd_emux_port_t *port); | 49 | struct snd_emux_voice *(*get_voice)(struct snd_emux *emu, |
| 55 | int (*prepare)(snd_emux_voice_t *vp); | 50 | struct snd_emux_port *port); |
| 56 | void (*trigger)(snd_emux_voice_t *vp); | 51 | int (*prepare)(struct snd_emux_voice *vp); |
| 57 | void (*release)(snd_emux_voice_t *vp); | 52 | void (*trigger)(struct snd_emux_voice *vp); |
| 58 | void (*update)(snd_emux_voice_t *vp, int update); | 53 | void (*release)(struct snd_emux_voice *vp); |
| 59 | void (*terminate)(snd_emux_voice_t *vp); | 54 | void (*update)(struct snd_emux_voice *vp, int update); |
| 60 | void (*free_voice)(snd_emux_voice_t *vp); | 55 | void (*terminate)(struct snd_emux_voice *vp); |
| 61 | void (*reset)(snd_emux_t *emu, int ch); | 56 | void (*free_voice)(struct snd_emux_voice *vp); |
| 62 | /* the first parameters are snd_emux_t */ | 57 | void (*reset)(struct snd_emux *emu, int ch); |
| 63 | int (*sample_new)(snd_emux_t *emu, snd_sf_sample_t *sp, snd_util_memhdr_t *hdr, const void __user *data, long count); | 58 | /* the first parameters are struct snd_emux */ |
| 64 | int (*sample_free)(snd_emux_t *emu, snd_sf_sample_t *sp, snd_util_memhdr_t *hdr); | 59 | int (*sample_new)(struct snd_emux *emu, struct snd_sf_sample *sp, |
| 65 | void (*sample_reset)(snd_emux_t *emu); | 60 | struct snd_util_memhdr *hdr, |
| 66 | int (*load_fx)(snd_emux_t *emu, int type, int arg, const void __user *data, long count); | 61 | const void __user *data, long count); |
| 67 | void (*sysex)(snd_emux_t *emu, char *buf, int len, int parsed, snd_midi_channel_set_t *chset); | 62 | int (*sample_free)(struct snd_emux *emu, struct snd_sf_sample *sp, |
| 63 | struct snd_util_memhdr *hdr); | ||
| 64 | void (*sample_reset)(struct snd_emux *emu); | ||
| 65 | int (*load_fx)(struct snd_emux *emu, int type, int arg, | ||
| 66 | const void __user *data, long count); | ||
| 67 | void (*sysex)(struct snd_emux *emu, char *buf, int len, int parsed, | ||
| 68 | struct snd_midi_channel_set *chset); | ||
| 68 | #ifdef CONFIG_SND_SEQUENCER_OSS | 69 | #ifdef CONFIG_SND_SEQUENCER_OSS |
| 69 | int (*oss_ioctl)(snd_emux_t *emu, int cmd, int p1, int p2); | 70 | int (*oss_ioctl)(struct snd_emux *emu, int cmd, int p1, int p2); |
| 70 | #endif | 71 | #endif |
| 71 | } snd_emux_operators_t; | 72 | }; |
| 72 | 73 | ||
| 73 | 74 | ||
| 74 | /* | 75 | /* |
| @@ -90,46 +91,46 @@ typedef struct snd_emux_operators { | |||
| 90 | */ | 91 | */ |
| 91 | struct snd_emux { | 92 | struct snd_emux { |
| 92 | 93 | ||
| 93 | snd_card_t *card; /* assigned card */ | 94 | struct snd_card *card; /* assigned card */ |
| 94 | 95 | ||
| 95 | /* following should be initialized before registration */ | 96 | /* following should be initialized before registration */ |
| 96 | int max_voices; /* Number of voices */ | 97 | int max_voices; /* Number of voices */ |
| 97 | int mem_size; /* memory size (in byte) */ | 98 | int mem_size; /* memory size (in byte) */ |
| 98 | int num_ports; /* number of ports to be created */ | 99 | int num_ports; /* number of ports to be created */ |
| 99 | int pitch_shift; /* pitch shift value (for Emu10k1) */ | 100 | int pitch_shift; /* pitch shift value (for Emu10k1) */ |
| 100 | snd_emux_operators_t ops; /* operators */ | 101 | struct snd_emux_operators ops; /* operators */ |
| 101 | void *hw; /* hardware */ | 102 | void *hw; /* hardware */ |
| 102 | unsigned long flags; /* other conditions */ | 103 | unsigned long flags; /* other conditions */ |
| 103 | int midi_ports; /* number of virtual midi devices */ | 104 | int midi_ports; /* number of virtual midi devices */ |
| 104 | int midi_devidx; /* device offset of virtual midi */ | 105 | int midi_devidx; /* device offset of virtual midi */ |
| 105 | unsigned int linear_panning: 1; /* panning is linear (sbawe = 1, emu10k1 = 0) */ | 106 | unsigned int linear_panning: 1; /* panning is linear (sbawe = 1, emu10k1 = 0) */ |
| 106 | int hwdep_idx; /* hwdep device index */ | 107 | int hwdep_idx; /* hwdep device index */ |
| 107 | snd_hwdep_t *hwdep; /* hwdep device */ | 108 | struct snd_hwdep *hwdep; /* hwdep device */ |
| 108 | 109 | ||
| 109 | /* private */ | 110 | /* private */ |
| 110 | int num_voices; /* current number of voices */ | 111 | int num_voices; /* current number of voices */ |
| 111 | snd_sf_list_t *sflist; /* root of SoundFont list */ | 112 | struct snd_sf_list *sflist; /* root of SoundFont list */ |
| 112 | snd_emux_voice_t *voices; /* Voices (EMU 'channel') */ | 113 | struct snd_emux_voice *voices; /* Voices (EMU 'channel') */ |
| 113 | int use_time; /* allocation counter */ | 114 | int use_time; /* allocation counter */ |
| 114 | spinlock_t voice_lock; /* Lock for voice access */ | 115 | spinlock_t voice_lock; /* Lock for voice access */ |
| 115 | struct semaphore register_mutex; | 116 | struct semaphore register_mutex; |
| 116 | int client; /* For the sequencer client */ | 117 | int client; /* For the sequencer client */ |
| 117 | int ports[SNDRV_EMUX_MAX_PORTS]; /* The ports for this device */ | 118 | int ports[SNDRV_EMUX_MAX_PORTS]; /* The ports for this device */ |
| 118 | snd_emux_port_t *portptrs[SNDRV_EMUX_MAX_PORTS]; | 119 | struct snd_emux_port *portptrs[SNDRV_EMUX_MAX_PORTS]; |
| 119 | int used; /* use counter */ | 120 | int used; /* use counter */ |
| 120 | char *name; /* name of the device (internal) */ | 121 | char *name; /* name of the device (internal) */ |
| 121 | snd_rawmidi_t **vmidi; | 122 | struct snd_rawmidi **vmidi; |
| 122 | struct timer_list tlist; /* for pending note-offs */ | 123 | struct timer_list tlist; /* for pending note-offs */ |
| 123 | int timer_active; | 124 | int timer_active; |
| 124 | 125 | ||
| 125 | snd_util_memhdr_t *memhdr; /* memory chunk information */ | 126 | struct snd_util_memhdr *memhdr; /* memory chunk information */ |
| 126 | 127 | ||
| 127 | #ifdef CONFIG_PROC_FS | 128 | #ifdef CONFIG_PROC_FS |
| 128 | snd_info_entry_t *proc; | 129 | struct snd_info_entry *proc; |
| 129 | #endif | 130 | #endif |
| 130 | 131 | ||
| 131 | #ifdef CONFIG_SND_SEQUENCER_OSS | 132 | #ifdef CONFIG_SND_SEQUENCER_OSS |
| 132 | snd_seq_device_t *oss_synth; | 133 | struct snd_seq_device *oss_synth; |
| 133 | #endif | 134 | #endif |
| 134 | }; | 135 | }; |
| 135 | 136 | ||
| @@ -139,18 +140,18 @@ struct snd_emux { | |||
| 139 | */ | 140 | */ |
| 140 | struct snd_emux_port { | 141 | struct snd_emux_port { |
| 141 | 142 | ||
| 142 | snd_midi_channel_set_t chset; | 143 | struct snd_midi_channel_set chset; |
| 143 | snd_emux_t *emu; | 144 | struct snd_emux *emu; |
| 144 | 145 | ||
| 145 | char port_mode; /* operation mode */ | 146 | char port_mode; /* operation mode */ |
| 146 | int volume_atten; /* emuX raw attenuation */ | 147 | int volume_atten; /* emuX raw attenuation */ |
| 147 | unsigned long drum_flags; /* drum bitmaps */ | 148 | unsigned long drum_flags; /* drum bitmaps */ |
| 148 | int ctrls[EMUX_MD_END]; /* control parameters */ | 149 | int ctrls[EMUX_MD_END]; /* control parameters */ |
| 149 | #ifdef SNDRV_EMUX_USE_RAW_EFFECT | 150 | #ifdef SNDRV_EMUX_USE_RAW_EFFECT |
| 150 | snd_emux_effect_table_t *effect; | 151 | struct snd_emux_effect_table *effect; |
| 151 | #endif | 152 | #endif |
| 152 | #ifdef CONFIG_SND_SEQUENCER_OSS | 153 | #ifdef CONFIG_SND_SEQUENCER_OSS |
| 153 | snd_seq_oss_arg_t *oss_arg; | 154 | struct snd_seq_oss_arg *oss_arg; |
| 154 | #endif | 155 | #endif |
| 155 | }; | 156 | }; |
| 156 | 157 | ||
| @@ -179,16 +180,16 @@ struct snd_emux_voice { | |||
| 179 | unsigned char key; | 180 | unsigned char key; |
| 180 | unsigned char velocity; /* Velocity of current note */ | 181 | unsigned char velocity; /* Velocity of current note */ |
| 181 | 182 | ||
| 182 | snd_sf_zone_t *zone; /* Zone assigned to this note */ | 183 | struct snd_sf_zone *zone; /* Zone assigned to this note */ |
| 183 | void *block; /* sample block pointer (optional) */ | 184 | void *block; /* sample block pointer (optional) */ |
| 184 | snd_midi_channel_t *chan; /* Midi channel for this note */ | 185 | struct snd_midi_channel *chan; /* Midi channel for this note */ |
| 185 | snd_emux_port_t *port; /* associated port */ | 186 | struct snd_emux_port *port; /* associated port */ |
| 186 | snd_emux_t *emu; /* assigned root info */ | 187 | struct snd_emux *emu; /* assigned root info */ |
| 187 | void *hw; /* hardware pointer (emu8000_t or emu10k1_t) */ | 188 | void *hw; /* hardware pointer (emu8000 or emu10k1) */ |
| 188 | unsigned long ontime; /* jiffies at note triggered */ | 189 | unsigned long ontime; /* jiffies at note triggered */ |
| 189 | 190 | ||
| 190 | /* Emu8k/Emu10k1 registers */ | 191 | /* Emu8k/Emu10k1 registers */ |
| 191 | soundfont_voice_info_t reg; | 192 | struct soundfont_voice_info reg; |
| 192 | 193 | ||
| 193 | /* additional registers */ | 194 | /* additional registers */ |
| 194 | int avol; /* volume attenuation */ | 195 | int avol; /* volume attenuation */ |
| @@ -229,15 +230,15 @@ struct snd_emux_effect_table { | |||
| 229 | /* | 230 | /* |
| 230 | * prototypes - interface to Emu10k1 and Emu8k routines | 231 | * prototypes - interface to Emu10k1 and Emu8k routines |
| 231 | */ | 232 | */ |
| 232 | int snd_emux_new(snd_emux_t **remu); | 233 | int snd_emux_new(struct snd_emux **remu); |
| 233 | int snd_emux_register(snd_emux_t *emu, snd_card_t *card, int index, char *name); | 234 | int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, char *name); |
| 234 | int snd_emux_free(snd_emux_t *emu); | 235 | int snd_emux_free(struct snd_emux *emu); |
| 235 | 236 | ||
| 236 | /* | 237 | /* |
| 237 | * exported functions | 238 | * exported functions |
| 238 | */ | 239 | */ |
| 239 | void snd_emux_terminate_all(snd_emux_t *emu); | 240 | void snd_emux_terminate_all(struct snd_emux *emu); |
| 240 | void snd_emux_lock_voice(snd_emux_t *emu, int voice); | 241 | void snd_emux_lock_voice(struct snd_emux *emu, int voice); |
| 241 | void snd_emux_unlock_voice(snd_emux_t *emu, int voice); | 242 | void snd_emux_unlock_voice(struct snd_emux *emu, int voice); |
| 242 | 243 | ||
| 243 | #endif /* __SOUND_EMUX_SYNTH_H */ | 244 | #endif /* __SOUND_EMUX_SYNTH_H */ |
