18be9a75cSMichael Lotz /*
202ce23a1SMichael Lotz * Copyright 2006, Haiku Inc. All rights reserved.
38be9a75cSMichael Lotz * Distributed under the terms of the MIT License.
48be9a75cSMichael Lotz *
58be9a75cSMichael Lotz * Authors:
68be9a75cSMichael Lotz * Michael Lotz <mmlr@mlotz.ch>
78be9a75cSMichael Lotz */
88be9a75cSMichael Lotz
9*853e6be8SMichael Lotz #include "usb_private.h"
108be9a75cSMichael Lotz
118be9a75cSMichael Lotz
Interface(Object * parent,uint8 interfaceIndex)1290b9fb4fSMichael Lotz Interface::Interface(Object *parent, uint8 interfaceIndex)
1390b9fb4fSMichael Lotz : Object(parent),
1490b9fb4fSMichael Lotz fInterfaceIndex(interfaceIndex)
158be9a75cSMichael Lotz {
16f14fe767SMichael Lotz TRACE("creating interface\n");
178be9a75cSMichael Lotz }
188be9a75cSMichael Lotz
198be9a75cSMichael Lotz
208be9a75cSMichael Lotz status_t
SetFeature(uint16 selector)218be9a75cSMichael Lotz Interface::SetFeature(uint16 selector)
228be9a75cSMichael Lotz {
23f14fe767SMichael Lotz TRACE("set feature %u\n", selector);
248fedfdfcSMichael Lotz return ((Device *)Parent())->DefaultPipe()->SendRequest(
258be9a75cSMichael Lotz USB_REQTYPE_STANDARD | USB_REQTYPE_INTERFACE_OUT,
268be9a75cSMichael Lotz USB_REQUEST_SET_FEATURE,
278be9a75cSMichael Lotz selector,
2890b9fb4fSMichael Lotz fInterfaceIndex,
298be9a75cSMichael Lotz 0,
308be9a75cSMichael Lotz NULL,
318be9a75cSMichael Lotz 0,
328be9a75cSMichael Lotz NULL);
338be9a75cSMichael Lotz }
348be9a75cSMichael Lotz
358be9a75cSMichael Lotz
368be9a75cSMichael Lotz status_t
ClearFeature(uint16 selector)378be9a75cSMichael Lotz Interface::ClearFeature(uint16 selector)
388be9a75cSMichael Lotz {
39f14fe767SMichael Lotz TRACE("clear feature %u\n", selector);
408fedfdfcSMichael Lotz return ((Device *)Parent())->DefaultPipe()->SendRequest(
418be9a75cSMichael Lotz USB_REQTYPE_STANDARD | USB_REQTYPE_INTERFACE_OUT,
428be9a75cSMichael Lotz USB_REQUEST_CLEAR_FEATURE,
438be9a75cSMichael Lotz selector,
4490b9fb4fSMichael Lotz fInterfaceIndex,
458be9a75cSMichael Lotz 0,
468be9a75cSMichael Lotz NULL,
478be9a75cSMichael Lotz 0,
488be9a75cSMichael Lotz NULL);
498be9a75cSMichael Lotz }
508be9a75cSMichael Lotz
518be9a75cSMichael Lotz
528be9a75cSMichael Lotz status_t
GetStatus(uint16 * status)538be9a75cSMichael Lotz Interface::GetStatus(uint16 *status)
548be9a75cSMichael Lotz {
55f14fe767SMichael Lotz TRACE("get status\n");
568fedfdfcSMichael Lotz return ((Device *)Parent())->DefaultPipe()->SendRequest(
578be9a75cSMichael Lotz USB_REQTYPE_STANDARD | USB_REQTYPE_INTERFACE_IN,
588be9a75cSMichael Lotz USB_REQUEST_GET_STATUS,
5990b9fb4fSMichael Lotz fInterfaceIndex,
608be9a75cSMichael Lotz 0,
618be9a75cSMichael Lotz 2,
628be9a75cSMichael Lotz (void *)status,
638be9a75cSMichael Lotz 2,
648be9a75cSMichael Lotz NULL);
658be9a75cSMichael Lotz }
66