Hi,
I currently playing around with the ouya and the game controller. I have modified mojo.android.java for this purpose. It's working great but I'm also wondering if this could be done as module, but for this I somehow have to hook in the MonkeyView.onKeyDown and onKeyUp methods.
Any ideas how this could be achieved?
For those who are interested, here is the diff with these changes I made to the original mojo.android.java (it's a little bit hacky at the moment, what I'm basically doing is to remap the ouya codes to monkey key codes):
30,31d29
< import tv.ouya.console.api.OuyaController;
<
85,177d82
<
< public boolean onKeyUp( int key,KeyEvent event ){
< int player = OuyaController.getPlayerNumByDeviceId(event.getDeviceId());
< boolean handled = false;
< int sendKey = 0;
<
< switch(event.getKeyCode()){
< case OuyaController.BUTTON_O:
< sendKey = 79; // KEY_O
< handled = true;
< break;
<
< case OuyaController.BUTTON_U:
< sendKey = 85; // KEY_U
< handled = true;
< break;
<
< case OuyaController.BUTTON_Y:
< sendKey = 89; // KEY_Y
< handled = true;
< break;
<
< case OuyaController.BUTTON_A:
< sendKey = 65; // KEY_A
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_DOWN:
< sendKey = 40; // KEY_DOWN
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_LEFT:
< sendKey = 37; // KEY_LEFT
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_RIGHT:
< sendKey = 39; // KEY_RIGHT
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_UP:
< sendKey = 38; // KEY_UP
< handled = true;
< break;
<
< case OuyaController.BUTTON_L1:
< sendKey = 49; // KEY_1
< handled = true;
< break;
<
< case OuyaController.BUTTON_L2:
< sendKey = 50; // KEY_2
< handled = true;
< break;
<
< case OuyaController.BUTTON_L3:
< sendKey = 51; // KEY_3
< handled = true;
< break;
<
< case OuyaController.BUTTON_R1:
< sendKey = 56; // KEY_8
< handled = true;
< break;
<
< case OuyaController.BUTTON_R2:
< sendKey = 57; // KEY_9
< handled = true;
< break;
<
< case OuyaController.BUTTON_R3:
< sendKey = 48; // KEY_0
< handled = true;
< break;
<
< case OuyaController.BUTTON_SYSTEM:
< sendKey = 27; // KEY_ESCAPE
< handled = true;
< break;
< }
<
< if (handled) {
< app.input.OnKeyUp( sendKey );
< return true;
< }
<
< return false;
< }
180,268c85
< if (app == null) return false;
<
< int player = OuyaController.getPlayerNumByDeviceId(event.getDeviceId());
< boolean handled = false;
< int sendKey = 0;
<
< switch(event.getKeyCode()){
< case OuyaController.BUTTON_O:
< sendKey = 79; // KEY_O
< handled = true;
< break;
<
< case OuyaController.BUTTON_U:
< sendKey = 85; // KEY_U
< handled = true;
< break;
<
< case OuyaController.BUTTON_Y:
< sendKey = 89; // KEY_Y
< handled = true;
< break;
<
< case OuyaController.BUTTON_A:
< sendKey = 65; // KEY_A
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_DOWN:
< sendKey = 40; // KEY_DOWN
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_LEFT:
< sendKey = 37; // KEY_LEFT
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_RIGHT:
< sendKey = 39; // KEY_RIGHT
< handled = true;
< break;
<
< case OuyaController.BUTTON_DPAD_UP:
< sendKey = 38; // KEY_UP
< handled = true;
< break;
<
< case OuyaController.BUTTON_L1:
< sendKey = 49; // KEY_1
< handled = true;
< break;
<
< case OuyaController.BUTTON_L2:
< sendKey = 50; // KEY_2
< handled = true;
< break;
<
< case OuyaController.BUTTON_L3:
< sendKey = 51; // KEY_3
< handled = true;
< break;
<
< case OuyaController.BUTTON_R1:
< sendKey = 56; // KEY_8
< handled = true;
< break;
<
< case OuyaController.BUTTON_R2:
< sendKey = 57; // KEY_9
< handled = true;
< break;
<
< case OuyaController.BUTTON_R3:
< sendKey = 48; // KEY_0
< handled = true;
< break;
<
< case OuyaController.BUTTON_SYSTEM:
< sendKey = 27; // KEY_ESCAPE
< handled = true;
< break;
< }
<
< if (handled) {
< app.input.OnKeyDown( sendKey );
< return true;
< }
<
< if( !app.input.keyboardEnabled ) return false;
---
> if( app==null || !app.input.keyboardEnabled ) return false;
|