javauis/mmapi_qt/baseline/src/eswtdisplay.cpp
author hgs
Fri, 09 Jul 2010 16:35:45 +0300
changeset 50 023eef975703
permissions -rw-r--r--
v2.2.4_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     1
/*
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     3
* All rights reserved.
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     8
*
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    11
*
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    12
* Contributors:
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    13
*
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    14
* Description:
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    15
*
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    16
*/
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    17
#include "com_nokia_microedition_media_control_MMAeSWTDisplay.h"
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    18
#include "logger.h"
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    19
#include "qwidget.h"
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    20
#include "cmmadcdisplay.h"
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    21
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    22
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMAeSWTDisplay__1setVisible
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    23
(JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isVisible)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    24
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    25
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setVisible +");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    26
    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    27
    TBool visible = (TBool)isVisible;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    28
    display ->SetVisible(visible);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    29
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setVisible -");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    30
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    31
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    32
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    33
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMAeSWTDisplay__1setContainerVisible
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    34
(JNIEnv *, jobject, jint /*nativeDisplayHandle*/, jboolean /*isActive*/)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    35
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    36
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setContainerVisible +");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    37
    /*        CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    38
            TBool visible = (TBool)isActive;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    39
            display ->SetContainerVisibility(visible);*/
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    40
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setContainerVisible -");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    41
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    42
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    43
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMAeSWTDisplay__1setFullScreenMode
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    44
(JNIEnv *, jobject, jint nativeDisplayHandle, jboolean isFullScreen)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    45
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    46
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setFullScreenMode  +");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    47
    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    48
    TBool mode = (TBool)isFullScreen;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    49
    TRAP_IGNORE(display ->SetFullScreenL(mode));
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    50
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setFullScreenMode  -");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    51
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    52
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    53
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMAeSWTDisplay__1setWindowToNative
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    54
(JNIEnv *, jobject,jint nativeDisplayHandle, jint qtWidgetHandle)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    55
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    56
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setWindowToNative + ");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    57
    QWidget *widget = reinterpret_cast<QWidget*>(qtWidgetHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    58
    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    59
    display->SetWindowResources(widget);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    60
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setWindowToNative - ");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    61
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    62
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    63
LOCAL_C void LocalSourceSizeChanged(CMMADisplay* display,TInt width,TInt height)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    64
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    65
    TRect temp(0,0,0,0);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    66
    LOG2(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setWindowToNative + %d %d",width,height);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    67
    display->SourceSizeChanged(width,height,0,0,temp);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    68
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    69
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    70
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMAeSWTDisplay__1setNativeWindowSize
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    71
(JNIEnv *, jobject,jint nativeDisplayHandle, jint /*aEventSourceHandle*/, jint eswtControlwidth,jint eswtControlheight)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    72
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    73
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setNativeWindowSize + ");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    74
    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    75
    TInt width = eswtControlwidth;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    76
    TInt height = eswtControlheight;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    77
    // TSize srcsize = TSize(360,487);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    78
    // TO-DO remove JavaUnhand in final code
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    79
    //MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    80
    // need to call in Function server thread context because CMMADisplay's JNI pointer
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    81
    // is valid in that thread context only.
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    82
    /*TInt error = eventSource->ExecuteTrap(&LocalSourceSizeChanged,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    83
                                                          display,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    84
                                                          width,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    85
                                                          height);*/
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    86
    LocalSourceSizeChanged(display, width, height);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    87
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    88
    LOG(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : setNativeWindowSize - ");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    89
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    90
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    91
/*
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    92
LOCAL_C void LocalSetDisplayPosition(CMMADisplay* display,TInt uiX,TInt uiY,TInt vcX,TInt vcY)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    93
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    94
    display->SetDisplayPosition(uiX,uiY,vcX,vcY);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    95
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    96
*/
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    97
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMAeSWTDisplay__1setPosition
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    98
(JNIEnv *, jobject,jint /*nativeDisplayHandle*/,jint /*aEventSourceHandle*/,jint /*uiX*/,jint /*uiY*/,jint /*vcX*/,jint /*vcY*/)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
    99
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   100
    /*  LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition + ");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   101
      CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   102
      TInt uiControlLocationX = uiX;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   103
      TInt uiControlLocationY = uiY;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   104
      TInt videoControlLocationX = vcX;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   105
      TInt videoControlLocationY = vcY;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   106
      MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   107
      // need to call in Function server thread context because CMMADisplay's JNI pointer
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   108
      // is valid in that thread context only.
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   109
      TInt error = eventSource->ExecuteTrap(&LocalSetDisplayPosition,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   110
                                                               display,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   111
                                                                     uiControlLocationX,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   112
                                                                             uiControlLocationY,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   113
                                                                                     videoControlLocationX,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   114
                                                                                             videoControlLocationY);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   115
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   116
      LOG(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : _setPosition - ");*/
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   117
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   118
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   119
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   120
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   121
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   122
LOCAL_C void LocalSetDisplaySize(CMMADisplay* display,TInt vcX,TInt vcY)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   123
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   124
    LOG2(EJavaMMAPI,EInfo,"JNI_canvasdisplay.cpp : LocalSetDisplaySize vcX = %d,vcY=%d ",vcX,vcY);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   125
    TSize size(vcX,vcY);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   126
    TRAP_IGNORE(display->SetDisplaySizeL(size));
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   127
}
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   128
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   129
JNIEXPORT void JNICALL Java_com_nokia_microedition_media_control_MMAeSWTDisplay__1setDisplaySize
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   130
(JNIEnv *, jobject,jint nativeDisplayHandle,jint /*aEventSourceHandle*/,jint width,jint height)
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   131
{
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   132
    LOG2(EJavaMMAPI,EInfo,"JNI_eswtDisplay.cpp : _setDisplaySize +  width = %d,height = %d",width,height);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   133
    CMMADisplay* display = reinterpret_cast<CMMADisplay*>(nativeDisplayHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   134
    TInt vc_width = width;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   135
    TInt vc_height = height;
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   136
    //MMAFunctionServer* eventSource =  reinterpret_cast<MMAFunctionServer *>(aEventSourceHandle);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   137
    // need to call in Function server thread context because CMMADisplay's JNI pointer
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   138
    // is valid in that thread context only.
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   139
    LOG2(EJavaMMAPI,EInfo,"JNI_eswtdisplay.cpp : _setDisplaySize +  vc_width = %d,vc_height = %d",vc_width,vc_height);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   140
    /*TInt error = eventSource->ExecuteTrap(&LocalSetDisplaySize,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   141
                                                             display,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   142
                                                                   vc_width,
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   143
                                                                           vc_height);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   144
    */
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   145
    LocalSetDisplaySize(display, vc_width, vc_height);
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   146
    LOG(EJavaMMAPI,EInfo,"JNI_ESWTDisplay.cpp : _setDisplaySize - ");
023eef975703 v2.2.4_1
hgs
parents:
diff changeset
   147
}