Blame view

include/sound/pcm_oss.h 2.64 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
  #ifndef __SOUND_PCM_OSS_H
  #define __SOUND_PCM_OSS_H
  
  /*
   *  Digital Audio (PCM) - OSS compatibility abstract layer
c1017a4cd   Jaroslav Kysela   [ALSA] Changed Ja...
6
   *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   *
   *
   *   This program is free software; you can redistribute it and/or modify
   *   it under the terms of the GNU General Public License as published by
   *   the Free Software Foundation; either version 2 of the License, or
   *   (at your option) any later version.
   *
   *   This program is distributed in the hope that it will be useful,
   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   *   GNU General Public License for more details.
   *
   *   You should have received a copy of the GNU General Public License
   *   along with this program; if not, write to the Free Software
   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
   *
   */
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
24
  struct snd_pcm_oss_setup {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
25
26
27
28
29
30
  	char *task_name;
  	unsigned int disable:1,
  		     direct:1,
  		     block:1,
  		     nonblock:1,
  		     partialfrag:1,
10f69f9e4   Takashi Iwai   [ALSA] pcm-oss - ...
31
32
  		     nosilence:1,
  		     buggyptr:1;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
33
34
  	unsigned int periods;
  	unsigned int period_size;
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
35
  	struct snd_pcm_oss_setup *next;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
36
  };
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
37
  struct snd_pcm_oss_runtime {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
  	unsigned params: 1,			/* format/parameter change */
  		 prepare: 1,			/* need to prepare the operation */
  		 trigger: 1,			/* trigger flag */
  		 sync_trigger: 1;		/* sync trigger flag */
  	int rate;				/* requested rate */
  	int format;				/* requested OSS format */
  	unsigned int channels;			/* requested channels */
  	unsigned int fragshift;
  	unsigned int maxfrags;
  	unsigned int subdivision;		/* requested subdivision */
  	size_t period_bytes;			/* requested period size */
  	size_t period_frames;			/* period frames for poll */
  	size_t period_ptr;			/* actual write pointer to period */
  	unsigned int periods;
  	size_t buffer_bytes;			/* requested buffer size */
  	size_t bytes;				/* total # bytes processed */
  	size_t mmap_bytes;
  	char *buffer;				/* vmallocated period */
  	size_t buffer_used;			/* used length from period buffer */
e3a5d59a1   Takashi Iwai   [ALSA] Fix races ...
57
  	struct mutex params_lock;
21a3479a0   Jaroslav Kysela   [ALSA] PCM midlev...
58
  #ifdef CONFIG_SND_PCM_OSS_PLUGINS
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
59
60
  	struct snd_pcm_plugin *plugin_first;
  	struct snd_pcm_plugin *plugin_last;
21a3479a0   Jaroslav Kysela   [ALSA] PCM midlev...
61
  #endif
f240406ba   Jaroslav Kysela   ALSA: pcm_lib - c...
62
  	unsigned int prev_hw_ptr_period;
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
63
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
64

6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
65
66
67
  struct snd_pcm_oss_file {
  	struct snd_pcm_substream *streams[2];
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
68

6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
69
  struct snd_pcm_oss_substream {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
70
  	unsigned oss: 1;			/* oss mode */
060d77b9c   Takashi Iwai   [ALSA] Fix / clea...
71
  	struct snd_pcm_oss_setup setup;		/* active setup */
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
72
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
73

6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
74
75
  struct snd_pcm_oss_stream {
  	struct snd_pcm_oss_setup *setup_list;	/* setup list */
1a60d4c5a   Ingo Molnar   [ALSA] semaphore ...
76
  	struct mutex setup_mutex;
b7d90a356   Takashi Iwai   [ALSA] Fix Oops a...
77
  #ifdef CONFIG_SND_VERBOSE_PROCFS
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
78
  	struct snd_info_entry *proc_entry;
b7d90a356   Takashi Iwai   [ALSA] Fix Oops a...
79
  #endif
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
80
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
81

6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
82
  struct snd_pcm_oss {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
83
84
  	int reg;
  	unsigned int reg_mask;
6ac77bc18   Takashi Iwai   [ALSA] Remove xxx...
85
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
86
87
  
  #endif /* __SOUND_PCM_OSS_H */