javauis/m2g_qt/src/jni/M2GSVGPath.cpp
changeset 87 1627c337e51e
parent 80 d6dafc5d983f
equal deleted inserted replaced
80:d6dafc5d983f 87:1627c337e51e
     1 /*
     1 /*
     2 * Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    60     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addClose - begin");
    60     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addClose - begin");
    61     TInt err = KM2GNotOk;
    61     TInt err = KM2GNotOk;
    62 
    62 
    63     M2G_DO_LOCK
    63     M2G_DO_LOCK
    64     if (aSvgProxyHandle)
    64     if (aSvgProxyHandle)
    65         {
    65     {
    66         MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
    66         MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
    67         TRAP(err, aProxy->AddCloseL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle)); );
    67         TRAP(err, aProxy->AddCloseL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle)););
    68         }
    68     }
    69     M2G_DO_UNLOCK(aJni)
    69     M2G_DO_UNLOCK(aJni)
    70 
    70 
    71     M2GGeneral::CheckErrorCode(aJni, err);
    71     M2GGeneral::CheckErrorCode(aJni, err);
    72 
    72 
    73     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addClose - end");
    73     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addClose - end");
    87 Java_com_nokia_microedition_m2g_M2GSVGPath__1addCurveTo(
    87 Java_com_nokia_microedition_m2g_M2GSVGPath__1addCurveTo(
    88     JNIEnv* aJni,
    88     JNIEnv* aJni,
    89     jclass,
    89     jclass,
    90     jint aSvgProxyHandle,
    90     jint aSvgProxyHandle,
    91     jint aPathHandle,
    91     jint aPathHandle,
    92     jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2, jfloat aX3, jfloat aY3 )
    92     jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2, jfloat aX3, jfloat aY3)
    93 {
    93 {
    94     M2G_DEBUG_6("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo: X1=%f, Y1=%f, X2=%f, Y2=%f, X3=%f, Y3=%f - begin", aX1, aY1, aX2, aY2, aX3, aY3);
    94     M2G_DEBUG_6("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo: X1=%f, Y1=%f, X2=%f, Y2=%f, X3=%f, Y3=%f - begin", aX1, aY1, aX2, aY2, aX3, aY3);
    95     TInt err = KM2GNotOk;
    95     TInt err = KM2GNotOk;
    96 
    96 
    97     TM2GPathCurveData curve;
    97     TM2GPathCurveData curve;
    98               curve[ 0 ] = STATIC_CAST(TReal32, aX1);
    98     curve[ 0 ] = STATIC_CAST(TReal32, aX1);
    99               curve[ 1 ] = STATIC_CAST(TReal32, aY1);
    99     curve[ 1 ] = STATIC_CAST(TReal32, aY1);
   100               curve[ 2 ] = STATIC_CAST(TReal32, aX2);
   100     curve[ 2 ] = STATIC_CAST(TReal32, aX2);
   101               curve[ 3 ] = STATIC_CAST(TReal32, aY2);
   101     curve[ 3 ] = STATIC_CAST(TReal32, aY2);
   102               curve[ 4 ] = STATIC_CAST(TReal32, aX3);
   102     curve[ 4 ] = STATIC_CAST(TReal32, aX3);
   103               curve[ 5 ] = STATIC_CAST(TReal32, aY3);
   103     curve[ 5 ] = STATIC_CAST(TReal32, aY3);
   104 
   104 
   105       M2G_DO_LOCK        
   105     M2G_DO_LOCK
   106       if (aSvgProxyHandle)
   106     if (aSvgProxyHandle)
   107           {
   107     {
   108           MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   108         MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   109           TRAP(err,    aProxy->AddCurveToL(
   109         TRAP(err,    aProxy->AddCurveToL(
   110                  STATIC_CAST(TM2GSvgPathHandle, aPathHandle),
   110                  STATIC_CAST(TM2GSvgPathHandle, aPathHandle),
   111                  curve); );
   111                  curve););
   112           }
   112     }
   113     M2G_DO_UNLOCK(aJni)
   113     M2G_DO_UNLOCK(aJni)
   114     
   114 
   115     M2GGeneral::CheckErrorCode(aJni, err);
   115     M2GGeneral::CheckErrorCode(aJni, err);
   116     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo - end");
   116     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo - end");
   117 }
   117 }
   118 
   118 
   119 // -----------------------------------------------------------------------------
   119 // -----------------------------------------------------------------------------
   123  * Calls MM2GSVGProxy::AddLineToL method.
   123  * Calls MM2GSVGProxy::AddLineToL method.
   124  * @since Series S60 3.0
   124  * @since Series S60 3.0
   125  * @param aProxy Proxy instance.
   125  * @param aProxy Proxy instance.
   126  * @param aPathHandle Svg path handle
   126  * @param aPathHandle Svg path handle
   127  * @param aX -
   127  * @param aX -
   128  * @param aY - 
   128  * @param aY -
   129  */
   129  */
   130 JNIEXPORT void JNICALL
   130 JNIEXPORT void JNICALL
   131 Java_com_nokia_microedition_m2g_M2GSVGPath__1addLineTo(
   131 Java_com_nokia_microedition_m2g_M2GSVGPath__1addLineTo(
   132     JNIEnv* aJni,
   132     JNIEnv* aJni,
   133     jclass,
   133     jclass,
   134     jint aSvgProxyHandle,
   134     jint aSvgProxyHandle,
   135     jint aPathHandle,
   135     jint aPathHandle,
   136     jfloat aX, jfloat aY )
   136     jfloat aX, jfloat aY)
   137 {
   137 {
   138     M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo: X=%f, Y=%f - begin", aX, aY);
   138     M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo: X=%f, Y=%f - begin", aX, aY);
   139     TInt err = KM2GNotOk;
   139     TInt err = KM2GNotOk;
   140 
   140 
   141     M2G_DO_LOCK
   141     M2G_DO_LOCK
   142     if (aSvgProxyHandle)
   142     if (aSvgProxyHandle)
   143         {
   143     {
   144         MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   144         MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   145         TRAP(err,     aProxy->AddLineToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), *(REINTERPRET_CAST(TReal32*, &aX)), *(REINTERPRET_CAST(TReal32*, &aY))); );
   145         TRAP(err,     aProxy->AddLineToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), *(REINTERPRET_CAST(TReal32*, &aX)), *(REINTERPRET_CAST(TReal32*, &aY))););
   146     
   146 
   147         }
   147     }
   148     M2G_DO_UNLOCK(aJni)
   148     M2G_DO_UNLOCK(aJni)
   149     
   149 
   150     M2GGeneral::CheckErrorCode(aJni, err);
   150     M2GGeneral::CheckErrorCode(aJni, err);
   151 
   151 
   152     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo - end");
   152     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo - end");
   153 }
   153 }
   154 // -----------------------------------------------------------------------------
   154 // -----------------------------------------------------------------------------
   171     jfloat aX,
   171     jfloat aX,
   172     jfloat aY)
   172     jfloat aY)
   173 {
   173 {
   174     M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addMoveTo: X=%f, Y=%f - begin", aX, aY);
   174     M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addMoveTo: X=%f, Y=%f - begin", aX, aY);
   175     TInt err           = KM2GNotOk;
   175     TInt err           = KM2GNotOk;
   176     
   176 
   177     M2G_DO_LOCK
   177     M2G_DO_LOCK
   178     if (aSvgProxyHandle)
   178     if (aSvgProxyHandle)
   179         {
   179     {
   180             MM2GSVGProxy *   aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   180         MM2GSVGProxy *   aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   181             TRAP(err, aProxy->AddMoveToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aX, aY)   ); 
   181         TRAP(err, aProxy->AddMoveToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aX, aY));
   182         }
   182     }
   183     M2G_DO_UNLOCK(aJni)
   183     M2G_DO_UNLOCK(aJni)
   184 
   184 
   185     M2GGeneral::CheckErrorCode(aJni, err);
   185     M2GGeneral::CheckErrorCode(aJni, err);
   186     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addMoveTo - end");
   186     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addMoveTo - end");
   187 }
   187 }
   206     jint aSvgProxyHandle,
   206     jint aSvgProxyHandle,
   207     jint aPathHandle,
   207     jint aPathHandle,
   208     jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2)
   208     jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2)
   209 {
   209 {
   210     M2G_DEBUG_4("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo: X1=%f, Y1=%f, X2=%f, Y2=%f - begin", aX1, aY1, aX2, aY2);
   210     M2G_DEBUG_4("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo: X1=%f, Y1=%f, X2=%f, Y2=%f - begin", aX1, aY1, aX2, aY2);
   211     // TInt elementHandle = M2G_INVALID_HANDLE;
   211 
   212     TInt err           = KM2GNotOk;
   212     TInt err           = KM2GNotOk;
   213     
   213 
   214     M2G_DO_LOCK
   214     M2G_DO_LOCK
   215     if (aSvgProxyHandle)
   215     if (aSvgProxyHandle)
   216         {
   216     {
   217             MM2GSVGProxy *   aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   217         MM2GSVGProxy *   aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   218             TRAP(err, aProxy->AddQuadToL(
   218         TRAP(err, aProxy->AddQuadToL(
   219                     STATIC_CAST(TM2GSvgPathHandle, aPathHandle),aX1, aY1, aX2, aY2); );
   219                  STATIC_CAST(TM2GSvgPathHandle, aPathHandle),aX1, aY1, aX2, aY2););
   220         }
   220     }
   221     M2G_DO_UNLOCK(aJni)
   221     M2G_DO_UNLOCK(aJni)
   222     
   222 
   223     M2GGeneral::CheckErrorCode(aJni, err);
   223     M2GGeneral::CheckErrorCode(aJni, err);
   224     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo - end");
   224     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo - end");
   225 }
   225 }
   226 
   226 
   227 // -----------------------------------------------------------------------------
   227 // -----------------------------------------------------------------------------
   241 {
   241 {
   242     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _createPath - begin");
   242     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _createPath - begin");
   243 
   243 
   244     TInt err           = KM2GNotOk;
   244     TInt err           = KM2GNotOk;
   245     TInt pathHandle = M2G_INVALID_HANDLE;
   245     TInt pathHandle = M2G_INVALID_HANDLE;
   246     
   246 
   247     M2G_DO_LOCK
   247     M2G_DO_LOCK
   248     if (aSvgProxyHandle)
   248     if (aSvgProxyHandle)
   249         {
   249     {
   250             MM2GSVGProxy *    aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   250         MM2GSVGProxy *    aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   251             TRAP(err, aProxy->CreatePathL(pathHandle);  );
   251         TRAP(err, aProxy->CreatePathL(pathHandle););
   252         }
   252     }
   253     M2G_DO_UNLOCK(aJni)
   253     M2G_DO_UNLOCK(aJni)
   254 
   254 
   255     M2GGeneral::CheckErrorCode(aJni, err);
   255     M2GGeneral::CheckErrorCode(aJni, err);
   256 
   256 
   257     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _createPath: %d - end", pathHandle);
   257     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _createPath: %d - end", pathHandle);
   273     jint aSvgProxyHandle,
   273     jint aSvgProxyHandle,
   274     jint aPathHandle)
   274     jint aPathHandle)
   275 {
   275 {
   276     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _destroyPath: %d - begin", aPathHandle);
   276     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _destroyPath: %d - begin", aPathHandle);
   277     TInt err           = KM2GNotOk;
   277     TInt err           = KM2GNotOk;
   278     
   278 
   279     M2G_DO_LOCK
   279     M2G_DO_LOCK
   280     if (aSvgProxyHandle)
   280     if (aSvgProxyHandle)
   281         {
   281     {
   282         MM2GSVGProxy *    aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   282         MM2GSVGProxy *    aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   283         TRAP(err, aProxy->DestroyPathL(
   283         TRAP(err, aProxy->DestroyPathL(
   284                 STATIC_CAST(TM2GSvgPathHandle, STATIC_CAST(TM2GSvgPathHandle, aPathHandle))); );
   284                  STATIC_CAST(TM2GSvgPathHandle, STATIC_CAST(TM2GSvgPathHandle, aPathHandle))););
   285         }
   285     }
   286     M2G_DO_UNLOCK(aJni)
   286     M2G_DO_UNLOCK(aJni)
   287 
   287 
   288     M2GGeneral::CheckErrorCode(aJni, err);
   288     M2GGeneral::CheckErrorCode(aJni, err);
   289     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _destroyPath - end");
   289     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _destroyPath - end");
   290 }
   290 }
   307     jint aPathHandle)
   307     jint aPathHandle)
   308 {
   308 {
   309     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments - begin");
   309     M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments - begin");
   310     TInt err              = KM2GNotOk;
   310     TInt err              = KM2GNotOk;
   311     TInt numberOfSegments = 0;
   311     TInt numberOfSegments = 0;
   312     
   312 
   313     M2G_DO_LOCK
   313     M2G_DO_LOCK
   314     if (aSvgProxyHandle)
   314     if (aSvgProxyHandle)
   315         {
   315     {
   316         MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   316         MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   317         TRAP(err, aProxy->GetNumberOfSegmentsL(
   317         TRAP(err, aProxy->GetNumberOfSegmentsL(
   318                 STATIC_CAST(TM2GSvgPathHandle, aPathHandle),
   318                  STATIC_CAST(TM2GSvgPathHandle, aPathHandle),
   319                 numberOfSegments); );
   319                  numberOfSegments););
   320         }
   320     }
   321     M2G_DO_UNLOCK(aJni)
   321     M2G_DO_UNLOCK(aJni)
   322     
   322 
   323     M2GGeneral::CheckErrorCode(aJni, err);
   323     M2GGeneral::CheckErrorCode(aJni, err);
   324     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments: %d - end", numberOfSegments);
   324     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments: %d - end", numberOfSegments);
   325     return STATIC_CAST(jint, numberOfSegments);
   325     return STATIC_CAST(jint, numberOfSegments);
   326 }
   326 }
   327 
   327 
   345     jint aPathHandle, jint aSegmentIndex, jint aParamIndex)
   345     jint aPathHandle, jint aSegmentIndex, jint aParamIndex)
   346 {
   346 {
   347     M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentParameter: seg index=%d, param index=%d - begin", aSegmentIndex, aParamIndex);
   347     M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentParameter: seg index=%d, param index=%d - begin", aSegmentIndex, aParamIndex);
   348     TInt err              = KM2GNotOk;
   348     TInt err              = KM2GNotOk;
   349     TReal32 segmentParam  = 0;
   349     TReal32 segmentParam  = 0;
   350     
   350 
   351     M2G_DO_LOCK
   351     M2G_DO_LOCK
   352     if (aSvgProxyHandle)
   352     if (aSvgProxyHandle)
   353         {
   353     {
   354         MM2GSVGProxy *             aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   354         MM2GSVGProxy *             aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   355         TRAP(err,    aProxy->GetSegmentParameterL(
   355         TRAP(err,    aProxy->GetSegmentParameterL(
   356             STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aSegmentIndex,aParamIndex, segmentParam); );
   356                  STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aSegmentIndex,aParamIndex, segmentParam););
   357         }
   357     }
   358     M2G_DO_UNLOCK(aJni)
   358     M2G_DO_UNLOCK(aJni)
   359 
   359 
   360     M2GGeneral::CheckErrorCode(aJni, err);
   360     M2GGeneral::CheckErrorCode(aJni, err);
   361 
   361 
   362     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentParameter: %f - end", segmentParam);
   362     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentParameter: %f - end", segmentParam);
   384     jint aIndex)
   384     jint aIndex)
   385 {
   385 {
   386     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentType: index=%d - begin", aIndex);
   386     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentType: index=%d - begin", aIndex);
   387     TInt err              = KM2GNotOk;
   387     TInt err              = KM2GNotOk;
   388     TInt16 aSegmentType  = 0;
   388     TInt16 aSegmentType  = 0;
   389     
   389 
   390     M2G_DO_LOCK
   390     M2G_DO_LOCK
   391     if (aSvgProxyHandle)
   391     if (aSvgProxyHandle)
   392         {
   392     {
   393         MM2GSVGProxy *             aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   393         MM2GSVGProxy *             aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
   394         TRAP(err, aProxy->GetSegmentTypeL(
   394         TRAP(err, aProxy->GetSegmentTypeL(
   395                    STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aIndex,aSegmentType); );
   395                  STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aIndex,aSegmentType););
   396         }
   396     }
   397     M2G_DO_UNLOCK(aJni)
   397     M2G_DO_UNLOCK(aJni)
   398 
   398 
   399     M2GGeneral::CheckErrorCode(aJni, err);
   399     M2GGeneral::CheckErrorCode(aJni, err);
   400     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentType: %d - end", aSegmentType);
   400     M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentType: %d - end", aSegmentType);
   401     return STATIC_CAST(jshort, aSegmentType);
   401     return STATIC_CAST(jshort, aSegmentType);