| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "device/usb/usb_interface_android.h" | 5 #include "device/usb/usb_interface_android.h" |
| 6 | 6 |
| 7 #include "base/android/build_info.h" | 7 #include "base/android/build_info.h" |
| 8 #include "device/usb/usb_endpoint_android.h" | 8 #include "device/usb/usb_endpoint_android.h" |
| 9 #include "jni/ChromeUsbInterface_jni.h" | 9 #include "jni/ChromeUsbInterface_jni.h" |
| 10 | 10 |
| 11 using base::android::ScopedJavaLocalRef; | 11 using base::android::ScopedJavaLocalRef; |
| 12 | 12 |
| 13 namespace device { | 13 namespace device { |
| 14 | 14 |
| 15 // static | 15 // static |
| 16 UsbInterfaceDescriptor UsbInterfaceAndroid::Convert( | 16 UsbInterfaceDescriptor UsbInterfaceAndroid::Convert( |
| 17 JNIEnv* env, | 17 JNIEnv* env, |
| 18 const base::android::JavaRef<jobject>& usb_interface) { | 18 const base::android::JavaRef<jobject>& usb_interface) { |
| 19 ScopedJavaLocalRef<jobject> wrapper = | 19 ScopedJavaLocalRef<jobject> wrapper = |
| 20 Java_ChromeUsbInterface_create(env, usb_interface.obj()); | 20 Java_ChromeUsbInterface_create(env, usb_interface); |
| 21 | 21 |
| 22 uint8_t alternate_setting = 0; | 22 uint8_t alternate_setting = 0; |
| 23 if (base::android::BuildInfo::GetInstance()->sdk_int() >= 21) { | 23 if (base::android::BuildInfo::GetInstance()->sdk_int() >= 21) { |
| 24 alternate_setting = | 24 alternate_setting = |
| 25 Java_ChromeUsbInterface_getAlternateSetting(env, wrapper.obj()); | 25 Java_ChromeUsbInterface_getAlternateSetting(env, wrapper); |
| 26 } | 26 } |
| 27 | 27 |
| 28 UsbInterfaceDescriptor interface( | 28 UsbInterfaceDescriptor interface( |
| 29 Java_ChromeUsbInterface_getInterfaceNumber(env, wrapper.obj()), | 29 Java_ChromeUsbInterface_getInterfaceNumber(env, wrapper), |
| 30 alternate_setting, | 30 alternate_setting, |
| 31 Java_ChromeUsbInterface_getInterfaceClass(env, wrapper.obj()), | 31 Java_ChromeUsbInterface_getInterfaceClass(env, wrapper), |
| 32 Java_ChromeUsbInterface_getInterfaceSubclass(env, wrapper.obj()), | 32 Java_ChromeUsbInterface_getInterfaceSubclass(env, wrapper), |
| 33 Java_ChromeUsbInterface_getInterfaceProtocol(env, wrapper.obj())); | 33 Java_ChromeUsbInterface_getInterfaceProtocol(env, wrapper)); |
| 34 | 34 |
| 35 ScopedJavaLocalRef<jobjectArray> endpoints = | 35 ScopedJavaLocalRef<jobjectArray> endpoints = |
| 36 Java_ChromeUsbInterface_getEndpoints(env, wrapper.obj()); | 36 Java_ChromeUsbInterface_getEndpoints(env, wrapper); |
| 37 jsize count = env->GetArrayLength(endpoints.obj()); | 37 jsize count = env->GetArrayLength(endpoints.obj()); |
| 38 interface.endpoints.reserve(count); | 38 interface.endpoints.reserve(count); |
| 39 for (jsize i = 0; i < count; ++i) { | 39 for (jsize i = 0; i < count; ++i) { |
| 40 ScopedJavaLocalRef<jobject> endpoint( | 40 ScopedJavaLocalRef<jobject> endpoint( |
| 41 env, env->GetObjectArrayElement(endpoints.obj(), i)); | 41 env, env->GetObjectArrayElement(endpoints.obj(), i)); |
| 42 interface.endpoints.push_back(UsbEndpointAndroid::Convert(env, endpoint)); | 42 interface.endpoints.push_back(UsbEndpointAndroid::Convert(env, endpoint)); |
| 43 } | 43 } |
| 44 | 44 |
| 45 return interface; | 45 return interface; |
| 46 } | 46 } |
| 47 | 47 |
| 48 } // namespace device | 48 } // namespace device |
| OLD | NEW |