Warning: This file is not a C or C++ file. It does not have highlighting.

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
14struct snd_mixer_oss_file;
15
16struct 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
37struct 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
56struct snd_mixer_oss_file {
57 struct snd_card *card;
58 struct snd_mixer_oss *mixer;
59};
60
61int 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 */
67

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of linux/include/sound/mixer_oss.h