aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2023-09-04mixer: add support for pcm device specific mixer controlsRohit kumar
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.
2021-12-15match the varaibles' type for 64-bit compatibilitydvdli
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.
2021-07-26meson: add attributes.h and plugin.h public headerstinywrkb
2021-02-22support float config and float wave file playbackdvdli
2021-01-28Let pcm_mmap_read/write call pcm_readi/writeidvdli
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
2020-12-02fix build breakageDavid Li
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
2020-10-29AOSP CL "tinyalsa: fix typos in tinyplay and asoundlib.h"dvdli
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
2020-10-28AOSP CL "pcm: add API for MMAP NO IRQ mode"dvdli
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
2020-10-28AOSP CL "Add pcm_get_poll_fd"dvdli
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>
2020-10-28AOSP CL "Export pcm_mmap_avail"dvdli
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>
2020-10-28AOSP CL "pcm: add support to set silence_size"dvdli
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
2020-10-28AOSP CL "Add pcm_params string conversion and format checking"dvdli
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>
2020-09-03Using struct for TLV sizeTaylor Holberton
2020-09-03tinyalsa: add plugin support for mmap/poll opsRohit kumar
2020-08-25include: tinyalsa: Add PCM state macrosRohit kumar
Add PCM_STATE_OPEN and PCM_STATE_SETUP macros so that it can be utilized by plugin to update sync_ptr state.
2020-08-05Bump version to 2.0.0 TinyALSATaylor Holberton
2020-08-05Reordered enums to be compatible with Google's TinyALSATaylor Holberton
2020-06-05include/tinyalsa/plugin.h: include time.hEthan Sommer
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
2020-06-02mixer: Add plugin support for mixer_consume/read_eventRohit kumar
snd_ctl_event is needed by client to get details of event received. Introduce mixer_read_event() with plugin support to support this.
2020-06-02tinyalsa: add mixer_consume_eventAndrew Chant
mixer_consume_event consumes subscribed events from the mixer in order to allow monitoring of mixer control value changed.
2020-04-23tinyalsa: include <sys/types.h> for ssize_tMinecrell
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, | ^~~~~~~
2020-02-07tinyalsa: add support for mixer pluginsBhalchandra Gajare
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>
2020-02-07tinyalsa: add support for PCM pluginsBhalchandra Gajare
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>
2019-04-08Generate final version string and number based on major, minor and patchAlexandru N. Onea
2019-01-13Added the 'attributes.h' headerTaylor Holberton
2019-01-08pcm: Add macro for PREPARED stateRicardo Biehl Pasquali
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2018-12-22Fixed some doxygen references.Taylor Holberton
2018-12-15Add support for Meson as build systemTim-Philipp Müller
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
2017-10-12added PCM_NONBLOCK macroTaylor Holberton
2017-10-12corrected tab usageTaylor Holberton
2017-06-02interval.h: add missing headerBaruch Siach
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>
2017-05-23bumped versionTaylor Holberton
2017-04-10corrected set_config functionTaylor Holberton
2017-04-10added prototypes for _get_config() and _set_config()Taylor Holberton
2017-04-06added limits for frames and channelsTaylor Holberton
2017-04-06added interval structuresTaylor Holberton
2017-04-06removed stray tabTaylor Holberton
2017-01-11Tinyalsa: Add support to poll on alsa controlPankaj Bharadiya
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>
2017-01-10Fix the byte control set/get methodPankaj Bharadiya
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>
2017-01-10mixer: Add support for TLV RW access check apiPankaj Bharadiya
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>
2016-12-28corrected (over/under)run definition in pcm.hRicardo Biehl Pasquali
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)
2016-12-24Added pcm_open_by_name()Taylor Holberton
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.
2016-12-04Added pcm_link and pcm_unlink functionsTaylor Holberton
The link function is necessary for time sychronization between multiple PCMs.
2016-12-02Removed asound.hTaylor Holberton
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.
2016-12-02mixer: add ability to update control list with new controlsRichard Fitzgerald
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>
2016-12-01bumped minor versionTaylor Holberton
2016-12-01Using frame counts in pcm_readi and pcm_writeiTaylor Holberton
pcm_readi and pcm_writei now use a frame count to specify the buffer length instead of using a byte count.
2016-12-01Added pcm_readi and pcm_writei functionsTaylor Holberton
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.
2016-12-01Added format related getters for PCMTaylor Holberton
Added functions: - pcm_get_channels - pcm_get_rate - pcm_get_format These were added since they're required for iterating samples and frames.
2016-12-01Added function, mixer_get_num_ctls_by_nameTaylor Holberton
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.