From: giwoong.kim Date: Fri, 8 Jun 2012 08:22:22 +0000 (+0900) Subject: [Title] convert type of swt canvas handle X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~1585 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad4a96a4c7f59272fcc72e1a60375ef24e31ba8b;p=sdk%2Femulator%2Fqemu.git [Title] convert type of swt canvas handle [Type] [Module] Emulator / skin [Priority] [Jira#] [Redmine#] [Problem] [Cause] support 64bit machine [Solution] int -> uint64 [TestCase] --- diff --git a/tizen/src/maru_sdl.c b/tizen/src/maru_sdl.c index 0957e1432b..55574e58cb 100644 --- a/tizen/src/maru_sdl.c +++ b/tizen/src/maru_sdl.c @@ -308,7 +308,7 @@ void maruskin_display_init(DisplayState *ds) #endif } -void maruskin_sdl_init(int swt_handle, int lcd_size_width, int lcd_size_height) +void maruskin_sdl_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height) { int w, h; gchar SDL_windowhack[32]; diff --git a/tizen/src/maru_sdl.h b/tizen/src/maru_sdl.h index 359a39a11b..9b6ef15807 100644 --- a/tizen/src/maru_sdl.h +++ b/tizen/src/maru_sdl.h @@ -47,7 +47,7 @@ #define SDL_USER_EVENT_CODE_HARDKEY 1 void maruskin_display_init(DisplayState *ds); -void maruskin_sdl_init(int swt_handle, int lcd_size_width, int lcd_size_height); +void maruskin_sdl_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height); void maruskin_sdl_resize(void); DisplaySurface* get_qemu_display_surface( void ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java index ab49103d16..cd2306a04b 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -157,7 +157,7 @@ public class EmulatorSkin { private ScreenShotDialog screenShotDialog; private SocketCommunicator communicator; - private int windowHandleId; + private long windowHandleId; private Listener shellCloseListener; private PaintListener shellPaintListener; @@ -192,7 +192,7 @@ public class EmulatorSkin { this.communicator = communicator; } - public int compose() { + public long compose() { this.lcdCanvas = new Canvas( shell, SWT.EMBEDDED ); @@ -298,15 +298,15 @@ public class EmulatorSkin { // // } - private int getWindowHandleId() { + private long getWindowHandleId() { - int windowHandleId = 0; + long windowHandleId = 0; if ( SkinUtil.isLinuxPlatform() ) { try { Field field = lcdCanvas.getClass().getField( "embeddedHandle" ); - windowHandleId = field.getInt( lcdCanvas ); + windowHandleId = field.getLong( lcdCanvas ); logger.info( "lcdCanvas.embeddedHandle:" + windowHandleId ); } catch ( IllegalArgumentException e ) { logger.log( Level.SEVERE, e.getMessage(), e ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java index b13e45ae4e..8510ca3711 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java @@ -149,7 +149,7 @@ public class EmulatorSkinMain { boolean isOnTop = Boolean.parseBoolean( onTopVal ); EmulatorSkin skin = new EmulatorSkin( config, isOnTop ); - int windowHandleId = skin.compose(); + long windowHandleId = skin.compose(); int uid = config.getArgInt( ArgsConstants.UID ); communicator = new SocketCommunicator( config, uid, windowHandleId, skin ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java index 51c49499cc..46b2508d04 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java @@ -101,7 +101,7 @@ public class SocketCommunicator implements ICommunicator { private EmulatorConfig config; private int uId; - private int windowHandleId; + private long windowHandleId; private EmulatorSkin skin; private Socket socket; @@ -119,7 +119,7 @@ public class SocketCommunicator implements ICommunicator { private Thread sendThread; private LinkedList sendQueue; - public SocketCommunicator( EmulatorConfig config, int uId, int windowHandleId, EmulatorSkin skin ) { + public SocketCommunicator( EmulatorConfig config, int uId, long windowHandleId, EmulatorSkin skin ) { this.config = config; this.uId = uId; @@ -217,6 +217,7 @@ public class SocketCommunicator implements ICommunicator { // has to be portrait mode at first booting time short rotation = EmulatorConfig.DEFAULT_WINDOW_ROTATION; StartData startData = new StartData( windowHandleId, width, height, scale, rotation ); + logger.info("StartData" + startData); sendToQEMU( SendCommand.SEND_START, startData ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/AbstractSendData.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/AbstractSendData.java index a3e639c416..7ecfc5e120 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/AbstractSendData.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/AbstractSendData.java @@ -63,7 +63,7 @@ public abstract class AbstractSendData implements ISendData { dos.writeInt( val ); } - protected void writeLong ( int val ) throws IOException { + protected void writeLong ( long val ) throws IOException { dos.writeLong( val ); } diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/StartData.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/StartData.java index 0edbf37c51..c23d271b2e 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/StartData.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/data/StartData.java @@ -37,13 +37,13 @@ import java.io.IOException; */ public class StartData extends AbstractSendData { - private int windowHandleId; + private long windowHandleId; private int lcdSizeWidth; private int lcdSizeHeight; private int scale; private short rotation; - public StartData(int windowHandleId, int lcdSizeWidth, int lcdSizeHeight, int scale, short rotation ) { + public StartData(long windowHandleId, int lcdSizeWidth, int lcdSizeHeight, int scale, short rotation ) { this.windowHandleId = windowHandleId; this.lcdSizeWidth = lcdSizeWidth; this.lcdSizeHeight = lcdSizeHeight; @@ -53,7 +53,7 @@ public class StartData extends AbstractSendData { @Override protected void write() throws IOException { - writeInt( windowHandleId ); + writeLong( windowHandleId ); writeInt( lcdSizeWidth ); writeInt( lcdSizeHeight ); writeInt( scale ); diff --git a/tizen/src/skin/maruskin_operation.c b/tizen/src/skin/maruskin_operation.c index b98fb23dca..7a0ce1a32f 100644 --- a/tizen/src/skin/maruskin_operation.c +++ b/tizen/src/skin/maruskin_operation.c @@ -42,7 +42,6 @@ #include "maruskin_keymap.h" #include "emul_state.h" #include "hw/maru_pm.h" -#include "qemu-common.h" #include "sysemu.h" #ifdef _WIN32 @@ -62,9 +61,9 @@ static int requested_shutdown_qemu_gracefully = 0; static void* run_timed_shutdown_thread( void* args ); static void send_to_emuld( const char* request_type, int request_size, const char* send_buf, int buf_size ); -void start_display( int handle_id, int lcd_size_width, int lcd_size_height, double scale_factor, short rotation_type ) +void start_display(uint64 handle_id, int lcd_size_width, int lcd_size_height, double scale_factor, short rotation_type) { - INFO( "start_display handle_id:%d, lcd size:%dx%d, scale_factor:%lf, rotation_type:%d\n", + INFO( "start_display handle_id:%ld, lcd size:%dx%d, scale_factor:%lf, rotation_type:%d\n", handle_id, lcd_size_width, lcd_size_height, scale_factor, rotation_type ); set_emul_win_scale(scale_factor); diff --git a/tizen/src/skin/maruskin_operation.h b/tizen/src/skin/maruskin_operation.h index 04c4ad1b98..43427e28e9 100644 --- a/tizen/src/skin/maruskin_operation.h +++ b/tizen/src/skin/maruskin_operation.h @@ -30,6 +30,9 @@ #ifndef MARUSKIN_OPERATION_H_ #define MARUSKIN_OPERATION_H_ +#include "qemu-common.h" + + extern int ret_hax_init; struct QemuSurfaceInfo { @@ -44,7 +47,7 @@ struct DetailInfo { }; typedef struct DetailInfo DetailInfo; -void start_display( int handle_id, int lcd_size_width, int lcd_size_height, double scale_factor, short rotation_type ); +void start_display(uint64 handle_id, int lcd_size_width, int lcd_size_height, double scale_factor, short rotation_type); void do_mouse_event( int event_type, int x, int y, int z ); diff --git a/tizen/src/skin/maruskin_server.c b/tizen/src/skin/maruskin_server.c index d5b14e4b96..fb15c466ab 100644 --- a/tizen/src/skin/maruskin_server.c +++ b/tizen/src/skin/maruskin_server.c @@ -540,7 +540,7 @@ static void* run_skin_server( void* args ) { } /* keep it consistent with emulator-skin definition */ - int handle_id = 0; + uint64 handle_id = 0; int lcd_size_width = 0; int lcd_size_height = 0; int scale = 0; @@ -558,7 +558,13 @@ static void* run_skin_server( void* args ) { p += sizeof( scale ); memcpy( &rotation, p, sizeof( rotation ) ); - handle_id = ntohl( handle_id ); + int low_id = (int)handle_id; + int high_id = (int)(handle_id >> 32); + low_id = ntohl(high_id); + high_id = ntohl(low_id); + handle_id = high_id; + handle_id = (handle_id << 32) | low_id; + lcd_size_width = ntohl( lcd_size_width ); lcd_size_height = ntohl( lcd_size_height ); scale = ntohl( scale );