Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Group read/write transfer into pcm_rw_transfer().
Create pcm_generic_transfer() for read/write and mmap
transfer modes. This recovers from xrun and suspended.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
A generic transfer function will be created. Put together
functions related to it.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
It is not needed.
As the pcm structure is opaque to user it can be safely
removed.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Make pcm_mmap_transfer() compatible with read/write IO.
start_threshold check was not valid for capture.
pcm->running checks were removed.
NOIRQ fallback was removed. Clocks of sound devices may
differ from the system, leading to desynchronization.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
pcm_mmap_transfer() will be rewritten. Put together
functions related to mmap transfer.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Use pcm_avail_update(), check avail for timestamp
coherence.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
pcm_get_htimestamp() will be rewritten. Place it after
pcm_avail_update(), which will be used in the rewrite.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Instead of sending appl_ptr and avail_min to the kernel,
get them. This is the behavior of alsa-lib.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
When hardware pointer update is requested and status
structure is mmaped, call HWSYNC ioctl.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Hardware pointer should not be updated in available
calculation.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
It's not necessary to send appl_ptr or avail_min to the
kernel here.
In prepare action, called later in pcm_open(), appl_ptr
becomes zero.
avail_min is already defined in software parameters.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
appl_ptr becomes zero in prepare action. avail_min is the
same as when it was set in software parameters.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
It is not needed.
As the pcm structure is opaque to user it can be safely
removed.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Prepare is done in pcm_open().
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Start is done by kernel when start_threshold or more frames
are requested.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
The state cannot be assumed as RUNNING after a write
because start_threshold may not have elapsed.
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
This eliminates the need for prepare in transfer functions
and pcm_start().
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
meson: extract project version from header file and version .so
|
|
- Extract project version from tinyalsa/version.h for
easier maintainability
- Version shared lib: tinyalsa.so -> tinyalsa.so.1.1.1
|
|
Add support for Meson as build system
|
|
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
|
|
|
|
|
|
|
|
|
|
Fix/pcm link
|
|
When pcm device is linked to other pcm device,
the start call may be triggered by other pcm device.
Handle this condition by checing pcm state before start call.
Signed-off-by: Miguel Gaio <mgaio35@gmail.com>
|
|
It is valid to get null sync_ptr on dma mmap coherent architecture.
In this case pcm_sync_ptr() is a nop.
Signed-off-by: Miguel Gaio <mgaio35@gmail.com>
|
|
Minor tweaks to enum controls
|
|
The current format of the data printed for enumeration controls is to
list all the control values with no separator between them and to place
a comma before the currently selected value. This format is hard to
parse as a human and very difficult to parse automatically. Change this
to separate individual values with a comma and mark the selected value
with a right angle bracket.
For example, the following output is given for the "AEC Loopback"
control on one of our CODECs:
HPOUT1LHPOUT1R, SPKOUTSPKDATLSPKDATR
After the change this becomes:
HPOUT1L, HPOUT1R, > SPKOUT, SPKDATL, SPKDATR,
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
|
|
It is only required to obtain the value of the control once whilst
processing tinymix_print_enum. This will significantly reduce the amount
of IOCTLs sent for reading an enum control.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
|
|
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
|
|
Fix pcm_writei return value if pcm is in not running state.
|
|
As per comment, on success, pcm_writei returns the number of frames written.
Fix the case of pcm not running.
Signed-off-by: Miguel GAIO <mgaio35@gmail.com>
|
|
Fixed potential risk of wild pointer
|
|
|
|
Added reading from stdin.
|