diff options
Diffstat (limited to 'host/windows/usb/api/adb_endpoint_object.cpp')
| -rw-r--r-- | host/windows/usb/api/adb_endpoint_object.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/host/windows/usb/api/adb_endpoint_object.cpp b/host/windows/usb/api/adb_endpoint_object.cpp new file mode 100644 index 000000000..90f698f1d --- /dev/null +++ b/host/windows/usb/api/adb_endpoint_object.cpp @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** \file + This file consists of implementation of class AdbIOObject that + encapsulates an interface on our USB device. +*/ + +#include "stdafx.h" +#include "adb_endpoint_object.h" + +AdbEndpointObject::AdbEndpointObject(AdbInterfaceObject* parent_interf) + : AdbIOObject(parent_interf, AdbObjectTypeEndpoint) { +} + +AdbEndpointObject::~AdbEndpointObject() { +} + +bool AdbEndpointObject::IsObjectOfType(AdbObjectType obj_type) const { + return ((obj_type == AdbObjectTypeEndpoint) || + (obj_type == AdbObjectTypeIo)); +} + +bool AdbEndpointObject::GetEndpointInformation(AdbEndpointInformation* info) { + if (!IsOpened() || !IsUsbOpened()) { + SetLastError(ERROR_INVALID_HANDLE); + return false; + } + + // Send IOCTL + DWORD ret_bytes = 0; + BOOL ret = DeviceIoControl(usb_handle(), + ADB_IOCTL_GET_ENDPOINT_INFORMATION, + NULL, 0, + info, sizeof(AdbEndpointInformation), + &ret_bytes, + NULL); + ATLASSERT(!ret || (sizeof(AdbEndpointInformation) == ret_bytes)); + + return ret ? true : false; +} |
