From 45b716a54637a8e98bcdf1fd67bfefe0cf6bab22 Mon Sep 17 00:00:00 2001 From: GiWoong Kim Date: Wed, 11 Sep 2013 21:54:56 +0900 Subject: [PATCH] communication: expand the initial protocol for blank-guide Change-Id: I86f3ebf00516c7d7d16d0b3f255be3d61e819957 Signed-off-by: GiWoong Kim --- tizen/src/maru_display.c | 9 ++-- tizen/src/maru_display.h | 3 +- tizen/src/maru_sdl.c | 5 +- tizen/src/maru_sdl.h | 3 +- tizen/src/maru_shm.c | 5 +- tizen/src/maru_shm.h | 3 +- .../org/tizen/emulator/skin/EmulatorSkin.java | 2 +- .../skin/comm/sock/SocketCommunicator.java | 35 ++++++------- .../skin/comm/sock/data/StartData.java | 39 +++++++++----- .../tizen/emulator/skin/custom/KeyWindow.java | 6 ++- tizen/src/skin/maruskin_operation.c | 15 +++--- tizen/src/skin/maruskin_operation.h | 5 +- tizen/src/skin/maruskin_server.c | 52 +++++++++++-------- 13 files changed, 106 insertions(+), 76 deletions(-) diff --git a/tizen/src/maru_display.c b/tizen/src/maru_display.c index 577fe1c419..582f842ae0 100644 --- a/tizen/src/maru_display.c +++ b/tizen/src/maru_display.c @@ -75,12 +75,15 @@ void maru_display_fini(void) } void maruskin_init(uint64 swt_handle, - int lcd_size_width, int lcd_size_height) + unsigned int display_width, unsigned int display_height, + bool blank_guide) { #ifndef CONFIG_USE_SHM - maruskin_sdl_init(swt_handle, lcd_size_width, lcd_size_height); + maruskin_sdl_init(swt_handle, + display_width, display_height, blank_guide); #else - maruskin_shm_init(swt_handle, lcd_size_width, lcd_size_height); + maruskin_shm_init(swt_handle, + display_width, display_height, blank_guide); #endif } diff --git a/tizen/src/maru_display.h b/tizen/src/maru_display.h index 1d043ba4e2..3c1f7568ad 100644 --- a/tizen/src/maru_display.h +++ b/tizen/src/maru_display.h @@ -42,7 +42,8 @@ typedef struct MaruScreenshot { void maru_display_init(DisplayState *ds); void maru_display_fini(void); void maruskin_init(uint64 swt_handle, - int lcd_size_width, int lcd_size_height); + unsigned int display_width, unsigned int display_height, + bool blank_guide); MaruScreenshot *get_maru_screenshot(void); void set_maru_screenshot(DisplaySurface *surface); diff --git a/tizen/src/maru_sdl.c b/tizen/src/maru_sdl.c index 597bc6eb51..f530ea1248 100644 --- a/tizen/src/maru_sdl.c +++ b/tizen/src/maru_sdl.c @@ -785,7 +785,8 @@ static void maru_sdl_init_bh(void *opaque) } void maruskin_sdl_init(uint64 swt_handle, - int lcd_size_width, int lcd_size_height) + unsigned int display_width, unsigned int display_height, + bool blank_guide) { gchar SDL_windowhack[32] = { 0, }; long window_id = swt_handle; @@ -801,7 +802,7 @@ void maruskin_sdl_init(uint64 swt_handle, INFO("register SDL environment variable. " "(SDL_WINDOWID = %s)\n", SDL_windowhack); - set_emul_lcd_size(lcd_size_width, lcd_size_height); + set_emul_lcd_size(display_width, display_height); set_emul_sdl_bpp(SDL_BPP); init_multi_touch_state(); diff --git a/tizen/src/maru_sdl.h b/tizen/src/maru_sdl.h index f18a924758..79fed28d4c 100644 --- a/tizen/src/maru_sdl.h +++ b/tizen/src/maru_sdl.h @@ -40,7 +40,8 @@ extern DisplayChangeListenerOps maru_dcl_ops; void maruskin_sdl_init(uint64 swt_handle, - int lcd_size_width, int lcd_size_height); + unsigned int display_width, unsigned int display_height, + bool blank_guide); void maruskin_sdl_resize(void); void maruskin_sdl_quit(void); diff --git a/tizen/src/maru_shm.c b/tizen/src/maru_shm.c index ae0c4fa2d6..271bf3e431 100644 --- a/tizen/src/maru_shm.c +++ b/tizen/src/maru_shm.c @@ -188,11 +188,12 @@ DisplayChangeListenerOps maru_dcl_ops = { }; void maruskin_shm_init(uint64 swt_handle, - int lcd_size_width, int lcd_size_height) + unsigned int display_width, unsigned int display_height, + bool blank_guide) { INFO("maru shm init\n"); - set_emul_lcd_size(lcd_size_width, lcd_size_height); + set_emul_lcd_size(display_width, display_height); set_emul_sdl_bpp(32); /* byte */ diff --git a/tizen/src/maru_shm.h b/tizen/src/maru_shm.h index 50e694c17f..ed2898874c 100644 --- a/tizen/src/maru_shm.h +++ b/tizen/src/maru_shm.h @@ -36,7 +36,8 @@ extern DisplayChangeListenerOps maru_dcl_ops; void maruskin_shm_init(uint64 swt_handle, - int lcd_size_width, int lcd_size_height); + unsigned int display_width, unsigned int display_height, + bool blank_guide); void maruskin_shm_resize(void); void maruskin_shm_quit(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 e0cf32df27..d4290b4a72 100755 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -1727,7 +1727,7 @@ public class EmulatorSkin { int answer = SkinUtil.openMessage(shell, null, "If you force stop an emulator, it may cause some problems.\n" - + "Are you sure you want to contiue?", + + "Are you sure you want to continue?", SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL, config); if (answer == SWT.OK) { 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 5fc923018a..146e4d7157 100755 --- 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 @@ -225,30 +225,29 @@ public class SocketCommunicator implements ICommunicator { try { dis = new DataInputStream(socket.getInputStream()); dos = new DataOutputStream(socket.getOutputStream()); - - sendThread.setDaemon(true); - sendThread.start(); - - int width = config.getArgInt(ArgsConstants.RESOLUTION_WIDTH); - int height = config.getArgInt(ArgsConstants.RESOLUTION_HEIGHT); - int scale = SkinUtil.getValidScale(config); -// short rotation = config.getSkinPropertyShort( SkinPropertiesConstants.WINDOW_ROTATION, -// EmulatorConfig.DEFAULT_WINDOW_ROTATION ); - // has to be portrait mode at first booting time - short rotation = EmulatorConfig.DEFAULT_WINDOW_ROTATION; - - StartData startData = - new StartData(initialData, width, height, scale, rotation); - logger.info("StartData" + startData); - - sendToQEMU(SendCommand.SEND_START, startData, false); - } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); terminate(); return; } + sendThread.setDaemon(true); + sendThread.start(); + + int width = config.getArgInt(ArgsConstants.RESOLUTION_WIDTH); + int height = config.getArgInt(ArgsConstants.RESOLUTION_HEIGHT); + int scale = SkinUtil.getValidScale(config); + short rotation = EmulatorConfig.DEFAULT_WINDOW_ROTATION; + + boolean isBlankGuide = true; + // TODO: + + StartData startData = new StartData(initialData, + width, height, scale, rotation, isBlankGuide); + logger.info("" + startData); + + sendToQEMU(SendCommand.SEND_START, startData, false); + boolean ignoreHeartbeat = config.getArgBoolean(ArgsConstants.HEART_BEAT_IGNORE); 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 5022166552..b87becb9c0 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 @@ -1,7 +1,7 @@ /** - * + * initial data for Qemu * - * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. * * Contact: * GiWoong Kim @@ -36,28 +36,37 @@ import java.io.IOException; * */ public class StartData extends AbstractSendData { - private long windowHandleId; - private int lcdSizeWidth; - private int lcdSizeHeight; + private int displayWidth; + private int displayHeight; private int scale; private short rotation; + private boolean isBlankGuide; - public StartData(long windowHandleId, int lcdSizeWidth, int lcdSizeHeight, int scale, short rotation ) { + public StartData(long windowHandleId, + int displayWidth, int displayHeight, int scale, short rotation, + boolean isBlankGuide) { this.windowHandleId = windowHandleId; - this.lcdSizeWidth = lcdSizeWidth; - this.lcdSizeHeight = lcdSizeHeight; + this.displayWidth = displayWidth; + this.displayHeight = displayHeight; this.scale = scale; this.rotation = rotation; + this.isBlankGuide = isBlankGuide; } @Override protected void write() throws IOException { - writeLong( windowHandleId ); - writeInt( lcdSizeWidth ); - writeInt( lcdSizeHeight ); - writeInt( scale ); - writeShort( rotation ); + writeLong(windowHandleId); + writeInt(displayWidth); + writeInt(displayHeight); + writeInt(scale); + writeShort(rotation); + + if (isBlankGuide == true) { + writeShort(1); + } else { + writeShort(0); + } } @Override @@ -65,11 +74,13 @@ public class StartData extends AbstractSendData { StringBuilder builder = new StringBuilder(); builder.append("StartData [windowHandleId="); builder.append(windowHandleId); - builder.append(", lcd size " + lcdSizeWidth +"x" + lcdSizeHeight); + builder.append(", display size " + displayWidth + "x" + displayHeight); builder.append(", scale="); builder.append(scale); builder.append(", rotation="); builder.append(rotation); + builder.append(", blank guide="); + builder.append(isBlankGuide); builder.append("]"); return builder.toString(); } diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/KeyWindow.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/KeyWindow.java index f4c63a30dc..b2d784bc28 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/KeyWindow.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/KeyWindow.java @@ -236,7 +236,7 @@ public class KeyWindow extends SkinWindow { /* attach HW keys */ if (keyMapList != null && keyMapList.isEmpty() == false) { for (KeyMapType keyEntry : keyMapList) { - CustomButton HWKeyButton = new CustomButton(composite, + final CustomButton HWKeyButton = new CustomButton(composite, SWT.NO_FOCUS, imageNormal, imageHover, imagePushed); HWKeyButton.setText(keyEntry.getEventInfo().getKeyName()); HWKeyButton.setToolTipText(keyEntry.getTooltip()); @@ -248,6 +248,8 @@ public class KeyWindow extends SkinWindow { HWKeyButton.addMouseListener(new MouseListener() { @Override public void mouseDown(MouseEvent e) { + logger.info(HWKeyButton.getText() + " key is pressed"); + KeyEventData keyEventData = new KeyEventData( KeyEventType.PRESSED.value(), keycode, 0, 0); communicator.sendToQEMU( @@ -256,6 +258,8 @@ public class KeyWindow extends SkinWindow { @Override public void mouseUp(MouseEvent e) { + logger.info(HWKeyButton.getText() + " key is released"); + KeyEventData keyEventData = new KeyEventData( KeyEventType.RELEASED.value(), keycode, 0, 0); communicator.sendToQEMU( diff --git a/tizen/src/skin/maruskin_operation.c b/tizen/src/skin/maruskin_operation.c index cf0ad5fa98..6c6dae698f 100644 --- a/tizen/src/skin/maruskin_operation.c +++ b/tizen/src/skin/maruskin_operation.c @@ -81,16 +81,17 @@ static void send_to_emuld(const char* request_type, void start_display(uint64 handle_id, - int lcd_size_width, int lcd_size_height, - double scale_factor, short rotation_type) + unsigned int display_width, unsigned int display_height, + double scale_factor, short rotation_type, bool blank_guide) { - INFO("start_display handle_id:%ld, display size:%dx%d, \ -scale_factor:%f, rotation_type:%d\n", - (long) handle_id, lcd_size_width, lcd_size_height, - scale_factor, rotation_type); + INFO("start display : handle_id=%ld, display size=%dx%d, " + "scale factor=%f, rotation=%d, blank guide=%d\n", + (long) handle_id, display_width, display_height, + scale_factor, rotation_type, blank_guide); set_emul_win_scale(scale_factor); - maruskin_init(handle_id, lcd_size_width, lcd_size_height); + maruskin_init(handle_id, + display_width, display_height, blank_guide); } void do_mouse_event(int button_type, int event_type, diff --git a/tizen/src/skin/maruskin_operation.h b/tizen/src/skin/maruskin_operation.h index 0ef20c90e9..bf189a4342 100644 --- a/tizen/src/skin/maruskin_operation.h +++ b/tizen/src/skin/maruskin_operation.h @@ -47,8 +47,9 @@ struct DetailInfo { }; typedef struct DetailInfo DetailInfo; -void start_display(uint64 handle_id, int lcd_size_width, int lcd_size_height, - double scale_factor, short rotation_type); +void start_display(uint64 handle_id, + unsigned int display_width, unsigned int display_height, + double scale_factor, short rotation_type, bool blank_guide); void do_mouse_event(int button_type, int event_type, int origin_x, int origin_y, int x, int y, int z); diff --git a/tizen/src/skin/maruskin_server.c b/tizen/src/skin/maruskin_server.c index 15f435bc72..e5e4c67616 100644 --- a/tizen/src/skin/maruskin_server.c +++ b/tizen/src/skin/maruskin_server.c @@ -778,34 +778,37 @@ static void* run_skin_server(void* args) } - switch ( cmd ) { + switch (cmd) { case RECV_START: { - log_cnt += sprintf( log_buf + log_cnt, "RECV_START ==\n" ); - INFO( log_buf ); + log_cnt += sprintf(log_buf + log_cnt, "RECV_START ==\n"); + INFO(log_buf); - if ( 0 >= length ) { - ERR( "there is no data looking at 0 length." ); + if (0 >= length) { + ERR("there is no data looking at 0 length."); continue; } /* keep it consistent with emulator-skin definition */ uint64 handle_id = 0; - int lcd_size_width = 0; - int lcd_size_height = 0; + int display_width = 0; + int display_height = 0; int scale = 0; double scale_ratio = 0.0; short rotation = 0; + short blank_guide = 0; char* p = recvbuf; - memcpy( &handle_id, p, sizeof( handle_id ) ); - p += sizeof( handle_id ); - memcpy( &lcd_size_width, p, sizeof( lcd_size_width ) ); - p += sizeof( lcd_size_width ); - memcpy( &lcd_size_height, p, sizeof( lcd_size_height ) ); - p += sizeof( lcd_size_height ); - memcpy( &scale, p, sizeof( scale ) ); - p += sizeof( scale ); - memcpy( &rotation, p, sizeof( rotation ) ); + memcpy(&handle_id, p, sizeof(handle_id)); + p += sizeof(handle_id); + memcpy(&display_width, p, sizeof(display_width)); + p += sizeof(display_width); + memcpy(&display_height, p, sizeof(display_height)); + p += sizeof(display_height); + memcpy(&scale, p, sizeof(scale)); + p += sizeof(scale); + memcpy(&rotation, p, sizeof(rotation)); + p += sizeof(rotation); + memcpy(&blank_guide, p, sizeof(blank_guide)); int low_id = (int)handle_id; int high_id = (int)(handle_id >> 32); @@ -814,15 +817,18 @@ static void* run_skin_server(void* args) 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 ); - scale_ratio = ( (double) scale ) / 100; - rotation = ntohs( rotation ); + display_width = ntohl(display_width); + display_height = ntohl(display_height); + scale = ntohl(scale); + scale_ratio = ((double) scale) / 100; + rotation = ntohs(rotation); + blank_guide = ntohs(blank_guide); - set_emul_win_scale( scale_ratio ); + set_emul_win_scale(scale_ratio); - start_display( handle_id, lcd_size_width, lcd_size_height, scale_ratio, rotation ); + start_display(handle_id, + display_width, display_height, scale_ratio, rotation, + (blank_guide == 1) ? true : false); break; } -- 2.34.1