Add 'Power Off' event, causes kegsmain to exit.

This commit is contained in:
James Sanford 2012-10-12 18:21:47 -07:00
parent c059be6084
commit c3af8c61f5
5 changed files with 15 additions and 1 deletions

View File

@ -471,7 +471,7 @@ int x_mouse_update(jclass mouse_class, jobject mouse_event) {
}
void x_key_special(int key_id) {
key_id = key_id & 0x7f;
key_id = key_id & 0x7f; // only use lower 7 bits
switch(key_id) {
case 0:
case 1:
@ -480,6 +480,9 @@ void x_key_special(int key_id) {
g_limit_speed = key_id;
g_config_kegs_update_needed = 1;
break;
case 120:
set_halt(HALT_WANTTOQUIT); // request kegsmain to exit
break;
}
}

View File

@ -10,4 +10,6 @@
android:title="@string/emulation_speed" />
<item android:id="@+id/warm_reset"
android:title="@string/warm_reset" />
<item android:id="@+id/power_off"
android:title="@string/power_off" />
</menu>

View File

@ -29,4 +29,5 @@
<string name="input_controls_show">Show Controls</string>
<string name="emulation_speed">Emulation Speed</string>
<string name="warm_reset">Warm Reset</string>
<string name="power_off">Power Off</string>
</resources>

View File

@ -108,6 +108,9 @@ public class KegsMain extends Activity implements KegsKeyboard.StickyReset {
} else if (item_id == R.id.warm_reset) {
mKegsView.doWarmReset();
return true;
} else if (item_id == R.id.power_off) {
mKegsView.doPowerOff();
return true;
}
return false;
}

View File

@ -147,6 +147,11 @@ class KegsView extends SurfaceView implements SurfaceHolder.Callback {
mEventQueue.add(new Event.KeyKegsEvent(speed + 0x80, true));
}
public void doPowerOff() {
// Special event, see android_driver.c:x_key_special()
mEventQueue.add(new Event.KeyKegsEvent(120 + 0x80, true));
}
public void doWarmReset() {
// Press keys down.
mEventQueue.add(new Event.KeyKegsEvent(KegsKeyboard.KEY_OPEN_APPLE, false));