90 lines
2.5 KiB
Diff
90 lines
2.5 KiB
Diff
|
From 1921efacfe1a230021849b83b2877c8f239b44ab Mon Sep 17 00:00:00 2001
|
||
|
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||
|
Date: Sun, 17 Jul 2022 19:09:04 +0200
|
||
|
Subject: [PATCH] aplay/aplay.c: make UCM support optional
|
||
|
|
||
|
Commit 90f59671784a7e47b40485095cd66892d4840ed7 ("topology:
|
||
|
pre-processor: Move the call to expand variables") modified aplay by
|
||
|
unconditionally invoking features of the use case manager (UCM) from
|
||
|
alsa-lib. However, alsa-lib can be compiled without UCM support.
|
||
|
|
||
|
In order to properly support this situation, this commit changes aplay
|
||
|
to only conditionally compile the UCM related code.
|
||
|
|
||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||
|
Upstream: https://mailman.alsa-project.org/pipermail/alsa-devel/2022-July/203847.html
|
||
|
---
|
||
|
aplay/aplay.c | 10 ++++++++++
|
||
|
1 file changed, 10 insertions(+)
|
||
|
|
||
|
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||
|
index b3b3635..59f937d 100644
|
||
|
--- a/aplay/aplay.c
|
||
|
+++ b/aplay/aplay.c
|
||
|
@@ -41,7 +41,9 @@
|
||
|
#include <time.h>
|
||
|
#include <locale.h>
|
||
|
#include <alsa/asoundlib.h>
|
||
|
+#ifdef HAVE_ALSA_USE_CASE_H
|
||
|
#include <alsa/use-case.h>
|
||
|
+#endif
|
||
|
#include <assert.h>
|
||
|
#include <termios.h>
|
||
|
#include <signal.h>
|
||
|
@@ -453,6 +455,7 @@ static ssize_t xwrite(int fd, const void *buf, size_t count)
|
||
|
return offset;
|
||
|
}
|
||
|
|
||
|
+#ifdef HAVE_ALSA_USE_CASE_H
|
||
|
static int open_ucm(snd_use_case_mgr_t **uc_mgr, char **pcm_name, const char *name)
|
||
|
{
|
||
|
char *s, *p;
|
||
|
@@ -476,6 +479,7 @@ static int open_ucm(snd_use_case_mgr_t **uc_mgr, char **pcm_name, const char *na
|
||
|
}
|
||
|
return err;
|
||
|
}
|
||
|
+#endif
|
||
|
|
||
|
static long parse_long(const char *str, int *err)
|
||
|
{
|
||
|
@@ -553,7 +557,9 @@ int main(int argc, char *argv[])
|
||
|
int do_device_list = 0, do_pcm_list = 0, force_sample_format = 0;
|
||
|
snd_pcm_info_t *info;
|
||
|
FILE *direction;
|
||
|
+#ifdef HAVE_ALSA_USE_CASE_H
|
||
|
snd_use_case_mgr_t *uc_mgr = NULL;
|
||
|
+#endif
|
||
|
|
||
|
#ifdef ENABLE_NLS
|
||
|
setlocale(LC_ALL, "");
|
||
|
@@ -852,6 +858,7 @@ int main(int argc, char *argv[])
|
||
|
goto __end;
|
||
|
}
|
||
|
|
||
|
+#ifdef HAVE_ALSA_USE_CASE_H
|
||
|
if (strncmp(pcm_name, "ucm.", 4) == 0) {
|
||
|
err = open_ucm(&uc_mgr, &pcm_name, pcm_name + 4);
|
||
|
if (err < 0) {
|
||
|
@@ -861,6 +868,7 @@ int main(int argc, char *argv[])
|
||
|
if (verbose)
|
||
|
fprintf(stderr, _("Found UCM PCM device: %s\n"), pcm_name);
|
||
|
}
|
||
|
+#endif
|
||
|
|
||
|
err = snd_pcm_open(&handle, pcm_name, stream, open_mode);
|
||
|
if (err < 0) {
|
||
|
@@ -951,8 +959,10 @@ int main(int argc, char *argv[])
|
||
|
if (verbose==2)
|
||
|
putchar('\n');
|
||
|
snd_pcm_close(handle);
|
||
|
+#ifdef HAVE_ALSA_USE_CASE_H
|
||
|
if (uc_mgr)
|
||
|
snd_use_case_mgr_close(uc_mgr);
|
||
|
+#endif
|
||
|
handle = NULL;
|
||
|
free(audiobuf);
|
||
|
__end:
|
||
|
--
|
||
|
2.36.1
|
||
|
|