home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / sound / mixer_oss.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.3 KB  |  79 lines

  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@suse.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.  
  29. struct snd_mixer_oss_file;
  30.  
  31. struct 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.  
  52. struct 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.  
  71. struct snd_mixer_oss_file {
  72.     struct snd_card *card;
  73.     struct snd_mixer_oss *mixer;
  74. };
  75.  
  76. #endif /* CONFIG_SND_MIXER_OSS */
  77.  
  78. #endif /* __SOUND_MIXER_OSS_H */
  79.