1#ifndef __SOUND_MIXER_OSS_H
2#define __SOUND_MIXER_OSS_H
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
26
27#define SNDRV_OSS_MAX_MIXERS 32
28
29struct snd_mixer_oss_file;
30
31struct snd_mixer_oss_slot {
32 int number;
33 unsigned int stereo: 1;
34 int (*get_volume)(struct snd_mixer_oss_file *fmixer,
35 struct snd_mixer_oss_slot *chn,
36 int *left, int *right);
37 int (*put_volume)(struct snd_mixer_oss_file *fmixer,
38 struct snd_mixer_oss_slot *chn,
39 int left, int right);
40 int (*get_recsrc)(struct snd_mixer_oss_file *fmixer,
41 struct snd_mixer_oss_slot *chn,
42 int *active);
43 int (*put_recsrc)(struct snd_mixer_oss_file *fmixer,
44 struct snd_mixer_oss_slot *chn,
45 int active);
46 unsigned long private_value;
47 void *private_data;
48 void (*private_free)(struct snd_mixer_oss_slot *slot);
49 int volume[2];
50};
51
52struct snd_mixer_oss {
53 struct snd_card *card;
54 char id[16];
55 char name[32];
56 struct snd_mixer_oss_slot slots[SNDRV_OSS_MAX_MIXERS];
57 unsigned int mask_recsrc;
58 int (*get_recsrc)(struct snd_mixer_oss_file *fmixer,
59 unsigned int *active_index);
60 int (*put_recsrc)(struct snd_mixer_oss_file *fmixer,
61 unsigned int active_index);
62 void *private_data_recsrc;
63 void (*private_free_recsrc)(struct snd_mixer_oss *mixer);
64 struct mutex reg_mutex;
65 struct snd_info_entry *proc_entry;
66 int oss_dev_alloc;
67
68 int oss_recsrc;
69};
70
71struct snd_mixer_oss_file {
72 struct snd_card *card;
73 struct snd_mixer_oss *mixer;
74};
75
76int snd_mixer_oss_ioctl_card(struct snd_card *card,
77 unsigned int cmd, unsigned long arg);
78
79#endif
80
81#endif
82