Commit Graph

4270 Commits

Author SHA1 Message Date
openharmony_ci
a74ae092ff
!9 modify audio part name
Merge pull request !9 from crescenthe/master
2022-06-23 10:27:40 +00:00
crescent
74627ea541 modify audio part name
Signed-off-by: crescent <sunhehe@huawei.com>
2022-06-22 06:24:02 +00:00
openharmony_ci
ef197506e3
!8 docs:update alsa-lib readme
Merge pull request !8 from zenglifeng/dev_doc
2022-06-21 01:46:31 +00:00
zenglifeng
60e3381d32 The alsa-lib documentation is updated
Signed-off-by: zenglifeng <zenglifeng2@huawei.com>
2022-06-21 09:17:51 +08:00
openharmony_ci
45e2e0c704
!7 task:add README_zh
Merge pull request !7 from vb6174/master
2022-06-18 03:59:49 +00:00
vb6174
9f99209eac task: add README_zh.md
Signed-off-by: vb6174 <zhangyunhu@huawei.com>
2022-06-09 03:02:05 +00:00
vb6174
a97dd40d2b
!6 feat: Porting the third-party library alsa-lib
Merge pull request !6 from zenglifeng/alsa_lib_dev
2022-06-05 11:56:17 +00:00
zenglifeng
6878fd2cde Porting the third-party library alsa-lib, add head file
Signed-off-by: zenglifeng <zenglifeng2@huawei.com>
2022-06-05 19:16:33 +08:00
vb6174
a82c337dca
!5 add OAT.xml and update README.OpenSource
Merge pull request !5 from vb6174/master
2022-06-02 04:06:08 +00:00
vb6174
a98718b822 add OAT.xml and update README.OpenSource
Signed-off-by: vb6174 <zhangyunhu@huawei.com>
2022-06-02 01:29:54 +00:00
NickYang
5dbc5dde78
!4 add README.OpenSource for alsa-lib
Merge pull request !4 from vb6174/master
2022-05-31 12:21:11 +00:00
vb6174
30b1c87660 add README.OpenSource
Signed-off-by: vb6174 <zhangyunhu@huawei.com>
2022-05-31 12:11:12 +00:00
vb6174
5ae37962f2
!3 Porting the third-party library alsa-lib
Merge pull request !3 from zenglifeng/master
2022-05-19 01:49:29 +00:00
zenglifeng
39280c6f22 Porting the third-party library alsa-lib
Signed-off-by: zenglifeng <zenglifeng2@huawei.com>
2022-05-18 11:17:05 +08:00
Jaroslav Kysela
85b3c276d2 Release v1.2.6
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-12-06 11:17:27 +01:00
Jaroslav Kysela
2623e4bb76 ucm: add initial doxygen documenation
This is an attempt to explain the UCM in a more verbose way.

BugLink: https://github.com/alsa-project/alsa-ucm-conf/issues/103
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-12-01 10:33:44 +01:00
Jaroslav Kysela
ebb8a6c7a1 conf: introduce snd_config_load_string()
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-12-01 10:18:58 +01:00
Jaroslav Kysela
a95942f1af conf: confeval - fix _to_integer error code
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-30 14:42:12 +01:00
Jaroslav Kysela
327bd5f28b conf: fix test/lsb/config.c
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-30 14:41:14 +01:00
Jaroslav Kysela
9b53b1f0fb conf: improve simple integer math expressions - brackets
Add brackets to the simple math expressions like:

  $[($a+($val+100))/2]

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-30 14:35:58 +01:00
Jaroslav Kysela
7b6da9ee6d ucm: add ${eval:EXPR} substitution (Syntax 5)
It is useful to do simple integer math in UCM configurations, too.
Use snd_config_evaluate_string() string for this job.

Example:

    ${eval:1+1}
    ${eval:100*$var1}
    ${eval:$[$var2+1]/5}

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-30 14:22:39 +01:00
Jaroslav Kysela
bf528b9066 conf: add possibility to evaluate simple integer math expressions
It is useful to use the math expressions for the values in configuration.
This patch adds a simple expression evaluation routines (integer only).
The syntax is simplified unix shell (bash) style.

