diff options
author | David 'Digit' Turner <digit@android.com> | 2011-04-27 12:26:15 +0200 |
---|---|---|
committer | David 'Digit' Turner <digit@android.com> | 2011-04-27 12:50:18 +0200 |
commit | ca9505992288636908169d0389087b3ca5277d07 (patch) | |
tree | 03a7f18c180f6fb47269a9f918483b5d19cd65ee /android | |
parent | c9154bef9c32ddf269b078dd15d153fe1be1fa42 (diff) | |
download | external_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.c | 20 | ||||
-rw-r--r-- | android/hw-control.h | 5 | ||||
-rw-r--r-- | android/protocol/ui-commands-proxy.c | 2 | ||||
-rw-r--r-- | android/protocol/ui-commands-qemu.c | 2 |
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; } |