Ejemplo n.º 1
0
void AApplication::cppOnReceiveURI (jstring data)
{
    uAutoReleasePool pool;
    uString* unoUri = JniHelper::JavaToUnoString(data);
    JniHelper jni;
    jni->DeleteGlobalRef(data);
    ::g::Uno::Platform2::Application::OnReceivedURI(unoUri);
}
/*
 * Class:     com_vickingur_model_NativeGameProcessor
 * Method:    nativeGetCells
 * Signature: ()[[Lcom/vickingur/model/shapes/Cell;
 */
JNIEXPORT jobjectArray JNICALL Java_com_vickingur_model_NativeGameProcessor_nativeGetCells(
		JNIEnv *env, jobject obj) {
	Cell* nativeCells = NativeGameProcessor::Instance()->GetField()->GetCells();
	int rows = NativeGameProcessor::Instance()->GetField()->GetRows();
	int columns = NativeGameProcessor::Instance()->GetField()->GetColumns();
	JniHelper* helper = new JniHelper(env);
	if (DEBUG)
		helper->LogString("> nativeGetCells");
	jobjectArray cells = helper->CreateOneDimensionalCellArray((jint) rows,
			(jint) columns);
	for (int i = 0; i < columns * rows; i++) {
		if (DEBUG)
			__android_log_print(ANDROID_LOG_DEBUG, "JNI", "i: %d", i);
		jint color = (jint) nativeCells[i].GetColor();
		if (DEBUG)
			__android_log_print(ANDROID_LOG_DEBUG, "JNI", "color: %d",
					(int) color);
		jobject point = helper->CreatePoint(nativeCells[i].GetPosition().x,
				nativeCells[i].GetPosition().y);
		if (DEBUG)
			__android_log_print(ANDROID_LOG_DEBUG, "JNI", "pos: %p", point);
		jobject cell = helper->CreateCell(color, point);
		if (DEBUG)
			__android_log_print(ANDROID_LOG_DEBUG, "JNI", "cell: %p", cell);
		helper->SetElementToArray(cells, i, cell);
		if (DEBUG)
			__android_log_print(ANDROID_LOG_DEBUG, "JNI", "deleting");
		helper->DeleteLocal(point);
		helper->DeleteLocal(cell);
	}
	delete helper;
	if (DEBUG)
		helper->LogString("< nativeGetCells");
	return cells;
}
Ejemplo n.º 3
0
// This is used only when dictated by the java activity.
// It is possible on later versions of android (v >= 4.2) to use the choreographer
void AApplication::mainLoop(bool resurrected)
{
    if (resurrected) {
        JniHelper jni;
        jni.UpdateActivityObject();
        GLHelper::SwapBackToBackgroundSurface();
        uAutoReleasePool pool;
        ::g::Uno::Platform2::Application::ResetContextState();
    } else {
        GLHelper::InitGL();
    }
}
// private static extern void RegisterFunctions() [static] :15
void ExternBlockHost::RegisterFunctions()
{
    uStackFrame __("Uno.Compiler.ExportTargetInterop.Foreign.Android.ExternBlockHost", "RegisterFunctions()");
    JniHelper jni;
    static JNINativeMethod native_activity_funcs[] = {
    };
    int funcCount = 0;
    if ((int)jni->RegisterNatives(JniHelper::GetNativeExternClass(), native_activity_funcs, funcCount)<0) {
    LOGD("COULD NOT REGISTER NATIVE EXTERN FUNCTIONS");
    XLI_THROW("COULD NOT REGISTER NATIVE EXTERN FUNCTIONS");
    }
}
Ejemplo n.º 5
0
// This is used only when dictated by the java activity.
// It is possible on later versions of android (v >= 4.2) to use the choreographer
void AApplication::mainLoop(bool resurrected)
{
    if (resurrected) {
        JniHelper jni;
        jni.UpdateActivityObject();
        GLHelper::SwapBackToBackgroundSurface();
        uAutoReleasePool pool;
        ::g::Uno::Platform2::Application::ResetContextState();
    } else {
        GLHelper::InitGL();
        // register java native extern callbacks
        ::g::Uno::Compiler::ExportTargetInterop::Foreign::Android::ExternBlockHost::RegisterFunctions();
    }
}
Ejemplo n.º 6
0
void Audio::pause()
{
	if( !m_player )
	{
		return;
	}

	JniHelper jniHelper;

	JNIEnv *env = jniHelper.getEnv();
	jmethodID method = jniHelper.getMethod(m_player, "pause", "()V");
	if( env != NULL && method != NULL )
	{
		env->CallVoidMethod(m_player, method);
	}
}
Ejemplo n.º 7
0
Audio::~Audio()
{
	LOG("Audio destructor: %s", m_src.c_str());
	if( m_player )
	{
		JniHelper jniHelper;

		JNIEnv *env = jniHelper.getEnv();
		jmethodID method = jniHelper.getMethod(m_player, "release", "()V");
		if( env != NULL && method != NULL )
		{
			LOG("Audio release");
			env->CallVoidMethod(m_player, method);
		}
		jniHelper.DeleteGlobalRef(m_player);
	}
}
Ejemplo n.º 8
0
Audio::Audio()
{
	m_autoplay = false;
	m_loop = false;
	m_player = NULL;
	m_muted = false;
	m_volume = 1.0;

	JniHelper jniHelper;
	JNIEnv *env = jniHelper.getEnv();
	jmethodID newAudioPlayer = jniHelper.getMethod(g_jgl, "newAudioPlayer", "()Lcom/woyouquan/Giraffe/JavaAudioPlayer;");
	if( env != NULL && newAudioPlayer != NULL )
	{
		jobject player = env->CallObjectMethod(g_jgl, newAudioPlayer);
		m_player = env->NewGlobalRef(player);
	}
}
Ejemplo n.º 9
0
void Audio::set_autoplay(bool autoplay)
{
	m_autoplay = autoplay;

	if( !m_player )
	{
		return;
	}

	JniHelper jniHelper;

	JNIEnv *env = jniHelper.getEnv();
	jmethodID method = jniHelper.getMethod(m_player, "setAutoplay", "(Z)V");
	if( env != NULL && method != NULL )
	{
		env->CallVoidMethod(m_player, method, autoplay);
	}
}
Ejemplo n.º 10
0
void Audio::set_loop(bool loop)
{
	m_loop = loop;

	if( !m_player )
	{
		return;
	}

	JniHelper jniHelper;

	JNIEnv *env = jniHelper.getEnv();
	jmethodID method = jniHelper.getMethod(m_player, "setLoop", "(Z)V");
	if( env != NULL && method != NULL )
	{
		env->CallVoidMethod(m_player, method, loop);
	}
}
Ejemplo n.º 11
0
void Audio::set_volume(float volume)
{
	m_volume = volume;

	if( !m_player )
	{
		return;
	}

	float realVolume = m_muted ? 0.0 : m_volume;

	JniHelper jniHelper;

	JNIEnv *env = jniHelper.getEnv();
	jmethodID method = jniHelper.getMethod(m_player, "setVolume", "(F)V");
	if( env != NULL && method != NULL )
	{
		env->CallVoidMethod(m_player, method, realVolume);
	}
}
Ejemplo n.º 12
0
void Audio::set_src(string src)
{
	m_src = src;

	if( !m_player )
	{
		return;
	}

	string fullPath = JSCContext::getInstance()->path() + m_src;
	TRACE("Audio audio src:%s", fullPath.c_str());

	JniHelper jniHelper;

	JNIEnv *env = jniHelper.getEnv();
	jmethodID setSource = jniHelper.getMethod(m_player, "setSource", "(Ljava/lang/String;)V");
	if( env != NULL && setSource != NULL )
	{
		jstring path = env->NewStringUTF( fullPath.c_str() );
		env->CallVoidMethod(m_player, setSource, path);
        TRACE("Audio setSource");
	}
}
Ejemplo n.º 13
0
ANativeWindow* GLHelper::GetANativeWindowFromSurface(jobject surface)
{
    JniHelper jni;
    return ANativeWindow_fromSurface(jni.GetEnv(), surface);
}