aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
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.
2016-12-01Added mixer_get_ctl_constTaylor Holberton
This function was added to make available a mixer control accessor in a function that does not modify its value.
2016-12-01Added const specifier for several mixer functionsTaylor Holberton
Functions changed are: - mixer_get_name - mixer_get_num_ctls - mixer_ctl_get_id - mixer_ctl_get_name - mixer_ctl_get_type - mixer_ctl_get_type_string - mixer_ctl_get_num_values - mixer_ctl_get_num_enums - mixer_ctl_get_enum_string - mixer_ctl_get_percent - mixer_ctl_get_value - mixer_ctl_get_array - mixer_ctl_get_range_min - mixer_ctl_get_range_max
2016-12-01Added const specifier in several functionsTaylor Holberton
pcm_get_file_descriptor pcm_get_error pcm_get_buffer_size pcm_frames_to_bytes pcm_bytes_to_frames pcm_get_subdevice
2016-12-01added const specifier in function, pcm_is_readyTaylor Holberton
2016-12-01Added const specifier in pcm_openTaylor Holberton
The const specifier was added to the struct pcm_config argument.
2016-12-01Added const specifier to params functionsTaylor Holberton
Funtions changed are: - pcm_params_get_mask - pcm_params_get_min - pcm_params_get_max
2016-11-23fixed function reference in docTaylor Holberton
2016-11-23added missing asterisk for docTaylor Holberton
2016-11-19added tinyalsa version headerTaylor Holberton
2016-11-19renamed doxygen group, tinyalsa-pcm to libtinyalsa-pcmTaylor Holberton
2016-11-19origanized and added some documentationTaylor Holberton
2016-10-01added some documentation to mixer interfaceTaylor Holberton
2016-10-01added basic pcm documentationTaylor Holberton
2016-10-01seperated pcm and mixer APIsTaylor Holberton
2016-10-01added support for more signed typesTaylor Holberton
2016-09-16Merge branch 'address-duplicate-control-names' of ↵Taylor Holberton
https://github.com/dawagner/tinyalsa into dawagner-address-duplicate-control-names
2016-08-03Added get_file_descriptor()Taylor Holberton