Commit graph

55 commits

Author SHA1 Message Date
Takashi Sakamoto
bd09e4790c mixer: remove alloca() from elem_write_enum()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:33 +02:00
Takashi Sakamoto
5ca104cf15 mixer: change code formatting for elem_write_enum()
This commit applies code format according to typical and moderate rule.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:33 +02:00
Takashi Sakamoto
60875a1ca6 mixer: remove alloca() from elem_write_switch_constant()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:33 +02:00
Takashi Sakamoto
748912f350 mixer: remove alloca() from elem_write_switch()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:33 +02:00
Takashi Sakamoto
2011f04e09 mixer: change code formatting for elem_write_switch()
This commit applies code format according to typical and moderate rule.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:33 +02:00
Takashi Sakamoto
1c11f334e7 mixer: remove alloca() from elem_write_volume()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:32 +02:00
Takashi Sakamoto
32393c67ab mixer: change code formatting for elem_write_volume()
This commit applies code format according to typical and moderate rule.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:32 +02:00
Takashi Sakamoto
7ada2d6f41 mixer: remove alloca() from selem_read()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:32 +02:00
Takashi Sakamoto
8d45e412b5 mixer: change code formatting for selem_read()
This commit applies code format according to typical and moderate rule.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:32 +02:00
Takashi Sakamoto
df868c77f3 mixer: remove alloca() from elem_read_enum()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:32 +02:00
Takashi Sakamoto
ed6acca132 mixer: change code formatting for elem_read_enum()
This commit applies code format according to typical and moderate rule.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:32 +02:00
Takashi Sakamoto
bf059f00be mixer: remove alloca() from elem_read_route()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:31 +02:00
Takashi Sakamoto
b67b9e42ca mixer: change code formatting for elem_read_route()
This commit applies code format according to typical and moderate rule.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:31 +02:00
Takashi Sakamoto
15ff48e721 mixer: remove alloca() from elem_read_volume()
Both of alloca() and automatic variables keep storages on stack, while
the former generates more instructions than the latter. It's better to use
the latter if the size of storage is computable at pre-compile or compile
time; i.e. just for structures.

This commit obsolete usages of alloca() with automatic variables.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:31 +02:00
Takashi Sakamoto
bc08a11eda mixer: change code formatting for elem_read_volume()
This commit applies code format according to typical and moderate rule.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:31 +02:00
Takashi Sakamoto
9e1c73cdd4 mixer: include library local header to find layout of structures
Inner this library, implementation of each features can find actual layout
of structures by including local header. Although, mixer feature is written
without the header and as the same way for applications. This brings some
inefficiencies such as usage of alloca() to keep memory objects for the
structures.

This commit includes the header for further improvements in mixer
feature.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-07-15 08:16:31 +02:00
Takashi Iwai
c0a708180f mixer: Fix inclusion of config.h
config.h wasn't read or read too late in some files in src/mixer.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-11-21 15:20:48 +01:00
Jaroslav Kysela
49dde08641 Reduce compilation warnings
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2012-10-30 13:09:10 +01:00
Takashi Iwai
75194776a7 Fix compile warnings
strstr() returns a char pointer

simple_none.c: In function ‘base_len’:
simple_none.c:940:33: warning: ordered comparison of pointer with integer zero
simple_none.c:941:29: warning: ordered comparison of pointer with integer zero

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-04 09:14:29 +02:00
Raymond Yau
886adf664b Fix alsa-lib to regard 3D control - Depth as Playback Controls
This allow those mixer or recording application to find those controls which
are really used for capturing.

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-02-28 11:15:57 +01:00
Michael Olbrich
13af48843d simple_none.c uses HAVE_SOFT_FLOAT it has to include config.h
for this to work properly.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-11-16 11:31:53 +01:00
Takashi Iwai
ac9de424bc mixer: Add Speaker and Beep names to the weight list
Added strings "Speaker" and "Beep" to the weight list so that the entries
appear in more appropriate positions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-31 16:41:12 +02:00
Takashi Iwai
a789b66d00 Fix build with softfloat option
Fix build of alsa-lib when --with-softfloat is used:
 - disable ladspa plugin
 - don't use sqrt() function

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-21 09:25:48 +01:00
Diego E. 'Flameeyes' Pettenò
03388ca6d3 Mark static tables as constant when possible.
This makes it possible to write them to .data.rel.ro or to .rodata if
there is no relocation involved (arrays of character arrays).

Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 22:39:38 +01:00
Diego E. 'Flameeyes' Pettenò
fc8d8bb2e6 Make string arrays as constant as possible.
Use "const char *const []" as type for string arrays, or convert to
"const char [][x]" when it makes sense.

Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 22:14:52 +01:00
Takashi Iwai
55c77d0ec2 Fix volume/switch updates for global/simple mixer elements
Fixed a long-standing bug that the values of global or simple mixer
elements aren't updated when dir = SM_CAPT is given.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-10 17:39:11 +01:00
Jaroslav Kysela
058dde8b7d implemented integer volume <-> dB volume conversion functions for simple mixer 2008-04-21 11:44:20 +02:00
Clemens Ladisch
7b51f62732 simple mixer: fix calculation of control range
When calculating the value range of a control, the variables cannot be
initialized with zero because this would prevent the minimum from having
a value above zero or the maximum from having a value below zero.
2007-11-12 08:50:08 +01:00
Takashi Iwai
68e5771a6f Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.

Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
2007-10-25 15:36:03 +02:00
Takashi Iwai
f38e5feca3 Export dB conversion helper functions
Export helper functions to convert dB level and range.

