]> git.ipfire.org Git - thirdparty/shairport-sync.git/commitdiff
Give error if alsa output device can't be found.
authorMike Brady <mikebrady@eircom.net>
Tue, 9 Apr 2019 10:35:46 +0000 (11:35 +0100)
committerMike Brady <mikebrady@eircom.net>
Tue, 9 Apr 2019 10:35:46 +0000 (11:35 +0100)
audio_alsa.c

index 86016a3759062e6c90315a2f70a2622339c9eca9..d3acf577a96f6a8989185814670a21290a45e320 100644 (file)
@@ -298,8 +298,14 @@ int actual_open_alsa_device(void) {
   // ret = snd_pcm_open(&alsa_handle, alsa_out_dev, SND_PCM_STREAM_PLAYBACK,
   // SND_PCM_NONBLOCK);
   ret = snd_pcm_open(&alsa_handle, alsa_out_dev, SND_PCM_STREAM_PLAYBACK, 0);
-  if (ret < 0)
-    return ret;
+  if (ret < 0) {
+    if (ret == -ENOENT)
+      die("alsa: can't find output device \"%s\".", alsa_out_dev);
+    } else {
+      char errorstring[1024];
+      strerror_r(-ret, (char *)errorstring, sizeof(errorstring));
+      die("alsa: error %d (\"%s\") opening alsa device \"%s\".", ret, (char *)errorstring, alsa_out_dev);
+  }
 
   snd_pcm_hw_params_alloca(&alsa_params);
   snd_pcm_sw_params_alloca(&alsa_swparams);