26 #ifdef CONFIG_SND_SEQUENCER_OSS
28 #include <linux/export.h>
29 #include <asm/uaccess.h>
42 void *
private,
int atomic,
int hop);
45 int cmd,
unsigned char *
event,
int atomic,
int hop);
47 int cmd,
unsigned char *
event,
int atomic,
int hop);
49 int ch,
int param,
int val,
int atomic,
int hop);
54 .open = snd_emux_open_seq_oss,
55 .close = snd_emux_close_seq_oss,
56 .ioctl = snd_emux_ioctl_seq_oss,
57 .load_patch = snd_emux_load_patch_seq_oss,
58 .reset = snd_emux_reset_seq_oss,
82 arg->
oper = oss_callback;
98 emu->oss_synth =
NULL;
104 #define SF_CLIENT_NO(p) ((p) + 0x1000)
130 callback.event_input = snd_emux_event_oss_input;
157 #define DEFAULT_DRUM_FLAGS ((1<<9) | (1<<25))
232 SF_CLIENT_NO(p->
chset.port));
235 if (count < (
int)
sizeof(
patch))
243 if (emu->
ops.load_fx)
244 rc = emu->
ops.load_fx(emu,
patch.type,
patch.optarg, buf, count);
258 snd_emux_ioctl_seq_oss(
struct snd_seq_oss_arg *arg,
unsigned int cmd,
unsigned long ioarg)
332 emuspec_control(emu, p, cmd, data, atomic, hop);
334 gusspec_control(emu, p, cmd, data, atomic, hop);
344 unsigned char *
event,
int atomic,
int hop)
356 chan = &port->
chset.channels[voice];
358 p1 = *(
unsigned short *) &event[4];
359 p2 = *(
short *) &event[6];
369 snd_emux_send_effect_oss(port, chan, p1, p2);
405 reset_port_mode(port, p1);
411 for (i = 0; i < port->
chset.max_channels; i++) {
412 chan = &port->
chset.channels[
i];
425 if (emu->
ops.oss_ioctl)
426 emu->
ops.oss_ioctl(emu, cmd, p1, p2);
439 unsigned char *event,
int atomic,
int hop)
455 chan = &port->
chset.channels[voice];
457 p1 = *(
unsigned short *) &event[4];
458 p2 = *(
short *) &event[6];
459 plong = *(
int*) &event[4];
489 #ifdef SNDRV_EMUX_USE_RAW_EFFECT
491 (
short)(plong & 0x7fff),
494 (plong >> 15) & 0xffff,
509 memset(&ev, 0,
sizeof(ev));