Linux Audio

Check our new training course

Loading...
v3.1
 
 1#ifndef __SOUND_MIXER_OSS_H
 2#define __SOUND_MIXER_OSS_H
 3
 4/*
 5 *  OSS MIXER API
 6 *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
 7 *
 8 *
 9 *   This program is free software; you can redistribute it and/or modify
10 *   it under the terms of the GNU General Public License as published by
11 *   the Free Software Foundation; either version 2 of the License, or
12 *   (at your option) any later version.
13 *
14 *   This program is distributed in the hope that it will be useful,
15 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *   GNU General Public License for more details.
18 *
19 *   You should have received a copy of the GNU General Public License
20 *   along with this program; if not, write to the Free Software
21 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
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]; /* OSS mixer slots */
57	unsigned int mask_recsrc;		/* exclusive recsrc mask */
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 /* CONFIG_SND_MIXER_OSS */
80
81#endif /* __SOUND_MIXER_OSS_H */
v6.2
 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 */