Commit graph

62 commits

Author SHA1 Message Date
Jaroslav Kysela
7371ac9aad control: doc - create controls plugin page
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-04-07 16:24:05 +02:00
Jaroslav Kysela
19ad9bdc49 conf: introduce snd_config_get_card() function
It's helper for the "card" entries parsing. It reduces
the code in most of open_hw functions.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-02-26 21:08:28 +01:00
Hsin-Yu Chao
a84916364c control_hw: Fix issue when applying seccomp policy
When seccomp policy is applied to filter ioctl syscall with
SNDRV_CTL_IOCTL_TLV_COMMAND, SNDRV_CTL_IOCTL_TLV_READ and
SNDRV_CTL_IOCTL_TLV_WRITE in whiltelist, alsa-lib still breaks
in at snd_ctl_hw_elem_tlv().

The problem behind is because ioctl() takes unsigned long cmd
argument, and the signed bit of local int variable could cause
0xff bytes appended after casted to unsigned long.
In kernel, seccomp data struct takes 64 bits argument to check
against seccomp rules, these unexpected 0xff bytes could make
the rule check fail.

Fix the problem by passing unsigned int to ioctl.

Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-08-19 10:08:49 +02:00
Takashi Sakamoto
f61193c96c control: use position offset macro of TLV data
A series of SNDRV_CTL_TLVO_XXX macro was introduced for position offset
of TLV data. This commit applies a code optimization.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-05-15 18:03:12 +02:00
Jaroslav Kysela
5b9041bced Change FSF address (Franklin Street)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2017-11-14 14:29:26 +01:00
Takashi Iwai
7d9972c6ad Allow hint for ctl, hwdep, timer and seq
Like pcm and rawmidi, each object parser needs to accept the hint
component.  Now a new local function _snd_conf_generic_id() was
introduced to replace each call of "comment" and "type" field checks.

Also, the two existing identical functions for pcm and rawmidi are
removed and the new function is used commonly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2015-04-30 14:52:35 +02:00
Ivan Sorokin
336dc58beb control_hw: fix potential memory leak
Signed-off-by: Ivan Sorokin <vanyacpp@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-01-22 07:40:46 +01:00
Takashi Iwai
2f43b66c06 Allow specifying the max number of cards
Add --with-max-cards option to specify the max number of cards in
configure script, when the support for more than 32 cards is
required.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-24 17:21:15 +02:00
Takashi Iwai
9b5beef1dd Merge kernel uapi/sound/asound.h and asequencer.h
Instead of keeping modified asound.h and asequencer.h, copy the files
in the kernel include/uapi/sound as is, and give some renames for
avoiding conflicts with alsa-lib's definitions.

Some structs, unions and typedefs in asound.h and asequencer.h are
once renamed in local.h before inclusion, then renamed back again.

A bonus by this action is that some local codes don't have to refer to
sndrv_xxx any longer.  However, some codes like src/seq/seq.c need
explicit cast because of unavoidable conflicts of struct types.

Another significant change is that now snd_pcm_sw_params.period_event
field is removed.  Instead, try to access the last reserved field
internally.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-11-26 18:02:17 +01:00
Clemens Ladisch
15c6f83296 control: add snd_ctl_elem_add_enumerated()
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>
2011-10-07 23:38:55 +02:00
Takashi Iwai
e1c876a2f0 Fix missing error code in snd_ctl_hw_open()
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-03 17:27:27 +02:00
Rémi Denis-Courmont
57ce918928 Remove old commented-out FD_CLOEXEC code
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-08 09:23:22 +01:00
Diego E. 'Flameeyes' Pettenò
2289326673 Make seq, rawmidi and control operation structures static const.
Since they are never changed it does not make sense to have them in
the writeable .data section, just make sure to add const to the ops
member in the structure definitions so that there are no extra
warnings added.

Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 20:28:38 +01:00
Takashi Iwai
1cf904e894 Fix return value of snd_ctl_hw_subscribe_events()
snd_ctl_subscribe_events() must return 0 when succeeded.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-09-30 14:44:12 +02:00
Takashi Iwai
5cee69b47b Replace some assert() with runtime checks
assert() for sanity checks that can happen in runtime isn't a good idea.
Replaced it with the real check.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-09-30 14:43: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
a7bc1dd80c Check control API protocol version for TLV control
Check control API protocol version to avoid unnecessary ioctl
access for TLV stuff on the older drivers.
2006-09-17 22:06:46 +02:00
Jaroslav Kysela
c7a0708a23 Control API - add TLV support
snd_ctl_elem_tlv_read
snd_ctl_elem_tlv_write
snd_ctl_elem_tlv_command
snd_ctl_elem_info_is_tlv_readable
snd_ctl_elem_info_is_tlv_writable
snd_ctl_elem_info_is_tlv_commandable
snd_hctl_elem_tlv_read
snd_hctl_elem_tlv_write
snd_hctl_elem_tlv_command
2006-07-05 17:42:16 +02:00
Clemens Ladisch
09f598e57c allow changing of device directory path
Add configuration options to change the default device path from the
default /dev/snd.  This is useful for embedded systems that do not want
subdirectories in /dev.
2006-02-27 10:03:19 +00:00
Takashi Iwai
96e01a6112 Fix _snd_ctl_hw_open() mode argument
Added the missing mode argument in _snd_ctl_hw_open().
2005-06-09 17:14:22 +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
f9b9015245 Fix resmgr support
Call normal open() before trying with res_open_device().
snd_open_device() is defined to do this procedure.
2005-02-11 16:35:24 +00:00
Takashi Iwai
77c925a71f Add resmgr support
Added the support for resmgr.  A new configure option --with-resmgr is added
to enable the resmgr support.
2005-01-26 10:50:28 +00:00
Jaroslav Kysela
4a54759f1f - added support for user control elements 2003-10-21 17:39:14 +00:00
Takashi Iwai
7716fd1e3d fixes by Art Haas <ahaas@airmail.net>:
rewritten with C99 struct initialization style.
2003-07-25 17:02:00 +00:00
Jaroslav Kysela
368918b453 Added snd_ctl_elem_info_get_dimensions() and snd_ctl_elem_info_get_dimension() functions. 2003-04-01 13:58:09 +00:00
Jaroslav Kysela
073dff1ba1 Commented out FD_CLOEXEC fcntl() calls 2003-02-05 11:00:16 +00:00
Jaroslav Kysela
a313072961 Added handling of FD_CLOEXEC flag 2003-02-04 13:35:59 +00:00
Jaroslav Kysela
7fcea07002 Added SND_CTL_READONLY 2002-12-04 14:36:39 +00:00
Jaroslav Kysela
3e3df2d32b Updated GNU GPL license (address).
Changed GNU LGPL licence from 2.0 to 2.1.
2001-12-30 09:22:54 +00:00
Jaroslav Kysela
c39882f602 Configuration:
- changed snd_config_get_id function to follow semantic of other get functions
  - added snd_config_test_id
  - added runtime pointer type (not persistent)
    - added snd_config_make_pointer, snd_config_set_pointer, snd_config_get_pointer
  - added type/contents checking for callback functions
    - changed 'void *private_data' to 'snd_config_t *private_data'
  - renamed card_strtype functions to card_driver
