1#ifndef __USB_STREAM_H 2#define __USB_STREAM_H 3 4#include <uapi/sound/usb_stream.h> 5 6#define USB_STREAM_NURBS 4 7#define USB_STREAM_URBDEPTH 4 8 9struct usb_stream_kernel { 10 struct usb_stream *s; 11 12 void *write_page; 13 14 unsigned n_o_ps; 15 16 struct urb *inurb[USB_STREAM_NURBS]; 17 struct urb *idle_inurb; 18 struct urb *completed_inurb; 19 struct urb *outurb[USB_STREAM_NURBS]; 20 struct urb *idle_outurb; 21 struct urb *completed_outurb; 22 struct urb *i_urb; 23 24 int iso_frame_balance; 25 26 wait_queue_head_t sleep; 27 28 unsigned out_phase; 29 unsigned out_phase_peeked; 30 unsigned freqn; 31}; 32 33struct usb_stream *usb_stream_new(struct usb_stream_kernel *sk, 34 struct usb_device *dev, 35 unsigned in_endpoint, unsigned out_endpoint, 36 unsigned sample_rate, unsigned use_packsize, 37 unsigned period_frames, unsigned frame_size); 38void usb_stream_free(struct usb_stream_kernel *); 39int usb_stream_start(struct usb_stream_kernel *); 40void usb_stream_stop(struct usb_stream_kernel *); 41 42#endif /* __USB_STREAM_H */ 43