Lines Matching refs:emu
26 struct snd_emux *emu;
29 emu = kzalloc(sizeof(*emu), GFP_KERNEL);
30 if (emu == NULL)
33 spin_lock_init(&emu->voice_lock);
34 mutex_init(&emu->register_mutex);
36 emu->client = -1;
38 emu->oss_synth = NULL;
40 emu->max_voices = 0;
41 emu->use_time = 0;
43 timer_setup(&emu->tlist, snd_emux_timer_callback, 0);
44 emu->timer_active = 0;
46 *remu = emu;
58 struct snd_emux *emu = private_data;
59 return emu->ops.sample_new(emu, sp, hdr, buf, count);
66 struct snd_emux *emu = private_data;
67 return emu->ops.sample_free(emu, sp, hdr);
73 struct snd_emux *emu = private_data;
74 emu->ops.sample_reset(emu);
77 int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, char *name)
82 if (snd_BUG_ON(!emu->hw || emu->max_voices <= 0))
87 emu->card = card;
88 emu->name = kstrdup(name, GFP_KERNEL);
89 emu->voices = kcalloc(emu->max_voices, sizeof(struct snd_emux_voice),
91 if (emu->name == NULL || emu->voices == NULL)
96 sf_cb.private_data = emu;
97 if (emu->ops.sample_new)
99 if (emu->ops.sample_free)
101 if (emu->ops.sample_reset)
103 emu->sflist = snd_sf_new(&sf_cb, emu->memhdr);
104 if (emu->sflist == NULL)
107 err = snd_emux_init_hwdep(emu);
111 snd_emux_init_voices(emu);
113 snd_emux_init_seq(emu, card, index);
115 snd_emux_init_seq_oss(emu);
117 snd_emux_init_virmidi(emu, card);
119 snd_emux_proc_init(emu, card, index);
127 int snd_emux_free(struct snd_emux *emu)
129 if (! emu)
132 timer_shutdown_sync(&emu->tlist);
134 snd_emux_proc_free(emu);
135 snd_emux_delete_virmidi(emu);
137 snd_emux_detach_seq_oss(emu);
139 snd_emux_detach_seq(emu);
140 snd_emux_delete_hwdep(emu);
141 snd_sf_free(emu->sflist);
142 kfree(emu->voices);
143 kfree(emu->name);
144 kfree(emu);