Commit | Line | Data |
---|---|---|
1a59d1b8 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
1da177e4 LT |
2 | #ifndef __SOUND_MIXER_OSS_H |
3 | #define __SOUND_MIXER_OSS_H | |
4 | ||
5 | /* | |
6 | * OSS MIXER API | |
c1017a4c | 7 | * Copyright (c) by Jaroslav Kysela <perex@perex.cz> |
1da177e4 LT |
8 | */ |
9 | ||
6d2412b8 | 10 | #if IS_ENABLED(CONFIG_SND_MIXER_OSS) |
1da177e4 | 11 | |
1da177e4 LT |
12 | #define SNDRV_OSS_MAX_MIXERS 32 |
13 | ||
f956b4a3 TI |
14 | struct snd_mixer_oss_file; |
15 | ||
16 | struct snd_mixer_oss_slot { | |
1da177e4 LT |
17 | int number; |
18 | unsigned int stereo: 1; | |
f956b4a3 TI |
19 | int (*get_volume)(struct snd_mixer_oss_file *fmixer, |
20 | struct snd_mixer_oss_slot *chn, | |
21 | int *left, int *right); | |
22 | int (*put_volume)(struct snd_mixer_oss_file *fmixer, | |
23 | struct snd_mixer_oss_slot *chn, | |
24 | int left, int right); | |
25 | int (*get_recsrc)(struct snd_mixer_oss_file *fmixer, | |
26 | struct snd_mixer_oss_slot *chn, | |
27 | int *active); | |
28 | int (*put_recsrc)(struct snd_mixer_oss_file *fmixer, | |
29 | struct snd_mixer_oss_slot *chn, | |
30 | int active); | |
1da177e4 LT |
31 | unsigned long private_value; |
32 | void *private_data; | |
f956b4a3 | 33 | void (*private_free)(struct snd_mixer_oss_slot *slot); |
1da177e4 LT |
34 | int volume[2]; |
35 | }; | |
36 | ||
f956b4a3 TI |
37 | struct snd_mixer_oss { |
38 | struct snd_card *card; | |
1da177e4 LT |
39 | char id[16]; |
40 | char name[32]; | |
f956b4a3 | 41 | struct snd_mixer_oss_slot slots[SNDRV_OSS_MAX_MIXERS]; /* OSS mixer slots */ |
1da177e4 | 42 | unsigned int mask_recsrc; /* exclusive recsrc mask */ |
f956b4a3 TI |
43 | int (*get_recsrc)(struct snd_mixer_oss_file *fmixer, |
44 | unsigned int *active_index); | |
45 | int (*put_recsrc)(struct snd_mixer_oss_file *fmixer, | |
46 | unsigned int active_index); | |
1da177e4 | 47 | void *private_data_recsrc; |
f956b4a3 | 48 | void (*private_free_recsrc)(struct snd_mixer_oss *mixer); |
1a60d4c5 | 49 | struct mutex reg_mutex; |
f956b4a3 | 50 | struct snd_info_entry *proc_entry; |
1da177e4 LT |
51 | int oss_dev_alloc; |
52 | /* --- */ | |
53 | int oss_recsrc; | |
54 | }; | |
55 | ||
f956b4a3 TI |
56 | struct snd_mixer_oss_file { |
57 | struct snd_card *card; | |
58 | struct snd_mixer_oss *mixer; | |
1da177e4 LT |
59 | }; |
60 | ||
fea952e5 CL |
61 | int snd_mixer_oss_ioctl_card(struct snd_card *card, |
62 | unsigned int cmd, unsigned long arg); | |
63 | ||
1da177e4 LT |
64 | #endif /* CONFIG_SND_MIXER_OSS */ |
65 | ||
66 | #endif /* __SOUND_MIXER_OSS_H */ |