summaryrefslogtreecommitdiff
path: root/host/windows/usb/api/adb_endpoint_object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/windows/usb/api/adb_endpoint_object.cpp')
-rw-r--r--host/windows/usb/api/adb_endpoint_object.cpp54
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;
+}