aboutsummaryrefslogtreecommitdiffstats
path: root/android
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@android.com>2011-04-27 12:26:15 +0200
committerDavid 'Digit' Turner <digit@android.com>2011-04-27 12:50:18 +0200
commitca9505992288636908169d0389087b3ca5277d07 (patch)
tree03a7f18c180f6fb47269a9f918483b5d19cd65ee /android
parentc9154bef9c32ddf269b078dd15d153fe1be1fa42 (diff)
downloadexternal_qemu-ca9505992288636908169d0389087b3ca5277d07.zip
external_qemu-ca9505992288636908169d0389087b3ca5277d07.tar.gz
external_qemu-ca9505992288636908169d0389087b3ca5277d07.tar.bz2
Fix -qemu -vnc startup.
Starting the emulator with something like "-qemu -vnc :1" didn't result in a valid boot sequence, due to the way our "hw-control" service is initialized. This patch fixes the issue. Note however that since a VNC client cannot send proper touch events, it can only be used as a viewer at the moment. Change-Id: Ib9b60ff7028892368547bff89b84f580344c2edd
Diffstat (limited to 'android')
-rw-r--r--android/hw-control.c20
-rw-r--r--android/hw-control.h5
-rw-r--r--android/protocol/ui-commands-proxy.c2
-rw-r--r--android/protocol/ui-commands-qemu.c2
4 files changed, 22 insertions, 7 deletions
diff --git a/android/hw-control.c b/android/hw-control.c
index 9180383..8164bc0 100644
--- a/android/hw-control.c
+++ b/android/hw-control.c
@@ -128,11 +128,23 @@ hw_control_init( HwControl* control,
NULL, NULL);
}
+const AndroidHwControlFuncs defaultControls = {
+ NULL,
+};
+
+static HwControl hwstate[1];
+
void
-android_hw_control_init( void* opaque, const AndroidHwControlFuncs* funcs )
+android_hw_control_init( void )
{
- static HwControl hwstate[1];
-
- hw_control_init(hwstate, opaque, funcs);
+ hw_control_init(hwstate, NULL, &defaultControls);
D("%s: hw-control qemud handler initialized", __FUNCTION__);
}
+
+void
+android_hw_control_set( void* opaque, const AndroidHwControlFuncs* funcs )
+{
+ hwstate->client = opaque;
+ hwstate->client_funcs = funcs[0];
+}
+
diff --git a/android/hw-control.h b/android/hw-control.h
index 6e9874e..67a9bc7 100644
--- a/android/hw-control.h
+++ b/android/hw-control.h
@@ -32,7 +32,10 @@ typedef struct {
} AndroidHwControlFuncs;
/* used to initialize the hardware control support */
-extern void android_hw_control_init( void* opaque,
+extern void android_hw_control_init( void );
+
+/* used to register a new hw-control back-end */
+extern void android_hw_control_set( void* opaque,
const AndroidHwControlFuncs* funcs );
#endif /* _android_hw_control_h */
diff --git a/android/protocol/ui-commands-proxy.c b/android/protocol/ui-commands-proxy.c
index 1aedc62..d16092a 100644
--- a/android/protocol/ui-commands-proxy.c
+++ b/android/protocol/ui-commands-proxy.c
@@ -177,7 +177,7 @@ uiCmdProxy_create(int fd)
// the UI about the event.
AndroidHwControlFuncs funcs;
funcs.light_brightness = _uiCmdProxy_brightness_change_callback;
- android_hw_control_init(&_uiCmdProxy, &funcs);
+ android_hw_control_set(&_uiCmdProxy, &funcs);
}
return 0;
}
diff --git a/android/protocol/ui-commands-qemu.c b/android/protocol/ui-commands-qemu.c
index 3dbed31..2bb22c9 100644
--- a/android/protocol/ui-commands-qemu.c
+++ b/android/protocol/ui-commands-qemu.c
@@ -35,6 +35,6 @@ uicmd_set_brightness_change_callback(AndroidHwLightBrightnessCallback callback,
{
AndroidHwControlFuncs funcs;
funcs.light_brightness = callback;
- android_hw_control_init(opaque, &funcs);
+ android_hw_control_set(opaque, &funcs);
return 0;
}