Added new channel-mapping API functions.
Not all plugins are covered, especially the route, multi and external
plugins don't work yet.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Allow external control plugins to provide TLV data. This allows
user-space pcms to specify dB ranges for controls.
This follows the same model as the ALSA drivers for accessing the
data. The code is based on that implementation. The control can
provide static data or a callback. The data is accessed or modified
in the new snd_ctl_ext_elem_tlv callback.
Rev bump the protocol version to enable checking if an external
control supports TLV.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Handling of user control elements was implemented for all types except
BYTES and ENUMERATED. Enumerated user controls will be needed for the
device-specific mixers of upcoming FireWire drivers.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Change some whitespace and comments to remove spurious differences
between the alsa-lib and kernel versions of asound.h.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
The hdsp.c driver supports the RME RPM devices, but we also need this
information in alsa-lib for tools like hdsploader and hdspmixer.
Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch adds new API functions, snd_ctl_open_fallback() and
snd_pcm_open_fallback(). These are just like snd_*_open_lconf() but
used to open a fallback PCM/control. The difference is that it replaces
the name string with the given original name, so that hctl and other
upper-layers will recognize it as an alias.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
[=]<NAME>[/[<modifier>|</device>][/<verb>]]
- value identifier <NAME>
- Search starts at given modifier or device if any,
else at a verb
- Search starts at given verb if any,
else current verb
- Searches modifier/device, then verb, then defaults
- Specify a leading "=" to search only the exact
device/modifier/verb specified, and not search
through each object in turn.
- Examples:
"PlaybackPCM/Play Music"
"CapturePCM/SPDIF"
From ValueDefaults only:
"=Variable"
From current active verb:
"=Variable//"
From verb "Verb":
"=Variable//Verb"
From "Modifier" in current active verb:
"=Variable/Modifier/"
From "Modifier" in "Verb":
"=Variable/Modifier/Verb"
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
At any time, one can query:
_supporteddevs/<modifier>|<device>/<verb>
_conflictingdevs/<modifier>|<device>/<verb>
If a verb is current, one can query:
_supporteddevs/<modifier>|<device>
_conflictingdevs/<modifier>|<device>
Note that at most one of the supported/conflicting devs lists has
any entries, and when neither is present, all devices are supported.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Add API to disable period wakeups.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
- new "Value {}" section is introduced for read-only values
describing the PCM and control/mixer IDs (or any other
things)
- more complete implementation for API functions
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
- separate code to more files
- use standard lists to represent structures
- use alsa-lib configuration parser
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
- merge all similar functions to one - make everything
string based
- add possibility to create virtual cards
- add comment pairs for the end user interface
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add doxygen and make support for UCM.
CC: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Justin Xu <justinx@slimlogic.co.uk>
Signed-off-by: Stefan Schmidt <stefan@slimlogic.co.uk>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
This patch adds the API header for alsa-lib Use Case Management support.
This file defines the public interface exported by UCM to client
applications.
UCM development has been kindly sponsored by Texas Instruments Inc,
Wolfson Microelectronics PLC and Slimlogic Ltd.
CC: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Stefan Schmidt <stefan@slimlogic.co.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Justin Xu <justinx@slimlogic.co.uk>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
- changed logic to get/put blocks
- added mutex locking of the symbol list
- added reference counting (do not free used dl handles)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Only restore the old value if it differs from the requested
value, because if it has changed restoring the old value
overrides the change. Take for example, a voice modem with
a .conf that sets preserve off-hook. Start playback (on-hook
to off-hook), start record (off-hook to off-hook), stop
playback (off-hook to restore on-hook), stop record (on-hook
to restore off-hook), Clearly you don't want to leave the
modem "on the phone" now that there isn't any playback or
recording active.
Signed-off-by: David Fries <david@fries.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The contents of the snd_pcm_scope_ops structure are not going to be
changed, so we might as well declare is as constant. This change is
backwards compatible, and avoids warnings if some ops structure is
actually defined as const.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Extend the PCM-rate plugin protocol to allow the host to query the
supported sample rates. The protocol version is bumped to 0x010002,
and the version number negotiaion is slightly changed.
Now the plugin is supposed to fill the version it supports in return.
The old versioned plugins are still supported, but they may spew
version-mismatch warning prints.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The off_t in kernel struct (for ioctls) is actually different from the
definition of user-space off_t. The kernel off_t is equial with long
while user-space off_t depends on the large-file support.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Increase the components array size from 80 to 128 chars.
The string there is supposed to be null-terminated, so it can cover
the smaller array size in the older version, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The simpler mixer interface is not legacy, so the header file shouldn't claim
otherwise.
Fixes bug#3569
From: Lennart Poettering <mznyfn@0pointer.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Updated IEC958 consumer status channel definitions according
to the third edition of IEC60958-3 spec.
Signed-off-by: Pawel Moll <pawel.moll@st.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Added definition for byte 4 of SPDIF channel status, according to
second edition of IEC 60958-3 (consumer) spec.
Signed-off-by: Pawel MOLL <pawel.moll@st.com>