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 14struct usb_stream_packet { 15 unsigned offset; 16 unsigned length; 17}; 18 19 20struct usb_stream_config { 21 unsigned version; 22 unsigned sample_rate; 23 unsigned period_frames; 24 unsigned frame_size; 25}; 26 27struct 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 53enum 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