X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/5db8461a362f14017d276216a78c848929eb81f7..a2364abbe6ed9e8e4dd71b9410f985acbf20b18f:/lib/uaudio.c diff --git a/lib/uaudio.c b/lib/uaudio.c index 343290d..a9ac103 100644 --- a/lib/uaudio.c +++ b/lib/uaudio.c @@ -11,7 +11,7 @@ * 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 . */ @@ -75,7 +75,7 @@ char *uaudio_get(const char *name, const char *default_value) { return xstrdup(*valuep); } -/** @brief Set sample format +/** @brief Set sample format * @param rate Sample rate in KHz * @param channels Number of channels (i.e. 2 for stereo) * @param bits Number of bits per channel (typically 8 or 16) @@ -100,6 +100,21 @@ void uaudio_set_format(int rate, int channels, int bits, int signed_) { uaudio_sample_size = bits / CHAR_BIT; } +/** @brief Choose the default audio API by context + * @param apis Table of APIs or a null pointer + * @param context @ref UAUDIO_API_SERVER or @ref UAUDIO_API_CLIENT + * @return Default API or a null pointer + */ +const struct uaudio *uaudio_default(const struct uaudio *const *apis, + unsigned context) { + if(apis) { + for(int n = 0; apis[n]; ++n) + if(apis[n]->flags & context) + return apis[n]; + } + return 0; +} + /* Local Variables: c-basic-offset:2