javauis/mmapi_qt/baseline/src/canvasdisplay.cpp
changeset 26 dc7c549001d5
parent 23 98ccebc37403
equal deleted inserted replaced
23:98ccebc37403 26:dc7c549001d5
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2010 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".
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description: 
    14 * Description: CanvasDisplay JNI
    15 *
    15 *
    16 */
    16 */
       
    17 
    17 #include "logger.h"
    18 #include "logger.h"
    18 #include "com_nokia_microedition_media_control_MMACanvasDisplay.h"
    19 #include "com_nokia_microedition_media_control_MMACanvasDisplay.h"
    19 #include "cmmacanvasdisplay.h"
    20 #include "cmmacanvasdisplay.h"
    20 #include "qwidget.h"
    21 #include "qwidget.h"
    21 #include "cmmasurfacewindow.h"
    22 #include "cmmasurfacewindow.h"
    25  * Class:     com_nokia_microedition_media_control_mmacanvasdisplay
    26  * Class:     com_nokia_microedition_media_control_mmacanvasdisplay
    26  * Method:    _setVisible
    27  * Method:    _setVisible
    27  * Signature: (IIZ)I
    28  * Signature: (IIZ)I
    28  */
    29  */
    29 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setVisible
    30 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setVisible
    30   (JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isVisible)
    31 (JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isVisible)
    31   {
    32 {
    32    LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setVisible +");
    33     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setVisible +");
    33 	    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    34     CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    34         TBool visible = (TBool)isVisible;
    35     TBool visible = (TBool)isVisible;
    35         display ->SetVisible(visible);
    36     display ->SetVisible(visible);
    36    LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setVisible -");
    37     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setVisible -");
    37   }
    38 }
    38 
    39 
    39 LOCAL_C void LocalSetContainerVisible(CMMADisplay* display,TBool visible)
    40 LOCAL_C void LocalSetContainerVisible(CMMADisplay* display,TBool visible)
    40 {
    41 {
    41 	 display ->SetContainerVisibility(visible);
    42     display ->SetContainerVisibility(visible);
    42 }
    43 }
    43 
    44 
    44 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setContainerVisible
    45 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setContainerVisible
    45 (JNIEnv *, jobject,jint aEventSourceHandle, jint nativeDisplayHandle, jboolean isActive)
    46 (JNIEnv *, jobject,jint aEventSourceHandle, jint nativeDisplayHandle, jboolean isActive)
    46 {
    47 {
    47   LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setContainerVisible +");
    48     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setContainerVisible +");
    48   MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
    49     MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
    49 	 // need to call in Function server thread context because CMMADisplay's JNI pointer
    50     // need to call in Function server thread context because CMMADisplay's JNI pointer
    50 	 // is valid in that thread context only.
    51     // is valid in that thread context only.
    51   
    52 
    52 		    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    53     CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    53 	        TBool visible = (TBool)isActive;
    54     TBool visible = (TBool)isActive;
    54 	        
    55 
    55 	         TInt error = eventSource->ExecuteTrap(&LocalSetContainerVisible,
    56     TInt error = eventSource->ExecuteTrap(&LocalSetContainerVisible,
    56 					                                          display,
    57                                           display,
    57 					                                          		visible);
    58                                           visible);
    58 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setContainerVisible -");
    59     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setContainerVisible -");
    59 }
    60 }
    60 
    61 
    61 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setFullScreenMode
    62 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setFullScreenMode
    62 (JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isFullScreen)
    63 (JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isFullScreen)
    63 {
    64 {
    64   LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setFullScreenMode  +");
    65     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setFullScreenMode  +");
    65 		    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    66     CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    66 	        TBool mode = (TBool)isFullScreen;
    67     TBool mode = (TBool)isFullScreen;
    67 	        display ->SetFullScreenL(mode);
    68     TRAP_IGNORE(display ->SetFullScreenL(mode));
    68   LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setFullScreenMode  -");
    69     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setFullScreenMode  -");
    69 }
    70 }
    70 
    71 
    71 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setWindowToNative
    72 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setWindowToNative
    72 (JNIEnv *, jobject,jint nativeDisplayHandle, jint qtWidgetHandle)
    73 (JNIEnv *, jobject,jint nativeDisplayHandle, jint qtWidgetHandle)
    73 {
    74 {
    74 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setWindowToNative + ");
    75     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setWindowToNative + ");
    75 	 QWidget *widget = reinterpret_cast<QWidget*>(qtWidgetHandle);
    76     QWidget *widget = reinterpret_cast<QWidget*>(qtWidgetHandle);
    76 	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    77     CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    77 	 display->SetWindowResources(widget);
    78     display->SetWindowResources(widget);
    78 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setWindowToNative - ");
    79     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setWindowToNative - ");
    79 }
    80 }
    80 
    81 
    81 
    82 
    82 /*
    83 /*
    83 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1nativeDummy
    84 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1nativeDummy
    85 {
    86 {
    86 */
    87 */
    87 
    88 
    88 LOCAL_C void LocalSourceSizeChanged(CMMADisplay* display,TInt width,TInt height)
    89 LOCAL_C void LocalSourceSizeChanged(CMMADisplay* display,TInt width,TInt height)
    89 {
    90 {
    90 	display->SourceSizeChanged(width,height);
    91     TRect temp(0,0,0,0);
       
    92     display->SourceSizeChanged(width,height,0,0,temp);
    91 }
    93 }
    92 
    94 
    93 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setNativeWindowSize
    95 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setNativeWindowSize
    94 (JNIEnv *, jobject,jint nativeDisplayHandle, jint aEventSourceHandle, jint eswtControlwidth,jint eswtControlheight)
    96 (JNIEnv *, jobject,jint nativeDisplayHandle, jint aEventSourceHandle, jint eswtControlwidth,jint eswtControlheight)
    95 {
    97 {
    96 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setNativeWindowSize + ");
    98     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setNativeWindowSize + ");
    97 	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    99     CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
    98 	 TInt width = eswtControlwidth;
   100     TInt width = eswtControlwidth;
    99 	 TInt height = eswtControlheight;
   101     TInt height = eswtControlheight;
   100 	 MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
   102     MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
   101 	 // need to call in Function server thread context because CMMADisplay's JNI pointer
   103     // need to call in Function server thread context because CMMADisplay's JNI pointer
   102 	 // is valid in that thread context only.
   104     // is valid in that thread context only.
   103    TInt error = eventSource->ExecuteTrap(&LocalSourceSizeChanged,
   105     TInt error = eventSource->ExecuteTrap(&LocalSourceSizeChanged,
   104 					                                          display,
   106                                           display,
   105 					                                          		width,
   107                                           width,
   106 					                                          			height);
   108                                           height);
   107 
   109 
   108 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setNativeWindowSize - ");
   110     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setNativeWindowSize - ");
   109 }
   111 }
   110 
   112 
   111 LOCAL_C void LocalSetDisplayPosition(CMMADisplay* display,TInt uiX,TInt uiY,TInt vcX,TInt vcY)
   113 LOCAL_C void LocalSetDisplayPosition(CMMADisplay* display,TInt uiX,TInt uiY,TInt vcX,TInt vcY)
   112 {
   114 {
   113 	display->SetDisplayPosition(uiX,uiY,vcX,vcY);
   115     display->SetDisplayPosition(uiX,uiY,vcX,vcY);
   114 }
   116 }
   115 
   117 
   116 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setPosition
   118 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setPosition
   117 (JNIEnv *, jobject,jint nativeDisplayHandle,jint aEventSourceHandle,jint uiX,jint uiY,jint vcX,jint vcY)
   119 (JNIEnv *, jobject,jint nativeDisplayHandle,jint aEventSourceHandle,jint uiX,jint uiY,jint vcX,jint vcY)
   118 {
   120 {
   119 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition + ");
   121     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition + ");
   120 	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
   122     CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
   121 	 TInt uiControlLocationX = uiX;
   123     TInt uiControlLocationX = uiX;
   122 	 TInt uiControlLocationY = uiY;
   124     TInt uiControlLocationY = uiY;
   123 	 TInt videoControlLocationX = vcX;
   125     TInt videoControlLocationX = vcX;
   124 	 TInt videoControlLocationY = vcY;
   126     TInt videoControlLocationY = vcY;
   125 	 MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
   127     MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
   126 	 // need to call in Function server thread context because CMMADisplay's JNI pointer
   128     // need to call in Function server thread context because CMMADisplay's JNI pointer
   127 	 // is valid in that thread context only.
   129     // is valid in that thread context only.
   128    TInt error = eventSource->ExecuteTrap(&LocalSetDisplayPosition,
   130     TInt error = eventSource->ExecuteTrap(&LocalSetDisplayPosition,
   129 					                                          display,
   131                                           display,
   130 					                                          		uiControlLocationX,
   132                                           uiControlLocationX,
   131 					                                          				uiControlLocationY,
   133                                           uiControlLocationY,
   132 					                                          						videoControlLocationX,
   134                                           videoControlLocationX,
   133 					                                          								videoControlLocationY);
   135                                           videoControlLocationY);
   134 
   136 
   135 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition - ");
   137     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition - ");
   136 }
   138 }
   137 
   139 
   138 
   140 
   139 
   141 
   140 
   142 
   141 LOCAL_C void LocalSetDisplaySize(CMMADisplay* display,TInt vcX,TInt vcY)
   143 LOCAL_C void LocalSetDisplaySize(CMMADisplay* display,TInt vcX,TInt vcY)
   142 {
   144 {
   143 	LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : LocalSetDisplaySize vcX = %d,vcY=%d ",vcX,vcY);
   145     LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : LocalSetDisplaySize vcX = %d,vcY=%d ",vcX,vcY);
   144 	TSize size(vcX,vcY);
   146     TSize size(vcX,vcY);
   145 	display->SetDisplaySizeL(size);
   147     TRAP_IGNORE(display->SetDisplaySizeL(size));
   146 }
   148 }
   147 		 																										
   149 
   148 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setDisplaySize
   150 JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setDisplaySize
   149 (JNIEnv *, jobject,jint nativeDisplayHandle,jint aEventSourceHandle,jint width,jint height)
   151 (JNIEnv *, jobject,jint nativeDisplayHandle,jint aEventSourceHandle,jint width,jint height)
   150 {
   152 {
   151 	 LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize +  width = %d,height = %d",width,height);
   153     LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize +  width = %d,height = %d",width,height);
   152 	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
   154     CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
   153 	 TInt vc_width = width;
   155     TInt vc_width = width;
   154 	 TInt vc_height = height;
   156     TInt vc_height = height;
   155 	 MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
   157     MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
   156 	 // need to call in Function server thread context because CMMADisplay's JNI pointer
   158     // need to call in Function server thread context because CMMADisplay's JNI pointer
   157 	 // is valid in that thread context only.
   159     // is valid in that thread context only.
   158 	 LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize +  vc_width = %d,vc_height = %d",vc_width,vc_height);
   160     LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize +  vc_width = %d,vc_height = %d",vc_width,vc_height);
   159    TInt error = eventSource->ExecuteTrap(&LocalSetDisplaySize,
   161     TInt error = eventSource->ExecuteTrap(&LocalSetDisplaySize,
   160 					                                          display,
   162                                           display,
   161 					                                          		vc_width,
   163                                           vc_width,
   162 					                                          				vc_height);
   164                                           vc_height);
   163 
   165 
   164 	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize - ");
   166     LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize - ");
   165 }		 																												
   167 }