Accepting request 1143691 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/1143691
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alsa-utils?expand=0&rev=143
This commit is contained in:
Ana Guerrero 2024-02-04 18:07:07 +00:00 committed by Git OBS Bridge
commit 0bab3dd38d
33 changed files with 63 additions and 2441 deletions

View File

@ -1,229 +0,0 @@
From a90faa2dd644af585d6a00f0aaf297c15ea0aa7b Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 4 Sep 2023 16:33:47 +0200
Subject: [PATCH] axfer: use ATTRIBUTE_UNUSED instead remove argument name
We need to support older compilers than GCC 11.
Link: https://github.com/alsa-project/alsa-utils/issues/233
Fixes: ad5a1c0 ("axfer: fix the verbose compilation warnings for latest gcc")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
axfer/container-raw.c | 14 +++++++-------
axfer/mapper-single.c | 6 +++---
axfer/subcmd-list.c | 2 +-
axfer/subcmd-transfer.c | 4 ++--
axfer/waiter-poll.c | 4 ++--
axfer/waiter-select.c | 4 ++--
axfer/waiter.h | 1 +
axfer/xfer-libasound-irq-rw.c | 2 +-
axfer/xfer-libasound.c | 4 ++--
axfer/xfer-options.c | 3 ++-
10 files changed, 23 insertions(+), 21 deletions(-)
diff --git a/axfer/container-raw.c b/axfer/container-raw.c
index 071f94cb244a..18860455c2eb 100644
--- a/axfer/container-raw.c
+++ b/axfer/container-raw.c
@@ -13,10 +13,10 @@
#include <sys/stat.h>
#include <unistd.h>
-static int raw_builder_pre_process(struct container_context *,
- snd_pcm_format_t *,
- unsigned int *,
- unsigned int *,
+static int raw_builder_pre_process(struct container_context *cntr ATTRIBUTE_UNUSED,
+ snd_pcm_format_t *format ATTRIBUTE_UNUSED,
+ unsigned int *samples_per_frame ATTRIBUTE_UNUSED,
+ unsigned int *frames_per_second ATTRIBUTE_UNUSED,
uint64_t *byte_count)
{
*byte_count = UINT64_MAX;
@@ -25,9 +25,9 @@ static int raw_builder_pre_process(struct container_context *,
}
static int raw_parser_pre_process(struct container_context *cntr,
- snd_pcm_format_t *,
- unsigned int *,
- unsigned int *,
+ snd_pcm_format_t *format ATTRIBUTE_UNUSED,
+ unsigned int *samples_per_frame ATTRIBUTE_UNUSED,
+ unsigned int *frames_per_second ATTRIBUTE_UNUSED,
uint64_t *byte_count)
{
struct stat buf = {0};
diff --git a/axfer/mapper-single.c b/axfer/mapper-single.c
index 13e7fc5cfd42..f669f7fed549 100644
--- a/axfer/mapper-single.c
+++ b/axfer/mapper-single.c
@@ -62,7 +62,7 @@ static void align_from_vector(void *frame_buf, unsigned int frame_count,
static int single_pre_process(struct mapper_context *mapper,
struct container_context *cntrs,
- unsigned int)
+ unsigned int cntr_count ATTRIBUTE_UNUSED)
{
struct single_state *state = mapper->private_data;
unsigned int bytes_per_buffer;
@@ -110,7 +110,7 @@ static int single_muxer_process_frames(struct mapper_context *mapper,
void *frame_buf,
unsigned int *frame_count,
struct container_context *cntrs,
- unsigned int)
+ unsigned int cntr_count ATTRIBUTE_UNUSED)
{
struct single_state *state = mapper->private_data;
void *src;
@@ -141,7 +141,7 @@ static int single_demuxer_process_frames(struct mapper_context *mapper,
void *frame_buf,
unsigned int *frame_count,
struct container_context *cntrs,
- unsigned int)
+ unsigned int cntr_count ATTRIBUTE_UNUSED)
{
struct single_state *state = mapper->private_data;
void *dst;
diff --git a/axfer/subcmd-list.c b/axfer/subcmd-list.c
index f9c8e0f931e1..187e1d7ce477 100644
--- a/axfer/subcmd-list.c
+++ b/axfer/subcmd-list.c
@@ -19,7 +19,7 @@ enum list_op {
};
static int dump_device(snd_ctl_t *handle, const char *id, const char *name,
- snd_pcm_stream_t, snd_pcm_info_t *info)
+ snd_pcm_stream_t stream ATTRIBUTE_UNUSED, snd_pcm_info_t *info)
{
unsigned int i, count;
int err;
diff --git a/axfer/subcmd-transfer.c b/axfer/subcmd-transfer.c
index b39fde86ac82..8d63043d15a5 100644
--- a/axfer/subcmd-transfer.c
+++ b/axfer/subcmd-transfer.c
@@ -40,7 +40,7 @@ static void handle_unix_signal_for_finish(int sig)
ctx_ptr->interrupted = true;
}
-static void handle_unix_signal_for_suspend(int)
+static void handle_unix_signal_for_suspend(int sig ATTRIBUTE_UNUSED)
{
sigset_t curr, prev;
struct sigaction sa = {0};
@@ -439,7 +439,7 @@ static int context_process_frames(struct context *ctx,
}
static void context_post_process(struct context *ctx,
- uint64_t)
+ uint64_t accumulated_frame_count ATTRIBUTE_UNUSED)
{
uint64_t total_frame_count;
unsigned int i;
diff --git a/axfer/waiter-poll.c b/axfer/waiter-poll.c
index 31fab88717a9..b81300cd6e93 100644
--- a/axfer/waiter-poll.c
+++ b/axfer/waiter-poll.c
@@ -13,7 +13,7 @@
#include <errno.h>
#include <poll.h>
-static int poll_prepare(struct waiter_context *)
+static int poll_prepare(struct waiter_context *waiter ATTRIBUTE_UNUSED)
{
// Nothing to do because an instance of waiter has required data.
return 0;
@@ -30,7 +30,7 @@ static int poll_wait_event(struct waiter_context *waiter, int timeout_msec)
return err;
}
-static void poll_release(struct waiter_context *)
+static void poll_release(struct waiter_context *waiter ATTRIBUTE_UNUSED)
{
// Nothing to do because an instance of waiter has required data.
return;
diff --git a/axfer/waiter-select.c b/axfer/waiter-select.c
index 164c9c8a1a27..fe19776bc1f3 100644
--- a/axfer/waiter-select.c
+++ b/axfer/waiter-select.c
@@ -34,7 +34,7 @@ struct select_state {
fd_set rfds_ex;
};
-static int select_prepare(struct waiter_context *)
+static int select_prepare(struct waiter_context *waiter ATTRIBUTE_UNUSED)
{
return 0;
}
@@ -94,7 +94,7 @@ static int select_wait_event(struct waiter_context *waiter, int timeout_msec)
return err;
}
-static void select_release(struct waiter_context *)
+static void select_release(struct waiter_context *waiter ATTRIBUTE_UNUSED)
{
return;
}
diff --git a/axfer/waiter.h b/axfer/waiter.h
index db18e33e337f..0f4e9b9f0548 100644
--- a/axfer/waiter.h
+++ b/axfer/waiter.h
@@ -9,6 +9,7 @@
#ifndef __ALSA_UTILS_AXFER_WAITER__H_
#define __ALSA_UTILS_AXFER_WAITER__H_
+#include <alsa/global.h>
#include <poll.h>
enum waiter_type {
diff --git a/axfer/xfer-libasound-irq-rw.c b/axfer/xfer-libasound-irq-rw.c
index b7f0645e885a..45fb6d5ee358 100644
--- a/axfer/xfer-libasound-irq-rw.c
+++ b/axfer/xfer-libasound-irq-rw.c
@@ -313,7 +313,7 @@ error:
}
static int w_process_frames_nonblocking(struct libasound_state *state,
- snd_pcm_state_t,
+ snd_pcm_state_t pcm_state ATTRIBUTE_UNUSED,
unsigned int *frame_count,
struct mapper_context *mapper,
struct container_context *cntrs)
diff --git a/axfer/xfer-libasound.c b/axfer/xfer-libasound.c
index 9713533897a2..36ee08d7054b 100644
--- a/axfer/xfer-libasound.c
+++ b/axfer/xfer-libasound.c
@@ -60,7 +60,7 @@ static const struct option l_opts[] = {
};
static int xfer_libasound_init(struct xfer_context *xfer,
- snd_pcm_stream_t)
+ snd_pcm_stream_t stream ATTRIBUTE_UNUSED)
{
struct libasound_state *state = xfer->private_data;
int err;
@@ -887,7 +887,7 @@ static void xfer_libasound_destroy(struct xfer_context *xfer)
state->log = NULL;
}
-static void xfer_libasound_help(struct xfer_context *)
+static void xfer_libasound_help(struct xfer_context *xfer ATTRIBUTE_UNUSED)
{
printf(
" [BASICS]\n"
diff --git a/axfer/xfer-options.c b/axfer/xfer-options.c
index 974570c817fe..e716dede765c 100644
--- a/axfer/xfer-options.c
+++ b/axfer/xfer-options.c
@@ -447,7 +447,8 @@ static int generate_path_with_suffix(struct xfer_context *xfer,
static int generate_path_without_suffix(struct xfer_context *xfer,
const char *template,
- unsigned int index, const char *)
+ unsigned int index,
+ const char *suffix ATTRIBUTE_UNUSED)
{
static const char *const single_format = "%s";
static const char *const multiple_format = "%s-%i";
--
2.35.3

View File

@ -1,30 +0,0 @@
From 2db896afd475b0b3ad07e97ba74ec9680b4f7f6d Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 4 Sep 2023 16:37:24 +0200
Subject: [PATCH] amidi: use ATTRIBUTE_UNUSED instead remove argument name
We need to support older compilers than GCC 11.
Link: https://github.com/alsa-project/alsa-utils/issues/233
Fixes: 1843540 ("amidi: fix the verbose compilation warnings for latest gcc")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
amidi/amidi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/amidi/amidi.c b/amidi/amidi.c
index f930ca8ef30b..75fb8c0a42a3 100644
--- a/amidi/amidi.c
+++ b/amidi/amidi.c
@@ -446,7 +446,7 @@ static void print_byte(unsigned char byte, struct timespec *ts)
printf("%02X", byte);
}
-static void sig_handler(int)
+static void sig_handler(int sig ATTRIBUTE_UNUSED)
{
stop = 1;
}
--
2.35.3

View File

@ -1,53 +0,0 @@
From 7552aef6e08b5b1fd8c1704e21cb9f6f15017bfa Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 4 Sep 2023 16:45:09 +0200
Subject: [PATCH] alsaloop: use ATTRIBUTE_UNUSED instead remove argument name
We need to support older compilers than GCC 11.
Link: https://github.com/alsa-project/alsa-utils/issues/233
Fixes: d609a58 ("alsaloop: fix the verbose compilation warnings for latest gcc")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
alsaloop/alsaloop.c | 2 +-
alsaloop/pcmjob.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/alsaloop/alsaloop.c b/alsaloop/alsaloop.c
index b10733e0b300..51fb64626a90 100644
--- a/alsaloop/alsaloop.c
+++ b/alsaloop/alsaloop.c
@@ -821,7 +821,7 @@ static void send_to_all(int sig)
}
}
-static void signal_handler(int)
+static void signal_handler(int sig ATTRIBUTE_UNUSED)
{
quit = 1;
send_to_all(SIGUSR2);
diff --git a/alsaloop/pcmjob.c b/alsaloop/pcmjob.c
index be7197122ed9..ffb439b45e66 100644
--- a/alsaloop/pcmjob.c
+++ b/alsaloop/pcmjob.c
@@ -625,7 +625,7 @@ static void buf_add_src(struct loopback *loop)
}
}
#else
-static void buf_add_src(struct loopback *)
+static void buf_add_src(struct loopback *loop ATTRIBUTE_UNUSED)
{
}
#endif
@@ -1794,7 +1794,7 @@ static int ctl_event_check(snd_ctl_elem_value_t *val, snd_ctl_event_t *ev)
}
static int handle_ctl_events(struct loopback_handle *lhandle,
- unsigned short)
+ unsigned short events ATTRIBUTE_UNUSED)
{
struct loopback *loop = lhandle->loopback;
snd_ctl_event_t *ev;
--
2.35.3

View File

@ -1,63 +0,0 @@
From 94eeb5a40f77e92624eb32d2e9c50b1cd9e4f837 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 4 Sep 2023 16:49:03 +0200
Subject: [PATCH] bat: use ATTRIBUTE_UNUSED instead remove argument name
We need to support older compilers than GCC 11.
Link: https://github.com/alsa-project/alsa-utils/issues/233
Fixes: b366875 ("bat: fix the verbose compilation warnings for latest gcc")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
bat/bat.c | 3 ++-
bat/common.c | 3 ++-
bat/common.h | 5 +++++
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/bat/bat.c b/bat/bat.c
index e88c65f72f49..ea04ed9c8813 100644
--- a/bat/bat.c
+++ b/bat/bat.c
@@ -158,7 +158,8 @@ static void get_format(struct bat *bat, char *optarg)
}
}
-static inline int thread_wait_completion(struct bat *, pthread_t id, int **val)
+static inline int thread_wait_completion(struct bat *bat ATTRIBUTE_UNUSED,
+ pthread_t id, int **val)
{
int err;
diff --git a/bat/common.c b/bat/common.c
index 9ff940572029..470a7e6ffc15 100644
--- a/bat/common.c
+++ b/bat/common.c
@@ -47,7 +47,8 @@ static int update_fmt_to_bat(struct bat *bat, struct chunk_fmt *fmt)
}
/* calculate frames and update to bat */
-static int update_frames_to_bat(struct bat *bat, struct wav_chunk_header *header, FILE *)
+static int update_frames_to_bat(struct bat *bat, struct wav_chunk_header *header,
+ FILE *file ATTRIBUTE_UNUSED)
{
/* The number of analyzed captured frames is arbitrarily set to half of
the number of frames of the wav file or the number of frames of the
diff --git a/bat/common.h b/bat/common.h
index a9bae5d2b741..bb51b0d452e2 100644
--- a/bat/common.h
+++ b/bat/common.h
@@ -13,6 +13,11 @@
*
*/
+#ifndef ATTRIBUTE_UNUSED
+/** do not print warning (gcc) when function parameter is not used */
+#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#endif
+
#define TEMP_RECORD_FILE_NAME "/tmp/bat.wav.XXXXXX"
#define DEFAULT_DEV_NAME "default"
--
2.35.3

View File

@ -1,89 +0,0 @@
From 66112d60e4ce68720022eaf26080c0f1a2caf81f Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 4 Sep 2023 16:52:46 +0200
Subject: [PATCH] seq: use ATTRIBUTE_UNUSED instead remove argument name
We need to support older compilers than GCC 11.
Link: https://github.com/alsa-project/alsa-utils/issues/233
Fixes: 181e190 ("aplaymidi: fix the verbose compilation warnings for latest gcc")
Fixes: a03377a ("aseqnet: fix the verbose compilation warnings for latest gcc")
Fixes: 429c32a ("aseqdump: fix the verbose compilation warnings for latest gcc")
Fixes: 0b48dd6 ("aconnect: fix the verbose compilation warnings for latest gcc")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
seq/aconnect/aconnect.c | 9 ++++++---
seq/aplaymidi/arecordmidi.c | 2 +-
seq/aseqdump/aseqdump.c | 2 +-
seq/aseqnet/aseqnet.c | 2 +-
4 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/seq/aconnect/aconnect.c b/seq/aconnect/aconnect.c
index 3a10de9d95af..7096febfe1c1 100644
--- a/seq/aconnect/aconnect.c
+++ b/seq/aconnect/aconnect.c
@@ -193,7 +193,8 @@ static void do_search_port(snd_seq_t *seq, int perm, action_func_t do_action)
}
-static void print_port(snd_seq_t *, snd_seq_client_info_t *cinfo,
+static void print_port(snd_seq_t *seq ATTRIBUTE_UNUSED,
+ snd_seq_client_info_t *cinfo,
snd_seq_port_info_t *pinfo, int count)
{
if (! count) {
@@ -247,8 +248,10 @@ static void print_port_and_subs(snd_seq_t *seq, snd_seq_client_info_t *cinfo,
/*
* remove all (exported) connections
*/
-static void remove_connection(snd_seq_t *seq, snd_seq_client_info_t *,
- snd_seq_port_info_t *pinfo, int)
+static void remove_connection(snd_seq_t *seq,
+ snd_seq_client_info_t *info ATTRIBUTE_UNUSED,
+ snd_seq_port_info_t *pinfo,
+ int count ATTRIBUTE_UNUSED)
{
snd_seq_query_subscribe_t *query;
snd_seq_port_info_t *port;
diff --git a/seq/aplaymidi/arecordmidi.c b/seq/aplaymidi/arecordmidi.c
index ce714728b8a2..a4c1181d3d31 100644
--- a/seq/aplaymidi/arecordmidi.c
+++ b/seq/aplaymidi/arecordmidi.c
@@ -719,7 +719,7 @@ static void version(void)
fputs("arecordmidi version " SND_UTIL_VERSION_STR "\n", stderr);
}
-static void sighandler(int)
+static void sighandler(int sig ATTRIBUTE_UNUSED)
{
stop = 1;
}
diff --git a/seq/aseqdump/aseqdump.c b/seq/aseqdump/aseqdump.c
index 8455ecba3d85..af4ca216ad65 100644
--- a/seq/aseqdump/aseqdump.c
+++ b/seq/aseqdump/aseqdump.c
@@ -676,7 +676,7 @@ static void version(void)
puts("aseqdump version " SND_UTIL_VERSION_STR);
}
-static void sighandler(int)
+static void sighandler(int sig ATTRIBUTE_UNUSED)
{
stop = 1;
}
diff --git a/seq/aseqnet/aseqnet.c b/seq/aseqnet/aseqnet.c
index f40de7d4e044..aa70b501db8e 100644
--- a/seq/aseqnet/aseqnet.c
+++ b/seq/aseqnet/aseqnet.c
@@ -334,7 +334,7 @@ static void get_net_addr(struct addrinfo *rp, char *buf, size_t buflen)
/*
* signal handler
*/
-static void sigterm_exit(int)
+static void sigterm_exit(int sig ATTRIBUTE_UNUSED)
{
close_files();
exit(1);
--
2.35.3

View File

@ -1,105 +0,0 @@
From 9e5e9a6d70de63bea01f0669b01319952f2cfdea Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 4 Sep 2023 16:57:47 +0200
Subject: [PATCH] alsaucm: use ATTRIBUTE_UNUSED instead remove argument name
We need to support older compilers than GCC 11.
Link: https://github.com/alsa-project/alsa-utils/issues/233
Fixes: d7bbc26 ("alsaucm: fix the verbose compilation warnings for latest gcc")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
alsaucm/dump.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/alsaucm/dump.c b/alsaucm/dump.c
index 102ac4d2c4b5..a5c57f21d33b 100644
--- a/alsaucm/dump.c
+++ b/alsaucm/dump.c
@@ -93,7 +93,8 @@ static char *tesc(const char *s, char *buf, size_t buf_len)
#define ESC(s, esc) tesc((s), (esc), sizeof(esc))
-static int text_verb_start(struct renderer *, const char *verb, const char *comment)
+static int text_verb_start(struct renderer *r ATTRIBUTE_UNUSED,
+ const char *verb, const char *comment)
{
char buf1[128], buf2[128];
printf("Verb.%s {\n", ESC(verb, buf1));
@@ -102,13 +103,13 @@ static int text_verb_start(struct renderer *, const char *verb, const char *comm
return 0;
}
-static int text_verb_end(struct renderer *)
+static int text_verb_end(struct renderer *r ATTRIBUTE_UNUSED)
{
printf("}\n");
return 0;
}
-static int text_2nd_level_begin(struct renderer *,
+static int text_2nd_level_begin(struct renderer *r ATTRIBUTE_UNUSED,
const char *key,
const char *val,
const char *comment)
@@ -120,19 +121,19 @@ static int text_2nd_level_begin(struct renderer *,
return 0;
}
-static int text_2nd_level_end(struct renderer *)
+static int text_2nd_level_end(struct renderer *r ATTRIBUTE_UNUSED)
{
printf("\t}\n");
return 0;
}
-static int text_2nd_level(struct renderer *, const char *txt)
+static int text_2nd_level(struct renderer *r ATTRIBUTE_UNUSED, const char *txt)
{
printf("\t\t%s", txt);
return 0;
}
-static int text_3rd_level(struct renderer *, const char *txt)
+static int text_3rd_level(struct renderer *r ATTRIBUTE_UNUSED, const char *txt)
{
printf("\t\t\t%s", txt);
return 0;
@@ -266,7 +267,7 @@ static void json_block(struct renderer *r, int level, int last)
j->block[level] = last ? 0 : 1;
}
-static int json_init(struct renderer *)
+static int json_init(struct renderer *r ATTRIBUTE_UNUSED)
{
printf("{\n \"Verbs\": {");
return 0;
@@ -325,13 +326,13 @@ static int json_2nd_level_end(struct renderer *r)
return 0;
}
-static int json_2nd_level(struct renderer *, const char *txt)
+static int json_2nd_level(struct renderer *r ATTRIBUTE_UNUSED, const char *txt)
{
printf(" %s", txt);
return 0;
}
-static int json_3rd_level(struct renderer *, const char *txt)
+static int json_3rd_level(struct renderer *r ATTRIBUTE_UNUSED, const char *txt)
{
printf(" %s", txt);
return 0;
@@ -360,7 +361,8 @@ static int json_supcon_start(struct renderer *r, const char *key)
return 0;
}
-static int json_supcon_value(struct renderer *r, const char *value, int)
+static int json_supcon_value(struct renderer *r, const char *value,
+ int last ATTRIBUTE_UNUSED)
{
char buf[256];
JESC(value, buf);
--
2.35.3

View File

@ -1,308 +0,0 @@
From dfe1c7143ab6ea01789e276b1ba361a00e545997 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 4 Sep 2023 17:11:05 +0200
Subject: [PATCH] topology: use ATTRIBUTE_UNUSED instead remove argument name
We need to support older compilers than GCC 11.
Link: https://github.com/alsa-project/alsa-utils/issues/233
Fixes: 153d185 ("topology: fix the verbose compilation warnings for latest gcc")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
topology/nhlt/intel/dmic-nhlt.c | 3 ++-
topology/nhlt/intel/dmic/dmic-debug.c | 7 ++++---
topology/nhlt/intel/ssp/ssp-debug.c | 5 +++--
topology/nhlt/intel/ssp/ssp-process.c | 4 +++-
topology/nhlt/nhlt-processor.c | 7 +++++--
topology/pre-process-class.c | 10 +++++-----
topology/pre-process-object.c | 21 +++++++++++----------
topology/pre-processor.c | 10 ++++++----
8 files changed, 39 insertions(+), 28 deletions(-)
diff --git a/topology/nhlt/intel/dmic-nhlt.c b/topology/nhlt/intel/dmic-nhlt.c
index 70a22e3e288a..de659cfdbd1f 100644
--- a/topology/nhlt/intel/dmic-nhlt.c
+++ b/topology/nhlt/intel/dmic-nhlt.c
@@ -10,6 +10,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <alsa/global.h>
#include <alsa/input.h>
#include <alsa/output.h>
#include <alsa/conf.h>
@@ -155,7 +156,7 @@ static int set_vendor_mic_data(struct intel_nhlt_params *nhlt, snd_config_t *cfg
horizontal_angle_end);
}
-static int set_bytes_data(struct intel_nhlt_params *, snd_config_t *cfg)
+static int set_bytes_data(struct intel_nhlt_params *nhlt ATTRIBUTE_UNUSED, snd_config_t *cfg)
{
snd_config_iterator_t i, next;
snd_config_t *n;
diff --git a/topology/nhlt/intel/dmic/dmic-debug.c b/topology/nhlt/intel/dmic/dmic-debug.c
index f99d308c0419..a977c93f2a2d 100644
--- a/topology/nhlt/intel/dmic/dmic-debug.c
+++ b/topology/nhlt/intel/dmic/dmic-debug.c
@@ -8,6 +8,7 @@
#include "aconfig.h"
#include <stdio.h>
#include <stdint.h>
+#include <alsa/global.h>
#include "dmic-debug.h"
#ifdef NHLT_DEBUG
@@ -181,7 +182,7 @@ void dmic_print_internal(struct intel_dmic_params *dmic)
}
#else /* NHLT_DEBUG */
-void dmic_print_bytes_as_hex(uint8_t *, size_t) {}
-void dmic_print_integers_as_hex(uint32_t *, size_t) {}
-void dmic_print_internal(struct intel_dmic_params *) {}
+void dmic_print_bytes_as_hex(uint8_t *src ATTRIBUTE_UNUSED, size_t size ATTRIBUTE_UNUSED) {}
+void dmic_print_integers_as_hex(uint32_t *src ATTRIBUTE_UNUSED, size_t size ATTRIBUTE_UNUSED) {}
+void dmic_print_internal(struct intel_dmic_params *dmic ATTRIBUTE_UNUSED) {}
#endif
diff --git a/topology/nhlt/intel/ssp/ssp-debug.c b/topology/nhlt/intel/ssp/ssp-debug.c
index 8c6467556e72..2d2f6b0fc5ab 100644
--- a/topology/nhlt/intel/ssp/ssp-debug.c
+++ b/topology/nhlt/intel/ssp/ssp-debug.c
@@ -7,6 +7,7 @@
#include "aconfig.h"
#include <stdio.h>
#include <stdint.h>
+#include <alsa/global.h>
#include "ssp-debug.h"
#include "../intel-nhlt.h"
@@ -252,6 +253,6 @@ void ssp_print_internal(struct intel_ssp_params *ssp)
}
#else /* NHLT_DEBUG */
-void ssp_print_internal(struct intel_ssp_params *) {}
-void ssp_print_calculated(struct intel_ssp_params *) {}
+void ssp_print_internal(struct intel_ssp_params *ssp ATTRIBUTE_UNUSED) {}
+void ssp_print_calculated(struct intel_ssp_params *ssp ATTRIBUTE_UNUSED) {}
#endif
diff --git a/topology/nhlt/intel/ssp/ssp-process.c b/topology/nhlt/intel/ssp/ssp-process.c
index 9cda5c3500d9..17b88d2b712b 100644
--- a/topology/nhlt/intel/ssp/ssp-process.c
+++ b/topology/nhlt/intel/ssp/ssp-process.c
@@ -14,6 +14,7 @@
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
+#include <alsa/global.h>
#include <alsa/input.h>
#include <alsa/output.h>
#include <alsa/conf.h>
@@ -952,7 +953,8 @@ int ssp_set_params(struct intel_nhlt_params *nhlt, const char *dir, int dai_inde
return 0;
}
-int ssp_hw_set_params(struct intel_nhlt_params *nhlt, const char *format, const char *,
+int ssp_hw_set_params(struct intel_nhlt_params *nhlt, const char *format,
+ const char *mclk ATTRIBUTE_UNUSED,
const char *bclk, const char *bclk_invert, const char *fsync,
const char *fsync_invert, int mclk_freq, int bclk_freq, int fsync_freq,
int tdm_slots, int tdm_slot_width, int tx_slots, int rx_slots)
diff --git a/topology/nhlt/nhlt-processor.c b/topology/nhlt/nhlt-processor.c
index 567fa5cc2498..ca539c3de5bb 100644
--- a/topology/nhlt/nhlt-processor.c
+++ b/topology/nhlt/nhlt-processor.c
@@ -11,6 +11,7 @@
#include <string.h>
#include <stdbool.h>
#include <inttypes.h>
+#include <alsa/global.h>
#include <alsa/input.h>
#include <alsa/output.h>
#include <alsa/conf.h>
@@ -87,7 +88,8 @@ static void debug_print_nhlt(struct nhlt *blob, struct endpoint_descriptor **eps
fprintf(stdout, "\n");
}
#else
-static void debug_print_nhlt(struct nhlt *, struct endpoint_descriptor **) {}
+static void debug_print_nhlt(struct nhlt *blob ATTRIBUTE_UNUSED,
+ struct endpoint_descriptor **eps ATTRIBUTE_UNUSED) {}
#endif
static int print_as_hex_bytes(uint8_t *manifest_buffer, uint32_t manifest_size,
@@ -313,7 +315,8 @@ static int nhlt_get_flat_buffer(struct nhlt *blob, struct endpoint_descriptor **
}
/* called at the end of topology pre-processing, create flat buffer from variable size nhlt */
-static int nhlt_create(struct intel_nhlt_params *nhlt, snd_config_t *input, snd_config_t *,
+static int nhlt_create(struct intel_nhlt_params *nhlt, snd_config_t *input,
+ snd_config_t *output ATTRIBUTE_UNUSED,
uint8_t **nhlt_buffer, uint32_t *nhlt_size)
{
struct endpoint_descriptor *eps[MAX_ENDPOINT_COUNT];
diff --git a/topology/pre-process-class.c b/topology/pre-process-class.c
index d883d053fcb6..bedcebe6c410 100644
--- a/topology/pre-process-class.c
+++ b/topology/pre-process-class.c
@@ -127,7 +127,7 @@ snd_config_t *tplg_class_lookup(struct tplg_pre_processor *tplg_pp, snd_config_t
}
/* find the attribute config by name in the class definition */
-snd_config_t *tplg_class_find_attribute_by_name(struct tplg_pre_processor *,
+snd_config_t *tplg_class_find_attribute_by_name(struct tplg_pre_processor *tplg_p ATTRIBUTE_UNUSED,
snd_config_t *class, const char *name)
{
snd_config_t *attr = NULL;
@@ -152,7 +152,7 @@ snd_config_t *tplg_class_find_attribute_by_name(struct tplg_pre_processor *,
}
/* get the name of the attribute that must have a unique value in the object instance */
-const char *tplg_class_get_unique_attribute_name(struct tplg_pre_processor *,
+const char *tplg_class_get_unique_attribute_name(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *class)
{
snd_config_t *unique;
@@ -177,7 +177,7 @@ const char *tplg_class_get_unique_attribute_name(struct tplg_pre_processor *,
}
/* get attribute type from the definition */
-snd_config_type_t tplg_class_get_attribute_type(struct tplg_pre_processor *,
+snd_config_type_t tplg_class_get_attribute_type(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *attr)
{
snd_config_t *type;
@@ -208,7 +208,7 @@ snd_config_type_t tplg_class_get_attribute_type(struct tplg_pre_processor *,
}
/* get token_ref for attribute with name attr_name in the class */
-const char *tplg_class_get_attribute_token_ref(struct tplg_pre_processor *,
+const char *tplg_class_get_attribute_token_ref(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *class, const char *attr_name)
{
snd_config_t *attributes, *attr, *token_ref;
@@ -235,7 +235,7 @@ const char *tplg_class_get_attribute_token_ref(struct tplg_pre_processor *,
}
/* convert a valid attribute string value to the corresponding tuple value */
-long tplg_class_attribute_valid_tuple_value(struct tplg_pre_processor *,
+long tplg_class_attribute_valid_tuple_value(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *class, snd_config_t *attr)
{
diff --git a/topology/pre-process-object.c b/topology/pre-process-object.c
index 48555e7ff7e2..61cc85fbc43d 100644
--- a/topology/pre-process-object.c
+++ b/topology/pre-process-object.c
@@ -31,7 +31,8 @@
/* Parse VendorToken object, create the "SectionVendorToken" and save it */
int tplg_build_vendor_token_object(struct tplg_pre_processor *tplg_pp,
- snd_config_t *obj_cfg, snd_config_t *)
+ snd_config_t *obj_cfg,
+ snd_config_t *parent ATTRIBUTE_UNUSED)
{
snd_config_iterator_t i, next;
snd_config_t *vtop, *n, *obj;
@@ -196,7 +197,7 @@ int tplg_build_data_object(struct tplg_pre_processor *tplg_pp, snd_config_t *obj
return tplg_parent_update(tplg_pp, parent, "data", name);
}
-static int tplg_create_config_template(struct tplg_pre_processor *,
+static int tplg_create_config_template(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t **template,
const struct config_template_items *items)
{
@@ -499,7 +500,7 @@ min_max_check:
}
/* get object's name attribute value */
-const char *tplg_object_get_name(struct tplg_pre_processor *,
+const char *tplg_object_get_name(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *object)
{
snd_config_t *cfg;
@@ -518,7 +519,7 @@ const char *tplg_object_get_name(struct tplg_pre_processor *,
}
/* look up the instance of object in a config */
-static snd_config_t *tplg_object_lookup_in_config(struct tplg_pre_processor *,
+static snd_config_t *tplg_object_lookup_in_config(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *class, const char *type,
const char *class_name, const char *id)
{
@@ -977,7 +978,7 @@ template:
}
static int tplg_build_generic_object(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
- snd_config_t *)
+ snd_config_t *parent ATTRIBUTE_UNUSED)
{
snd_config_t *wtop;
const char *name;
@@ -1090,7 +1091,7 @@ const struct build_function_map object_build_map[] = {
NULL, &pcm_caps_config},
};
-static const struct build_function_map *tplg_object_get_map(struct tplg_pre_processor *,
+static const struct build_function_map *tplg_object_get_map(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *obj)
{
snd_config_iterator_t first;
@@ -1145,7 +1146,7 @@ snd_config_t *tplg_object_get_section(struct tplg_pre_processor *tplg_pp, snd_co
}
/* return 1 if attribute not found in search_config, 0 on success and negative value on error */
-static int tplg_object_copy_and_add_param(struct tplg_pre_processor *,
+static int tplg_object_copy_and_add_param(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *obj,
snd_config_t *attr_cfg,
snd_config_t *search_config)
@@ -1351,8 +1352,8 @@ static int tplg_object_pre_process_children(struct tplg_pre_processor *tplg_pp,
return 0;
}
-static int tplg_construct_object_name(struct tplg_pre_processor *, snd_config_t *obj,
- snd_config_t *class_cfg)
+static int tplg_construct_object_name(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
+ snd_config_t *obj, snd_config_t *class_cfg)
{
snd_config_iterator_t i, next;
snd_config_t *args, *n;
@@ -1547,7 +1548,7 @@ static int tplg_object_set_unique_attribute(struct tplg_pre_processor *tplg_pp,
* Helper function to get object instance config which is 2 nodes down from class_type config.
* ex: Get the pointer to the config node with ID "0" from the input config Widget.pga.0 {}
*/
-snd_config_t *tplg_object_get_instance_config(struct tplg_pre_processor *,
+snd_config_t *tplg_object_get_instance_config(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
snd_config_t *class_type)
{
snd_config_iterator_t first;
diff --git a/topology/pre-processor.c b/topology/pre-processor.c
index 3903dee556b8..01f8a5de513e 100644
--- a/topology/pre-processor.c
+++ b/topology/pre-processor.c
@@ -231,8 +231,9 @@ void tplg_pp_config_debug(struct tplg_pre_processor *tplg_pp, snd_config_t *cfg)
snd_config_save(cfg, tplg_pp->dbg_output);
}
#else
-void tplg_pp_debug(char *, ...) {}
-void tplg_pp_config_debug(struct tplg_pre_processor *, snd_config_t *){}
+void tplg_pp_debug(char *fmt ATTRIBUTE_UNUSED, ...) {}
+void tplg_pp_config_debug(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
+ snd_config_t *cfg ATTRIBUTE_UNUSED) {}
#endif
static int pre_process_config(struct tplg_pre_processor *tplg_pp, snd_config_t *cfg)
@@ -640,8 +641,9 @@ static int pre_process_includes_all(struct tplg_pre_processor *tplg_pp, snd_conf
}
/* duplicate the existing objects in src into dest and update with new attribute */
-static int pre_process_add_objects(struct tplg_pre_processor *, int *object_count,
- snd_config_t *src, snd_config_t *dest, snd_config_t *attr_cfg)
+static int pre_process_add_objects(struct tplg_pre_processor *tplg_pp ATTRIBUTE_UNUSED,
+ int *object_count, snd_config_t *src,
+ snd_config_t *dest, snd_config_t *attr_cfg)
{
snd_config_iterator_t i, next;
int ret;
--
2.35.3

View File

@ -1,29 +0,0 @@
From 8c229270f6bae83b705a03714c46067a7aa57b02 Mon Sep 17 00:00:00 2001
From: Michael Opdenacker <michael.opdenacker@bootlin.com>
Date: Tue, 19 Sep 2023 13:14:29 +0200
Subject: [PATCH] topology: include locale.h
This solves an issue compiling with the musl libc.
Fixes: https://github.com/alsa-project/alsa-utils/issues/239
Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
topology/topology.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/topology/topology.c b/topology/topology.c
index 1840ffe65cba..5d03a8b133b8 100644
--- a/topology/topology.c
+++ b/topology/topology.c
@@ -32,6 +32,7 @@
#include <sys/stat.h>
#include <getopt.h>
#include <assert.h>
+#include <locale.h>
#include <alsa/asoundlib.h>
#include <alsa/topology.h>
--
2.35.3

View File

@ -1,29 +0,0 @@
From 0925ad7f09b2dc77015784f9ac2f5e34dd0dd5c3 Mon Sep 17 00:00:00 2001
From: Michael Opdenacker <michael.opdenacker@bootlin.com>
Date: Tue, 19 Sep 2023 13:14:30 +0200
Subject: [PATCH] nhlt-dmic-info.c: include sys/types.h
This fixes an issue compiling with the musl libc.
Fixes: https://github.com/alsa-project/alsa-utils/issues/238
Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
nhlt/nhlt-dmic-info.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c
index 3f6c64d992b9..331555a82677 100644
--- a/nhlt/nhlt-dmic-info.c
+++ b/nhlt/nhlt-dmic-info.c
@@ -33,6 +33,7 @@
#include <fcntl.h>
#include <getopt.h>
#include <sys/stat.h>
+#include <sys/types.h>
#include <arpa/inet.h>
int debug = 0;
--
2.35.3

View File

@ -1,124 +0,0 @@
From 68dd54784a0b2287015433a62600b28bbff49399 Mon Sep 17 00:00:00 2001
From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Date: Mon, 11 Sep 2023 08:18:15 -0700
Subject: [PATCH] topology: pre-processor: Add support for enum controls
Add support for adding enum controls in the topology pre-processor.
Closes: https://github.com/alsa-project/alsa-utils/pull/236
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
topology/pre-process-dapm.c | 26 ++++++++++++++++++++++++++
topology/pre-process-object.c | 14 +++++++++++++-
topology/pre-processor.h | 4 ++++
3 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/topology/pre-process-dapm.c b/topology/pre-process-dapm.c
index 9355a861757d..78944a6d9801 100644
--- a/topology/pre-process-dapm.c
+++ b/topology/pre-process-dapm.c
@@ -70,6 +70,26 @@ int tplg_build_channel_object(struct tplg_pre_processor *tplg_pp, snd_config_t *
return tplg_build_base_object(tplg_pp, obj_cfg, parent, false);
}
+int tplg_build_text_object(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
+ snd_config_t *parent)
+{
+ snd_config_t *cfg;
+ const char *name;
+ int ret;
+
+ cfg = tplg_object_get_instance_config(tplg_pp, obj_cfg);
+
+ name = tplg_object_get_name(tplg_pp, cfg);
+ if (!name)
+ return -EINVAL;
+
+ ret = tplg_build_object_from_template(tplg_pp, obj_cfg, &cfg, NULL, false);
+ if (ret < 0)
+ return ret;
+
+ return tplg_parent_update(tplg_pp, parent, "texts", name);
+}
+
int tplg_build_tlv_object(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
snd_config_t *parent)
{
@@ -131,6 +151,12 @@ int tplg_build_bytes_control(struct tplg_pre_processor *tplg_pp, snd_config_t *o
return tplg_build_control(tplg_pp, obj_cfg, parent, "bytes");
}
+int tplg_build_enum_control(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
+ snd_config_t *parent)
+{
+ return tplg_build_control(tplg_pp, obj_cfg, parent, "enum");
+}
+
/*
* Widget names for pipeline endpoints can be of the following type:
* "class.<constructor args separated by .> ex: pga.0.1, buffer.1.1 etc
diff --git a/topology/pre-process-object.c b/topology/pre-process-object.c
index 61cc85fbc43d..34b92033435c 100644
--- a/topology/pre-process-object.c
+++ b/topology/pre-process-object.c
@@ -117,7 +117,7 @@ int tplg_parent_update(struct tplg_pre_processor *tplg_pp, snd_config_t *parent,
return ret;
/* get section config */
- if (!strcmp(section_name, "tlv")) {
+ if (!strcmp(section_name, "tlv") || !strcmp(section_name, "texts")) {
/* set tlv name if config exists already */
ret = snd_config_search(cfg, section_name, &item_config);
if (ret < 0) {
@@ -1038,6 +1038,15 @@ const struct config_template_items bytes_control_config = {
.compound_config_ids = {"access"}
};
+const struct config_template_items enum_control_config = {
+ .int_config_ids = {"index"},
+ .compound_config_ids = {"access"}
+};
+
+const struct config_template_items text_config = {
+ .compound_config_ids = {"values"}
+};
+
const struct config_template_items scale_config = {
.int_config_ids = {"min", "step", "mute"},
};
@@ -1073,6 +1082,7 @@ const struct build_function_map object_build_map[] = {
{"Base", "ops", "ops" ,&tplg_build_ops_object, NULL, &ops_config},
{"Base", "extops", "extops" ,&tplg_build_ops_object, NULL, &ops_config},
{"Base", "channel", "channel", &tplg_build_channel_object, NULL, &channel_config},
+ {"Base", "text", "SectionText", &tplg_build_text_object, NULL, &text_config},
{"Base", "VendorToken", "SectionVendorTokens", &tplg_build_vendor_token_object,
NULL, NULL},
{"Base", "hw_config", "SectionHWConfig", &tplg_build_hw_cfg_object, NULL,
@@ -1085,6 +1095,8 @@ const struct build_function_map object_build_map[] = {
&mixer_control_config},
{"Control", "bytes", "SectionControlBytes", &tplg_build_bytes_control, NULL,
&bytes_control_config},
+ {"Control", "enum", "SectionControlEnum", &tplg_build_enum_control, NULL,
+ &enum_control_config},
{"Dai", "", "SectionBE", &tplg_build_generic_object, NULL, &be_dai_config},
{"PCM", "pcm", "SectionPCM", &tplg_build_generic_object, NULL, &pcm_config},
{"PCM", "pcm_caps", "SectionPCMCapabilities", &tplg_build_pcm_caps_object,
diff --git a/topology/pre-processor.h b/topology/pre-processor.h
index 878653d4c849..3a8a4bc3b1a8 100644
--- a/topology/pre-processor.h
+++ b/topology/pre-processor.h
@@ -70,6 +70,10 @@ int tplg_build_mixer_control(struct tplg_pre_processor *tplg_pp, snd_config_t *o
snd_config_t *parent);
int tplg_build_bytes_control(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
snd_config_t *parent);
+int tplg_build_enum_control(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
+ snd_config_t *parent);
+int tplg_build_text_object(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
+ snd_config_t *parent);
int tplg_build_dapm_route_object(struct tplg_pre_processor *tplg_pp, snd_config_t *obj_cfg,
snd_config_t *parent);
int tplg_build_hw_cfg_object(struct tplg_pre_processor *tplg_pp,
--
2.35.3

View File

@ -1,38 +0,0 @@
From 31e91f911e9132171a87fb7966c3f4701ff9717c Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd@kuhls.net>
Date: Fri, 13 Oct 2023 20:32:32 +0200
Subject: [PATCH] configure.ac: fix UMP support detection
https://github.com/alsa-project/alsa-utils/commit/b399fb85a919636b7da34e8bcf17f484dd9046f7
added usage of alsa/ump_msg.h without checking whether alsa-lib was
compiled with rawmidi support:
https://github.com/alsa-project/alsa-lib/blob/master/include/Makefile.am#L37
Fixes a build error when alsa-lib was compiled with --disable-rawmidi
aplaymidi.c:34:10: fatal error: alsa/ump_msg.h: No such file or directory
34 | #include <alsa/ump_msg.h>
Closes: https://github.com/alsa-project/alsa-utils/pull/240
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index beb496393df5..42177416dafe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -55,7 +55,7 @@ if test "$HAVE_SEQ_CLIENT_INFO_GET_PID" = "yes" ; then
AC_DEFINE([HAVE_SEQ_CLIENT_INFO_GET_PID], 1, [alsa-lib supports snd_seq_client_info_get_pid])
fi
AC_CHECK_LIB([asound], [snd_seq_client_info_get_midi_version], [HAVE_SEQ_CLIENT_INFO_GET_MIDI_VERSION="yes"])
-if test "$HAVE_SEQ_CLIENT_INFO_GET_MIDI_VERSION" = "yes" ; then
+if test "$HAVE_SEQ_CLIENT_INFO_GET_MIDI_VERSION" = "yes" -a "$have_rawmidi" = "yes"; then
AC_DEFINE([HAVE_SEQ_CLIENT_INFO_GET_MIDI_VERSION], 1, [alsa-lib supports snd_seq_client_info_get_midi_version])
fi
AC_CHECK_LIB([atopology], [snd_tplg_save], [have_topology="yes"], [have_topology="no"])
--
2.35.3

View File

@ -1,44 +0,0 @@
From 039e4cad48a01437d195914b57b5da83ebc582c3 Mon Sep 17 00:00:00 2001
From: Delio Brignoli <dbrignoli@audioscience.com>
Date: Mon, 18 Sep 2023 09:33:37 +0100
Subject: [PATCH] bat: really skip analysis of the first period and update
related comment
Prior to this change bat/analyze.c would skip the last period of the recording, contrary to
what the comment in the code which stated the first period was meant to be skipped.
The comment has been updated to state that both the first and last period are skipped and the code
has been updated to match.
Closes: https://github.com/alsa-project/alsa-utils/pull/237
Signed-off-by: Delio Brignoli <dbrignoli@audioscience.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
bat/analyze.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bat/analyze.c b/bat/analyze.c
index 686788000f99..b8d02706fe66 100644
--- a/bat/analyze.c
+++ b/bat/analyze.c
@@ -299,7 +299,7 @@ static int calculate_noise(struct bat *bat, float *src, int channel)
/* each section has 2 sine periods, the first one for locating
* and the second one for noise calculating */
int nsamples_per_section = nsamples * 2;
- /* all sine periods will be calculated except the first one */
+ /* all sine periods will be calculated except the first and last one */
int nsection = bat->frames / nsamples - 1;
fprintf(bat->log, _("samples per period: %d\n"), nsamples);
@@ -331,7 +331,7 @@ static int calculate_noise(struct bat *bat, float *src, int channel)
/* calculate average noise level */
sum_snr_pc = 0.0;
cnt_clean = cnt_noise = 0;
- for (i = 0, offset = 0; i < nsection; i++) {
+ for (i = 1, offset = nsamples; i < nsection; i++) {
na.snr_db = SNR_DB_INVALID;
err = calculate_noise_one_period(bat, &na, src + offset,
--
2.35.3

View File

@ -1,39 +0,0 @@
From d272c5d935b2ff8acc00f16317f1f960b02ed3a1 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Thu, 7 Sep 2023 21:23:51 +0100
Subject: [PATCH] topology: add include for ENABLE_NLS on musl
Needed for setlocale().
(After rebasing to pick up 8c229270f6bae83b705a03714c46067a7aa57b02, just
move it to be guarded as the include now exists.)
Closes: https://github.com/alsa-project/alsa-utils/pull/234
Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
topology/topology.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/topology/topology.c b/topology/topology.c
index 5d03a8b133b8..98b000aa5031 100644
--- a/topology/topology.c
+++ b/topology/topology.c
@@ -32,11 +32,13 @@
#include <sys/stat.h>
#include <getopt.h>
#include <assert.h>
-#include <locale.h>
#include <alsa/asoundlib.h>
#include <alsa/topology.h>
#include "gettext.h"
+#ifdef ENABLE_NLS
+#include <locale.h>
+#endif
#include "version.h"
#include "topology.h"
--
2.35.3

View File

@ -1,109 +0,0 @@
From c08d580b281bd5965585bf09b45ba3a582202931 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Thu, 7 Sep 2023 21:24:16 +0100
Subject: [PATCH] nhlt: use stdint.h types
u_int_* aren't standard, but uint* are. Use those instead for musl compat.
Closes: https://github.com/alsa-project/alsa-utils/pull/234
Bug: https://bugs.gentoo.org/913758
Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
nhlt/nhlt-dmic-info.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c
index 331555a82677..eadf21a11bbc 100644
--- a/nhlt/nhlt-dmic-info.c
+++ b/nhlt/nhlt-dmic-info.c
@@ -46,7 +46,7 @@ int debug = 0;
#define NHLT_EP_HDR_SIZE (4 + 1 + 1 + 2 + 2 + 2 + 4 + 1 + 1 + 1)
#define VENDOR_MIC_CFG_SIZE (1 + 1 + 2 + 2 + 2 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2)
-static const char *microphone_type(u_int8_t type)
+static const char *microphone_type(uint8_t type)
{
switch (type) {
case 0: return "omnidirectional";
@@ -60,7 +60,7 @@ static const char *microphone_type(u_int8_t type)
return "unknown";
}
-static const char *microphone_location(u_int8_t location)
+static const char *microphone_location(uint8_t location)
{
switch (location) {
case 0: return "laptop-top-panel";
@@ -74,21 +74,21 @@ static const char *microphone_location(u_int8_t location)
}
-static inline u_int8_t get_u8(u_int8_t *base, u_int32_t off)
+static inline uint8_t get_u8(uint8_t *base, uint32_t off)
{
return *(base + off);
}
-static inline int32_t get_s16le(u_int8_t *base, u_int32_t off)
+static inline int32_t get_s16le(uint8_t *base, uint32_t off)
{
- u_int32_t v = *(base + off + 0) |
+ uint32_t v = *(base + off + 0) |
(*(base + off + 1) << 8);
if (v & 0x8000)
return -((int32_t)0x10000 - (int32_t)v);
return v;
}
-static inline u_int32_t get_u32le(u_int8_t *base, u_int32_t off)
+static inline uint32_t get_u32le(uint8_t *base, uint32_t off)
{
return *(base + off + 0) |
(*(base + off + 1) << 8) |
@@ -138,10 +138,10 @@ static int nhlt_dmic_config(FILE *out, uint8_t *dmic, uint8_t mic)
return 0;
}
-static int nhlt_dmic_ep_to_json(FILE *out, uint8_t *ep, u_int32_t ep_size)
+static int nhlt_dmic_ep_to_json(FILE *out, uint8_t *ep, uint32_t ep_size)
{
- u_int32_t off, specific_cfg_size;
- u_int8_t config_type, array_type, mic, num_mics;
+ uint32_t off, specific_cfg_size;
+ uint8_t config_type, array_type, mic, num_mics;
int res;
off = NHLT_EP_HDR_SIZE;
@@ -182,15 +182,15 @@ oob:
return -EINVAL;
}
-static int nhlt_table_to_json(FILE *out, u_int8_t *nhlt, u_int32_t size)
+static int nhlt_table_to_json(FILE *out, uint8_t *nhlt, uint32_t size)
{
- u_int32_t _size, off, ep_size;
- u_int8_t sum = 0, ep, ep_count, link_type, dmics = 0;
+ uint32_t _size, off, ep_size;
+ uint8_t sum = 0, ep, ep_count, link_type, dmics = 0;
int res;
_size = get_u32le(nhlt, 4);
if (_size != size) {
- fprintf(stderr, "Table size mismatch (%08x != %08x)\n", _size, (u_int32_t)size);
+ fprintf(stderr, "Table size mismatch (%08x != %08x)\n", _size, (uint32_t)size);
return -EINVAL;
}
for (off = 0; off < size; off++)
@@ -232,7 +232,7 @@ oob:
static int nhlt_to_json(FILE *out, const char *nhlt_file)
{
struct stat st;
- u_int8_t *buf;
+ uint8_t *buf;
int _errno, fd, res;
size_t pos, size;
ssize_t ret;
--
2.35.3

View File

@ -1,32 +0,0 @@
From 5ae01fcf270864d379eefd81f1abc5b71907a72b Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Sat, 30 Sep 2023 10:09:46 +0100
Subject: [PATCH] Revert "nhlt-dmic-info.c: include sys/types.h"
This reverts commit 0925ad7f09b2dc77015784f9ac2f5e34dd0dd5c3.
This isn't necessary now that we use standard types (sys/types.h just
defines some compatibility typedefs).
Closes: https://github.com/alsa-project/alsa-utils/pull/234
Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
nhlt/nhlt-dmic-info.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c
index eadf21a11bbc..f1b085742510 100644
--- a/nhlt/nhlt-dmic-info.c
+++ b/nhlt/nhlt-dmic-info.c
@@ -33,7 +33,6 @@
#include <fcntl.h>
#include <getopt.h>
#include <sys/stat.h>
-#include <sys/types.h>
#include <arpa/inet.h>
int debug = 0;
--
2.35.3

View File

@ -1,451 +0,0 @@
From 37447085c6fc975d191ecb508931a67bce79233d Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Tue, 17 Oct 2023 13:44:03 +0200
Subject: [PATCH] aplay: use stdint.h types instead u_int/u_short/u_char
Closes: https://github.com/alsa-project/alsa-utils/pull/234
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
aplay/aplay.c | 92 ++++++++++++++++++++++++-------------------------
aplay/formats.h | 70 ++++++++++++++++++-------------------
2 files changed, 81 insertions(+), 81 deletions(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index f180d42b5516..9cf36dee2d9d 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -29,6 +29,7 @@
#define _GNU_SOURCE
#include "aconfig.h"
#include <stdio.h>
+#include <stdint.h>
#if HAVE_MALLOC_H
#include <malloc.h>
#endif
@@ -50,7 +51,6 @@
#include <sys/uio.h>
#include <sys/time.h>
#include <sys/stat.h>
-#include <sys/types.h>
#include <endian.h>
#include "gettext.h"
#include "formats.h"
@@ -114,7 +114,7 @@ static int mmap_flag = 0;
static int interleaved = 1;
static int nonblock = 0;
static volatile sig_atomic_t in_aborting = 0;
-static u_char *audiobuf = NULL;
+static uint8_t *audiobuf = NULL;
static snd_pcm_uframes_t chunk_size = 0;
static unsigned period_time = 0;
static unsigned buffer_time = 0;
@@ -859,7 +859,7 @@ int main(int argc, char *argv[])
chunk_size = 1024;
hwparams = rhwparams;
- audiobuf = (u_char *)malloc(1024);
+ audiobuf = (uint8_t *)malloc(1024);
if (audiobuf == NULL) {
error(_("not enough memory"));
return 1;
@@ -970,7 +970,7 @@ static int test_vocfile(void *buffer)
* helper for test_wavefile
*/
-static size_t test_wavefile_read(int fd, u_char *buffer, size_t *size, size_t reqsize, int line)
+static size_t test_wavefile_read(int fd, uint8_t *buffer, size_t *size, size_t reqsize, int line)
{
if (*size >= reqsize)
return *size;
@@ -995,17 +995,17 @@ static size_t test_wavefile_read(int fd, u_char *buffer, size_t *size, size_t re
* == 0 if not
* Value returned is bytes to be discarded.
*/
-static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
+static ssize_t test_wavefile(int fd, uint8_t *_buffer, size_t size)
{
WaveHeader *h = (WaveHeader *)_buffer;
- u_char *buffer = NULL;
+ uint8_t *buffer = NULL;
size_t blimit = 0;
WaveFmtBody *f;
WaveChunkHeader *c;
- u_int type, len;
+ uint32_t type, len;
unsigned short format, channels;
int big_endian, native_format;
- u_char vbps = 0;
+ uint8_t vbps = 0;
if (size < sizeof(WaveHeader))
return -1;
@@ -1044,7 +1044,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
if (len < sizeof(WaveFmtBody)) {
error(_("unknown length of 'fmt ' chunk (read %u, should be %u at least)"),
- len, (u_int)sizeof(WaveFmtBody));
+ len, (uint32_t)sizeof(WaveFmtBody));
prg_exit(EXIT_FAILURE);
}
check_wavefile_space(buffer, len, blimit);
@@ -1055,7 +1055,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
WaveFmtExtensibleBody *fe = (WaveFmtExtensibleBody*)buffer;
if (len < sizeof(WaveFmtExtensibleBody)) {
error(_("unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"),
- len, (u_int)sizeof(WaveFmtExtensibleBody));
+ len, (unsigned int)sizeof(WaveFmtExtensibleBody));
prg_exit(EXIT_FAILURE);
}
if (memcmp(fe->guid_tag, WAV_GUID_TAG, 14) != 0) {
@@ -1167,7 +1167,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
size -= len;
while (1) {
- u_int type, len;
+ uint32_t type, len;
check_wavefile_space(buffer, sizeof(WaveChunkHeader), blimit);
test_wavefile_read(fd, buffer, &size, sizeof(WaveChunkHeader), __LINE__);
@@ -1809,7 +1809,7 @@ static void print_vu_meter(signed int *perc, signed int *maxperc)
}
/* peak handler */
-static void compute_max_peak(u_char *data, size_t samples)
+static void compute_max_peak(uint8_t *data, size_t samples)
{
signed int val, max, perc[2], max_peak[2];
static int run = 0;
@@ -2054,9 +2054,9 @@ static void do_test_position(void)
/*
*/
#ifdef CONFIG_SUPPORT_CHMAP
-static u_char *remap_data(u_char *data, size_t count)
+static uint8_t *remap_data(uint8_t *data, size_t count)
{
- static u_char *tmp, *src, *dst;
+ static uint8_t *tmp, *src, *dst;
static size_t tmp_size;
size_t sample_bytes = bits_per_sample / 8;
size_t step = bits_per_frame / 8;
@@ -2090,9 +2090,9 @@ static u_char *remap_data(u_char *data, size_t count)
return tmp;
}
-static u_char **remap_datav(u_char **data, size_t count ATTRIBUTE_UNUSED)
+static uint8_t **remap_datav(uint8_t **data, size_t count ATTRIBUTE_UNUSED)
{
- static u_char **tmp;
+ static uint8_t **tmp;
unsigned int ch;
if (!hw_map)
@@ -2118,7 +2118,7 @@ static u_char **remap_datav(u_char **data, size_t count ATTRIBUTE_UNUSED)
* write function
*/
-static ssize_t pcm_write(u_char *data, size_t count)
+static ssize_t pcm_write(uint8_t *data, size_t count)
{
ssize_t r;
ssize_t result = 0;
@@ -2157,7 +2157,7 @@ static ssize_t pcm_write(u_char *data, size_t count)
return result;
}
-static ssize_t pcm_writev(u_char **data, unsigned int channels, size_t count)
+static ssize_t pcm_writev(uint8_t **data, unsigned int channels, size_t count)
{
ssize_t r;
size_t result = 0;
@@ -2210,7 +2210,7 @@ static ssize_t pcm_writev(u_char **data, unsigned int channels, size_t count)
* read function
*/
-static ssize_t pcm_read(u_char *data, size_t rcount)
+static ssize_t pcm_read(uint8_t *data, size_t rcount)
{
ssize_t r;
size_t result = 0;
@@ -2252,7 +2252,7 @@ abort:
return result > rcount ? rcount : result;
}
-static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
+static ssize_t pcm_readv(uint8_t **data, unsigned int channels, size_t rcount)
{
ssize_t r;
size_t result = 0;
@@ -2304,7 +2304,7 @@ abort:
* ok, let's play a .voc file
*/
-static ssize_t voc_pcm_write(u_char *data, size_t count)
+static ssize_t voc_pcm_write(uint8_t *data, size_t count)
{
ssize_t result = count, r;
size_t size;
@@ -2329,9 +2329,9 @@ static ssize_t voc_pcm_write(u_char *data, size_t count)
static void voc_write_silence(unsigned x)
{
unsigned l;
- u_char *buf;
+ uint8_t *buf;
- buf = (u_char *) malloc(chunk_bytes);
+ buf = (uint8_t *) malloc(chunk_bytes);
if (buf == NULL) {
error(_("can't allocate buffer for silence"));
return; /* not fatal error */
@@ -2372,15 +2372,15 @@ static void voc_play(int fd, int ofs, char *name)
VocVoiceData *vd;
VocExtBlock *eb;
size_t nextblock, in_buffer;
- u_char *data, *buf;
+ uint8_t *data, *buf;
char was_extended = 0, output = 0;
- u_short *sp, repeat = 0;
+ uint16_t *sp, repeat = 0;
off_t filepos = 0;
#define COUNT(x) nextblock -= x; in_buffer -= x; data += x
#define COUNT1(x) in_buffer -= x; data += x
- data = buf = (u_char *)malloc(64 * 1024);
+ data = buf = (uint8_t *)malloc(64 * 1024);
buffer_pos = 0;
if (data == NULL) {
error(_("malloc error"));
@@ -2472,8 +2472,8 @@ static void voc_play(int fd, int ofs, char *name)
#endif
break;
case 3: /* a silence block, no data, only a count */
- sp = (u_short *) data;
- COUNT1(sizeof(u_short));
+ sp = (uint16_t *) data;
+ COUNT1(sizeof(uint16_t));
hwparams.rate = (int) (*data);
COUNT1(1);
hwparams.rate = 1000000 / (256 - hwparams.rate);
@@ -2488,8 +2488,8 @@ static void voc_play(int fd, int ofs, char *name)
voc_write_silence(*sp);
break;
case 4: /* a marker for syncronisation, no effect */
- sp = (u_short *) data;
- COUNT1(sizeof(u_short));
+ sp = (uint16_t *) data;
+ COUNT1(sizeof(uint16_t));
#if 0
d_printf("Marker %d\n", *sp);
#endif
@@ -2503,8 +2503,8 @@ static void voc_play(int fd, int ofs, char *name)
case 6: /* repeat marker, says repeatcount */
/* my specs don't say it: maybe this can be recursive, but
I don't think somebody use it */
- repeat = *(u_short *) data;
- COUNT1(sizeof(u_short));
+ repeat = *(uint16_t *) data;
+ COUNT1(sizeof(uint16_t));
#if 0
d_printf("Repeat loop %d times\n", repeat);
#endif
@@ -2649,14 +2649,14 @@ static void begin_voc(int fd, size_t cnt)
}
bt.type = 1;
cnt += sizeof(VocVoiceData); /* Channel_data block follows */
- bt.datalen = (u_char) (cnt & 0xFF);
- bt.datalen_m = (u_char) ((cnt & 0xFF00) >> 8);
- bt.datalen_h = (u_char) ((cnt & 0xFF0000) >> 16);
+ bt.datalen = (uint8_t) (cnt & 0xFF);
+ bt.datalen_m = (uint8_t) ((cnt & 0xFF00) >> 8);
+ bt.datalen_h = (uint8_t) ((cnt & 0xFF0000) >> 16);
if (xwrite(fd, &bt, sizeof(VocBlockType)) != sizeof(VocBlockType)) {
error(_("write error"));
prg_exit(EXIT_FAILURE);
}
- vd.tc = (u_char) (256 - (1000000 / hwparams.rate));
+ vd.tc = (uint8_t) (256 - (1000000 / hwparams.rate));
vd.pack = 0;
if (xwrite(fd, &vd, sizeof(VocVoiceData)) != sizeof(VocVoiceData)) {
error(_("write error"));
@@ -2671,8 +2671,8 @@ static void begin_wave(int fd, size_t cnt)
WaveFmtBody f;
WaveChunkHeader cf, cd;
int bits;
- u_int tmp;
- u_short tmp2;
+ uint32_t tmp;
+ uint16_t tmp2;
/* WAVE cannot handle greater than 32bit (signed?) int */
if (cnt == (size_t)-2)
@@ -2715,11 +2715,11 @@ static void begin_wave(int fd, size_t cnt)
#if 0
tmp2 = (samplesize == 8) ? 1 : 2;
f.byte_p_spl = LE_SHORT(tmp2);
- tmp = dsp_speed * hwparams.channels * (u_int) tmp2;
+ tmp = dsp_speed * hwparams.channels * (uint32_t) tmp2;
#else
tmp2 = hwparams.channels * snd_pcm_format_physical_width(hwparams.format) / 8;
f.byte_p_spl = LE_SHORT(tmp2);
- tmp = (u_int) tmp2 * hwparams.rate;
+ tmp = (uint32_t) tmp2 * hwparams.rate;
#endif
f.byte_p_sec = LE_INT(tmp);
f.bit_p_spl = LE_SHORT(bits);
@@ -2786,9 +2786,9 @@ static void end_voc(int fd)
cnt += sizeof(VocVoiceData); /* Channel_data block follows */
if (cnt > 0x00ffffff)
cnt = 0x00ffffff;
- bt.datalen = (u_char) (cnt & 0xFF);
- bt.datalen_m = (u_char) ((cnt & 0xFF00) >> 8);
- bt.datalen_h = (u_char) ((cnt & 0xFF0000) >> 16);
+ bt.datalen = (uint8_t) (cnt & 0xFF);
+ bt.datalen_m = (uint8_t) ((cnt & 0xFF00) >> 8);
+ bt.datalen_h = (uint8_t) ((cnt & 0xFF0000) >> 16);
if (lseek(fd, length_seek, SEEK_SET) == length_seek)
xwrite(fd, &bt, sizeof(VocBlockType));
}
@@ -2798,7 +2798,7 @@ static void end_wave(int fd)
WaveChunkHeader cd;
off_t length_seek;
off_t filelen;
- u_int rifflen;
+ uint32_t rifflen;
length_seek = sizeof(WaveHeader) +
sizeof(WaveChunkHeader) +
@@ -3339,7 +3339,7 @@ static void playbackv_go(int* fds, unsigned int channels, size_t loaded, off_t c
size_t vsize;
unsigned int channel;
- u_char *bufs[channels];
+ uint8_t *bufs[channels];
header(rtype, names[0]);
set_params();
@@ -3393,7 +3393,7 @@ static void capturev_go(int* fds, unsigned int channels, off_t count, int rtype,
ssize_t r;
unsigned int channel;
size_t vsize;
- u_char *bufs[channels];
+ uint8_t *bufs[channels];
header(rtype, names[0]);
set_params();
diff --git a/aplay/formats.h b/aplay/formats.h
index 093ab809382e..d82505e4626f 100644
--- a/aplay/formats.h
+++ b/aplay/formats.h
@@ -17,28 +17,28 @@
((u_long)(bp->datalen_h) << 16) )
typedef struct voc_header {
- u_char magic[20]; /* must be MAGIC_STRING */
- u_short headerlen; /* Headerlength, should be 0x1A */
- u_short version; /* VOC-file version */
- u_short coded_ver; /* 0x1233-version */
+ uint8_t magic[20]; /* must be MAGIC_STRING */
+ uint16_t headerlen; /* Headerlength, should be 0x1A */
+ uint16_t version; /* VOC-file version */
+ uint16_t coded_ver; /* 0x1233-version */
} VocHeader;
typedef struct voc_blocktype {
- u_char type;
- u_char datalen; /* low-byte */
- u_char datalen_m; /* medium-byte */
- u_char datalen_h; /* high-byte */
+ uint8_t type;
+ uint8_t datalen; /* low-byte */
+ uint8_t datalen_m; /* medium-byte */
+ uint8_t datalen_h; /* high-byte */
} VocBlockType;
typedef struct voc_voice_data {
- u_char tc;
- u_char pack;
+ uint8_t tc;
+ uint8_t pack;
} VocVoiceData;
typedef struct voc_ext_block {
- u_short tc;
- u_char pack;
- u_char mode;
+ uint16_t tc;
+ uint8_t pack;
+ uint8_t mode;
} VocExtBlock;
/* Definitions for Microsoft WAVE format */
@@ -85,32 +85,32 @@ typedef struct voc_ext_block {
it works on all WAVE-file I have
*/
typedef struct {
- u_int magic; /* 'RIFF' */
- u_int length; /* filelen */
- u_int type; /* 'WAVE' */
+ uint32_t magic; /* 'RIFF' */
+ uint32_t length; /* filelen */
+ uint32_t type; /* 'WAVE' */
} WaveHeader;
typedef struct {
- u_short format; /* see WAV_FMT_* */
- u_short channels;
- u_int sample_fq; /* frequence of sample */
- u_int byte_p_sec;
- u_short byte_p_spl; /* samplesize; 1 or 2 bytes */
- u_short bit_p_spl; /* 8, 12 or 16 bit */
+ uint16_t format; /* see WAV_FMT_* */
+ uint16_t channels;
+ uint32_t sample_fq; /* frequence of sample */
+ uint32_t byte_p_sec;
+ uint16_t byte_p_spl; /* samplesize; 1 or 2 bytes */
+ uint16_t bit_p_spl; /* 8, 12 or 16 bit */
} WaveFmtBody;
typedef struct {
WaveFmtBody format;
- u_short ext_size;
- u_short bit_p_spl;
- u_int channel_mask;
- u_short guid_format; /* WAV_FMT_* */
- u_char guid_tag[14]; /* WAV_GUID_TAG */
+ uint16_t ext_size;
+ uint16_t bit_p_spl;
+ uint32_t channel_mask;
+ uint16_t guid_format; /* WAV_FMT_* */
+ uint8_t guid_tag[14]; /* WAV_GUID_TAG */
} WaveFmtExtensibleBody;
typedef struct {
- u_int type; /* 'data' */
- u_int length; /* samplecount */
+ uint32_t type; /* 'data' */
+ uint32_t length; /* samplecount */
} WaveChunkHeader;
/* Definitions for Sparc .au header */
@@ -122,12 +122,12 @@ typedef struct {
#define AU_FMT_LIN16 3
typedef struct au_header {
- u_int magic; /* '.snd' */
- u_int hdr_size; /* size of header (min 24) */
- u_int data_size; /* size of data */
- u_int encoding; /* see to AU_FMT_XXXX */
- u_int sample_rate; /* sample rate */
- u_int channels; /* number of channels (voices) */
+ uint32_t magic; /* '.snd' */
+ uint32_t hdr_size; /* size of header (min 24) */
+ uint32_t data_size; /* size of data */
+ uint32_t encoding; /* see to AU_FMT_XXXX */
+ uint32_t sample_rate; /* sample rate */
+ uint32_t channels; /* number of channels (voices) */
} AuHeader;
#endif /* FORMATS */
--
2.35.3

View File

@ -1,28 +0,0 @@
From b5591747fd432d6289c9594a481982a77d357ed5 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Wed, 15 Nov 2023 15:02:31 +0100
Subject: [PATCH] alsa-restore.rules: use devnode instead number atribute
Fixes: https://github.com/alsa-project/alsa-utils/issues/244
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
alsactl/90-alsa-restore.rules.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in
index c0c1b232bb38..1a411c994870 100644
--- a/alsactl/90-alsa-restore.rules.in
+++ b/alsactl/90-alsa-restore.rules.in
@@ -2,7 +2,7 @@ ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST==
GOTO="alsa_restore_end"
LABEL="alsa_restore_go"
-TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl restore $attr{device/number}"
-TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl nrestore $attr{device/number}"
+TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl restore $devnode"
+TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl nrestore $devnode"
LABEL="alsa_restore_end"
--
2.35.3

View File

@ -1,43 +0,0 @@
From 8f3d84ba19a45411f08bae13ee4dcd8329aa9438 Mon Sep 17 00:00:00 2001
From: Andy Ross <andyross@google.com>
Date: Thu, 7 Dec 2023 09:17:57 -0800
Subject: [PATCH] nhlt: Revert SSP_ANALOG device_type field
This partially reverts commit 3a47ef2487ed ("topology: nhlt: intel:
support more device types and directions"), which changed the default
device_type in the endpoint descriptor from zero to SSP_ANALOG.
This change breaks the Linux kernel NHLT parser (which AFAICT doesn't
recognize SSP_ANALOG at all), producing errors like:
[56458.583812] sof-audio-pci-intel-mtl 0000:00:1f.3: no matching blob for sample rate: 48000 sample width: 32 channels: 2
[56458.583833] sof-audio-pci-intel-mtl 0000:00:1f.3: failed to prepare widget dai-copier.SSP.SSP0-Codec.playback
[56458.583840] sof-audio-pci-intel-mtl 0000:00:1f.3: Failed to prepare connected widgets
[56458.583847] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed widget list set up for pcm 1 dir 0
[56458.583853] sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22
Revert for compatibility.
Fixes: https://github.com/alsa-project/alsa-utils/pull/248
Signed-off-by: Andy Ross <andyross@google.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
topology/nhlt/intel/ssp/ssp-process.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/topology/nhlt/intel/ssp/ssp-process.c b/topology/nhlt/intel/ssp/ssp-process.c
index 17b88d2b712b..d8fbba43f4c7 100644
--- a/topology/nhlt/intel/ssp/ssp-process.c
+++ b/topology/nhlt/intel/ssp/ssp-process.c
@@ -783,7 +783,7 @@ int ssp_get_params(struct intel_nhlt_params *nhlt, int dai_index, uint32_t *virt
if (ssp->ssp_prm[dai_index].quirks & SSP_INTEL_QUIRK_BT_SIDEBAND)
*device_type = NHLT_DEVICE_TYPE_SSP_BT_SIDEBAND;
else
- *device_type = NHLT_DEVICE_TYPE_SSP_ANALOG;
+ *device_type = 0;
if (ssp->ssp_prm[dai_index].quirks & SSP_INTEL_QUIRK_RENDER_FEEDBACK) {
if (*direction == NHLT_ENDPOINT_DIRECTION_RENDER)
*direction = NHLT_ENDPOINT_DIRECTION_RENDER_WITH_LOOPBACK;
--
2.35.3

View File

@ -1,31 +0,0 @@
From 004d085c675c56f866f008dbf712ee7503de5b27 Mon Sep 17 00:00:00 2001
From: Mingjie Shen <shen497@purdue.edu>
Date: Wed, 6 Dec 2023 16:49:26 -0500
Subject: [PATCH] alsactl: fix potential buffer overwrite
The 'call to sprintf' operation on line 413 requires 21 bytes
but the destination is only 16 bytes.
Fixes: https://github.com/alsa-project/alsa-utils/pull/247
Signed-off-by: Mingjie Shen <shen497@purdue.edu>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
alsactl/alsactl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/alsactl/alsactl.c b/alsactl/alsactl.c
index a854c0bdc16f..8ad991a0f36b 100644
--- a/alsactl/alsactl.c
+++ b/alsactl/alsactl.c
@@ -242,7 +242,7 @@ int main(int argc, char *argv[])
char *cfgfile = SYS_ASOUNDRC;
char *initfile = DATADIR "/init/00main";
char *pidfile = SYS_PIDFILE;
- char *cardname, ncardname[16];
+ char *cardname, ncardname[21];
char *cmd;
char *const *extra_args;
const char *const *tmp;
--
2.35.3

View File

@ -1,70 +0,0 @@
From 4ce6a0a4af518700c3e44257af5f44ff24d58fc9 Mon Sep 17 00:00:00 2001
From: Mingjie Shen <shen497@purdue.edu>
Date: Wed, 6 Dec 2023 16:09:58 -0500
Subject: [PATCH] aplay: fix buffer overflow and tainted format string
Prior this commit, memcpy from names[0] to format[] will overwrite if
strlen(names[0]) is greater than 1024. Also, the length of malloc()ed
names[channel] is insufficient, leading to another buffer overwriting
when calling sprintf(). Moreover, the format string of sprintf()
can be controlled by user input. An attacker can exploit this weakness
to crash the program, disclose information or even execute arbitrary
code.
Fix by allocating enough space for arrays and using constant expressions
as the format strings.
Fixes: https://github.com/alsa-project/alsa-utils/pull/246/
Signed-off-by: Mingjie Shen <shen497@purdue.edu>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
aplay/aplay.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index 9cf36dee2d9d..f1c27b6c4929 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -3436,14 +3436,14 @@ static void playbackv(char **names, unsigned int count)
if (count == 1 && channels > 1) {
size_t len = strlen(names[0]);
- char format[1024];
- memcpy(format, names[0], len);
- strcpy(format + len, ".%d");
- len += 4;
+ char buf[len + 1];
+ strcpy(buf, names[0]);
+ /* 1 for "." + 3 for channel (<= 256) + 1 for null terminator */
+ len += 5;
names = malloc(sizeof(*names) * channels);
for (channel = 0; channel < channels; ++channel) {
names[channel] = malloc(len);
- sprintf(names[channel], format, channel);
+ snprintf(names[channel], len, "%s.%d", buf, channel);
}
alloced = 1;
} else if (count != channels) {
@@ -3489,14 +3489,14 @@ static void capturev(char **names, unsigned int count)
if (count == 1) {
size_t len = strlen(names[0]);
- char format[1024];
- memcpy(format, names[0], len);
- strcpy(format + len, ".%d");
- len += 4;
+ char buf[len + 1];
+ strcpy(buf, names[0]);
+ /* 1 for "." + 3 for channel (<= 256) + 1 for null terminator */
+ len += 5;
names = malloc(sizeof(*names) * channels);
for (channel = 0; channel < channels; ++channel) {
names[channel] = malloc(len);
- sprintf(names[channel], format, channel);
+ snprintf(names[channel], len, "%s.%d", buf, channel);
}
alloced = 1;
} else if (count != channels) {
--
2.35.3

View File

@ -1,102 +0,0 @@
From edff9652c050935ad7a0131b5585b4dad5e42296 Mon Sep 17 00:00:00 2001
From: Tianyi Liu <i.pear@outlook.com>
Date: Tue, 21 Nov 2023 23:19:35 +0800
Subject: [PATCH] misc: fix incorrect usages of `strerror`
`strerror` takes the `errno` directly as its argument,
negating it will result in an "Unknown error".
This fixes such usages across multiple modules.
Fixes: https://github.com/alsa-project/alsa-utils/pull/245
Signed-off-by: Tianyi Liu <i.pear@outlook.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
alsaucm/usecase.c | 2 +-
nhlt/nhlt-dmic-info.c | 2 +-
topology/topology.c | 12 ++++++------
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/alsaucm/usecase.c b/alsaucm/usecase.c
index a5c815591dca..0aea84c6cd1e 100644
--- a/alsaucm/usecase.c
+++ b/alsaucm/usecase.c
@@ -510,7 +510,7 @@ int main(int argc, char *argv[])
in = fopen(context->batch, "r");
if (in == NULL) {
fprintf(stderr, "%s: error failed to open file '%s': %s\n",
- command, context->batch, strerror(-errno));
+ command, context->batch, strerror(errno));
my_exit(context, EXIT_FAILURE);
}
}
diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c
index f1b085742510..f08dc85d02eb 100644
--- a/nhlt/nhlt-dmic-info.c
+++ b/nhlt/nhlt-dmic-info.c
@@ -404,7 +404,7 @@ int main(int argc, char *argv[])
output = fopen(output_file, "w+");
if (output == NULL) {
fprintf(stderr, "Unable to create output file \"%s\": %s\n",
- output_file, strerror(-errno));
+ output_file, strerror(errno));
res = EXIT_FAILURE;
goto out;
}
diff --git a/topology/topology.c b/topology/topology.c
index 98b000aa5031..9752f8889367 100644
--- a/topology/topology.c
+++ b/topology/topology.c
@@ -96,7 +96,7 @@ static int load(const char *source_file, void **dst, size_t *dst_size)
fd = open(source_file, O_RDONLY);
if (fd < 0) {
fprintf(stderr, _("Unable to open input file '%s': %s\n"),
- source_file, strerror(-errno));
+ source_file, strerror(errno));
return 1;
}
}
@@ -120,7 +120,7 @@ static int load(const char *source_file, void **dst, size_t *dst_size)
buf = buf2;
}
if (r < 0) {
- fprintf(stderr, _("Read error: %s\n"), strerror(-errno));
+ fprintf(stderr, _("Read error: %s\n"), strerror(errno));
goto _err;
}
@@ -177,7 +177,7 @@ static int save(const char *output_file, void *buf, size_t size)
fd = open(fname, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
if (fd < 0) {
fprintf(stderr, _("Unable to open output file '%s': %s\n"),
- fname, strerror(-errno));
+ fname, strerror(errno));
return 1;
}
}
@@ -194,11 +194,11 @@ static int save(const char *output_file, void *buf, size_t size)
}
if (r < 0) {
- fprintf(stderr, _("Write error: %s\n"), strerror(-errno));
+ fprintf(stderr, _("Write error: %s\n"), strerror(errno));
if (fd != fileno(stdout)) {
if (fname && remove(fname))
fprintf(stderr, _("Unable to remove file %s: %s\n"),
- fname, strerror(-errno));
+ fname, strerror(errno));
close(fd);
}
return 1;
@@ -209,7 +209,7 @@ static int save(const char *output_file, void *buf, size_t size)
if (fname && rename(fname, output_file)) {
fprintf(stderr, _("Unable to rename file '%s' to '%s': %s\n"),
- fname, output_file, strerror(-errno));
+ fname, output_file, strerror(errno));
return 1;
}
--
2.35.3

View File

@ -1,97 +0,0 @@
From d55cd9fcd9e96e96b27bea778c70dd4459e6d2a3 Mon Sep 17 00:00:00 2001
From: Cezary Rojewski <cezary.rojewski@intel.com>
Date: Fri, 4 Aug 2023 10:26:50 +0200
Subject: [PATCH] aplay: Add option for specifying subformat
Make subformat first-class citizen by allowing users to specify it just
like it is the case for the format. Default to SND_PCM_SUBFORMAT_STD so
they are no surprises.
Closes: https://github.com/alsa-project/alsa-utils/pull/228
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
aplay/aplay.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index f1c27b6c4929..03443df52d33 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -101,6 +101,7 @@ static char *command;
static snd_pcm_t *handle;
static struct {
snd_pcm_format_t format;
+ snd_pcm_subformat_t subformat;
unsigned int channels;
unsigned int rate;
} hwparams, rhwparams;
@@ -216,6 +217,7 @@ _("Usage: %s [OPTION]... [FILE]...\n"
"-t, --file-type TYPE file type (voc, wav, raw or au)\n"
"-c, --channels=# channels\n"
"-f, --format=FORMAT sample format (case insensitive)\n"
+" --subformat=SUBFORMAT sample subformat (case insensitive)\n"
"-r, --rate=# sample rate\n"
"-d, --duration=# interrupt after # seconds\n"
"-s, --samples=# interrupt after # samples per channel\n"
@@ -434,6 +436,7 @@ enum {
OPT_USE_STRFTIME,
OPT_DUMP_HWPARAMS,
OPT_FATAL_ERRORS,
+ OPT_SUBFORMAT,
};
/*
@@ -491,6 +494,7 @@ int main(int argc, char *argv[])
{"file-type", 1, 0, 't'},
{"channels", 1, 0, 'c'},
{"format", 1, 0, 'f'},
+ {"subformat", 1, 0, OPT_SUBFORMAT},
{"rate", 1, 0, 'r'},
{"duration", 1, 0 ,'d'},
{"samples", 1, 0, 's'},
@@ -566,6 +570,7 @@ int main(int argc, char *argv[])
chunk_size = -1;
rhwparams.format = DEFAULT_FORMAT;
+ rhwparams.subformat = SND_PCM_SUBFORMAT_STD;
rhwparams.rate = DEFAULT_SPEED;
rhwparams.channels = 1;
@@ -635,6 +640,13 @@ int main(int argc, char *argv[])
}
}
break;
+ case OPT_SUBFORMAT:
+ rhwparams.subformat = snd_pcm_subformat_value(optarg);
+ if (rhwparams.subformat == SND_PCM_SUBFORMAT_UNKNOWN) {
+ error(_("wrong extended subformat '%s'"), optarg);
+ prg_exit(EXIT_FAILURE);
+ }
+ break;
case 'r':
tmp = parse_long(optarg, &err);
if (err < 0) {
@@ -1372,6 +1384,11 @@ static void set_params(void)
show_available_sample_formats(params);
prg_exit(EXIT_FAILURE);
}
+ err = snd_pcm_hw_params_set_subformat(handle, params, hwparams.subformat);
+ if (err < 0) {
+ error(_("Sample subformat not available"));
+ prg_exit(EXIT_FAILURE);
+ }
err = snd_pcm_hw_params_set_channels(handle, params, hwparams.channels);
if (err < 0) {
error(_("Channels count non available"));
@@ -2404,6 +2421,7 @@ static void voc_play(int fd, int ofs, char *name)
}
}
hwparams.format = DEFAULT_FORMAT;
+ hwparams.subformat = SND_PCM_SUBFORMAT_STD;
hwparams.channels = 1;
hwparams.rate = DEFAULT_SPEED;
set_params();
--
2.35.3

View File

@ -1,30 +0,0 @@
From 8e6351f19d803e969c5d2fc874033f3cf68b89c4 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Tue, 12 Dec 2023 13:47:03 +0100
Subject: [PATCH] aplay: allow to compile with older alsa-lib (subformat)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
aplay/aplay.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index 03443df52d33..fc4bac697226 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -641,8 +641,12 @@ int main(int argc, char *argv[])
}
break;
case OPT_SUBFORMAT:
+#if SND_LIB_VER(1, 2, 10) < SND_LIB_VERSION
rhwparams.subformat = snd_pcm_subformat_value(optarg);
if (rhwparams.subformat == SND_PCM_SUBFORMAT_UNKNOWN) {
+#else
+ if (strcasecmp(optarg, "std") != 0 && strcasecmp(optarg, "standard") != 0) {
+#endif
error(_("wrong extended subformat '%s'"), optarg);
prg_exit(EXIT_FAILURE);
}
--
2.35.3

View File

@ -1,50 +0,0 @@
From 6e9be2a3f356d79da3b71c9244d4c809baf38e52 Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date: Fri, 27 Oct 2023 15:05:06 -0500
Subject: [PATCH] aplay: log pcm status before reporting a fatal error
When the --fatal-errors happen, nothing is provided to the user even
when the '-v' verbose option is specified. This patch adds the fatal
error exit after dumping the logs. No functionality change, just
better information on what just happened.
Closes: https://github.com/alsa-project/alsa-utils/pull/242
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
aplay/aplay.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index fc4bac697226..ed58a1ec8c7f 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -1677,12 +1677,6 @@ static void xrun(void)
prg_exit(EXIT_FAILURE);
}
if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN) {
- if (fatal_errors) {
- error(_("fatal %s: %s"),
- stream == SND_PCM_STREAM_PLAYBACK ? _("underrun") : _("overrun"),
- snd_strerror(res));
- prg_exit(EXIT_FAILURE);
- }
if (monotonic) {
#ifdef HAVE_CLOCK_GETTIME
struct timespec now, diff, tstamp;
@@ -1708,6 +1702,12 @@ static void xrun(void)
fprintf(stderr, _("Status:\n"));
snd_pcm_status_dump(status, log);
}
+ if (fatal_errors) {
+ error(_("fatal %s: %s"),
+ stream == SND_PCM_STREAM_PLAYBACK ? _("underrun") : _("overrun"),
+ snd_strerror(res));
+ prg_exit(EXIT_FAILURE);
+ }
if ((res = snd_pcm_prepare(handle))<0) {
error(_("xrun: prepare error: %s"), snd_strerror(res));
prg_exit(EXIT_FAILURE);
--
2.35.3

View File

@ -1,65 +0,0 @@
From 35f45c50eeb779724f882c4e98a279934e1e3140 Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date: Fri, 27 Oct 2023 15:09:56 -0500
Subject: [PATCH] aplay: enable timestamps by default
When the '-v' or '--test-position' options are used, the 'tstamp' is
shown as zero. Unconditionally enable the timestamps and choose the
timestamp time based on the 'monotonic' variable.
Example log:
Status(R/W) (standalone avail=36 delay=924):
state : RUNNING
trigger_time: 2045.504937
tstamp : 2190.754602
delay : 924
avail : 36
avail_max : 444
Status(R/W) (standalone avail=44 delay=912):
state : RUNNING
trigger_time: 2045.504937
tstamp : 2190.754852
delay : 912
avail : 48
avail_max : 48
underrun!!! (at least 471.161 ms long)
Status:
state : XRUN
trigger_time: 2190.786234
tstamp : 2191.257392
delay : 0
avail : 1412
avail_max : 1412
aplay: xrun:1690: fatal underrun: Success
Closes: https://github.com/alsa-project/alsa-utils/pull/242
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
aplay/aplay.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index ed58a1ec8c7f..2a75de72523d 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -1494,6 +1494,15 @@ static void set_params(void)
err = snd_pcm_sw_params_set_stop_threshold(handle, swparams, stop_threshold);
assert(err >= 0);
+ err = snd_pcm_sw_params_set_tstamp_mode(handle, swparams, SND_PCM_TSTAMP_ENABLE);
+ assert(err >= 0);
+
+ if (monotonic)
+ err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_MONOTONIC);
+ else
+ err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY);
+ assert(err >= 0);
+
if (snd_pcm_sw_params(handle, swparams) < 0) {
error(_("unable to install sw params:"));
snd_pcm_sw_params_dump(swparams, log);
--
2.35.3

View File

@ -1,43 +0,0 @@
From 827905c002dad40a7821a55b570aeaf55b4f1614 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Tue, 12 Dec 2023 15:07:06 +0100
Subject: [PATCH] aplay: status dumps are called only in verbose mode
Do not enable timestamps for the normal operation.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
aplay/aplay.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index 2a75de72523d..6c5a07eff7d4 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -1494,14 +1494,16 @@ static void set_params(void)
err = snd_pcm_sw_params_set_stop_threshold(handle, swparams, stop_threshold);
assert(err >= 0);
- err = snd_pcm_sw_params_set_tstamp_mode(handle, swparams, SND_PCM_TSTAMP_ENABLE);
- assert(err >= 0);
+ if (verbose) {
+ err = snd_pcm_sw_params_set_tstamp_mode(handle, swparams, SND_PCM_TSTAMP_ENABLE);
+ assert(err >= 0);
- if (monotonic)
- err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_MONOTONIC);
- else
- err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY);
- assert(err >= 0);
+ if (monotonic)
+ err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_MONOTONIC);
+ else
+ err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY);
+ assert(err >= 0);
+ }
if (snd_pcm_sw_params(handle, swparams) < 0) {
error(_("unable to install sw params:"));
--
2.35.3

View File

@ -1,35 +0,0 @@
From 4cb3e3a7b5b2347e87747a5544c1f4db62a7be53 Mon Sep 17 00:00:00 2001
From: "John K. Luebs" <john@luebs.org>
Date: Sun, 7 Jan 2024 13:33:33 -0600
Subject: [PATCH] aplaymidi: Set event completely for tempo event
After UMP support was added in b399fb8 ev.type setting was inadvertently
dropped in the code path handling tempo meta event.
This is causing tempo meta events to not be handled at all.
Moreover, snd_seq_ev_set_fixed is also missing so MIDI files with
variable events such as SYSEX before the tempo meta event usually are
causing a segfault.
Fixes: b399fb85a919 ("aplaymidi: Add UMP support")
Closes: https://github.com/alsa-project/alsa-utils/issues/241
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
seq/aplaymidi/aplaymidi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/seq/aplaymidi/aplaymidi.c b/seq/aplaymidi/aplaymidi.c
index a7293d31fb31..66038e278d4a 100644
--- a/seq/aplaymidi/aplaymidi.c
+++ b/seq/aplaymidi/aplaymidi.c
@@ -819,6 +819,8 @@ static void play_midi(void)
ev.time.tick = event->tick;
ev.dest = ports[event->port];
if (event->type == SND_SEQ_EVENT_TEMPO) {
+ snd_seq_ev_set_fixed(&ev);
+ ev.type = event->type;
ev.dest.client = SND_SEQ_CLIENT_SYSTEM;
ev.dest.port = SND_SEQ_PORT_SYSTEM_TIMER;
ev.data.queue.queue = queue;
--
2.35.3

BIN
alsa-utils-1.2.10.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE8E31BzesGohMSz1xg4BZbablnJEFAmTyDK4ACgkQg4BZbabl
nJEUHg//SeLBeNwQTaOiPBcsDEa35WNSTpcXhpf+E4btdNaWlKnxD3sdXn2IdyP5
kos7wbNLm+NGWuLoskAAx0wNjuXlXJAcAja7QH7Wyc1RXhSJZElP0IXQfXu86nDL
DxsZmuCsxx6Ojm4olQ7SChKTnqwQcVDosHNLO03UzePFEIXn/F0kkt8JGAGn1sQ9
oh9M/aKdvbaMOpBRrwZ4oLHnq+hhTFqxGG2kZmKiDG5fDc8DJeSH8ItkeB7CvSsz
4nDE/4IUyTc7Hz27/BDQBEXD7hF4dgLiWsbbUhobspql+snK+ZjIQbDv1M/xwDN7
wAwTB2gXBmw/htKukHllgfuUy1SR7e7imKVHsx+3M7pNRqwkNpcCdabwDYkJi8qJ
zulZRneIp0H75pLVw+fd1diLEpfw7hFZF3hpQKZ/RvElQz/b6SGjZDAFFL9mW7/M
zCNNcUm5hZNtf1LC2N/FHOhtwyvv9XAXOsf+2t1AmiQafPx29r+csgzHK3EoMsY5
2xcjRkioNVHJGDNWGbh73YH1LiwFPdQPfFukLmFSfFKoXmkr4d17xHV5VMFx4ZB5
cjUzN3F6XOn91Fqo2zFKp+oNQXsLWJlYqebolInInyH5eTzGv6kAgoQCebqzQdG6
9aAuOTkv82Qxw3QpnxGwLTo8kiV0hQdokb61maTFGuW9Dz27wOU=
=7Rxf
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ac6ca3a883f151e568dcf979b8d2e5cbecc51b819bb0e6bb8a2e9b34cc428a7
size 1627148

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE8E31BzesGohMSz1xg4BZbablnJEFAmW30X8ACgkQg4BZbabl
nJFIUQ//ReAXGP3NpqM6rfUzmDcPb5cD5c3ojgeCAqNd0Hro/3DT8PDD6Sw8CqpU
LNjge7XafVOsTtEr1GO7uubSYN8U9iUF6hd5aghmZtRS1BzZfVa7qzPpKSqvFoj0
ZfmSMLqdihnkRM+F19WjRSS1yWO5vHMul/pQsCgyrz8/fjbSL1gTwIcYgx/oOgS3
01rrt4+vbvpgvxcwbvHrDa9WQJBmz08aylpw0trKvq1W5o/NURIBxvA3IlxotnZP
8t+3kkUjLDYmKfef9vUnnaI+kWDvnSrZeqCGIRNtFhcqv47F8wuIPNdXzrwwjapI
MG9HVNROt2M6cJWEwMbhebrfeeOX7kvmSYITm8Uq41phBJ4XJ1diVNkK+6ij4FgP
y966gtWHdsX6LEzuAAhZBSsF3ZWGnE8n2OQyLzfUh2q/a+rEH06JSZye9NXGL+hg
VpwR+fgtSy/cPXcMGZA8iuqJbXt9jAl0Nk0HO2e/12RnaJx/WcE+sHm8scKe058F
JsGhiGywjlwT0JYRcvfxuxwBqNu/lds/Ny78iBKEL+gPGMedc79h/EjLl2duD/qF
kTd4YX57C4HHKmwUEd5gzWcNe7pO1Zja/70NjbjK2LdPYCIYGlLDYDPINlLXxiEl
QAEpcrYHKByzWluy6dWCM4hV/tSu6e2vURvWjSntfHWZA9PVSsI=
=FcCr
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Fri Feb 2 14:55:32 UTC 2024 - Takashi Iwai <tiwai@suse.com>
- Update to alsa-utils 1.2.11:
* alsactl buffer overflow fix
* alsatplg updates, NHLT ACPI parser updates
* use smaller periods for speaker-test
* add bandwidth-limited pink noise for speaker-test
* aplay updates, including subformat extensions
* compile warning fixes
For details, see:
https://www.alsa-project.org/wiki/Changes_v1.2.10_v1.2.11#alsa-utils
- Drop obsoleted patches:
0001-axfer-use-ATTRIBUTE_UNUSED-instead-remove-argument-n.patch
0002-amidi-use-ATTRIBUTE_UNUSED-instead-remove-argument-n.patch
0003-alsaloop-use-ATTRIBUTE_UNUSED-instead-remove-argumen.patch
0004-bat-use-ATTRIBUTE_UNUSED-instead-remove-argument-nam.patch
0005-seq-use-ATTRIBUTE_UNUSED-instead-remove-argument-nam.patch
0006-alsaucm-use-ATTRIBUTE_UNUSED-instead-remove-argument.patch
0007-topology-use-ATTRIBUTE_UNUSED-instead-remove-argumen.patch
0008-topology-include-locale.h.patch
0009-nhlt-dmic-info.c-include-sys-types.h.patch
0010-topology-pre-processor-Add-support-for-enum-controls.patch
0011-configure.ac-fix-UMP-support-detection.patch
0012-bat-really-skip-analysis-of-the-first-period-and-upd.patch
0013-topology-add-include-for-ENABLE_NLS-on-musl.patch
0014-nhlt-use-stdint.h-types.patch
0015-Revert-nhlt-dmic-info.c-include-sys-types.h.patch
0016-aplay-use-stdint.h-types-instead-u_int-u_short-u_cha.patch
0017-alsa-restore.rules-use-devnode-instead-number-atribu.patch
0018-nhlt-Revert-SSP_ANALOG-device_type-field.patch
0019-alsactl-fix-potential-buffer-overwrite.patch
0020-aplay-fix-buffer-overflow-and-tainted-format-string.patch
0021-misc-fix-incorrect-usages-of-strerror.patch
0022-aplay-Add-option-for-specifying-subformat.patch
0023-aplay-allow-to-compile-with-older-alsa-lib-subformat.patch
0024-aplay-log-pcm-status-before-reporting-a-fatal-error.patch
0025-aplay-enable-timestamps-by-default.patch
0026-aplay-status-dumps-are-called-only-in-verbose-mode.patch
0027-aplaymidi-Set-event-completely-for-tempo-event.patch
-------------------------------------------------------------------
Mon Jan 8 09:12:41 UTC 2024 - Takashi Iwai <tiwai@suse.com>

View File

@ -16,7 +16,7 @@
#
%define do_autoreconf 1
%define do_autoreconf 0
%define _udevdir %(pkg-config --variable=udevdir udev)
%ifarch %ix86 x86_64 %arm aarch64 ppc64le riscv64
%define enable_topology 1
@ -25,7 +25,7 @@
%endif
Name: alsa-utils
Version: 1.2.10
Version: 1.2.11
Release: 0
Summary: Advanced Linux Sound Architecture Utilities
License: GPL-2.0-or-later
@ -39,33 +39,7 @@ Source5: load-sound-modules.sh
# from https://www.alsa-project.org/files/pub/gpg-release-key-v1.txt
Source6: alsa-utils.keyring
# upstream fixes
Patch1: 0001-axfer-use-ATTRIBUTE_UNUSED-instead-remove-argument-n.patch
Patch2: 0002-amidi-use-ATTRIBUTE_UNUSED-instead-remove-argument-n.patch
Patch3: 0003-alsaloop-use-ATTRIBUTE_UNUSED-instead-remove-argumen.patch
Patch4: 0004-bat-use-ATTRIBUTE_UNUSED-instead-remove-argument-nam.patch
Patch5: 0005-seq-use-ATTRIBUTE_UNUSED-instead-remove-argument-nam.patch
Patch6: 0006-alsaucm-use-ATTRIBUTE_UNUSED-instead-remove-argument.patch
Patch7: 0007-topology-use-ATTRIBUTE_UNUSED-instead-remove-argumen.patch
Patch8: 0008-topology-include-locale.h.patch
Patch9: 0009-nhlt-dmic-info.c-include-sys-types.h.patch
Patch10: 0010-topology-pre-processor-Add-support-for-enum-controls.patch
Patch11: 0011-configure.ac-fix-UMP-support-detection.patch
Patch12: 0012-bat-really-skip-analysis-of-the-first-period-and-upd.patch
Patch13: 0013-topology-add-include-for-ENABLE_NLS-on-musl.patch
Patch14: 0014-nhlt-use-stdint.h-types.patch
Patch15: 0015-Revert-nhlt-dmic-info.c-include-sys-types.h.patch
Patch16: 0016-aplay-use-stdint.h-types-instead-u_int-u_short-u_cha.patch
Patch17: 0017-alsa-restore.rules-use-devnode-instead-number-atribu.patch
Patch18: 0018-nhlt-Revert-SSP_ANALOG-device_type-field.patch
Patch19: 0019-alsactl-fix-potential-buffer-overwrite.patch
Patch20: 0020-aplay-fix-buffer-overflow-and-tainted-format-string.patch
Patch21: 0021-misc-fix-incorrect-usages-of-strerror.patch
Patch22: 0022-aplay-Add-option-for-specifying-subformat.patch
Patch23: 0023-aplay-allow-to-compile-with-older-alsa-lib-subformat.patch
Patch24: 0024-aplay-log-pcm-status-before-reporting-a-fatal-error.patch
Patch25: 0025-aplay-enable-timestamps-by-default.patch
Patch26: 0026-aplay-status-dumps-are-called-only-in-verbose-mode.patch
Patch27: 0027-aplaymidi-Set-event-completely-for-tempo-event.patch
# downstream fixes
Patch100: alsa-info-no-update-for-distro-script.patch
Patch101: alsa-utils-configure-version-revert.patch
BuildRequires: alsa-devel
@ -110,33 +84,6 @@ and test audio before and after PM state changes.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch100 -p1
%if 0%{?do_autoreconf}
%patch101 -p1