504ed3e1cb
snd_start_digital() opened two separate SDL audio devices - a raw one for cutscene/audiolog audio and a second via Mix_OpenAudio() for SFX/MIDI - but Android's audio backends only ever allow one open non-capture device, so the second open always failed silently. - Consolidate onto a single Mix_OpenAudio() device; cutscene/audiolog PCM is now mixed into its output via Mix_SetPostMix() instead of a dedicated device (16-android-audio-single-device.patch) - Add SDL_GetError() to the failure log so a future open failure is actually diagnosable (15-android-audio-error-detail.patch) - Make NativeMidiInit() report failure on platforms with no real implementation (Android included), instead of silently claiming success without opening anything (17-android-native-midi-unsupported.patch) - Strengthen the OpenSL ES driver hint to SDL_HINT_OVERRIDE and log the active audio driver as a standing diagnostic (05-android-audio-driver.patch)
18 lines
622 B
Diff
18 lines
622 B
Diff
--- a/src/MusicSrc/MusicDevice.c
|
|
+++ b/src/MusicSrc/MusicDevice.c
|
|
@@ -569,6 +569,14 @@
|
|
// connected
|
|
ndev->dev.isOpen = 1;
|
|
ndev->dev.outputIndex = outputIndex;
|
|
+#else
|
|
+ // No native MIDI backend implemented for this platform (e.g. Android) -
|
|
+ // report failure so InitDecXMI()'s caller falls back to another device
|
|
+ // instead of treating an unopened device as successfully initialized.
|
|
+ (void)outputIndex;
|
|
+ (void)samplerate;
|
|
+ WARN("NativeMidiInit(): native MIDI is not implemented on this platform");
|
|
+ return -1;
|
|
#endif
|
|
// suppress compiler warnings
|
|
(void)outputIndex;
|