Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/uapi/sound/usb_stream.h
26292 views
1
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2
/*
3
* Copyright (C) 2007, 2008 Karsten Wiese <[email protected]>
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
65