diff options
author | reillyg <reillyg@chromium.org> | 2016-01-07 14:00:09 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-07 22:00:58 +0000 |
commit | 4e17561af22e80438cd255dd5c92d64b57f4955d (patch) | |
tree | 271502639e3fd5d32adca422eb644af49e7de6d8 /device/usb/usb_endpoint_android.cc | |
parent | ff1966e831cce0b4a40cfa2bad90e9b6fdf4eb89 (diff) | |
download | chromium_src-4e17561af22e80438cd255dd5c92d64b57f4955d.zip chromium_src-4e17561af22e80438cd255dd5c92d64b57f4955d.tar.gz chromium_src-4e17561af22e80438cd255dd5c92d64b57f4955d.tar.bz2 |
Reland of Implement basic USB device enumeration on Android. (patchset #1 id:1 of https://codereview.chromium.org/1561283003/ )
Reason for revert:
Lack of GYP dependency on //device/usb Java sources fixed.
Original issue's description:
> Revert of Implement basic USB device enumeration on Android. (patchset #3 id:40001 of https://codereview.chromium.org/1514603006/ )
>
> Reason for revert:
> Speculating that this is the cause of issue 575191.
>
> Original issue's description:
> > Implement basic USB device enumeration on Android.
> >
> > This patch provides a basic implementation of UsbService::GetDevices on
> > Android that populates UsbDevice objects by collecting properties of the
> > Java-side UsbDevice, UsbConfiguration, UsbInterface and UsbEndpoint
> > objects over JNI.
> >
> > It does not support opening devices and does not generate device add or
> > remove notifications.
> >
> > BUG=549257
> >
> > Committed: https://crrev.com/8a310851fb144e91d1777112930ac15c0d88577b
> > Cr-Commit-Position: refs/heads/master@{#367918}
>
> TBR=nasko@chromium.org,qinmin@chromium.org,yfriedman@chromium.org,pfeldman@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=549257,575191
>
> Committed: https://crrev.com/e3de6dea8003be39328bea275763daab36a8df24
> Cr-Commit-Position: refs/heads/master@{#368077}
TBR=nasko@chromium.org,qinmin@chromium.org,yfriedman@chromium.org,pfeldman@chromium.org
BUG=549257,575191
Review URL: https://codereview.chromium.org/1565313002
Cr-Commit-Position: refs/heads/master@{#368169}
Diffstat (limited to 'device/usb/usb_endpoint_android.cc')
-rw-r--r-- | device/usb/usb_endpoint_android.cc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/device/usb/usb_endpoint_android.cc b/device/usb/usb_endpoint_android.cc new file mode 100644 index 0000000..3280b04 --- /dev/null +++ b/device/usb/usb_endpoint_android.cc @@ -0,0 +1,41 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "device/usb/usb_endpoint_android.h" + +#include "jni/ChromeUsbEndpoint_jni.h" + +namespace device { + +// static +bool UsbEndpointAndroid::RegisterJNI(JNIEnv* env) { + return RegisterNativesImpl(env); // Generated in ChromeUsbEndpoint_jni.h +} + +// static +UsbEndpointDescriptor UsbEndpointAndroid::Convert( + JNIEnv* env, + const base::android::JavaRef<jobject>& usb_endpoint) { + base::android::ScopedJavaLocalRef<jobject> wrapper = + Java_ChromeUsbEndpoint_create(env, usb_endpoint.obj()); + + UsbEndpointDescriptor endpoint; + endpoint.address = Java_ChromeUsbEndpoint_getAddress(env, wrapper.obj()); + endpoint.direction = static_cast<UsbEndpointDirection>( + Java_ChromeUsbEndpoint_getDirection(env, wrapper.obj())); + endpoint.maximum_packet_size = + Java_ChromeUsbEndpoint_getMaxPacketSize(env, wrapper.obj()); + jint attributes = Java_ChromeUsbEndpoint_getAttributes(env, wrapper.obj()); + endpoint.synchronization_type = + static_cast<UsbSynchronizationType>((attributes >> 2) & 3); + endpoint.usage_type = static_cast<UsbUsageType>((attributes >> 4) & 3); + endpoint.transfer_type = static_cast<UsbTransferType>( + Java_ChromeUsbEndpoint_getType(env, wrapper.obj())); + endpoint.polling_interval = + Java_ChromeUsbEndpoint_getInterval(env, wrapper.obj()); + + return endpoint; +} + +} // namespace device |