Age | Commit message (Collapse) | Author |
|
https://github.com/dawagner/tinyalsa into dawagner-address-duplicate-control-names
|
|
include time.h, to prevent use of struct timespec before definition
|
|
Signed-off-by: Ben Zhang <benzh@google.com>
|
|
In some old (2.6.32.x) kernel headers, asound.h does not include linux time.h
when __KERNEL__ is undefined, which may break userspace.
The build failures caused by this are similar to those fixed by c8333f8c.
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
|
|
|
|
Each mixer_ctl has an associated snd_ctl_elem_info, which was
kept in a separate array with pointers from the mixer_ctl to
its corresponding snd_ctl_elem_info. This means double
pointer dereferences when looking up the info. It also means
extra work to add support for extending the arrays to include
dynamically added controls because the pointers from the ctl
array to the info array would have to be updated.
This patch removes the info list and gives each mixer_ctl struct
its own local snd_ctl_elem_info, removing the additional pointer
dereferencing.
Change-Id: I03f7d411afd9e37f58b984584712fee64d85ef4e
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
|
|
mixer: Add mixer_ctl_get_id
|
|
Add tinyasla support for bytes controls with TLV type
Signed-off-by: Mythri P K <mythri.p.k@intel.com>
Signed-off-by: Samreen Nilofer <samreen.nilofer@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|
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>
|
|
Revert "mixer: Control input value in mixer_ctl_set_value"
|
|
This reverts commit 0e07647e4b9c52bb5f3766f9564ed38b6030e556.
This commit disables reporting of an error when somebody requests an out
of range value from a control which seems like a bad goal to start with,
if something invalid is requested we should return an error not set
things to the nearest valid state.
Secondly since mixer_ctl_get_range_max returns an error for all control
types except TYPE_INTEGER, all controls that are not integers will be
set to -EINVAL with this patch included.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
|
|
tinyalsa set mixer function didn't support BYTE element
type
Add BYTE element type support
Change-Id: I95d1d82150805f16cc5103bac9c9c9500210bbbf
Signed-off-by: David Coutherut <davidx.coutherut@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|
Currently, if a user sets a mixer with a percentage value
greater than the maximum, tinyalsa does not inform the user
about this "error" and silently replaces the user's value
by the maximum. However, if a user sets a mixer with an
integer value greater than the maximum, tinyalsa informs
the user with an error.
This patch purpose is to define the same behaviour in both
quoted cases: user is informed through an error.
Change-Id: I79547758266d1eb08a65d7b1355ec9859f3b27bb
Signed-off-by: Baptiste Robert <baptistex.robert@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|
When the user wants to set a mixer with a value greater
than the maximum or smaller than the minimum, the mixer
is set at an undefined value.
This patch set purpose is to return a error if the input
value is out of range.
Signed-off-by: Baptiste Robert <baptistex.robert@intel.com>
Signed-off-by: David Wagner <david.wagner@intel.com>
Author-Tracking-BZ: 129089
|
|
When user want to set a mixer control with a value out of range,
the mixer control will be set at its maximum
|
|
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
|
|
|
|
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.
|
|
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>
|
|
|
|
|
|
|
|
Just like the pcm_get_error() API, simplify the mixer API
functions to return pointers to constant strings instead
of making copies of strings.
|
|
Use existing routines to read BYTE controls. Somewhat inefficient
since an ioctl is done for every byte, some caching in intermediate
fields would be beneficial.
|
|
Remove the use of the errno variable and instead return errors
directly where appropriate.
|
|
|
|
|
|
- re-add function to set enum type by string
- implement setting of mixer values in tinymix
- fix bug: read current mixer values before writing
|
|
- simplify interface for setting/getting enum values
- implement enum string get function
- update tinymix to deal with enums
- rename set/get_int functions because of supported types
|
|
- support get/set of multiple values
- add parameter checking to functions
- add api function to get control type
- add tinymix utility to list mixer controls
|
|
|
|
|
|
|