Commit graph

118 commits

Author SHA1 Message Date
Jaroslav Kysela
c051036e17 Change snd_dlopen() function to return the error string
The dlopen() function might fail also for another reason than
a missing file, thus return the error string from dlerror().

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2017-11-27 21:48:20 +01: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
Antonio Ospite
baed295faa seq: fix snd_seq_set_queue_tempo() usage example in the documentation
snd_seq_set_queue_tempo() requires a queue id as the second argument,
fix the example in documentation to reflect that.

Also add the queue id as an argument of the set_tempo() function, just
to keep the whole example compilable.

Signed-off-by: Antonio Ospite <ao2@ao2.it>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-10-03 09:11:44 +02:00
Natanael Copa
885c64bcc4 cleanup: fix poll.h includes
According POSIX[1] and linux manpage[2] the include is poll.h, not
sys/poll.h.

This fixes the he following compiler warning when build with musl libc:

  /usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
   #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
    ^~~~~~~

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-07-12 12:05:37 +02:00
Adam Goode
1eddf1f918 seq: improve documentation about new get pid/card functions
Document the technique for determining if the running kernel supports
the new snd_seq_client_info_get_pid and snd_seq_client_info_get_card
functions. Also add a little information about how to use these
functions and add some cross references.

Signed-off-by: Adam Goode <agoode@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-03 17:49:07 +01:00
Takashi Iwai
c9a0d7d601 conf: Add thread-safe global tree reference
Most of open functions in alsa-lib have the call pattern:
  snd_config_update();
  return snd_xxx_open(x, snd_config, ...);

This means that the toplevel config gets updated, and passed to a
local open function.  Although snd_config_update() itself has a
pthread mutex to be thread safe, the whole procedure above isn't
thread safe.  Namely, the global snd_config tree may be deleted and
recreated at any time while the open function is being processed.
This may lead to a data corruption and crash of the program.

For avoiding the corruption, this patch introduces a refcount to
config tree object.  A few new helper functions are introduced as
well:
- snd_config_update_ref() does update and take the refcount of the
  toplevel tree.   The obtained config tree has to be freed via
  snd_config_unref() below.
- snd_config_ref() and snd_config_unref() manage the refcount of the
  config object.  The latter eventually deletes the object when all
  references are gone.

Along with these additions, the caller of snd_config_update() and
snd_config global tree in alsa-lib are replaced with the new helpers.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-05-17 15:51:20 +02:00
Martin Koegler
e0e3ce5f71 seq: Provide sequencer sound card number / PID via alsa-lib
rawmidi devices expose the card number via IOCTLs, which allows to
find the corresponding device in sysfs.

The sequencer provides no identifing data. Chromium works around this
issue by scanning rawmidi as well as sequencer devices and matching
them by using assumtions, how the kernel register sequencer devices.

This changes adds support for exposing the card number for kernel clients
as well as the PID for user client.

It supports kernels with and without the required support.

Signed-off-by: Martin Koegler <martin.koegler@chello.at>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-03-08 10:57:18 +01: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
5332d74a67 fix doc errors
Fix various errors in the documentation that make doxygen complain.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2009-08-04 09:17:20 +02:00
Patricio Paez
50e9cd9525 Fix typos in ALSA Lib documentation
Signed-off-by: Patricio Paez <pp@pp.com.mx>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-23 10:00:06 +01:00
Aldrin Martoq
2cec6e2653 mark snd_seq_client_info_{get,set}_event_filter deprecated
Mark snd_seq_client_info_{get,set}_event_filter deprecated

Signed-off-by: Aldrin Martoq <amartoq@dcc.uchile.cl>
2008-02-22 17:51:05 +01:00
Aldrin Martoq
75ecdac6f4 add snd_seq_client_info_event_filter_*() functions
Added snd_seq_client_info_event_filter_{clear,add,del,check} to alsa
sequencer API

Signed-off-by: Aldrin Martoq <amartoq@dcc.uchile.cl>
2008-02-22 17:46:50 +01:00
Aldrin Martoq
882f93ac26 add snd_seq_unset_bit()
Added snd_seq_unset_bit() to alsa sequencer API

Signed-off-by: Aldrin Martoq <amartoq@dcc.uchile.cl>
2008-02-22 17:42:56 +01:00
Takashi Iwai
0e5b2a006a Fix snd_seq_change_bit()
snd_seq_change_bit() doesn't change but only set.

