Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
---|---|
2 | /* |
3 | * Copyright (C) 2007, 2008 Karsten Wiese <fzu@wemgehoertderstaat.de> |
4 | */ |
5 | |
6 | #ifndef _UAPI__SOUND_USB_STREAM_H |
7 | #define _UAPI__SOUND_USB_STREAM_H |
8 | |
9 | #define USB_STREAM_INTERFACE_VERSION 2 |
10 | |
11 | #define SNDRV_USB_STREAM_IOCTL_SET_PARAMS \ |
12 | _IOW('H', 0x90, struct usb_stream_config) |
13 | |
14 | struct usb_stream_packet { |
15 | unsigned offset; |
16 | unsigned length; |
17 | }; |
18 | |
19 | |
20 | struct usb_stream_config { |
21 | unsigned version; |
22 | unsigned sample_rate; |
23 | unsigned period_frames; |
24 | unsigned frame_size; |
25 | }; |
26 | |
27 | struct usb_stream { |
28 | struct usb_stream_config cfg; |
29 | unsigned read_size; |
30 | unsigned write_size; |
31 | |
32 | int period_size; |
33 | |
34 | unsigned state; |
35 | |
36 | int idle_insize; |
37 | int idle_outsize; |
38 | int sync_packet; |
39 | unsigned insize_done; |
40 | unsigned periods_done; |
41 | unsigned periods_polled; |
42 | |
43 | struct usb_stream_packet outpacket[2]; |
44 | unsigned inpackets; |
45 | unsigned inpacket_head; |
46 | unsigned inpacket_split; |
47 | unsigned inpacket_split_at; |
48 | unsigned next_inpacket_split; |
49 | unsigned next_inpacket_split_at; |
50 | struct usb_stream_packet inpacket[]; |
51 | }; |
52 | |
53 | enum usb_stream_state { |
54 | usb_stream_invalid, |
55 | usb_stream_stopped, |
56 | usb_stream_sync0, |
57 | usb_stream_sync1, |
58 | usb_stream_ready, |
59 | usb_stream_running, |
60 | usb_stream_xrun, |
61 | }; |
62 | |
63 | #endif /* _UAPI__SOUND_USB_STREAM_H */ |
64 |
Warning: This file is not a C or C++ file. It does not have highlighting.