| | |
| | | g_JVM->AttachCurrentThread( &env, NULL ); |
| | | pthread_setspecific( g_ThreadKey, (void*)env ); |
| | | |
| | | if ( !g_HIDDeviceManagerCallbackHandler ) |
| | | { |
| | | LOGV( "Device open without callback handler" ); |
| | | return false; |
| | | } |
| | | |
| | | m_bIsWaitingForOpen = false; |
| | | m_bOpenResult = env->CallBooleanMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerOpen, m_nId ); |
| | | ExceptionCheck( env, "BOpen" ); |
| | |
| | | g_JVM->AttachCurrentThread( &env, NULL ); |
| | | pthread_setspecific( g_ThreadKey, (void*)env ); |
| | | |
| | | jbyteArray pBuf = NewByteArray( env, pData, nDataLen ); |
| | | int nRet = env->CallIntMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerSendOutputReport, m_nId, pBuf ); |
| | | ExceptionCheck( env, "SendOutputReport" ); |
| | | |
| | | env->DeleteLocalRef( pBuf ); |
| | | int nRet = -1; |
| | | if ( g_HIDDeviceManagerCallbackHandler ) |
| | | { |
| | | jbyteArray pBuf = NewByteArray( env, pData, nDataLen ); |
| | | nRet = env->CallIntMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerSendOutputReport, m_nId, pBuf ); |
| | | ExceptionCheck( env, "SendOutputReport" ); |
| | | env->DeleteLocalRef( pBuf ); |
| | | } |
| | | else |
| | | { |
| | | LOGV( "SendOutputReport without callback handler" ); |
| | | } |
| | | return nRet; |
| | | } |
| | | |
| | |
| | | g_JVM->AttachCurrentThread( &env, NULL ); |
| | | pthread_setspecific( g_ThreadKey, (void*)env ); |
| | | |
| | | jbyteArray pBuf = NewByteArray( env, pData, nDataLen ); |
| | | int nRet = env->CallIntMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerSendFeatureReport, m_nId, pBuf ); |
| | | ExceptionCheck( env, "SendFeatureReport" ); |
| | | env->DeleteLocalRef( pBuf ); |
| | | int nRet = -1; |
| | | if ( g_HIDDeviceManagerCallbackHandler ) |
| | | { |
| | | jbyteArray pBuf = NewByteArray( env, pData, nDataLen ); |
| | | nRet = env->CallIntMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerSendFeatureReport, m_nId, pBuf ); |
| | | ExceptionCheck( env, "SendFeatureReport" ); |
| | | env->DeleteLocalRef( pBuf ); |
| | | } |
| | | else |
| | | { |
| | | LOGV( "SendFeatureReport without callback handler" ); |
| | | } |
| | | return nRet; |
| | | } |
| | | |
| | |
| | | JNIEnv *env; |
| | | g_JVM->AttachCurrentThread( &env, NULL ); |
| | | pthread_setspecific( g_ThreadKey, (void*)env ); |
| | | |
| | | if ( !g_HIDDeviceManagerCallbackHandler ) |
| | | { |
| | | LOGV( "GetFeatureReport without callback handler" ); |
| | | return -1; |
| | | } |
| | | |
| | | { |
| | | hid_mutex_guard cvl( &m_cvLock ); |
| | |
| | | g_JVM->AttachCurrentThread( &env, NULL ); |
| | | pthread_setspecific( g_ThreadKey, (void*)env ); |
| | | |
| | | env->CallVoidMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerClose, m_nId ); |
| | | ExceptionCheck( env, "Close" ); |
| | | if ( g_HIDDeviceManagerCallbackHandler ) |
| | | { |
| | | env->CallVoidMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerClose, m_nId ); |
| | | ExceptionCheck( env, "Close" ); |
| | | } |
| | | |
| | | hid_mutex_guard dataLock( &m_dataLock ); |
| | | m_vecData.clear(); |