2
* Purpose: Definitions for server applications using the oss_userdev driver.
4
* This file is part of the oss_userdev driver included in Open Sound
5
* System. However this file is not part of the OSS API.
7
* The ioctl calls defined in this file can only be used in dedicated server
8
* applications that provide virtual audio device services to other
9
* applications. For example the userdev driver can be used to create virtual
10
* audio device that connects to the actual soundcard in another system
13
* Applications that use the client devices will use only the OSS ioctl calls
14
* defined in soundcard.h. They cannot use anything from this file.
17
#ifndef OSS_USERDEV_EXPORTS_H
18
#define OSS_USERDEV_EXPORTS_H
21
* This file is part of Open Sound System.
23
* Copyright (C) 4Front Technologies 1996-2008.
25
* This this source file is released under GPL v2 license (no other versions).
26
* See the COPYING file included in the main directory of this source
27
* distribution for the license terms and conditions.
33
char name[50]; /* Audio device name to be shown to the users */
34
unsigned int flags; /* Not suported for the time being */
35
#define USERDEV_F_VMIX_ATTACH 0x00000001 /* Attach vmix */
36
#define USERDEV_F_VMIX_PRECREATE 0x00000002 /* Precreate vmix channels */
37
#define USERDEV_F_ERROR_ON_NO_CLIENT 0x00000004 /* Return EIO from server read/write if no client is connected. */
38
#define USERDEV_F_VMIX_PRIVATENODE 0x00000008 /* Create private device file for the client */
40
oss_devnode_t devnode; /* Returns the device file name that clients should open */
42
unsigned int match_method;
43
#define UD_MATCH_ANY 0
44
#define UD_MATCH_UID 1
45
#define UD_MATCH_GID 2
46
#define UD_MATCH_PGID 3
47
unsigned int match_key;
50
* Poll interval in milliseconds. Poll interval determines
51
* the fragment size to be used by the device.
53
unsigned int poll_interval;
56
#define USERDEV_MAX_MIXERS 64
62
int num; /* Return parameter */
69
int num; /* Return parameter */
71
int type; /* MIXT_* */
72
int flags; /* MIXF_* */
73
int index; /* Index to the values[] array */
76
char enum_choises[2048];
77
unsigned char enum_present[32]; /* Mask of allowed enum values */
78
int control_no; /* SOUND_MIXER_VOLUME..SOUND_MIXER_MIDI */
79
int rgbcolor; /* OSS_RGB_* */
84
int values[USERDEV_MAX_MIXERS];
85
} userdev_mixvalues_t;
87
#define USERDEV_CREATE_INSTANCE __SIOWR('u', 1, userdev_create_t)
88
#define USERDEV_GET_CLIENTCOUNT __SIOR ('u', 2, int)
90
#define USERDEV_CREATE_MIXGROUP __SIOWR('u', 3, userdev_mixgroup_t)
91
#define USERDEV_CREATE_MIXCTL __SIOWR('u', 4, userdev_mixctl_t)
92
#define USERDEV_GET_MIX_CHANGECOUNT __SIOWR('u', 5, int)
93
#define USERDEV_SET_MIXERS __SIOWR('u', 6, userdev_mixvalues_t)
94
#define USERDEV_GET_MIXERS __SIOWR('u', 7, userdev_mixvalues_t)