From: Aldrin Martoq <amartoq@dcc.uchile.cl>
2008-02-21 12:31:18 +01:00
Takashi Iwai
54a2cf5ecf Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.
2007-10-30 12:31:55 +01: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
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
Jaroslav Kysela
03389a444b change iface argument for namehint function to const char *
remove snd_ctl_iface_conf_name function
2006-10-27 13:31:32 +02:00
Clemens Ladisch
123e2b7780 clarify SND_SEQ_PORT_TYPE_xxx documentation
Clarify the documentation for the SND_SEQ_PORT_TYPE_xxx flags, especially
for _SYNTH and *_SAMPLE where it was rather misleading.
2006-05-02 16:28:22 +02:00
Clemens Ladisch
c3ac7bdf87 add more sequencer port type information bits
Add four new information flags SNDRV_SEQ_PORT_TYPE_HARDWARE, _SOFTWARE,
_SYNTHESIZER, _PORT for sequencer ports.  This makes it easier for apps
like Rosegarden to make policy decisions based on the port type.
2006-05-02 16:08:36 +02:00
Takashi Iwai
9c69158f31 Fix missing snd_dlclose() in sequencer
Call snd_dlclose() with the dlopen handle in snd_seq_close().
2006-04-25 17:27:26 +02: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
Clemens Ladisch
45850439b3 Do not abort in snd_xxx_close() functions
Remove several memory leaks by not aborting prematurely from a
snd_xxx_close() function when some operation fails.
This can happen when a USB device was unplugged.
2006-02-27 09:54:57 +00:00
Takashi Iwai
eccc92a34d Fix infinite parse of recursive definitions
Fixed the infinite parse (and eventually segfault) of recursive definitions.
Also fixed the parse of a string slave PCM of direct plugins.
2006-01-30 14:41:51 +00:00
Takashi Iwai
76f7af823b Fix compile warnings
Fix trivial compile warnings.
2005-12-16 18:43:49 +00:00
Takashi Iwai
2f71b8753b Fix type-punning
Fixed compile warnings on the latest gcc about type-punning.
Removed unnecessary casts.
2005-09-29 19:11:50 +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
Jaroslav Kysela
412fb54e0d Fedora 4 patch - gcc4 fixes 2005-05-06 14:09:17 +00:00
Clemens Ladisch
cf73143ce8 fix snd_seq_query_next_client documentation
Fix snd_seq_query_next_client's documentation -- no name matching is
actually done by ALSA.
2005-05-02 07:42:52 +00:00
Jaroslav Kysela
f2175f1384 Fixed thinkos in documentation (filter example) 2004-03-23 15:15:21 +00:00
Clemens Ladisch
16a15f56c4 fix doxygen errors (syntax errors and wrong references) 2004-03-02 17:13:49 +00:00
Takashi Iwai
e1ae539931 added more documents.
removed the obsolete snd_seq_port_subscribe_set_voices().
2003-10-22 14:25:55 +00:00
Takashi Iwai
701d0614f1 more documents as introduction. 2003-10-20 14:04:53 +00:00
Takashi Iwai
093e07cdf8 fixed typos. 2003-08-27 13:54:55 +00:00
Takashi Iwai
09161437ef - added auto-timestamp mode for the port.
snd_seq_port_info_get/set_timestamping()
    snd_seq_port_info_get/set_timestamp_real()
    snd_seq_port_info_get/set_timestamp_queue()
- increased the protocol version to 1.0.1.
2003-07-25 17:24:13 +00:00
Jaroslav Kysela
098932ce57 Added POLLNVAL to poll->events 2002-11-30 09:47:20 +00:00
Takashi Iwai
fe58dd62eb fixed typo of snd_seq_poll_descriptors() in getting poll desc
for output only.
2002-07-15 14:08:32 +00:00
Takashi Iwai
ea83756fbe - removed snd_seq_create_event from seq.h. it's deprecated.
the function itself still exists for compatibility
  but protected by DOC_HIDDEN.
- a bit more comments about snd_seq_free_event.

- since alsa.m4 used snd_seq_create_event for checking libasound,
  now it's replaced with snd_ctl_open.
2002-05-27 11:14:20 +00:00
Jaroslav Kysela
f74dc6ba74 Added snd_seq_port_subscribe_set_voices() 2002-05-12 07:23:32 +00:00
Jaroslav Kysela
853304bbf4 Corrections by Kevin Conder <kconder@interaccess.com> 2002-03-12 20:14:33 +00:00
Jaroslav Kysela
2ca5ace9cb More documentation changes (rawmidi, timer) 2002-02-11 18:11:16 +00:00
Jaroslav Kysela
a92f910569 Changes against latest doxygen 2002-02-04 11:18: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
f422fb9a78 Added missing variable initialization in open_conf() functions (hwdep, timer); Uros 2001-12-27 20:55:53 +00:00
Takashi Iwai
bcf50519e4 Added time skew on queue.
The timer speed can be controlled via skew value, smaller = slower
centered on the skew-base value.
2001-12-10 16:45:05 +00:00
Jaroslav Kysela
ddb7209e9a Added snd_*_poll_descriptors_revents functions. 2001-11-30 17:36:45 +00:00
Jaroslav Kysela
c33c5760ab Added snd_*_open_lconf functions.
Some minor changes in config interface documentation.
2001-11-24 17:47:01 +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
Takashi Iwai
4ea2403c9b Fixed comments / documentation. 2001-09-26 15:32:06 +00:00