xref: /aosp_15_r20/bionic/libc/kernel/uapi/sound/usb_stream.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI__SOUND_USB_STREAM_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI__SOUND_USB_STREAM_H
9*8d67ca89SAndroid Build Coastguard Worker #define USB_STREAM_INTERFACE_VERSION 2
10*8d67ca89SAndroid Build Coastguard Worker #define SNDRV_USB_STREAM_IOCTL_SET_PARAMS _IOW('H', 0x90, struct usb_stream_config)
11*8d67ca89SAndroid Build Coastguard Worker struct usb_stream_packet {
12*8d67ca89SAndroid Build Coastguard Worker   unsigned offset;
13*8d67ca89SAndroid Build Coastguard Worker   unsigned length;
14*8d67ca89SAndroid Build Coastguard Worker };
15*8d67ca89SAndroid Build Coastguard Worker struct usb_stream_config {
16*8d67ca89SAndroid Build Coastguard Worker   unsigned version;
17*8d67ca89SAndroid Build Coastguard Worker   unsigned sample_rate;
18*8d67ca89SAndroid Build Coastguard Worker   unsigned period_frames;
19*8d67ca89SAndroid Build Coastguard Worker   unsigned frame_size;
20*8d67ca89SAndroid Build Coastguard Worker };
21*8d67ca89SAndroid Build Coastguard Worker struct usb_stream {
22*8d67ca89SAndroid Build Coastguard Worker   struct usb_stream_config cfg;
23*8d67ca89SAndroid Build Coastguard Worker   unsigned read_size;
24*8d67ca89SAndroid Build Coastguard Worker   unsigned write_size;
25*8d67ca89SAndroid Build Coastguard Worker   int period_size;
26*8d67ca89SAndroid Build Coastguard Worker   unsigned state;
27*8d67ca89SAndroid Build Coastguard Worker   int idle_insize;
28*8d67ca89SAndroid Build Coastguard Worker   int idle_outsize;
29*8d67ca89SAndroid Build Coastguard Worker   int sync_packet;
30*8d67ca89SAndroid Build Coastguard Worker   unsigned insize_done;
31*8d67ca89SAndroid Build Coastguard Worker   unsigned periods_done;
32*8d67ca89SAndroid Build Coastguard Worker   unsigned periods_polled;
33*8d67ca89SAndroid Build Coastguard Worker   struct usb_stream_packet outpacket[2];
34*8d67ca89SAndroid Build Coastguard Worker   unsigned inpackets;
35*8d67ca89SAndroid Build Coastguard Worker   unsigned inpacket_head;
36*8d67ca89SAndroid Build Coastguard Worker   unsigned inpacket_split;
37*8d67ca89SAndroid Build Coastguard Worker   unsigned inpacket_split_at;
38*8d67ca89SAndroid Build Coastguard Worker   unsigned next_inpacket_split;
39*8d67ca89SAndroid Build Coastguard Worker   unsigned next_inpacket_split_at;
40*8d67ca89SAndroid Build Coastguard Worker   struct usb_stream_packet inpacket[];
41*8d67ca89SAndroid Build Coastguard Worker };
42*8d67ca89SAndroid Build Coastguard Worker enum usb_stream_state {
43*8d67ca89SAndroid Build Coastguard Worker   usb_stream_invalid,
44*8d67ca89SAndroid Build Coastguard Worker   usb_stream_stopped,
45*8d67ca89SAndroid Build Coastguard Worker   usb_stream_sync0,
46*8d67ca89SAndroid Build Coastguard Worker   usb_stream_sync1,
47*8d67ca89SAndroid Build Coastguard Worker   usb_stream_ready,
48*8d67ca89SAndroid Build Coastguard Worker   usb_stream_running,
49*8d67ca89SAndroid Build Coastguard Worker   usb_stream_xrun,
50*8d67ca89SAndroid Build Coastguard Worker };
51*8d67ca89SAndroid Build Coastguard Worker #endif
52