javauis/m2g_qt/src/jni/M2GManager.cpp
changeset 80 d6dafc5d983f
child 87 1627c337e51e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/m2g_qt/src/jni/M2GManager.cpp	Fri Oct 15 12:29:39 2010 +0300
@@ -0,0 +1,248 @@
+/*
+* Copyright (c) 2005-2006 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:  JNI methods
+*
+*/
+
+// INCLUDE FILES
+#include "com_nokia_microedition_m2g_M2GManager.h"
+#include "CM2GSVGProxy.h"
+
+M2G_NS_START
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+// ================================ FUNCTIONS ==================================
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GManager::_createSvgEngine
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::CreateSvgEngineL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aHandle Svg engine handle
+*/
+/**
+ * JNI method
+ */
+JNIEXPORT jint JNICALL
+Java_com_nokia_microedition_m2g_M2GManager__1createSvgEngine(
+    JNIEnv* aJni,
+    jclass,
+    jint aSvgProxyHandle)
+{
+    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _createSvgEngine - begin");
+    
+    TInt handle = M2G_INVALID_HANDLE;
+    TInt err = KM2GNotOk;
+    
+    M2G_DO_LOCK
+    if (aSvgProxyHandle)
+        {
+        TRAP(err,JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle)->CreateSvgEngineL(handle););
+        }
+    M2G_DO_UNLOCK(aJni)
+
+    handle = M2GGeneral::CheckErrorCodeAndHandle(
+                        aJni, err, handle, M2G_INVALID_HANDLE); 
+    
+    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _createSvgEngine: %d - end", handle);
+    return handle;
+}
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GManager::_createSvgProxy
+// -----------------------------------------------------------------------------
+/**
+ * Creates an svg proxy.
+ * @since Series S60 3.0
+ * @param Svg proxy handle
+/**
+ * JNI method
+ */
+JNIEXPORT jint JNICALL
+Java_com_nokia_microedition_m2g_M2GManager__1createSvgProxy(
+    JNIEnv* aJni,jclass)
+{
+    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _createSvgProxy - begin");
+    TInt handle = M2G_INVALID_HANDLE;
+    TInt    err = KM2GNotOk;
+
+    M2G_DO_LOCK
+    TRAP(err, MM2GSVGProxy* proxy = CM2GSVGProxy::NewL(); handle = JavaMakeHandle(proxy););
+    M2G_DO_UNLOCK(aJni)
+
+    handle = M2GGeneral::CheckErrorCodeAndHandle(aJni, err, handle, err);
+    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _createSvgProxy: %d - end", handle);
+    return handle;
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GManager::_deleteSvgEngine
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::DeleteSvgEnginedL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ 
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GManager__1deleteSvgEngine(
+    JNIEnv* aJni,
+    jclass,
+    jint aSvgProxyHandle,
+    jint aSvgEngineHandle   )
+{
+    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgEngine - begin");
+    
+    TInt err = KM2GNotOk;
+    
+    M2G_DO_LOCK
+    if (aSvgProxyHandle)
+        {
+           TRAP(err,JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle)->DeleteSvgEngineL(
+           STATIC_CAST(TM2GSvgEngineHandle, aSvgEngineHandle)););
+        }
+    M2G_DO_UNLOCK(aJni)
+    
+    M2GGeneral::CheckErrorCode(aJni, err);
+    
+    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgEngine: - end");
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GManager::_deleteSvgProxy
+// -----------------------------------------------------------------------------
+/**
+ * Deletes a proxy object. NOTE: The proxy object has to be deleted inside same
+ * thread as it was created, otherwice there will be problem to delete a CFbsBitmap
+ * server object inside the SVGTopt componenet see KATA-6KYA9T (SVGEngineJI: SVGTopt
+ * crashes when deleting svg document object that contains external resource)
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GManager__1deleteSvgProxy(
+    JNIEnv* aJni,
+    jclass,
+    jint aSvgProxyHandle)
+{
+    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgProxy - begin");
+    TInt            err = KM2GNotOk;
+    
+    M2G_DO_LOCK
+    if (aSvgProxyHandle)
+        {
+        MM2GSVGProxy* proxy = JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle);
+        TRAP(err,delete proxy;);
+        }
+    M2G_DO_UNLOCK(aJni)
+
+    M2GGeneral::CheckErrorCode(aJni, err);
+    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgProxy: - end");
+}
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GManager::_finalizeEventSource
+// -----------------------------------------------------------------------------
+/**
+ * JNI method TODO check this function for modifications
+ */
+//JNIEXPORT void JNICALL
+//Java_com_nokia_microedition_m2g_M2GManager__1finalizeEventSource(
+//    JNIEnv *aJni, jclass, jint aEventSourceHandle, jboolean aUiToolkit)
+//{
+//    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _finalizeEventSource: %d", aEventSourceHandle);
+//    if (aUiToolkit)
+//    {
+////        MSwtClient* client  = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+////        if (client)
+////        {
+////            delete client;
+////            client = NULL;
+////        }
+//    }
+//    else
+//    {
+//        CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+//        if (eventSource)
+//        {
+//            eventSource->Dispose(*aJni);
+//        }
+//        eventSource = NULL;
+//    }
+//}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GManager::_initEventSource
+// -----------------------------------------------------------------------------
+/**
+ * JNI method TODO check this function for modifications
+ 
+JNIEXPORT jint JNICALL
+Java_com_nokia_microedition_m2g_M2GManager__1initEventSource(
+    JNIEnv *aJni,
+    jclass aPeer,
+    jint aServer)
+{
+    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - begin");
+
+    M2G_DO_LOCK
+    TRAPD(eventSourceHandle, eventSourceHandle = CM2GEventSource::NewL(
+                *aJni, aPeer, aServer));
+    M2G_DO_UNLOCK(aJni)
+    
+    M2GGeneral::CheckHandle(aJni, eventSourceHandle);
+    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - end: %d", eventSourceHandle);
+    return eventSourceHandle;
+}*/
+////TODO check this function for modifications
+//JNIEXPORT jint JNICALL
+//Java_com_nokia_microedition_m2g_M2GManager__1initSwtEventSource(
+//    JNIEnv *aJni,
+//    jclass /*aPeer*/)
+//{
+//    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - begin");
+//
+//    MSwtClient* client = NULL;
+//    TRAP_IGNORE(client = SWT::CreateClientL());
+//    if (!client)
+//    {
+//        return KErrNotFound;
+//    }
+//    M2GGeneral::CheckHandle(aJni, (int)client);
+//    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - end: %d", eventSourceHandle);
+//    return (int)client;
+//}
+M2G_NS_END