diff -r 2a9601315dfc -r 98ccebc37403 javauis/amms_qt/jni/src/globalmanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/amms_qt/jni/src/globalmanager.cpp Fri May 14 15:47:24 2010 +0300 @@ -0,0 +1,266 @@ +/* +* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +//#include +#include + +#include + +#include "com_nokia_amms_GlobalManagerImpl.h" +#include "cammsglobalmanager.h" + +/** + * Creates new CAMMSGlobalManager instance which is added to + * MMAFunctionServer for cleanup. + * @param aHandle will contain handle to created object. + * @param aEventSource MMA event source instance. + */ +LOCAL_C void CreateManagerL(TInt* aHandle, + MMAFunctionServer* aEventSource) +{ + CAMMSGlobalManager* manager = CAMMSGlobalManager::NewLC(); + + // Make Java handle + *aHandle = reinterpret_cast(manager); + + MMAFunctionServer::StaticAddObjectFromHandleL(aEventSource, + *aHandle); + + CleanupStack::Pop(manager); +} + +/** + * JNI function. + */ +JNIEXPORT jint JNICALL Java_com_nokia_amms_GlobalManagerImpl__1createGlobalManager +(JNIEnv*, + jclass, + jint aEventSourceHandle) +{ + LOG( EJavaAMMS, EInfo, "AMMS::GlobalManager.cpp::createGlobalManager +"); + + // Development time check. + __ASSERT_DEBUG(aEventSourceHandle > 0, User::Invariant()); + + MMAFunctionServer* eventSource = + reinterpret_cast< MMAFunctionServer* >(aEventSourceHandle); + + // handle will be set in CreateManagerL function. + TInt handle = KErrNotReady; + + // Call CreateManagerL. If it leaves handle will not be set + TInt error = eventSource->ExecuteTrap(&CreateManagerL, + &handle, + eventSource); + + if (error != KErrNone) + { + // executed function leaved. Set error to be returned to java. + handle = error; + } + + LOG1( EJavaAMMS, EInfo, "AMMS::GlobalManager.cpp::createGlobalManager return %d", + handle); + + return handle; +} + +/** + * Calls CAMMSGlobalManager::InitL method. + * + * @param aManager CAMMSGlobalManager instance. + * @param aEventSource MMAFunctionServer instance. + */ +LOCAL_C void InitManagerL(CAMMSGlobalManager* aManager, + MMAFunctionServer* aEventSource) +{ + aManager->InitL(aEventSource->Players()); + + // Receive notifications when new players are created or deleted. + aEventSource->SetPlayerInstanceObserver(aManager); +} + +/** + * JNI function. + */ +JNIEXPORT jint JNICALL Java_com_nokia_amms_GlobalManagerImpl__1init +(JNIEnv*, + jclass, + jint aEventSourceHandle, + jint aGlobalManagerHandle) +{ + LOG( EJavaAMMS, EInfo, "AMMS::GlobalManager.cpp::init +"); + + // Development time check. + __ASSERT_DEBUG(aEventSourceHandle > 0 && + aGlobalManagerHandle > 0, User::Invariant()); + + MMAFunctionServer* eventSource = + reinterpret_cast< MMAFunctionServer* >(aEventSourceHandle); + + CAMMSGlobalManager* manager = + reinterpret_cast< CAMMSGlobalManager* >(aGlobalManagerHandle); + + // Call InitManagerL. + TInt error = eventSource->ExecuteTrap(&InitManagerL, + manager, + eventSource); + + ELOG1( EJavaAMMS, "AMMS::GlobalManager.cpp::init error code %d", error); + return error; +} + +/** + * Calls CAMMSGlobalManager::CreateSoundSource3DL method. + * @param aManager CAMMSGlobalManager instance. + * @param aHandle will contain handle to created object. + */ +LOCAL_C void CreateSoundSource3DL(CAMMSGlobalManager* aManager, TInt* aHandle) +{ + CAMMSModule* module = aManager->CreateSoundSource3DL(); + + // Make Java handle + *aHandle = reinterpret_cast(module); +} + +/** + * JNI function. + */ +JNIEXPORT jint JNICALL Java_com_nokia_amms_GlobalManagerImpl__1createSoundSource3D +(JNIEnv*, + jclass, + jint aEventSourceHandle, + jint aGlobalManagerHandle) +{ + MMAFunctionServer* eventSource = + reinterpret_cast< MMAFunctionServer* >(aEventSourceHandle); + + CAMMSGlobalManager* manager = + reinterpret_cast< CAMMSGlobalManager* >(aGlobalManagerHandle); + + // handle will be set in CreateSoundSource3DL function. + TInt handle = KErrNotReady; + + // Call CreateSoundSource3DL. If it leaves handle will not be set + TInt error = eventSource->ExecuteTrap(&CreateSoundSource3DL, + manager, + &handle); + + if (error != KErrNone) + { + // executed function leaved. Set error to be returned to java. + handle = error; + } + ELOG1( EJavaAMMS, "AMMS::GlobalManager.cpp::createSoundSource3D return value %d", + error); + return handle; +} + +/** + * Calls CAMMSGlobalManager::CreateEffectModuleL method. + * @param aManager CAMMSGlobalManager instance. + * @param aHandle will contain handle to created object. + */ +LOCAL_C void CreateEffectModuleL(CAMMSGlobalManager* aManager, TInt* aHandle) +{ + CAMMSModule* module = aManager->CreateEffectModuleL(); + + // Make Java handle + *aHandle = reinterpret_cast(module); +} + +/** + * JNI function. + */ +JNIEXPORT jint JNICALL Java_com_nokia_amms_GlobalManagerImpl__1createEffectModule +(JNIEnv*, + jclass, + jint aEventSourceHandle, + jint aGlobalManagerHandle) +{ + MMAFunctionServer* eventSource = + reinterpret_cast< MMAFunctionServer* >(aEventSourceHandle); + + CAMMSGlobalManager* manager = + reinterpret_cast< CAMMSGlobalManager* >(aGlobalManagerHandle); + + // handle will be set in CreateEffectModuleL function. + TInt handle = KErrNotReady; + + // Call CreateEffectModuleL. If it leaves handle will not be set + TInt error = eventSource->ExecuteTrap(&CreateEffectModuleL, + manager, + &handle); + + if (error != KErrNone) + { + // executed function leaved. Set error to be returned to java. + handle = error; + } + ELOG1( EJavaAMMS, "AMMS::GlobalManager.cpp::createEffectModule return value %d", + error); + return handle; +} + +/** + * Calls CAMMSGlobalManager::Spectator method. + * @param aManager CAMMSGlobalManager instance. + * @param aHandle will contain handle to created object. + */ +LOCAL_C void CreateSpectatorL(CAMMSGlobalManager* aManager, TInt* aHandle) +{ + CAMMSModule* spectator = aManager->Spectator(); + + // Make Java handle + *aHandle = reinterpret_cast(spectator); +} + +/** + * JNI function. + */ +JNIEXPORT jint JNICALL Java_com_nokia_amms_GlobalManagerImpl__1createSpectator +(JNIEnv*, + jclass, + jint aEventSourceHandle, + jint aGlobalManagerHandle) +{ + LOG( EJavaAMMS, EInfo, "AMMS::GlobalManager.cpp::createSpectator +"); + MMAFunctionServer* eventSource = + reinterpret_cast< MMAFunctionServer* >(aEventSourceHandle); + + CAMMSGlobalManager* manager = + reinterpret_cast< CAMMSGlobalManager* >(aGlobalManagerHandle); + + // handle will be set in CreateSpectatorL function. + TInt handle = KErrNotReady; + + // Call CreateSpectatorL. If it leaves handle will not be set + TInt error = eventSource->ExecuteTrap(&CreateSpectatorL, + manager, + &handle); + + if (error != KErrNone) + { + // executed function leaved. Set error to be returned to java. + handle = error; + } + LOG1( EJavaAMMS, EInfo, "AMMS::GlobalManager.cpp::createSpectator error code %d", handle); + return handle; +} + +// End of File