alsa-utils/SOURCES/alsa-utils-git.patch

1822 lines
61 KiB
Diff

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 02/18] 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 071f94c..1886045 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 13e7fc5..f669f7f 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 f9c8e0f..187e1d7 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 b39fde8..8d63043 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 31fab88..b81300c 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 164c9c8..fe19776 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 db18e33..0f4e9b9 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 b7f0645..45fb6d5 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 9713533..36ee08d 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 974570c..e716ded 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.41.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 03/18] 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 f930ca8..75fb8c0 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.41.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 04/18] 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 b10733e..51fb646 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 be71971..ffb439b 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.41.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 05/18] 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 e88c65f..ea04ed9 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 9ff9405..470a7e6 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 a9bae5d..bb51b0d 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.41.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 06/18] 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 3a10de9..7096feb 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 ce71472..a4c1181 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 8455ecb..af4ca21 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 f40de7d..aa70b50 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.41.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 07/18] 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 102ac4d..a5c57f2 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.41.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 08/18] 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 70a22e3..de659cf 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 f99d308..a977c93 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 8c64675..2d2f6b0 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 9cda5c3..17b88d2 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 567fa5c..ca539c3 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 d883d05..bedcebe 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 48555e7..61cc85f 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 3903dee..01f8a5d 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.41.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 09/18] 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 1840ffe..5d03a8b 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.41.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 10/18] 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 3f6c64d..331555a 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.41.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 11/18] 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 9355a86..78944a6 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 61cc85f..34b9203 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 878653d..3a8a4bc 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.41.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 12/18] 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 beb4963..4217741 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.41.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 13/18] 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 6867880..b8d0270 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.41.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 14/18] 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 5d03a8b..98b000a 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.41.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 15/18] 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 331555a..eadf21a 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.41.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 16/18] 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 eadf21a..f1b0857 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.41.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 17/18] 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 f180d42..9cf36de 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 093ab80..d82505e 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.41.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 18/18] 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 c0c1b23..1a411c9 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.41.0