Author: titmuss
Date: Tue Jul 1 06:30:43 2008
New Revision: 2643
URL: http://svn.slimdevices.com?rev=2643&root=Jive&view=rev
Log:
Bug: 8561
Description:
Fix crasher when no audio device is detected.
Modified:
7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode.c
7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c
7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h
Modified: 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode.c
URL:
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode.c?rev=2643&root=Jive&r1=2642&r2=2643&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode.c (original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode.c Tue Jul 1
06:30:43 2008
@@ -550,7 +550,10 @@
int luaopen_decode(lua_State *L) {
/* initialise audio output */
decode_audio = &decode_portaudio;
- decode_audio->init();
+ if (!decode_audio->init()) {
+ DEBUG_ERROR("Failed to init audio");
+ return 0;
+ }
fifo_init(&decode_fifo, DECODE_FIFO_SIZE);
Modified:
7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c
URL:
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c?rev=2643&root=Jive&r1=2642&r2=2643&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c
Tue Jul 1 06:30:43 2008
@@ -218,7 +218,7 @@
}
-static void decode_portaudio_init(void) {
+static int decode_portaudio_init(void) {
PaError err;
int num_devices, i;
const PaDeviceInfo *device_info;
@@ -253,13 +253,18 @@
}
}
+ if (i >= num_devices) {
+ /* no suitable audio device found */
+ return 0;
+ }
+
/* high latency for robust playback */
outputParam.suggestedLatency =
Pa_GetDeviceInfo(outputParam.device)->defaultHighOutputLatency;
- return;
+ return 1;
err:
DEBUG_ERROR("PA error %s", Pa_GetErrorText(err));
- return;
+ return 0;
}
Modified: 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h
URL:
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h?rev=2643&root=Jive&r1=2642&r2=2643&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h Tue
Jul 1 06:30:43 2008
@@ -85,7 +85,7 @@
/* Audio output api */
struct decode_audio {
- void (*init)(void);
+ int (*init)(void);
void (*start)(void);
void (*stop)(void);
};
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins