From 8284321ae108f3860a01f75e989b851b92d7b02e Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Tue, 30 Jul 2013 21:59:08 +0300 Subject: [PATCH] Simple OUYA detection --- project/java/MainActivity.java | 10 ++++++++++ project/java/Settings.java | 7 ++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/project/java/MainActivity.java b/project/java/MainActivity.java index 425a9454e..55e32eadb 100644 --- a/project/java/MainActivity.java +++ b/project/java/MainActivity.java @@ -1038,6 +1038,16 @@ public class MainActivity extends Activity return 0; } + public boolean isRunningOnOUYA() + { + try { + PackageInfo packageInfo = getPackageManager().getPackageInfo("tv.ouya", 0); + return true; + } catch (PackageManager.NameNotFoundException e) { + } + return false; + } + public boolean isCurrentOrientationHorizontal() { Display getOrient = getWindowManager().getDefaultDisplay(); diff --git a/project/java/Settings.java b/project/java/Settings.java index fad46d0b5..28a1b578b 100644 --- a/project/java/Settings.java +++ b/project/java/Settings.java @@ -186,6 +186,8 @@ class Settings } Log.i("SDL", "libSDL: Settings.Load(): enter"); nativeInitKeymap(); + if( p.isRunningOnOUYA() ) + nativeSetKeymapKey(KeyEvent.KEYCODE_MENU, nativeGetKeymapKey(KeyEvent.KEYCODE_BACK)); // Ouya does not have Back key, only Menu, so remap Back keycode to Menu for( int i = 0; i < SDL_Keys.JAVA_KEYCODE_LAST; i++ ) { int sdlKey = nativeGetKeymapKey(i); @@ -464,7 +466,7 @@ class Settings // =============================================================================================== - static void Apply(Activity p) + static void Apply(MainActivity p) { nativeSetVideoDepth(Globals.VideoDepthBpp, Globals.NeedGles2 ? 1 : 0); if(Globals.VideoLinearFilter) @@ -559,6 +561,9 @@ class Settings nativeSetEnv( "UNSECURE_STORAGE_DIR", Globals.DataDir ); nativeSetEnv( "HOME", Globals.DataDir ); nativeSetEnv( "ANDROID_VERSION", String.valueOf(android.os.Build.VERSION.SDK_INT) ); + Log.d("SDL", "libSDL: Is running on OUYA: " p.isRunningOnOUYA()); + if( p.isRunningOnOUYA() ) + nativeSetEnv( "OUYA", "1" ); try { DisplayMetrics dm = new DisplayMetrics(); p.getWindowManager().getDefaultDisplay().getMetrics(dm);