blob: 025898cc1c0f602e037f816c58dd73c43c8f8cf2 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef GARNET_DRIVERS_USB_VIDEO_VIDEO_UTIL_H_
#define GARNET_DRIVERS_USB_VIDEO_VIDEO_UTIL_H_
#include <usb/usb.h>
#include <zircon/hw/usb/video.h>
__BEGIN_CDECLS
// The probe stage of the stream negotiation process.
// usb: the device protocol.
// vs_interface_num: the number of the interface to direct the request to.
// proposal: the desired streaming parameters, such as which format to use.
// out_result: the new negotiated streaming parameters returned from the
// device.
zx_status_t usb_video_negotiate_probe(
usb_protocol_t* usb, uint8_t vs_interface_num,
usb_video_vc_probe_and_commit_controls* proposal,
usb_video_vc_probe_and_commit_controls* out_result);
// The commit state of the stream negotiation process.
// usb: the device protocol.
// vs_interface_num: the number of the interface to direct the request to.
// ctrls: used to configure the hardware, should be the result of
// usb_video_negotiate_probe.
zx_status_t usb_video_negotiate_commit(
usb_protocol_t* usb, uint8_t vs_interface_num,
usb_video_vc_probe_and_commit_controls* ctrls);
__END_CDECLS
#endif // GARNET_DRIVERS_USB_VIDEO_VIDEO_UTIL_H_