source: contrib/API/tools/unimix.h@ 578

Last change on this file since 578 was 578, checked in by David Azarewicz, 11 years ago

API updates

File size: 5.5 KB
Line 
1
2#define SIZE_DEVICE_NAME 32
3
4typedef struct sndrv_ctl_card_info {
5 int card; /* card number */
6 int pad; /* reserved for future (was type) */
7 unsigned char id[16]; /* ID of card (user selectable) */
8 unsigned char driver[16]; /* Driver name */
9 unsigned char name[32]; /* Short name of soundcard */
10 unsigned char longname[80]; /* name + info text about soundcard */
11 unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */
12 unsigned char mixername[80]; /* visual mixer identification */
13 unsigned char components[80]; /* card components / fine identification, delimited with one space (AC97 etc..) */
14 unsigned char reserved[48]; /* reserved for future */
15} UniaudCardInfo;
16
17enum sndrv_ctl_elem_iface {
18 SNDRV_CTL_ELEM_IFACE_CARD = 0, /* global control */
19 SNDRV_CTL_ELEM_IFACE_HWDEP, /* hardware dependent device */
20 SNDRV_CTL_ELEM_IFACE_MIXER, /* virtual mixer device */
21 SNDRV_CTL_ELEM_IFACE_PCM, /* PCM device */
22 SNDRV_CTL_ELEM_IFACE_RAWMIDI, /* RawMidi device */
23 SNDRV_CTL_ELEM_IFACE_TIMER, /* timer device */
24 SNDRV_CTL_ELEM_IFACE_SEQUENCER, /* sequencer client */
25 SNDRV_CTL_ELEM_IFACE_LAST = SNDRV_CTL_ELEM_IFACE_SEQUENCER,
26};
27
28typedef struct sndrv_ctl_elem_id {
29 unsigned int numid; /* numeric identifier, zero = invalid */
30 enum sndrv_ctl_elem_iface iface; /* interface identifier */
31 unsigned int device; /* device/client number */
32 unsigned int subdevice; /* subdevice (substream) number */
33 unsigned char name[44]; /* ASCII name of item */
34 unsigned int index; /* index of item */
35} UniaudControl;
36
37enum sndrv_ctl_elem_type {
38 SNDRV_CTL_ELEM_TYPE_NONE = 0, /* invalid */
39 SNDRV_CTL_ELEM_TYPE_BOOLEAN, /* boolean type */
40 SNDRV_CTL_ELEM_TYPE_INTEGER, /* integer type */
41 SNDRV_CTL_ELEM_TYPE_ENUMERATED, /* enumerated type */
42 SNDRV_CTL_ELEM_TYPE_BYTES, /* byte array */
43 SNDRV_CTL_ELEM_TYPE_IEC958, /* IEC958 (S/PDIF) setup */
44 SNDRV_CTL_ELEM_TYPE_INTEGER64, /* 64-bit integer type */
45 SNDRV_CTL_ELEM_TYPE_LAST = SNDRV_CTL_ELEM_TYPE_INTEGER64,
46};
47
48typedef struct sndrv_ctl_elem_info {
49 UniaudControl id; /* W: element ID */
50 enum sndrv_ctl_elem_type type; /* R: value type - SNDRV_CTL_ELEM_TYPE_* */
51 unsigned int access; /* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
52 unsigned int count; /* count of values */
53 int owner; /* owner's PID of this control */
54 union {
55 struct {
56 long min; /* R: minimum value */
57 long max; /* R: maximum value */
58 long step; /* R: step (0 variable) */
59 } integer;
60 struct {
61 long long min; /* R: minimum value */
62 long long max; /* R: maximum value */
63 long long step; /* R: step (0 variable) */
64 } integer64;
65 struct {
66 unsigned int items; /* R: number of items */
67 unsigned int item; /* W: item number */
68 char name[64]; /* R: value name */
69 } enumerated;
70 unsigned char reserved[128];
71 } value;
72 union {
73 unsigned short d[4]; /* dimensions */
74 unsigned short *d_ptr; /* indirect */
75 } dimen;
76 unsigned char reserved[64-4*sizeof(unsigned short)];
77} UniaudControlInfo;
78
79struct sndrv_aes_iec958 {
80 unsigned char status[24]; /* AES/IEC958 channel status bits */
81 unsigned char subcode[147]; /* AES/IEC958 subcode bits */
82 unsigned char pad; /* nothing */
83 unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */
84};
85
86struct timespec {
87 long tv_sec; /* seconds */
88 long tv_usec; /* and microseconds */
89};
90
91typedef struct sndrv_ctl_elem_value {
92 UniaudControl id; /* W: element ID */
93 unsigned int indirect: 1; /* W: use indirect pointer (xxx_ptr member) */
94 union {
95 union {
96 long value[128];
97 long *value_ptr;
98 } integer;
99 union {
100 long long value[64];
101 long long *value_ptr;
102 } integer64;
103 union {
104 unsigned int item[128];
105 unsigned int *item_ptr;
106 } enumerated;
107 union {
108 unsigned char data[512];
109 unsigned char *data_ptr;
110 } bytes;
111 struct sndrv_aes_iec958 iec958;
112 } value; /* RO */
113 struct timespec tstamp;
114 unsigned char reserved[128-sizeof(struct timespec)];
115} UniaudControlValue;
116
117typedef struct DumpFileHeader {
118 char ID[10]; // "UNIMIXDUMP"
119 unsigned char driver[16]; /* Driver name */
120 int controls; // number of controls
121} DumpFileHeader;
122
123typedef struct {
124 ULONG nrStreams; //nr of activate wave streams supported
125 ULONG ulMinChannels; //min nr of channels
126 ULONG ulMaxChannels; //max nr of channels
127 ULONG ulChanFlags; //channel flags
128 ULONG ulMinRate; //min sample rate
129 ULONG ulMaxRate; //max sample rate
130 ULONG ulRateFlags; //sample rate flags
131 ULONG ulDataFormats; //supported wave formats
132} WAVE_CAPS, *PWAVE_CAPS, FAR *LPWAVE_CAPS;
133
134typedef struct {
135 ULONG nrDevices; //total nr of audio devices
136 ULONG ulCaps; //device caps
137 char szDeviceName[SIZE_DEVICE_NAME];
138 char szMixerName[SIZE_DEVICE_NAME];
139 WAVE_CAPS waveOutCaps;
140 WAVE_CAPS waveInCaps;
141} OSS32_DEVCAPS, *POSS32_DEVCAPS, FAR *LPOSS32_DEVCAPS;
Note: See TracBrowser for help on using the repository browser.