Example #1
0
// ----------------------------------------------------------------------------
// Stops the Camera
// ----------------------------------------------------------------------------
JNIEXPORT void JNICALL
Java_com_qualcomm_QCARSamples_CloudRecognition_CloudReco_stopCamera(JNIEnv *,jobject)
{
    // Stop the tracker:
    QCAR::TrackerManager& trackerManager = QCAR::TrackerManager::getInstance();
    QCAR::ImageTracker* imageTracker = static_cast<QCAR::ImageTracker*>(
            trackerManager.getTracker(QCAR::Tracker::IMAGE_TRACKER));
    assert(imageTracker != 0);
    imageTracker->stop();

    // Stop cloud based recognition:
    QCAR::TargetFinder* targetFinder = imageTracker->getTargetFinder();
    assert (targetFinder != 0);
    crStarted = !targetFinder->stop();

    //Clears the trackables
    targetFinder->clearTrackables();

    QCAR::CameraDevice::getInstance().stop();
    QCAR::CameraDevice::getInstance().deinit();

    // When the camera stops it clears the Product Texture ID so next time textures
    // Are recreated
    deleteCurrentProductTexture = true;

    // Initialize all state Variables
    initStateVariables();
}
JNIEXPORT void JNICALL
Java_rajawali_vuforia_RajawaliVuforiaActivity_stopCamera(JNIEnv *, jobject) {
	LOG("Java_rajawali_vuforia_RajawaliVuforiaActivity_stopCamera");

	// Stop the tracker:
	QCAR::TrackerManager& trackerManager = QCAR::TrackerManager::getInstance();
	QCAR::Tracker* markerTracker = trackerManager.getTracker(
			QCAR::MarkerTracker::getClassType());
	if (markerTracker != 0)
		markerTracker->stop();

	QCAR::ImageTracker* imageTracker =
			static_cast<QCAR::ImageTracker*>(trackerManager.getTracker(
					QCAR::ImageTracker::getClassType()));
	if (imageTracker != 0)
		imageTracker->stop();

	QCAR::CameraDevice::getInstance().stop();

	// Stop Cloud Reco:
	QCAR::TargetFinder* targetFinder = imageTracker->getTargetFinder();
	assert(targetFinder != 0);

	targetFinder->stop();

	// Clears the trackables
	targetFinder->clearTrackables();

	QCAR::CameraDevice::getInstance().deinit();

	initStateVariables();
}
Example #3
0
// ----------------------------------------------------------------------------
// Initialize Native Application
// ----------------------------------------------------------------------------
JNIEXPORT void JNICALL
Java_com_qualcomm_QCARSamples_CloudRecognition_CloudReco_initApplicationNative(
        JNIEnv* env, jobject obj, jint width, jint height)
{
    // Store screen dimensions
    screenWidth = width;
    screenHeight = height;

    // Handle to the activity class:
    jclass activityClass = env->GetObjectClass(obj);

    // Register callback function that gets called every time a tracking cycle
    // has finished and we have a new AR state available
    QCAR::registerCallback(&updateCallback);

    // Screen size:
    QCAR::Vec2F screenSize;
    screenSize.data[0] = (float) screenWidth;
    screenSize.data[1] = (float) screenHeight;

    // Initialise the method handle for showing error messages:
    showErrorMethodID = env->GetMethodID(activityClass, "showErrorMessage", "(I)V");
    if (showErrorMethodID == 0)
    {
        LOG("Function showErrorMessage() not found.");
        return;
    }

    // Initialize Java mathods to be called from Native code
    createProductTextureID = env->GetMethodID(activityClass, "createProductTexture", "(Ljava/lang/String;)V");
    getProductTextureID = env->GetMethodID(activityClass, "getProductTexture", "()Lcom/qualcomm/QCARSamples/CloudRecognition/Texture;");
    showStatusBarID = env->GetMethodID(activityClass, "showStatusBar", "()V");
    hideStatusBarID = env->GetMethodID(activityClass, "hideStatusBar", "()V");
    setStatusBarTextID = env->GetMethodID(activityClass, "setStatusBarText", "(Ljava/lang/String;)V");
    enterContentModeID = env->GetMethodID(activityClass,"enterContentMode", "()V");

    activityObj = env->NewGlobalRef(obj);

    // Reset global variables:
    initStateVariables();
}