Control:
  - fixed passing parameters to snd_ctl_async
Async handlers:
  - added public snd_async_handler_get_signo function
Documentation:
  - moved all documentation to source files
2001-11-19 08:14:21 +00:00
Jaroslav Kysela
27472b56a6 Changes for static build. 2001-10-24 14:14:11 +00:00
Jaroslav Kysela
67cc9dbc75 Fixed typos and made some cleanups in the async stuff 2001-10-18 12:33:45 +00:00
Jaroslav Kysela
3c59c6b11d Added power management functions and defines. 2001-09-26 13:57:04 +00:00
Jaroslav Kysela
b45c08611c Added symbol versioning for dlsym-callbacks.
Removed snd_config_refer_load from confmisc.c and pcm.c.
2001-08-15 12:12:16 +00:00
Abramo Bagnara
fcd164e622 Permit to PCM plug configuration to specify unchanged parameters. Added support for RT signals to async interface. Added ops for PCM mix. 2001-07-07 15:53:20 +00:00
Abramo Bagnara
157f47aedd New async notification API. Removed obsolete surround. Cleaning 2001-06-20 20:52:12 +00:00
Jaroslav Kysela
1e0c53a11c Added context handling for snd_config_expand.
PCM slave configuration is now dynamic.
2001-06-16 22:03:23 +00:00
Jaroslav Kysela
b72c78f887 Removed snd_ctl_pcm_surround_next_device function. 2001-05-03 15:11:35 +00:00
Jaroslav Kysela
12a47782cb Added ctl_elem_lock and unlock code... 2001-04-19 13:53:39 +00:00
Jaroslav Kysela
f12e938abd Added code for pcm_surround_next_device 2001-04-19 08:31:38 +00:00
Jaroslav Kysela
c4f95f48c3 Added the surround plugin to allow simple access for 4.0 and 5.1 speakers.
It needs a bit more work to make it functional.
2001-04-13 10:54:56 +00:00
Abramo Bagnara
7893ea238d Added mode argument to open functions where it was missing. First part of CTL documentation 2001-03-26 12:45:48 +00:00
Abramo Bagnara
31fcb58e9d Fixed typo 2001-02-14 08:26:33 +00:00
Abramo Bagnara
3e97ef3ea0 Changed control to use events mask. Added subscribe ioctl 2001-02-13 21:29:30 +00:00
Abramo Bagnara
955b9fc335 Fixed handle_events 2001-02-11 17:46:03 +00:00
Abramo Bagnara
a2d3434961 Completed mixer API. Improved iterators. Renamed control values struct. Rewritten simple elements implementation 2001-02-11 15:45:35 +00:00
Jaroslav Kysela
38033b49dd Updated the hctl interface (the more independent way). 2001-02-09 14:50:05 +00:00
Abramo Bagnara
fea0c73cdb Completed control and mixer API 2001-02-09 11:20:31 +00:00
Abramo Bagnara
45c416ed82 Better names for control API 2001-02-07 15:13:15 +00:00