javauis/mmapi_qt/baseline/src/canvasdisplay.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 15:47:24 +0300
changeset 23 98ccebc37403
child 26 dc7c549001d5
permissions -rw-r--r--
Revision: v2.1.24 Kit: 201019

/*
* Copyright (c) 2009 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 "logger.h"
#include "com_nokia_microedition_media_control_MMACanvasDisplay.h"
#include "cmmacanvasdisplay.h"
#include "qwidget.h"
#include "cmmasurfacewindow.h"


/*
 * Class:     com_nokia_microedition_media_control_mmacanvasdisplay
 * Method:    _setVisible
 * Signature: (IIZ)I
 */
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setVisible
  (JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isVisible)
  {
   LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setVisible +");
	    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
        TBool visible = (TBool)isVisible;
        display ->SetVisible(visible);
   LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setVisible -");
  }

LOCAL_C void LocalSetContainerVisible(CMMADisplay* display,TBool visible)
{
	 display ->SetContainerVisibility(visible);
}

JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setContainerVisible
(JNIEnv *, jobject,jint aEventSourceHandle, jint nativeDisplayHandle, jboolean isActive)
{
  LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setContainerVisible +");
  MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
	 // need to call in Function server thread context because CMMADisplay's JNI pointer
	 // is valid in that thread context only.
  
		    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
	        TBool visible = (TBool)isActive;
	        
	         TInt error = eventSource->ExecuteTrap(&LocalSetContainerVisible,
					                                          display,
					                                          		visible);
	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setContainerVisible -");
}

JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setFullScreenMode
(JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isFullScreen)
{
  LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setFullScreenMode  +");
		    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
	        TBool mode = (TBool)isFullScreen;
	        display ->SetFullScreenL(mode);
  LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setFullScreenMode  -");
}

JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setWindowToNative
(JNIEnv *, jobject,jint nativeDisplayHandle, jint qtWidgetHandle)
{
	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setWindowToNative + ");
	 QWidget *widget = reinterpret_cast<QWidget*>(qtWidgetHandle);
	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
	 display->SetWindowResources(widget);
	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setWindowToNative - ");
}


/*
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1nativeDummy
(JNIEnv *, jobject,)
{
*/

LOCAL_C void LocalSourceSizeChanged(CMMADisplay* display,TInt width,TInt height)
{
	display->SourceSizeChanged(width,height);
}

JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setNativeWindowSize
(JNIEnv *, jobject,jint nativeDisplayHandle, jint aEventSourceHandle, jint eswtControlwidth,jint eswtControlheight)
{
	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setNativeWindowSize + ");
	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
	 TInt width = eswtControlwidth;
	 TInt height = eswtControlheight;
	 MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
	 // need to call in Function server thread context because CMMADisplay's JNI pointer
	 // is valid in that thread context only.
   TInt error = eventSource->ExecuteTrap(&LocalSourceSizeChanged,
					                                          display,
					                                          		width,
					                                          			height);

	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : setNativeWindowSize - ");
}

LOCAL_C void LocalSetDisplayPosition(CMMADisplay* display,TInt uiX,TInt uiY,TInt vcX,TInt vcY)
{
	display->SetDisplayPosition(uiX,uiY,vcX,vcY);
}

JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setPosition
(JNIEnv *, jobject,jint nativeDisplayHandle,jint aEventSourceHandle,jint uiX,jint uiY,jint vcX,jint vcY)
{
	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition + ");
	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
	 TInt uiControlLocationX = uiX;
	 TInt uiControlLocationY = uiY;
	 TInt videoControlLocationX = vcX;
	 TInt videoControlLocationY = vcY;
	 MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
	 // need to call in Function server thread context because CMMADisplay's JNI pointer
	 // is valid in that thread context only.
   TInt error = eventSource->ExecuteTrap(&LocalSetDisplayPosition,
					                                          display,
					                                          		uiControlLocationX,
					                                          				uiControlLocationY,
					                                          						videoControlLocationX,
					                                          								videoControlLocationY);

	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition - ");
}




LOCAL_C void LocalSetDisplaySize(CMMADisplay* display,TInt vcX,TInt vcY)
{
	LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : LocalSetDisplaySize vcX = %d,vcY=%d ",vcX,vcY);
	TSize size(vcX,vcY);
	display->SetDisplaySizeL(size);
}
		 																										
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMACanvasDisplay__1setDisplaySize
(JNIEnv *, jobject,jint nativeDisplayHandle,jint aEventSourceHandle,jint width,jint height)
{
	 LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize +  width = %d,height = %d",width,height);
	 CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
	 TInt vc_width = width;
	 TInt vc_height = height;
	 MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
	 // need to call in Function server thread context because CMMADisplay's JNI pointer
	 // is valid in that thread context only.
	 LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize +  vc_width = %d,vc_height = %d",vc_width,vc_height);
   TInt error = eventSource->ExecuteTrap(&LocalSetDisplaySize,
					                                          display,
					                                          		vc_width,
					                                          				vc_height);

	 LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setDisplaySize - ");
}