alsa/0005-seqmid-more-descriptions-on-snd_seq_parse_address-be.patch
Takashi Iwai bed9c86d2d Accepting request 122709 from home:tiwai:branches:multimedia:libs
- backport upstream fixes:
  * Add support for Echo3G devices
  * Blacklist iec958 for some USB devices
  * Remove redundant CHECK_ENUM() from snd_mixer_selem_is_enum*()
  * Document fixes / updates
  * Add ability to specify TLV data to external control plugins
  * Fix invalid long long format specifier
  * Fix missing break in PCM non-interleaved mmap handling
  * improve robustness of TLV raw value ranges

OBS-URL: https://build.opensuse.org/request/show/122709
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=101
2012-05-29 09:32:49 +00:00

39 lines
1.6 KiB
Diff

From 193724743965d4548d632ebfde15c0c5d3c44e9d Mon Sep 17 00:00:00 2001
From: Henning Thielemann <alsa@henning-thielemann.de>
Date: Wed, 14 Mar 2012 18:45:02 +0100
Subject: [PATCH 05/14] seqmid - more descriptions on snd_seq_parse_address()
behavior
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
src/seq/seqmid.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/seq/seqmid.c b/src/seq/seqmid.c
index 894c3a2..2ff7e8d 100644
--- a/src/seq/seqmid.c
+++ b/src/seq/seqmid.c
@@ -378,9 +378,18 @@ int snd_seq_sync_output_queue(snd_seq_t *seq)
* \return 0 on success or negative error code
*
* This function parses the sequencer client and port numbers from the given string.
- * The client and port tokes are separated by either colon or period, e.g. 128:1.
+ * The client and port tokens are separated by either colon or period, e.g. 128:1.
* When \a seq is not NULL, the function accepts also a client name not only
* digit numbers.
+ * Actually \a arg need to be only a prefix of the wanted client.
+ * That is, if a client named "Foobar XXL Master 2012" with number 128 is available,
+ * then parsing "Foobar" will return the address 128:0.
+ * However parsing is biased towards small client numbers,
+ * thus if also a client named "Foobar" with number 129 exists,
+ * then parsing will still yield address 128:0 and not 129:0.
+ * If you want be able to access all clients by prefixes
+ * then you must write your own parser that checks for matching client names
+ * in the order of increasing name lengths.
*/
int snd_seq_parse_address(snd_seq_t *seq, snd_seq_addr_t *addr, const char *arg)
{
--
1.7.9.2