root/include/sound/mixer_oss.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 */

/* [<][>][^][v][top][bottom][index][help] */