| Index: device/usb/usb_configuration_android.cc
|
| diff --git a/device/usb/usb_configuration_android.cc b/device/usb/usb_configuration_android.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4a9c7129d9747014d99d7e705f10806a69346e88
|
| --- /dev/null
|
| +++ b/device/usb/usb_configuration_android.cc
|
| @@ -0,0 +1,49 @@
|
| +// 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_configuration_android.h"
|
| +
|
| +#include "device/usb/usb_interface_android.h"
|
| +#include "jni/ChromeUsbConfiguration_jni.h"
|
| +
|
| +using base::android::ScopedJavaLocalRef;
|
| +
|
| +namespace device {
|
| +
|
| +// static
|
| +bool UsbConfigurationAndroid::RegisterJNI(JNIEnv* env) {
|
| + return RegisterNativesImpl(env); // Generated in ChromeUsbConfiguration_jni.h
|
| +}
|
| +
|
| +// static
|
| +UsbConfigDescriptor UsbConfigurationAndroid::Convert(
|
| + JNIEnv* env,
|
| + const base::android::JavaRef<jobject>& usb_configuration) {
|
| + ScopedJavaLocalRef<jobject> wrapper =
|
| + Java_ChromeUsbConfiguration_create(env, usb_configuration.obj());
|
| +
|
| + UsbConfigDescriptor config;
|
| + config.configuration_value =
|
| + Java_ChromeUsbConfiguration_getConfigurationValue(env, wrapper.obj());
|
| + config.self_powered =
|
| + Java_ChromeUsbConfiguration_isSelfPowered(env, wrapper.obj());
|
| + config.remote_wakeup =
|
| + Java_ChromeUsbConfiguration_isRemoteWakeup(env, wrapper.obj());
|
| + config.maximum_power =
|
| + Java_ChromeUsbConfiguration_getMaxPower(env, wrapper.obj());
|
| +
|
| + ScopedJavaLocalRef<jobjectArray> interfaces =
|
| + Java_ChromeUsbConfiguration_getInterfaces(env, wrapper.obj());
|
| + jsize count = env->GetArrayLength(interfaces.obj());
|
| + config.interfaces.reserve(count);
|
| + for (jsize i = 0; i < count; ++i) {
|
| + ScopedJavaLocalRef<jobject> interface(
|
| + env, env->GetObjectArrayElement(interfaces.obj(), i));
|
| + config.interfaces.push_back(UsbInterfaceAndroid::Convert(env, interface));
|
| + }
|
| +
|
| + return config;
|
| +}
|
| +
|
| +} // namespace device
|
|
|