JniGuiController::JniGuiController(JavaVM * pJM, jobject callbacks) : mpJM(pJM), mjCallbacks(callbacks), mLogger(Logger::getInstance("iviLink.samples.Media.CAndroidGuiControllerImpl")), hasRequestedLock(false) { LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__); assert(mpJM); iviLink::Android::JniThreadHelper jth(mpJM); JNIEnv * env = jth.getEnv(); jclass claz = env->GetObjectClass(mjCallbacks); midSetSyncState = env->GetMethodID(claz, "setSyncState", "(Z)V"); assert(midSetSyncState != NULL); midSetToggleState = env->GetMethodID(claz, "setToggleState", "(Z)V"); assert(midSetToggleState != NULL); midShowPauseButton = env->GetMethodID(claz, "pauseVisible", "()V"); assert(midShowPauseButton != NULL); midShowPlayButton = env->GetMethodID(claz, "playVisible", "()V"); assert(midShowPlayButton != NULL); midClearList = env->GetMethodID(claz, "clearPlayList", "()V"); assert(midClearList != NULL); midPopulateList = env->GetMethodID(claz, "populateList", "(Ljava/lang/String;ZZ)V"); assert(midPopulateList != NULL); midHighlightPosition = env->GetMethodID(claz, "setSelectedPosition", "(I)V"); assert(midHighlightPosition != NULL); midShowPlayIcon = env->GetMethodID(claz, "showPlayIcon", "()V"); midShowPauseIcon = env->GetMethodID(claz, "showPauseIcon", "()V"); midHideIcon = env->GetMethodID(claz, "showNoIcon", "()V"); midHighlightToggle = env->GetMethodID(claz, "highlightToggle", "()V"); midUnlockGUI = env->GetMethodID(claz, "unlockGUI", "()V"); midLockGUI = env->GetMethodID(claz, "lockGUI", "()V"); }
void JniGuiController::playlistPopulate(const std::string& songName, const bool isLocal, const bool isAudio) { iviLink::Android::JniThreadHelper jth(mpJM); JNIEnv * env = jth.getEnv(); jstring param = iviLink::Android::StringConversion::stdToJ(songName, env); env->CallVoidMethod(mjCallbacks, midPopulateList, param, isLocal, isAudio); }
void CAppImplementation::onPhysicalLinkDown() { LOG4CPLUS_TRACE_METHOD(mLog, __PRETTY_FUNCTION__); iviLink::Android::JniThreadHelper jth(mAppInfo.javaVM); JNIEnv* env = jth.getEnv(); env->CallVoidMethod(mjAppJava, midLinkDown); }
void CScreenSharingViewer::dataReceived(const std::string &data) { JNIEnv *env; iviLink::Android::JniThreadHelper jth(mpJM); env = jth.getEnv(); env->CallVoidMethod(jCallbacks, jOnDataReceived, iviLink::Android::StringConversion::stdToJ(data, env) ); }
void CAppImplementation::callStringVoidMethod(const std::string& param, jmethodID methodID) { LOG4CPLUS_TRACE_METHOD(mLog, __PRETTY_FUNCTION__); iviLink::Android::JniThreadHelper jth(mAppInfo.javaVM); JNIEnv* env = jth.getEnv(); jstring jParam = iviLink::Android::StringConversion::stdToJ(param, env); env->CallVoidMethod(mjAppJava, methodID, jParam); }
void CAppImplementation::onInitDone(iviLink::ELaunchInfo launcher) { LOG4CPLUS_TRACE_METHOD(mLog, __PRETTY_FUNCTION__); iviLink::Android::JniThreadHelper jth(mAppInfo.javaVM); JNIEnv* env = jth.getEnv(); bool launchResult = (launcher == iviLink::LAUNCHED_BY_USER); env->CallVoidMethod(mjAppJava, midInitDone, static_cast<jboolean>(launchResult)); }
void AndroidMediaSource::startVlcServer(const int pipeFds) { LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__); iviLink::Android::JniThreadHelper jth(mpJM); JNIEnv * env = jth.getEnv(); jclass claz = env->GetObjectClass(mjCallbacks); jmethodID launchVlcServer = env->GetMethodID(claz, "startVlcServer", "(I)Z"); env->CallBooleanMethod(mjCallbacks,launchVlcServer, static_cast<jint>(pipeFds)); }
CAppImplementation::CAppImplementation(iviLink::Android::AppInfo appInfo, const iviLink::Service::ListOfUids &services, jobject appExternal) : Application(services, appInfo), mjAppJava(appExternal), mAppInfo(appInfo), mLog( Logger::getInstance("CAppImplementation")) { LOG4CPLUS_TRACE_METHOD(mLog, __PRETTY_FUNCTION__); iviLink::Android::JniThreadHelper jth(mAppInfo.javaVM); JNIEnv* env = jth.getEnv(); jclass claz = env->GetObjectClass(mjAppJava); midInitDone = env->GetMethodID(claz, "initDone", "(Z)V"); midIncomingServiceBeforeLoading = env->GetMethodID(claz, "incomingServiceBeforeLoading", "(Ljava/lang/String;)V"); midIncomingServiceAfterLoading = env->GetMethodID(claz, "incomingServiceAfterLoading", "(Ljava/lang/String;)V"); midServiceDropped = env->GetMethodID(claz, "serviceDropped", "(Ljava/lang/String;)V"); midServiceLoadError = env->GetMethodID(claz, "serviceLoadError", "(Ljava/lang/String;)V"); midLinkUp = env->GetMethodID(claz, "connectionEstablished", "()V"); midLinkDown = env->GetMethodID(claz, "connectionLost", "()V"); }
void CScreenSharingViewer::sendData(const jstring &data) { LOG4CPLUS_TRACE_METHOD(msLogger, __PRETTY_FUNCTION__); JNIEnv *env; iviLink::Android::JniThreadHelper jth(mpJM); env = jth.getEnv(); std::string outData = iviLink::Android::StringConversion::jToStd(data, env); LOG4CPLUS_INFO(msLogger, "CScreenSharingViewer::sendData() : sending data : " + outData); if (isServiceAlive) { if (mpViewerProfileProxy) { mpViewerProfileProxy->sendData(outData); LOG4CPLUS_INFO(msLogger, "CScreenSharingViewer::sendData() : data is sent : " + outData); } else LOG4CPLUS_WARN(msLogger, "CScreenSharingViewer::sendData() : send attempt with invalid ProfileProxy ptr"); } else LOG4CPLUS_WARN(msLogger, "CScreenSharingViewer::sendData() : send attempt with !isServiceAlive"); }
void JniGuiController::callBoolVoidJavaMethod(jmethodID mid, bool param) { iviLink::Android::JniThreadHelper jth(mpJM); JNIEnv * env = jth.getEnv(); env->CallVoidMethod(mjCallbacks, mid, static_cast<jboolean>(param)); }
void JniGuiController::callVoidVoidJavaMethod(jmethodID mid) { iviLink::Android::JniThreadHelper jth(mpJM); JNIEnv * env = jth.getEnv(); env->CallVoidMethod(mjCallbacks, mid); }
void JniGuiController::playlistPosChanged(int position) { iviLink::Android::JniThreadHelper jth(mpJM); JNIEnv * env = jth.getEnv(); env->CallVoidMethod(mjCallbacks, midHighlightPosition, static_cast<jint>(position)); }