aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-04-22Add a function to disambiguate duplicate control namesFrédéric Boisnard
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
2014-03-17Update pcm.cStevenNAN
avail will be wrong when avail is same with pcm->boundary.
2013-11-19tinymix: Improve detect of integer valuesCharles Keepax
Tinymix detected integer values when setting controls simply by calling isdigit on the first character of the value being set. This causes problems with enumerated controls whos values start with digits. This patch improves this to provide more robust detection of integer values.
2013-10-30tinymix: Add support for setting/getting a binary controlDimitris Papastamos
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com>
2013-09-27add support for mmap readEric Laurent
2013-09-03pcm_get_htimestamp can now use CLOCK_MONOTONICGlenn Kasten
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
2013-08-13tinycap: support streaming captured PCM to stdoutRichard Fitzgerald
It is sometimes useful for testing to be able to stream the captured PCM to another tool instead of being forced to save it to a WAV file. Using '--' instead of the target filename will send the raw PCM to stdout (without any header). Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
2013-07-17tinymix: only print mixer name for full mixer dumpSimon Wilson
2013-07-17tinycap: support 24 bit captureSimon Wilson
2013-07-17pcm: support S24_LE formatSimon Wilson
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.
2013-06-28mixer: add mixer_get_name() APISimon Wilson
2013-06-28mixer: add mixer_ctl_update() APISimon Wilson
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.
2013-05-07mixer: add get/set_array APISimon Wilson
This replaces (and extends) the existing get/set_bytes API, which is no longer required.
2013-04-30tinycap: convert size from frames to bytesceskobassman
2012-12-18Clean up asoundlib.h header fileRom Lemarchand
Remove unused constants and unimplemented functions.
2012-12-14Merge pull request #22 from roml/errmsgSimon Wilson
tinyplay: Make error messages more meaningful
2012-12-14Makefile: remove tinypcminfo during cleanSimon Wilson
2012-12-14tinyplay: Make error messages more meaningfulRom Lemarchand
Compare file parameters with device capabilities and print out the reason(s) why a certain file couldn't be played.
2012-12-03Add tinypcminfo utilitySimon Wilson
This uses the new pcm_params_* API.
2012-12-03pcm: add pcm_get_params APISimon Wilson
This enables the capabilities of any given PCM to be queried. Created with input from Priyesh Bisla and Gabriel Beddingfield.
2012-11-09Add -Wall to Makefile and fix warningsSimon Wilson
2012-11-09tinyplay: add clean shutdown handler for ctrl-cLiam Girdwood
Shutdown gracefully on ctrl-c signals
2012-11-09Merge pull request #15 from quantumdream/masterSimon Wilson
Add mixer_ctl_{get,set}_data()
2012-11-09tinymix: Add support for passing control nameMisael Lopez Cruz
Allow mixer controls to be accessed through the name, not only by id.
2012-10-24tinyalsa: Add a CROSS_COMPILE variable in the MakefileDimitris Papastamos
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
2012-10-24mixer: Add mixer_ctl_{set,get}_bytes()Dimitris Papastamos
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>
2012-10-22Merge pull request #16 from PeterMalkin/masterSimon Wilson
Correctly fill the value for riff chunk size in the WAV file produced by tinycap
2012-10-22Add pcm_wait() to the tinyalsa API.Gabriel M. Beddingfield
2012-10-22tinyplay: Add missing header file <string.h>Gabriel M. Beddingfield
2012-10-22Fix several 'symbol defined but not used' warnings.Gabriel M. Beddingfield
2012-10-22pcm: Add support for S8 and S24LE formats.Gabriel M. Beddingfield
2012-09-18tinymix: support setting of multiple control valuesSimon Wilson
This allows stereo controls to be set with different values for left and right.
2012-09-18pcm: fix default capture start thresholdEric Laurent
Default start threshold was set to the same value (half of the buffer size) for playback and capture in pcm_open(). The normal default value for capture should be 1 frame.
2012-07-03Report correct chunk size per RIFF format requirementsPeter Malkin
Change-Id: I72948868c4da88556b022ca2c583a351c5019022
2012-05-15Merge pull request #14 from kyoungpark/mastertinyalsa
pcm: add error check for pcm_start in pcm_read
2012-05-15Merge pull request #13 from mesak82/tinycap_headertinyalsa
tinycap: Fix byte_rate and block_align values
2012-05-10add error check for pcm_startKeunyoung
- Otherwise, read will be tried even after pcm_start is failed. This leads into blocking inside the read ioctl forever. pcm_start can fail, for example in full-speed USB audio device, in some H/W, due to the lack of bandwidth in USB bus,
2012-05-04pcm: Add PCM_NORESTART flagJohn Grossman
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.
2012-05-04mixer: add missing include for sys/ioctl.hSimon Wilson
2012-05-04tinyplay: add multichannel supportSimon Wilson
Improve the reading of the RIFF WAVE header so that unrecognised chunks are skipped, which means that extra chunks are not played as if they were audio data. This ensures that all channels for multichannel playback line up correctly. Change-Id: Ifdb3cb73b3c0bf41a1e271068d263cd01116616c
2012-04-05tinycap: Fix byte_rate and block_align valuesMisael Lopez Cruz
'byte_rate' and 'block_align' sections of the WAV header were calculated using an invalid 'bits_per_sample' value. 'bits_per_sample' is now set before it gets used by other fields. Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
2012-03-08mixer: remove redundant IOCTL_ELEM_READsSimon Wilson
2012-03-08mixer: simplify string get APIsSimon Wilson
Just like the pcm_get_error() API, simplify the mixer API functions to return pointers to constant strings instead of making copies of strings.
2012-03-08tinycap: add missing options to usage stringSimon Wilson
2012-02-14Merge pull request #10 from axelcx/tiny-alsa-titinyalsa
tinyplay: Use buffer size in bytes instead of frames
2012-02-13tinyplay: Use buffer size in bytes instead of framesAxel Castaneda Gonzalez
pcm_write expects to receive buffer size given in bytes, but tinyplay sends as a parameter the size in frames, which causes audio sample data loss for some scenarios where more than 2 channels are used. For example: When using 6 channels and 1024 as period size: -On tinyplay side size=4096 (buffer_size) -On pcm_write (pcm.c) x.frames = count / (pcm->config.channels * pcm_format_to_bits(pcm->config.format) / 8); x.frames = 4096 / (6 * 16/8) x.frames = 341.33 (decimal part is discarded, 4 bytes are lost every pcm_write) -- In this case, 4 bytes are lost, which causes a shift of the channels. Use buffer size in bytes in order to avoid this problem. Signed-off-by: Axel Castaneda Gonzalez <x0055901@ti.com>
2012-02-10Merge pull request #4 from broonie/pcmtinyalsa
pcm: Factor out pcm_start() from pcm_read()
2012-02-11pcm: Factor out pcm_start() from pcm_read()Mark Brown
When starting the stream we're doing the same as a start()
2012-02-10Merge pull request #11 from broonie/const-writetinyalsa
pcm: Constify write buffers
2012-02-10Merge pull request #9 from gabrbedd/topic/paramstinyalsa
Topic/params - add parameters to select card, etc.