From 79805d9ea2d4cf2fa80296a4080b4e888be552fd Mon Sep 17 00:00:00 2001 From: kichikuou Date: Wed, 10 Apr 2024 15:32:40 +0900 Subject: [PATCH] Android: Update SDL, SDL_ttf and SDL_mixer --- android/app/jni/CMakeLists.txt | 13 +++++++------ .../java/org/libsdl/app/HIDDeviceManager.java | 7 +++++++ .../main/java/org/libsdl/app/SDLActivity.java | 4 ++-- .../org/libsdl/app/SDLControllerManager.java | 16 +++++++++------- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/android/app/jni/CMakeLists.txt b/android/app/jni/CMakeLists.txt index f8dbed1..3a99d09 100644 --- a/android/app/jni/CMakeLists.txt +++ b/android/app/jni/CMakeLists.txt @@ -7,18 +7,18 @@ set(PROJECT_ROOT_DIR ../../..) include(FetchContent) FetchContent_Declare( SDL - URL https://github.com/libsdl-org/SDL/releases/download/release-2.28.5/SDL2-2.28.5.tar.gz - URL_HASH SHA1=50af6b564890d702e57e2a72d6429b43778ed29a + URL https://github.com/libsdl-org/SDL/releases/download/release-2.30.2/SDL2-2.30.2.tar.gz + URL_HASH SHA1=37a0557fc39460dc2a4fbbf162d95f115d2c9be2 ) FetchContent_Declare( SDL_ttf - URL https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.20.1/SDL2_ttf-2.20.1.tar.gz - URL_HASH SHA1=f774ff407915ae4afa3d03e5a9395283d9090f28 + URL https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.22.0/SDL2_ttf-2.22.0.tar.gz + URL_HASH SHA1=da5e86b601ad299a697878fab1af6f3be47b529d ) FetchContent_Declare( SDL_mixer - URL https://github.com/libsdl-org/SDL_mixer/releases/download/release-2.6.2/SDL2_mixer-2.6.2.tar.gz - URL_HASH SHA1=036fc7839a6b8dc1af3dbfed4e2531224bbacdd7 + URL https://github.com/libsdl-org/SDL_mixer/releases/download/release-2.8.0/SDL2_mixer-2.8.0.tar.gz + URL_HASH SHA1=a58c69f9d00e44833b9e00e1adb58d85759ca499 ) set(SDL2TTF_SAMPLES OFF CACHE BOOL "Build the SDL2_ttf sample program(s)" FORCE) @@ -29,6 +29,7 @@ set(SDL2MIXER_OPUS OFF CACHE BOOL "Enable Opus music" FORCE) set(SDL2MIXER_FLAC OFF CACHE BOOL "Enable FLAC music" FORCE) set(SDL2MIXER_MOD OFF CACHE BOOL "Support loading MOD music" FORCE) set(SDL2MIXER_MIDI OFF CACHE BOOL "Enable MIDI music" FORCE) +set(SDL2MIXER_WAVPACK OFF CACHE BOOL "Enable WavPack music" FORCE) set(SDL2MIXER_SAMPLES OFF CACHE BOOL "Build the SDL2_mixer sample program(s)" FORCE) set(SDL2MIXER_INSTALL OFF CACHE BOOL "Enable SDL2_mixer install target" FORCE) diff --git a/android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java b/android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java index 5310d60..e7281fd 100644 --- a/android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java +++ b/android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java @@ -285,6 +285,7 @@ public class HIDDeviceManager { 0x24c6, // PowerA 0x2dc8, // 8BitDo 0x2e24, // Hyperkin + 0x3537, // GameSir }; if (usbInterface.getId() == 0 && @@ -358,6 +359,12 @@ public class HIDDeviceManager { private void initializeBluetooth() { Log.d(TAG, "Initializing Bluetooth"); + if (Build.VERSION.SDK_INT >= 31 /* Android 12 */ && + mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH_CONNECT, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) { + Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH_CONNECT"); + return; + } + if (Build.VERSION.SDK_INT <= 30 /* Android 11.0 (R) */ && mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH"); diff --git a/android/app/src/main/java/org/libsdl/app/SDLActivity.java b/android/app/src/main/java/org/libsdl/app/SDLActivity.java index a2b5ba8..7cbf9d3 100644 --- a/android/app/src/main/java/org/libsdl/app/SDLActivity.java +++ b/android/app/src/main/java/org/libsdl/app/SDLActivity.java @@ -60,8 +60,8 @@ import java.util.Locale; public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener { private static final String TAG = "SDL"; private static final int SDL_MAJOR_VERSION = 2; - private static final int SDL_MINOR_VERSION = 28; - private static final int SDL_MICRO_VERSION = 5; + private static final int SDL_MINOR_VERSION = 30; + private static final int SDL_MICRO_VERSION = 2; /* // Display InputType.SOURCE/CLASS of events and devices // diff --git a/android/app/src/main/java/org/libsdl/app/SDLControllerManager.java b/android/app/src/main/java/org/libsdl/app/SDLControllerManager.java index d6913f1..9d8b20b 100644 --- a/android/app/src/main/java/org/libsdl/app/SDLControllerManager.java +++ b/android/app/src/main/java/org/libsdl/app/SDLControllerManager.java @@ -546,13 +546,15 @@ class SDLHapticHandler { if (haptic == null) { InputDevice device = InputDevice.getDevice(deviceIds[i]); Vibrator vib = device.getVibrator(); - if (vib.hasVibrator()) { - haptic = new SDLHaptic(); - haptic.device_id = deviceIds[i]; - haptic.name = device.getName(); - haptic.vib = vib; - mHaptics.add(haptic); - SDLControllerManager.nativeAddHaptic(haptic.device_id, haptic.name); + if (vib != null) { + if (vib.hasVibrator()) { + haptic = new SDLHaptic(); + haptic.device_id = deviceIds[i]; + haptic.name = device.getName(); + haptic.vib = vib; + mHaptics.add(haptic); + SDLControllerManager.nativeAddHaptic(haptic.device_id, haptic.name); + } } } }