javauis/amms_qt/jni/src/globalmanager.cpp
changeset 23 98ccebc37403
--- /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 <jutils.h>
+#include <logger.h>
+
+#include <mmafunctionserver.h>
+
+#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<TInt>(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<TInt>(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<TInt>(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<TInt>(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