snd_tlv_*dB*() are to convert dB level or range directly from TLV data.
snd_ctl_*dB*() are to get dB level or range from a control element.
2007-10-24 13:04:14 +02:00
Jaroslav Kysela
d25e281230 Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-15 10:24:55 +02:00
Takashi Iwai
dac0e3b17c Handle "Input Source" as a capture element
Some drivers use "Input Source" as the capture source mixer element because
mixer abstraction layer can't handle multiple "Capture Source" elements.
This patch adds a hack to handle Input Source as a capture route, and let
mixer apps know that it's a capture stuff, at least.
2007-08-29 14:48:31 +02:00
Clemens Ladisch
f54f03bfc4 fix SNDERR() format strings/arguments 2007-02-12 13:45:57 +01:00
James Courtier-Dutton
6d511eefa0 Implements support for capture/playback enums. 2006-10-13 22:06:17 +01:00
Jaroslav Kysela
13fdc41785 add snd_device_name_hint() function and initial implementation
- add snd_device_name_hint() and snd_device_name_free_hint() functions
- add snd_ctl_iface_conf_name() functions
- do not accept parameters for the plugin definition without @args section
- add defaults.pcm.dmix.card/device and dsnoop.card/device definitions
- add hints for HDA-Intel.conf, pcm/dmix.conf, pcm/dsnoop.conf and alsa.conf
- add test/namehint test utility
- doxygen related cleanups
2006-10-11 13:18:57 +02:00
Jaroslav Kysela
275afa4d70 simple mixer - fix error recovery path for volume / switch write
If volume or switch write fails, the internal contents for element
is changed, but it is wrong. Reread the whole simple element in this
case to get correct values.
2006-10-01 17:57:36 +02:00
Takashi Iwai
9d2518bb91 Fix wrong scales in linear volume calculation
Fixed wrong scales of dB values (TLV is 0.01dB unit) in the linear
volume calculation.
2006-09-07 20:51:41 +02:00
Takashi Iwai
fba26cd668 Add support of dB range compound TLV
Added the support of dB range compound TLV type in the simple mixer layer.
All get_dB, get_dB_range and set_dB ops are supported.
2006-09-06 12:17:29 +02:00
Takashi Iwai
b0bbcd0697 Add handling of linear volume in simple mixer
Added the handling of linear volume TLV in the simple mixer layer.
2006-08-28 13:27:41 +02:00
Takashi Iwai
4962ec5a5c Add set_dB ops to simple mixer
Added the set_dB ops to simple mixer.
2006-08-25 11:56:50 +02:00
Takashi Iwai
448cbb6141 Add dB_range ops for simple mixer
Added the dB_range ops for simple mixer.
2006-08-25 11:54:59 +02:00
Takashi Iwai
66f3749cab Fix segfault when invalid TLV is passed
Fix segfault when invalid TLV is passed.
The invalid TLV entries must be ignored as error.
2006-08-23 15:44:09 +02:00
Takashi Iwai
4165a5bfd1 Fix dB ops for global volume
Fixed dB ops for global volume.
2006-08-23 15:25:43 +02:00
Takashi Iwai
ae76129999 Move dB parser to mixer abstraction
Moved the parser of dB value to mixer abstraction from hcontrol layer.
Also, cleaned up codes.
2006-07-28 14:36:37 +02:00
Jaroslav Kysela
c4a5efeba3 mixer - cleanups for dB scale parsing 2006-07-27 10:45:25 +02:00
James Courtier-Dutton
5e3fc87888 Implement support for dB gain display in alsamixer. 2006-07-22 14:56:48 +01:00
Clemens Ladisch
4433248bf3 remove superfluous free() checks
free() correctly handles NULL pointers, so we can omit explicit checks
for that condition.
2006-02-27 09:58:32 +00:00
Takashi Iwai
76f7af823b Fix compile warnings
Fix trivial compile warnings.
2005-12-16 18:43:49 +00:00
Takashi Iwai
33a40df1af Fix the handling of stereo capture source
Patch from bug#1610

The simple mixer doesn't handle the stereo "Capture Source" properly,
wrongly set cswitch-joined.
2005-12-02 13:39:24 +00:00
Jaroslav Kysela
5af75610f2 mixer API - extend simple enumerated controls for direction tests
Added snd_mixer_selem_is_enum_playback() and
snd_mixer_selem_is_enum_capture() functions.
2005-08-24 10:41:16 +00:00