});
}
+ public void updateHostKbdMenu(final boolean on) {
+ isOnKbd = on;
+
+ getShell().getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ getPopupMenu().kbdOnItem.setSelection(isOnKbd);
+ getPopupMenu().kbdOffItem.setSelection(!isOnKbd);
+ }
+ });
+ }
+
protected void displayOn() {
logger.info("display on");
RECV_BOOTING_PROGRESS((short) 5),
RECV_BRIGHTNESS_STATE((short) 6),
RECV_ECP_PORT_DATA((short) 7),
+ RECV_HOST_KBD_STATE((short) 8),
RECV_SENSORD_STARTED((short) 800),
RECV_SDBD_STARTED((short) 801),
break;
}
+ case RECV_HOST_KBD_STATE: {
+ logger.info("received HOST_KBD_STATE from QEMU");
+
+ resetDataTransfer(miscDataTransfer);
+ receiveData(miscDataTransfer, length);
+
+ byte[] receivedData = getReceivedData(miscDataTransfer);
+ if (null != receivedData) {
+ String strValue = new String(receivedData, 0, length - 1);
+
+ int value = 1;
+ try {
+ value = Integer.parseInt(strValue);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ }
+
+ if (value == 0) {
+ skin.updateHostKbdMenu(false);
+ } else {
+ skin.updateHostKbdMenu(true);
+ }
+ }
+
+ break;
+ }
case RECV_SENSORD_STARTED: {
logger.info("received SENSORD_STARTED from QEMU");
in Skin process */
RECV_SKIN_OPENED = 1,
+
RECV_MOUSE_EVENT = 10,
RECV_KEYBOARD_KEY_EVENT = 11,
RECV_HW_KEY_EVENT = 12,
RECV_RAM_DUMP = 18,
RECV_GUESTMEMORY_DUMP = 19,
RECV_ECP_PORT_REQ = 20,
+
RECV_RESPONSE_HEART_BEAT = 900,
RECV_RESPONSE_DRAW_FRAME = 901,
RECV_CLOSE_REQ = 998,
SEND_BRIGHTNESS_STATE = 6,
SEND_ECP_PORT_DATA = 7,
SEND_HOST_KBD_STATE = 8,
+
SEND_SENSORD_STARTED = 800,
SEND_SDBD_STARTED = 801,
SEND_ECS_STARTED = 802,
}
}
+void notify_host_kbd_state(bool on)
+{
+#define HOSTKBD_DATA_LENGTH 2
+ char kbd_state_data[HOSTKBD_DATA_LENGTH] = { 0, };
+
+ if (on == false) {
+ snprintf(kbd_state_data, HOSTKBD_DATA_LENGTH, "0");
+ } else {
+ snprintf(kbd_state_data, HOSTKBD_DATA_LENGTH, "1");
+ }
+
+ TRACE("notify host kbd state : %s\n", kbd_state_data);
+
+ if (client_sock) {
+ if (0 > send_skin_data(client_sock,
+ SEND_HOST_KBD_STATE,
+ (unsigned char *)kbd_state_data, HOSTKBD_DATA_LENGTH, 0)) {
+
+ ERR("fail to send SEND_HOST_KBD_STATE to skin\n");
+ }
+ } else {
+ INFO("skin client socket is not connected yet\n");
+ }
+}
+
int is_ready_skin_server(void)
{
return ready_server;
void notify_ramdump_completed(void);
void notify_booting_progress(unsigned int layer, int progress_value);
void notify_brightness_state(bool on);
+void notify_host_kbd_state(bool on);
int is_ready_skin_server(void);
int get_skin_server_port(void);