Age | Commit message (Collapse) | Author |
|
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.
|
|
This function was added to make available a mixer control accessor
in a function that does not modify its value.
|
|
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
|
|
pcm_get_file_descriptor
pcm_get_error
pcm_get_buffer_size
pcm_frames_to_bytes
pcm_bytes_to_frames
pcm_get_subdevice
|
|
|
|
The const specifier was added to the struct pcm_config argument.
|
|
Funtions changed are:
- pcm_params_get_mask
- pcm_params_get_min
- pcm_params_get_max
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://github.com/dawagner/tinyalsa into dawagner-address-duplicate-control-names
|
|
|
|
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.
|
|
Wait delay
|
|
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>
|
|
Change-Id: I0e6a04da5a4b122a3748b16c7eb01c4a224c3d84
Signed-off-by: Andy Hung <hunga@google.com>
|
|
add support for mmap read
|
|
pcm_get_htimestamp can now use CLOCK_MONOTONIC
|
|
Clean up asoundlib.h header file
|
|
Tinyalsa combines PREPARE and START calls to the driver in the pcm_start()
function. Typically, this is needed for making a driver allocating hardware
resources that are not related to a PCM stream.
Change-Id: Ic83fad784936bbebab28e8e425debd449182db88
Signed-off-by: Omair Mohammed Abdullah <omair.m.abdullah@linux.intel.com>
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-Tracking-BZ: 73509
|
|
Control names are not unique and can be shared by multiple mixers controls.
When this happens, there is no way of accessing the mixer using its control
name, because mixer_get_ctl_by_name() always returns the first match. The only
way of accessing the mixer is through its control number, i.e. using
mixer_get_ctl().
This patch adds the function mixer_get_ctl_by_name_and_index() to offer the
possibility to retrieve a control through its name and index. This index
corresponds to the nth occurence of the control name in the global supported
controls names list.
Change-Id: Ie29bf2a949ecf69f106bbe359155cdbfbe98928c
Signed-off-by: Frédéric Boisnard <fredericx.boisnard@intel.com>
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-Tracking-BZ: 139255
|
|
|
|
Previously the timebase was not documented. Now a new pcm_open flag
can be used to specify the clock. If flag PCM_MONOTONIC is specified,
then pcm_open uses SNDRV_PCM_IOCTL_TTSTAMP with parameter
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC to request timestamps in CLOCK_MONOTONIC.
Change-Id: I40ce359cb38d686cbb2521fb0602a8a17ab4f925
|
|
S24_LE is 24 bit audio in a 32 bit sample size. Also
make the pcm_format_to_bits() function part of the API
since it will be required for tinycap.
|
|
|
|
Some sound cards update their controls due to external
events, such as HDMI EDID byte data changing when an
HDMI cable is connected. This API allows the count of
elements to be updated.
|
|
This replaces (and extends) the existing get/set_bytes
API, which is no longer required.
|
|
Remove unused constants and unimplemented functions.
|
|
This enables the capabilities of any given PCM to be queried.
Created with input from Priyesh Bisla and Gabriel Beddingfield.
|
|
For binary controls we don't want to go through
mixer_ctl_{set,get}_value() as that will trigger many calls to our
get()/put() callback in the kernel. Set the entire payload at once
and trigger the get()/put() callback once.
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
|
|
|
|
|
|
Add a flag which can be passed to pcm_open (called PCM_NORESTART).
When set on a playback stream, calls to pcm_write will not
automatically attempt to restart an ALSA device in the case of an
underflow. Instead, it will propagate the first EPIPE error up to the
application to allow it to handle the underflow situation. Subsequent
calls to pcm_write will attempt to start the pipeline.
|
|
Just like the pcm_get_error() API, simplify the mixer API
functions to return pointers to constant strings instead
of making copies of strings.
|
|
Mark the write buffers as const - they won't be modified and this is
friendlier to applications.
|
|
Comment on buffer size was wrong. Argument to bytes_to_frames
is bytes, not frames
|
|
Add mmap playback and no period IRQ support to pcm core.
|
|
Add the ability to explicitly set start, stop and silence thresholds during
tinyalsa's pcm_open. Setting any of these values to 0 in your pcm_config
structure will cause the system to use its old defaults.
|
|
Add a extern "C" controlled by an #ifdef __cplusplus directive so that this
header can be included from C++ code without having to explicitly control the
linkage.
|