64 lines · c
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_H7#define _UAPI__SOUND_USB_STREAM_H8 9#define USB_STREAM_INTERFACE_VERSION 210 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