From efd23a800d05515c519fdd7f00e7d0015ba73f5a Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Tue, 3 Mar 2009 19:37:37 +0000 Subject: [PATCH 1/1] Restore uaudio_apis[], but in a separate executable to avoid everything having to be linked against audio libraries. Organization: Straylight/Edgeware From: Richard Kettlewell --- lib/Makefile.am | 2 +- lib/uaudio-apis.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++ lib/uaudio.h | 2 ++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 lib/uaudio-apis.c diff --git a/lib/Makefile.am b/lib/Makefile.am index 7ef6039..e244c25 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -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 index 0000000..7ac176b --- /dev/null +++ b/lib/uaudio-apis.c @@ -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 . + */ + +/** @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: +*/ diff --git a/lib/uaudio.h b/lib/uaudio.h index be396df..92bf90f 100644 --- a/lib/uaudio.h +++ b/lib/uaudio.h @@ -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 */ /* -- [mdw]