Examples:

	$[1 + 1]
	$[$[2 + 2] / $var1]
	$[0xa0 | 0x05]

As a bonus, the variable substitutions were more abstracted.
The function snd_config_expand_custom() was introduced to be used
for example in the topology pre-precessor.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-30 11:33:35 +01:00
Jaroslav Kysela
32d332b786 conf: add safe_strtoll_base() like safe_strtol_base()
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-29 15:01:32 +01:00
Jaroslav Kysela
7ffe3d4162 ucm: fix parsing of the internal hexadecimal card identifier (2)
I forgot to change the passed variable name.

Fixes: 050f18c5 ("ucm: fix parsing of the internal hexadecimal card identifier")
Fixes: https://github.com/alsa-project/alsa-lib/issues/188
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-12 17:27:39 +01:00
Jaroslav Kysela
050f18c525 ucm: fix parsing of the internal hexadecimal card identifier
Too many code was removed.

Fixes: f547b2e3 ("conf: introduce safe_strtol_base()")
Fixes: https://github.com/alsa-project/alsa-lib/issues/188
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-12 16:00:59 +01:00
Jaroslav Kysela
ea5481296f ucm: fix DeviceModifier parser
The bellow commit caused regression for the SectionModifier parser. Revert
the single line change.

Fixes: 251bc204 ("ucm: implement RenameDevice and RemoveDevice verb management")

Fixes: https://github.com/alsa-project/alsa-lib/issues/167
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-07 18:41:43 +01:00
Jaroslav Kysela
faee7f678d pcm: softvol - mark _snd_pcm_parse_control_id as static
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-02 11:04:43 +01:00
Jaroslav Kysela
f0d540f851 pcm: partially revert "pcm: softvol - make snd_pcm_parse_control_id private"
This reverts partially commit b9a4997e92.

It seems that we have have some users for this very specific function.
Mark it deprecated and keep the softvol implementation separate,
so we can remove this function easily in future.

Fixes: https://github.com/alsa-project/alsa-lib/issues/186
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-02 11:00:35 +01:00
Jaroslav Kysela
5fab157a59 topology: do not call strtol directly
Introduce safe_strtol_base() function and redirects all
strtol calls there. Also, improve error and value handling
in callers.

BugLink: https://github.com/alsa-project/alsa-lib/issues/187
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-02 10:45:51 +01:00
Jaroslav Kysela
f547b2e35f conf: introduce safe_strtol_base()
It is useful to parse hexadecimal strings, too.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-11-02 10:41:11 +01:00
Jaroslav Kysela
0e2b167e93 configure: bumb version to 1.2.6pre1 (for alsactl/alsa-utils)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 12:13:44 +02:00
Jaroslav Kysela
23198a72cd ucm: suppress the no device (no UCM card) errors on request
It seems that users are confused when the UCM configuration
is not ready for the particular hardware. Actually, we don't
allow a fine grained message classification in alsa-lib and
UCM API. Allow suppression of this specific type of messages
on the application request (typically alsactl).

BugLink: https://github.com/alsa-project/alsa-utils/issues/111
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 11:52:08 +02:00
Jaroslav Kysela
a6a22d82a0 rawmidi: allocate the read buffer in the params call
It is better to allocate the read buffer for the framing stream
in the params setup call.

Suggested-by: David Henningsson <coding@diwic.se>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
392d5b06f8 rawmidi: free framing read bufffer when the framing mode becomes inactive
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
c932c1e7ab rawmidi: add support for SNDRV_RAWMIDI_IOCTL_USER_PVERSION
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
c578e80d6f rawmidi: return ENOTSUP when timestamp reads are not supported by plugins
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
5ac6198376 rawmidi: allow timestamp reads only for the appropriate read mode
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
11f54c2774 rawmidi: doc - fix the framing / read mode section
Follow the previous changes and describe the current API.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
d3c5e9e009 rawmidi: rename enum snd_rawmidi_framing to snd_rawmidi_read_mode
We hide the internal data transfers using the data frames. Rename
the snd_rawmidi_framing enum to snd_rawmidi_read_mode to make
API more straight and understandable.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
5a5c2953ea rawmidi: define more abstract API for the timestamp reads
The frame structure is a bit internal thing for the kernel
data transfer implementation. Introduce snd_rawmidi_tread()
function which is straight for the application usage and hides
the framing data transfers (kernel space API).

