2 * drivers/sound/vidc_synth.c
4 * Synthesizer routines for the VIDC
6 * Copyright (C) 1997 Russell King <rmk@arm.uk.linux.org>
9 #include "sound_config.h"
12 static struct synth_info vidc_info
=
14 "VIDCsound", /* name */
16 SYNTH_TYPE_SAMPLE
, /* synth_type */
17 0, /* synth_subtype */
21 0, /* instr_bank_size */
26 int vidc_synth_volume
;
28 static int vidc_synth_open(int dev
, int mode
)
37 static void vidc_synth_close(int dev
)
43 static struct synth_operations vidc_synth_operations
=
45 "VIDC Synth", /* name */
46 &vidc_info
, /* info */
48 SYNTH_TYPE_SAMPLE
, /* synth_type */
49 /*SAMPLE_TYPE_XXX */ 0, /* synth_subtype */
50 vidc_synth_open
, /* open */
51 vidc_synth_close
, /* close */
54 NULL
, /* start_note */
57 NULL
, /* hw_control */
58 NULL
, /* load_patch */
59 NULL
, /* aftertouch */
60 NULL
, /* controller */
62 NULL
, /* volume_method */
64 NULL
, /* alloc_voice */
65 NULL
, /* setup_voice */
66 NULL
, /* send_sysex */
73 int vidc_synth_get_volume(void)
75 return vidc_synth_volume
;
78 int vidc_synth_set_volume(int newvol
)
80 return vidc_synth_volume
= newvol
;
83 void vidc_synth_init(struct address_info
*hw_config
)
85 vidc_synth_volume
= 100 | (100 << 8);
86 if ((vidc_sdev
=sound_alloc_synthdev())!=-1)
87 synth_devs
[vidc_sdev
] = &vidc_synth_operations
;
89 printk(KERN_ERR
"VIDCsound: Too many synthesizers\n");