From: GiWoong Kim Date: Wed, 3 Jul 2013 02:22:19 +0000 (+0900) Subject: communication: added sdbd_start protocol X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~930 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=79d4d72778dca3dd571a96cabb04ca99609faf66;p=sdk%2Femulator%2Fqemu.git communication: added sdbd_start protocol added sdbd_start protocol Change-Id: I0ff029b97fe0f28c9c409d4da4ffe40863d82de7 Signed-off-by: GiWoong Kim --- diff --git a/tizen/src/sdb.h b/tizen/src/sdb.h index e85a69b591..3737cffa80 100644 --- a/tizen/src/sdb.h +++ b/tizen/src/sdb.h @@ -38,7 +38,6 @@ int get_sdb_base_port(void); int inet_strtoip(const char* str, uint32_t *ip); int socket_send(int fd, const void* buf, int buflen); void socket_close(int fd); -void notify_sdb_daemon_start(void); int check_port_bind_listen(uint32_t port); int sdb_loopback_client(int port, int type); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java index 725826d05d..fa8ca30371 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java @@ -266,6 +266,7 @@ public interface ICommunicator extends Runnable { BOOTING_PROGRESS((short) 5), BRIGHTNESS_VALUE((short) 6), SENSOR_DAEMON_START((short) 800), + SDB_DAEMON_START((short) 801), DRAW_FRAME((short) 900), SHUTDOWN((short) 999); 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 07bb4d4ed5..11bb01b040 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 @@ -110,6 +110,7 @@ public class SocketCommunicator implements ICommunicator { private AtomicInteger heartbeatCount; private boolean isTerminated; private boolean isSensorDaemonStarted; + private boolean isSdbDaemonStarted; private boolean isRamdump; private TimerTask heartbeatExecutor; private Timer heartbeatTimer; @@ -228,26 +229,28 @@ public class SocketCommunicator implements ICommunicator { sendThread.start(); - int width = config.getArgInt( ArgsConstants.RESOLUTION_WIDTH ); - int height = config.getArgInt( ArgsConstants.RESOLUTION_HEIGHT ); - int scale = SkinUtil.getValidScale( config ); + 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); + 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 ); + } catch (IOException e) { + logger.log(Level.SEVERE, e.getMessage(), e); terminate(); return; } - boolean ignoreHeartbeat = config.getArgBoolean( ArgsConstants.TEST_HEART_BEAT_IGNORE ); + boolean ignoreHeartbeat = + config.getArgBoolean(ArgsConstants.TEST_HEART_BEAT_IGNORE); if (ignoreHeartbeat) { logger.info("Ignore Skin heartbeat."); @@ -381,11 +384,20 @@ public class SocketCommunicator implements ICommunicator { } case SENSOR_DAEMON_START: { logger.info("received SENSOR_DAEMON_START from QEMU."); + synchronized (this) { isSensorDaemonStarted = true; } break; } + case SDB_DAEMON_START: { + logger.info("received SDB_DAEMON_START from QEMU."); + + synchronized (this) { + isSdbDaemonStarted = true; + } + break; + } case DRAW_FRAME: { //logger.info("received DRAW_FRAME from QEMU."); @@ -644,6 +656,10 @@ public class SocketCommunicator implements ICommunicator { return isSensorDaemonStarted; } + public synchronized boolean isSdbDaemonStarted() { + return isSdbDaemonStarted; + } + public synchronized void setRamdumpFlag(boolean flag) { isRamdump = flag; } diff --git a/tizen/src/skin/maruskin_server.c b/tizen/src/skin/maruskin_server.c index ba1c070068..85a89373bf 100644 --- a/tizen/src/skin/maruskin_server.c +++ b/tizen/src/skin/maruskin_server.c @@ -126,6 +126,7 @@ enum { SEND_BOOTING_PROGRESS = 5, SEND_BRIGHTNESS_VALUE = 6, SEND_SENSOR_DAEMON_START = 800, + SEND_SDB_DAEMON_START = 801, SEND_DRAW_FRAME = 900, SEND_SHUTDOWN = 999, }; @@ -137,6 +138,7 @@ static int server_sock = 0; static int client_sock = 0; static int stop_server = 0; static int is_sensord_initialized = 0; +static int is_sdbd_initialized = 0; static int ready_server = 0; static int ignore_heartbeat = 0; static int is_force_close_client = 0; @@ -297,6 +299,20 @@ void notify_draw_frame(void) } } +void notify_sdb_daemon_start(void) +{ + INFO("notify_sensor_daemon_start\n"); + + is_sdbd_initialized = 1; + if (client_sock) { + if (0 > send_skin_header_only( + client_sock, SEND_SDB_DAEMON_START, 1)) { + + ERR("fail to send SEND_SDB_DAEMON_START to skin.\n"); + } + } +} + void notify_sensor_daemon_start(void) { INFO("notify_sensor_daemon_start\n"); diff --git a/tizen/src/skin/maruskin_server.h b/tizen/src/skin/maruskin_server.h index 6ad2986e72..d9a202978f 100644 --- a/tizen/src/skin/maruskin_server.h +++ b/tizen/src/skin/maruskin_server.h @@ -37,6 +37,7 @@ void shutdown_skin_server(void); void notify_draw_frame(void); void notify_sensor_daemon_start(void); +void notify_sdb_daemon_start(void); void notify_ramdump_completed(void); void notify_booting_progress(int progress_value); void notify_brightness(bool on);