Age | Commit message (Collapse) | Author |
|
|
|
tinymix: fix segfaults with set command
|
|
The arguments passed after the set command are not handled properly,
leading to segfaults or inability to set controls
Example with control 0 which is Headset Volume on my NUC:
before fix
$ ./tinymix set 0
Segmentation fault
$ ./tinymix set 0 10
Segmentation fault
$ ./tinymix set 0 10 20
Error: 3 values given, but control only takes 2
After correction
$ ./tinymix set 0
no value(s) specified
$ ./tinymix set 0 10
$ ./tinymix set 0 10 10
$ ./tinymix set 0 10 10 10
Error: 3 values given, but control only takes 2
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix mixer_wait_event function comments
|
|
The @return comment description incorrect.
Fix it.
Change-Id: I148a5ebf3e05eb4824beb4c8fa1032a38272d86d
Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
|
|
Tinyalsa: Add support to poll on alsa control
|
|
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>
|
|
Tvl fix
|
|
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>
|
|
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>
|
|
pcm.h -- (over/under)run definition
|
|
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)
|
|
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.
|
|
|
|
The link function is necessary for time sychronization between multiple PCMs.
|
|
|
|
|
|
Added an example of pcm_writei usage and an example of pcm_readi
usage. Both examples use a common file called 'audio.raw'.
|
|
Added ignore patterns for files in the new 'examples' directory.
The file 'audio.raw' is generated by running pcm-writei.
|
|
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.
|
|
mixer: add ability to update control list with new controls
|
|
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>
|
|
|
|
This merges all the changes for the 1.1.0 release to the master branch.
|
|
|
|
|
|
|
|
|
|
|
|
pcm_readi and pcm_writei now use a frame count to specify the
buffer length instead of using a byte count.
|
|
The newer pcm_readi and pcm_writei functions are now being used.
|
|
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 merge adds the changes made to the mixer API.
|
|
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
|
|
Added const specifiers to all applicable functions in the PCM API.
|
|
pcm_get_file_descriptor
pcm_get_error
pcm_get_buffer_size
pcm_frames_to_bytes
pcm_bytes_to_frames
pcm_get_subdevice
|
|
|
|
Added const specifier to the struct pcm_config argument.
Changed the way default values of the config structure are set and accessed.
They're accessed through the pointer from the argument list and set through the pointer in the pcm structure.
|
|
The const specifier was added to the struct pcm_config argument.
|
|
The changed was brought on by to early commits to the PCM API.
|