Commit graph

166 commits

Author SHA1 Message Date
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
Jaroslav Kysela
e0d7bfcea6 mixer simple basic abstraction - added python binding
reasons:
- rapid development
- class-like code structure
- more readable code
features:
- hcontrol binding is managed from python (opportunity to create
  virtual mixer without driver or join multiple cards to behave as one)
2007-07-11 10:10:12 +02:00
Takashi Iwai
21888c5f50 Add config and plugin directory options to configure
Added --with-configdir and --with-plugindir options to configure
which specify the directories for config files and plugin objects
respectively.  The default paths when these options are not
specified are unchanged.
2007-05-03 20:55:54 +02:00
Takashi Iwai
70e4ec9d08 Allow build without libdl and libpthread
Allow building alsa-lib without libdl and libpthread.
Added new options to configure, --with-libdl and --with-pthread.
2007-03-22 00:48:18 +01: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
Takashi Iwai
dc438157c5 Fix the description of snd_mixer_handle_events()
Fixed the description about the return value of snd_mixer_handle_events()
(ALSA bug#1932).
2006-03-21 16:58:32 +00: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
Clemens Ladisch
b5f50b06d2 fix doxygen warnings
Fix some wrong parameter names, hide some undocumented functions, and
correctly escape <> characters.
2005-10-12 16:08:53 +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
Jaroslav Kysela
a33c78ddd8 moved simple mixer abstraction modules to modules/mixer/simple directory
Compile dynamic modules outside the alsa-lib tree to allow linking them
against libasound.so - proper versions of dynamic symbols.
2005-08-22 12:07:55 +00:00
Takashi Iwai
19ac270f1e Add missing header files
Added missing header files to Makefile.am.
2005-08-19 17:23:05 +00:00
Clemens Ladisch
8737d1843c simple mixer: fix compilation with gcc 2.x
Move a variable declaration to the top of the function for compatibility
with gcc 2.x.
2005-08-16 15:30:19 +00:00
Takashi Iwai
99005614ba Add -avoid-version for smixer plugins
Added -avoid-verstion linker option for smixer plugins.
2005-08-12 15:51:48 +00:00
Jaroslav Kysela
59a8226184 The simple mixer abstraction - more work
- separated the "base library" from ac97.c (dynamically loaded)
  - added necessary handling of all private structures
  - added selector and sid registration functions and handling code
- added basic code for hda.c (yeah, my notebook has this hw)
2005-07-31 09:08:43 +00:00
James Courtier-Dutton
c593c1d260 Fix bug when a sound card had a stereo mute element and would fail to unmute the right channel.
Fixes a typo. Fixes bug#[ALSA - lib 0001219]
2005-06-29 20:31:33 +00:00
Jaroslav Kysela
1596c8c355 Fixed #include statements 2005-06-27 08:16:06 +00:00
Clemens Ladisch
274bce69e7 fix file name for Doxygen
Use the correct file name for \file to make Doxygen happy.
2005-06-23 07:45:17 +00:00
Jaroslav Kysela
ce67d5389b more simple mixer - basic abstraction - work
- midlayer cleanups and simplification
- probably broke the "none" abstraction code somehow (not intensively tested
  midlayer changes)
- trying to implement ac97 module
  - far from finished
  - common code should be moved to alsa-lib as core for other modules
  - perhaps simple_abst.c can be based on this common code, too
2005-06-16 11:59:26 +00:00
Jaroslav Kysela
4c4849230c initial & empty smixer-ac97.so module (only the build framework) 2005-06-07 11:44:25 +00:00
Jaroslav Kysela
3bcf2f805d Implemented the top-level redirector code for simple mixer
- mixer_abst.c is almost finished (an example module should be created now)
- also fixed some error paths for name function
2005-06-06 14:01:13 +00:00
Jaroslav Kysela
157cb698ac mixer - fix typo and memory leak 2005-06-03 14:04:53 +00:00
Jaroslav Kysela
597b4d0942 big simple mixer update
- exported all necessary functions to create a mixer module outside alsa-lib
- separated simple mixer API from the simple mixer implementation
  (using callbacks as usuall)
  - src/mixer/simple.c is the core
  - src/mixer/simple_none.c is the current (no-abstraction) implementation
    based on control names; note that this module does not depend on
    internal ALSA structures now
  - src/mixer/simple_abst.c is the ongoing abstraction which will use
    external dynamic modules; src/conf/smixer.conf will describe which
    modules will be used depending on the components from the driver
2005-06-03 13:33:04 +00:00
Jaroslav Kysela
ff9fd33190 a bit reordered code to fix bug #838 2005-05-30 11:38:54 +00:00
Takashi Iwai
087184b0f9 Fix doxygen documents
Fix the warnings of doxygen parsing.
Add some missing documentation.
2005-05-24 14:14:28 +00:00
Takashi Iwai
2ada7a8b81 Fix snd_mixer_sort()
Fixed the wrong pointer use in snd_mixer_sort().
(Patch from https://bugs.gentoo.org/attachment.cgi?id=58918)
2005-05-17 09:34:18 +00:00
Takashi Iwai
9835e5c9ce Add Side controls in the weight list
Added the "Side" controls in the weight list.
2005-02-18 18:13:45 +00:00
Takashi Iwai
da5fa1e15c Use bag_for_each_safe() for event handling loop
Use bag_for_each_safe() for event handling loop.
Event callbacks may be destructive.
2005-02-04 19:18:49 +00:00
Takashi Iwai
e02c51a199 stack protection (CAN-2005-0087)
From Thierry Vignaud <tvignaud@mandrakesoft.com>:

from rh: stack protection control (see
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=144518)
2005-02-01 18:18:45 +00:00
Takashi Iwai
13098f8f42 Fix memory leak
Fixed memory leak at snd_mixer_elem_detach().
2005-01-13 17:00:11 +00:00
Takashi Iwai
cb6bb19b4d Add Front control to weight list
Added "Front" control to the weight list.
2005-01-03 17:12:21 +00:00
Clemens Ladisch
c2f0d9c535 fix wrong doc section label 2004-08-16 08:43:26 +00:00
Takashi Iwai
c11a1fc9be fixed documents to process properly via doxygen. 2004-05-24 14:57:47 +00:00