summaryrefslogtreecommitdiffhomepage
path: root/src/audio.c
diff options
context:
space:
mode:
authorDavid Reid <[email protected]>2017-11-24 22:13:33 +1000
committerDavid Reid <[email protected]>2017-11-24 22:13:33 +1000
commita0d9913c7cf2dce11f8d45e38923c69eae5d6f5e (patch)
tree184bd8ae68898330320b954488b18c5843efaf87 /src/audio.c
parent5463e14886456e362594250d9d5aa548a462eb20 (diff)
downloadraylib-a0d9913c7cf2dce11f8d45e38923c69eae5d6f5e.tar.gz
raylib-a0d9913c7cf2dce11f8d45e38923c69eae5d6f5e.zip
Potential fixes for audio on RPI and Emscripten builds.
Diffstat (limited to 'src/audio.c')
-rw-r--r--src/audio.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/audio.c b/src/audio.c
index 1e8d09e7..497deaf8 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -393,14 +393,23 @@ void InitAudioDevice(void)
mal_result result = mal_context_init(NULL, 0, &contextConfig, &context);
if (result != MAL_SUCCESS)
{
+ TraceLog(LOG_ERROR, "Failed to initialize audio context");
return;
}
// Device. Using the default device. Format is floating point because it simplifies mixing.
mal_device_config deviceConfig = mal_device_config_init(DEVICE_FORMAT, DEVICE_CHANNELS, DEVICE_SAMPLE_RATE, NULL, OnSendAudioDataToDevice);
+
+ // Special case for PLATFORM_RPI.
+#if defined(PLATFORM_RPI)
+ deviceConfig.alsa.noMMap = MAL_TRUE;
+ deviceConfig.bufferSizeInFrames = 2048;
+#endif
+
result = mal_device_init(&context, mal_device_type_playback, NULL, &deviceConfig, NULL, &device);
if (result != MAL_SUCCESS)
{
+ TraceLog(LOG_ERROR, "Failed to initialize audio playback device");
mal_context_uninit(&context);
return;
}
@@ -410,6 +419,7 @@ void InitAudioDevice(void)
result = mal_device_start(&device);
if (result != MAL_SUCCESS)
{
+ TraceLog(LOG_ERROR, "Failed to start audio playback device");
mal_device_uninit(&device);
mal_context_uninit(&context);
return;