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>
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.
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>
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.
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.
without including it, we get
In file included from mixer.c:44:0:
include/sound/asound.h:337:18: error: field 'trigger_tstamp' has incomplete type
include/sound/asound.h:338:18: error: field 'tstamp' has incomplete type
etc.
Add a function to get an id of a control that can be
passed to mixer_get_ctl(). This can be used to lookup
a control by name and store its id for later use rather
than have the overhead of name lookup each time it is
used. Lookup by id is quick and avoids the disadvantage
that storing a pointer to the mixer_ctl object creates
a client with a dependency on the address of the internal
control array.
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
The users of tinyalsa had no way of knowing on which subdevice a stream had
been created. A new API, "unsigned int pcm_get_subdevice(struct *pcm)" returns
it. This information is filled during the pcm_open()
Change-Id: Ie866e10e06ce6691ede09e2ca46a24441723ea8b
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
ALSA supports reporting of pcm_delay, make that availble to the users of
tinyalsa too
Change-Id: Ic460f5c55137d263fdf7b142503d3bd52c4b7ebd
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com>
Signed-off-by: Apelete Seketeli <apeletex.seketeli@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>