Age | Commit message (Collapse) | Author |
|
Mixer control such as "Playback channel map" can be registered by
multiple pcm device nodes and is distinguished by device in
snd_ctl_elem_id. Add support to get the control handle associated
with mixer ctl name and device number.
Also, introduce API to get the device number associated with specific
mixer_ctl handle.
|
|
Since the variables are snd_pcm_uframes_t and snd_pcm_uframes_t is
unsigned long, using unsigned int causes problem when running on a
64-bit binary.
Also fix the branch name of googletest.
|
|
|
|
|
|
The pcm_readi and pcm_writei also can deal with the mmap read/write.
Also mark the pcm_mmap_read/write functions as deprecated functions and
update the test case.
Add mmap playback support to tinyplay
|
|
1. Add a missing field and a function
2. Disable the deprecated attribute in Android temporarily to
allow us to use "pcm_read/write" which are deprecated upstream
3. Remove an unused define and an include in mixer.h
4. Add mixer_ctl_event and copy the snd_ctl_event to mixer_ctl_event
5. Add pcm_ioctl function and mark as deprecated function
|
|
commit f451f433520fc154de6e371747f21d2f746da83b
author Glenn Kasten <gkasten@google.com>
tinyalsa: fix typos in tinyplay and asoundlib.h
Test: run tinyplay and look for typos in the output
Change-Id: Ieedcc1b7610700aa3d5ff913d5c01105db2c1601
|
|
https://android.googlesource.com/platform/external/tinyalsa/+/5b15b4cbd9e779a4ecd87e0f757fb0f8f6b9bcb8
commit 5b15b4cbd9e779a4ecd87e0f757fb0f8f6b9bcb8
author Eric Laurent <elaurent@google.com>
pcm: add API for MMAP NO IRQ mode
Bug: 33398120
Test: build
Change-Id: Iecb47f76337d98ceb01044ca488a04e1f350c6bc
|
|
https://android.googlesource.com/platform/external/tinyalsa/+/b42510d55bafc96805a44bd6ac40faac28ebd219
commit b42510d55bafc96805a44bd6ac40faac28ebd219
author Dylan Reid <dgreid@chromium.org>
Add pcm_get_poll_fd
Similar to ALSA snd_pcm_get_poll_fd, this will allow a user to wait for
a sound device to have data in a poll(2) call. The hotword thread will
use this to wait for a message on its socket or for audio data to become
ready.
Change-Id: I61375a73d7a842b00362fc707c12f99aa18e0bdf
Signed-off-by: Dylan Reid <dgreid@chromium.org>
|
|
https://android.googlesource.com/platform/external/tinyalsa/+/9074cfc4127cb841f0633b35895141f90da3f0d6
commit 9074cfc4127cb841f0633b35895141f90da3f0d6
author Dylan Reid <dgreid@chromium.org>
Export pcm_mmap_avail
This is useful for timer based wakeups and for checking how much data
has been captured by a hotwording device.
Change-Id: I409201a5c9ce73abc807a9dd767beb3a32810f06
Signed-off-by: Dylan Reid <dgreid@chromium.org>
|
|
https://android.googlesource.com/platform/external/tinyalsa/+/e25fe0b50ea717a9f347dcb927d396e8772e6362
commit e25fe0b50ea717a9f347dcb927d396e8772e6362
author Maneet Singh <mmaneetsingh@nvidia.com>
pcm: add support to set silence_size
Tinyalsa always set silence_size to zero. Add support to set this
pcm software parameter as required.
Bug: 20226809
Bug: 20300203
Change-Id: I25de43623dc04bf5a3ad4c6573bc2b8dad1eec5e
|
|
https://android.googlesource.com/platform/external/tinyalsa/+/70530a69767a9a383c5bf546e6e803aac08a5a1e%5E!/
title: Add pcm_params string conversion and format checking
commit 70530a69767a9a383c5bf546e6e803aac08a5a1e
author Andy Hung <hunga@google.com>
|
|
|
|
|
|
Add PCM_STATE_OPEN and PCM_STATE_SETUP macros so that
it can be utilized by plugin to update sync_ptr state.
|
|
|
|
|
|
Older versions of linux's API header sound/asound.h accidentally rely on
indirect declaration of struct timespec, which isn't reliable, so
include time.h before it to support older versions of sound/asound.h
properly
|
|
snd_ctl_event is needed by client to get details of event received.
Introduce mixer_read_event() with plugin support to support this.
|
|
mixer_consume_event consumes subscribed events from the mixer
in order to allow monitoring of mixer control value changed.
|
|
ssize_t is defined in <sys/types.h>, see
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html
Add an include for it to avoid a compile error when building with musl:
../include/tinyalsa/plugin.h:184:5: error: expected specifier-qualifier-list before 'ssize_t'
184 | ssize_t (*read_event) (struct mixer_plugin *plugin,
| ^~~~~~~
|
|
Update the mixer framework to support plugins. Add ability for physical
card to have either kernel registered mixer controls or plugin
registered mixer control or both. Split mixer controls into two groups,
one for kernel registered (hw_grp) and the other for plugin registered
(virtual_grp).
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
|
|
Update the pcm framework to support plugins. Resolve the pcm device node
to be either kernel device or virtual device and setup function pointers
accordingly. Implement framework functionality for pcm_plugin.c for ease
of plugin development. Plugin itself is compiled as shared object (.so)
and dynamically linked from pcm_plugin.c.
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
|
|
|
|
|
|
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
|
|
The Meson build system is being adopted by projects
such as GNOME, PulseAudio, GStreamer, VLC, systemd, Mesa,
Wayland, X.org, and many others. Having a meson build
upstream in tinyalsa would allow for easy use of tinyalsa
as a Meson subproject in other projects.
https://mesonbuild.com
|
|
|
|
|
|
The ssize_t type requires the unistd.h header. This fixes build with musl
libc:
In file included from ../include/tinyalsa/limits.h:32:0,
from limits.c:1:
../include/tinyalsa/interval.h:38:2: error: unknown type name 'ssize_t'
ssize_t max;
^
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALSA controls support polling on the kcontrols, this is used in HD-A for
jack notifcation. In tinyalsa we can use this for notfication from sound
card for any events detected by DSP
Change-Id: I4193809bfcdb60f4dc11e1c2ad6a07b29cfa80e9
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
|
|
The TLV byte controls expect a TLV header as well. Check for TLV
access and add TLV header size before invoking mixer API.
Change-Id: I12ba129e5bbc0676e80eb920e85b3683decfe0db
Signed-off-by: Pawse, GuruprasadX <guruprasadx.pawse@intel.com>
Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
|
|
Tinyalsa doesn't expose an api to check TLV RW access
Add mixer_ctl_is_access_tlv_rw().
This api will get used by tinymix and audio HALs for checking TLV RW
access before managing the byte related mixer controls.
Change-Id: Ib5707fabf479de638e1c7abd4cd149e7637ff9c2
Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
|
|
overrun is in capture and underrun is in playback.
Look:
'+' has data / '-' hasn't data
overrun (capture):
You should have
read until here
v
|+++++++|++ <- buffer over(run/flow)
underrun (playback):
You should have
written until here
v
|+++++++|-- <- buffer under(run/flow)
|
|
This function parses a PCM name similar to the ALSA library.
This is done so that the differences between alsa-lib and tinyalsa
are a little more transparent to the user.
|
|
The link function is necessary for time sychronization between multiple PCMs.
|
|
It was added because bionic didn't have a copy of the file in 2011.
But, it was finally added in 2013 and update since.
There is no longer a need for this file.
|
|
New controls could appear during runtime, for example if a
new firmware is downloaded to a DSP. Since ALSA drivers are
not supposed to delete or renumber existing controls we can
assume that any new controls will be after any controls we
already know about. We can use this to enable extending our
current list of controls, which is more efficient than
closing the mixer session and recreating it.
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
|
|
|
|
pcm_readi and pcm_writei now use a frame count to specify the
buffer length instead of using a byte count.
|
|
Added these functions to replace pcm_read and pcm_write, which don't return the number of frames actually transferred.
On GCC-like compilers, pcm_read and pcm_write have been marked as deprecated
On doxygen documentation, they have been marked as deprecated as well.
|
|
Added functions:
- pcm_get_channels
- pcm_get_rate
- pcm_get_format
These were added since they're required for iterating samples and frames.
|
|
This function is used to get the number of mixer controls by a given name.
It was added for use with mixer_get_ctl_by_name_and_index so that client code
can expect the last valid index to pass.
|