1 | /* SPDX-License-Identifier: GPL-2.0-or-later */
|
---|
2 | #ifndef __SOUND_MIXER_OSS_H
|
---|
3 | #define __SOUND_MIXER_OSS_H
|
---|
4 |
|
---|
5 | /*
|
---|
6 | * OSS MIXER API
|
---|
7 | * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
|
---|
8 | */
|
---|
9 |
|
---|
10 | #if IS_ENABLED(CONFIG_SND_MIXER_OSS)
|
---|
11 |
|
---|
12 | #define SNDRV_OSS_MAX_MIXERS 32
|
---|
13 |
|
---|
14 | struct snd_mixer_oss_file;
|
---|
15 |
|
---|
16 | struct snd_mixer_oss_slot {
|
---|
17 | int number;
|
---|
18 | unsigned int stereo: 1;
|
---|
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);
|
---|
31 | unsigned long private_value;
|
---|
32 | void *private_data;
|
---|
33 | void (*private_free)(struct snd_mixer_oss_slot *slot);
|
---|
34 | int volume[2];
|
---|
35 | };
|
---|
36 |
|
---|
37 | struct snd_mixer_oss {
|
---|
38 | struct snd_card *card;
|
---|
39 | char id[16];
|
---|
40 | char name[32];
|
---|
41 | struct snd_mixer_oss_slot slots[SNDRV_OSS_MAX_MIXERS]; /* OSS mixer slots */
|
---|
42 | unsigned int mask_recsrc; /* exclusive recsrc mask */
|
---|
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);
|
---|
47 | void *private_data_recsrc;
|
---|
48 | void (*private_free_recsrc)(struct snd_mixer_oss *mixer);
|
---|
49 | struct mutex reg_mutex;
|
---|
50 | struct snd_info_entry *proc_entry;
|
---|
51 | int oss_dev_alloc;
|
---|
52 | /* --- */
|
---|
53 | int oss_recsrc;
|
---|
54 | };
|
---|
55 |
|
---|
56 | struct snd_mixer_oss_file {
|
---|
57 | struct snd_card *card;
|
---|
58 | struct snd_mixer_oss *mixer;
|
---|
59 | };
|
---|
60 |
|
---|
61 | int snd_mixer_oss_ioctl_card(struct snd_card *card,
|
---|
62 | unsigned int cmd, unsigned long arg);
|
---|
63 |
|
---|
64 | #endif /* CONFIG_SND_MIXER_OSS */
|
---|
65 |
|
---|
66 | #endif /* __SOUND_MIXER_OSS_H */
|
---|