chiark / gitweb /
Restore uaudio_apis[], but in a separate executable to avoid everything
authorRichard Kettlewell <rjk@greenend.org.uk>
Tue, 3 Mar 2009 19:37:37 +0000 (19:37 +0000)
committerRichard Kettlewell <rjk@greenend.org.uk>
Tue, 3 Mar 2009 19:37:37 +0000 (19:37 +0000)
having to be linked against audio libraries.

lib/Makefile.am
lib/uaudio-apis.c [new file with mode: 0644]
lib/uaudio.h

index 7ef6039..e244c25 100644 (file)
@@ -82,7 +82,7 @@ libdisorder_a_SOURCES=charset.c charset.h             \
        $(TRACKDB) trackdb.h trackdb-int.h              \
        trackname.c trackorder.c trackname.h            \
        tracksort.c                                     \
-       uaudio.c uaudio-thread.c uaudio.h               \
+       uaudio.c uaudio-thread.c uaudio.h uaudio-apis.c \
        uaudio-oss.c uaudio-alsa.c                      \
        uaudio-coreaudio.c                              \
        uaudio-rtp.c uaudio-command.c uaudio-schedule.c \
diff --git a/lib/uaudio-apis.c b/lib/uaudio-apis.c
new file mode 100644 (file)
index 0000000..7ac176b
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * This file is part of DisOrder.
+ * Copyright (C) 2009 Richard Kettlewell
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file lib/uaudio-apis.c
+ * @brief Audio API list
+ */
+
+#include "common.h"
+#include "uaudio.h"
+
+/** @brief List of known APIs
+ *
+ * Terminated by a null pointer.
+ *
+ * The first one will be used as a default, so putting ALSA before OSS
+ * constitutes a policy decision.
+ */
+const struct uaudio *uaudio_apis[] = {
+#if HAVE_COREAUDIO_AUDIOHARDWARE_H
+  &uaudio_coreaudio,
+#endif  
+#if HAVE_ALSA_ASOUNDLIB_H
+  &uaudio_alsa,
+#endif
+#if HAVE_SYS_SOUNDCARD_H || EMPEG_HOST
+  &uaudio_oss,
+#endif
+  &uaudio_rtp,
+  &uaudio_command,
+  NULL,
+};
+
+/*
+Local Variables:
+c-basic-offset:2
+comment-column:40
+fill-column:79
+indent-tabs-mode:nil
+End:
+*/
index be396df..92bf90f 100644 (file)
@@ -138,6 +138,8 @@ extern const struct uaudio uaudio_rtp;
 
 extern const struct uaudio uaudio_command;
 
+extern const struct uaudio *uaudio_apis[];
+
 #endif /* UAUDIO_H */
 
 /*