The current code implements the read cache and does the merging
of the frame reads with the similar timestamps (opposite
to the kernel data split for big chunks).

If the application wants to use super-duper-lighting-fast reads,
the snd_rawmidi_read() may be used, but the structure must be
defined on it's own, because this mechanism is not preferred
and unsupported.

BugLink: https://github.com/alsa-project/alsa-lib/issues/172
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Johan Adolfsson
42eeb5eca0 dlmisc.c: Avoid double unlock in snd_dlobj_cache_get0()
Remove call to snd_dlobj_unlock() in snd_dlobj_cache_get0()
All lock/unlock is done by callers of the function.

Buglink: https://github.com/alsa-project/alsa-lib/issues/181
Fixes: https://github.com/alsa-project/alsa-lib/pull/182
Signed-off-by: Johan Adolfsson <johana@axis.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-07 16:52:56 +02:00
Jaroslav Kysela
a1e91720cc rawmidi: initialize the reserved space in snd_rawmidi_params_default()
BugLink: https://github.com/alsa-project/alsa-lib/issues/178
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-09-19 21:04:21 +02:00
Sava Jakovljev
1aeea94ce8 pcm: multi plugin - adjust appl_ptr on rewind/forward operations
When doing rewind or forward operations, application pointer needs to
be properly adjusted, in the same way when doing commit/write
operations.

Fixes: https://github.com/alsa-project/alsa-lib/pull/161
Signed-off-by: Sava Jakovljev <sava.jakovljev@teufel.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-09-03 08:54:56 +02:00
Henrik Enquist
c4972cb154 pcm: add a note about return values of snd_pcm_state()
Fixes: https://github.com/alsa-project/alsa-lib/pull/162
Signed-off-by: Henrik Enquist <henrik.enquist@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-09-03 08:41:40 +02:00
Jaroslav Kysela
aa04023565 ucm: substitute the before/after identifiers
This allows to handle correctly declarations like:
  Before.SectionDevice "${var:DeviceMic}"

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-09-01 11:05:51 +02:00
Jaroslav Kysela
4a52ae4c32 ucm: fix the parsing of the hexadecimal prefix
The safe_strtol() function use strtol() which expects
to have the '0x' prefix for the hexadecimal number (when
base argument is zero).

BugLink: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1553
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-08-31 09:42:02 +02:00
Jaroslav Kysela
7d40a76ef5 ucm: avoid zero card instance number
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-08-31 09:25:12 +02:00
Takashi Iwai
754c696aef rawmidi: Use the standard types for snd_rawmidi_framing_tstamp_t definition
Using the kernel-specific types like __u8 breaks the compilation of
applications.  Also we need the packed attribute.

Although we may want to move to an opaque type later, let's put the
workaround at first.

Fixes: https://github.com/alsa-project/alsa-lib/issues/172
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-08-24 10:40:14 +02:00
Jaroslav Kysela
b97dec9502 asound.h: fix the __packed use for the out-of-kernel code
Also, move __kernel_long_t to type_compat.h for the consistency.

Fixes: https://github.com/alsa-project/alsa-lib/issues/171
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-08-20 21:15:01 +02:00
David Henningsson
868ecd509d test: rawmidi: Add test for rawmidi framing API
Adds a "clock type" parameter to the "rawmidi" test program, that when
used and combined with -i (and -v to be useful), activates tstamp type
framing with the specified clock type.

Signed-off-by: David Henningsson <coding@diwic.se>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-08-20 08:47:23 +02:00