alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: lieven moors <lievenmoors@gmail.com>
To: alsa-devel@alsa-project.org
Subject: Re: [Patch v2] aconnect -x: Do not update index after removal of connection.
Date: Mon, 15 Mar 2010 23:30:31 +0100	[thread overview]
Message-ID: <4B9EB507.1060406@gmail.com> (raw)
In-Reply-To: <1268686034.16974.39.camel@mattotaupa>

[-- Attachment #1: Type: text/plain, Size: 671 bytes --]

On 03/15/2010 09:47 PM, Paul Menzel wrote:
> Am Montag, den 15.03.2010, 18:40 +0100 schrieb lieven moors:
>    
>> On 03/15/2010 03:32 PM, Paul Menzel wrote:
>>      
> […]
>
>    
>> Thanks for the explanation, here is a second try...
>> I'm not sure what caused the extra line breaks, but this should be plain
>> text now.
>> Hope this works...
>>      
> Unfortunately I did not. Could you just attach the patch, please?
>
>
> Thanks,
>
> Paul
>    
>
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>    
Ok, done.

[-- Attachment #2: 0001-aconnect-x-Do-not-update-index-after-removal-of-conn.patch --]
[-- Type: text/x-patch, Size: 3578 bytes --]

>From 996cf123d20dc5d7db2f98f29cebcfb7d3b013e0 Mon Sep 17 00:00:00 2001
From: lieven moors <lievenmoors@gmail.com>
Date: Mon, 15 Mar 2010 18:13:11 +0100
Subject: [Patch v2] aconnect -x: Do not update index after removal of connection.
 Signed-off-by: lieven moors <lievenmoors@gmail.com>

---
 seq/aconnect/aconnect.c |   43 ++++++++++++-------------------------------
 1 files changed, 12 insertions(+), 31 deletions(-)

diff --git a/seq/aconnect/aconnect.c b/seq/aconnect/aconnect.c
index 1a50666..6092748 100644
--- a/seq/aconnect/aconnect.c
+++ b/seq/aconnect/aconnect.c
@@ -192,52 +192,33 @@ static void remove_connection(snd_seq_t *seq, snd_seq_client_info_t *cinfo,
 			      snd_seq_port_info_t *pinfo, int count)
 {
 	snd_seq_query_subscribe_t *query;
-
 	snd_seq_query_subscribe_alloca(&query);
 	snd_seq_query_subscribe_set_root(query, snd_seq_port_info_get_addr(pinfo));
-
 	snd_seq_query_subscribe_set_type(query, SND_SEQ_QUERY_SUBS_READ);
 	snd_seq_query_subscribe_set_index(query, 0);
-	for (; snd_seq_query_port_subscribers(seq, query) >= 0;
-	     snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1)) {
+
+	while (snd_seq_query_port_subscribers(seq, query) >= 0) 
+	{
 		snd_seq_port_info_t *port;
 		snd_seq_port_subscribe_t *subs;
 		const snd_seq_addr_t *sender = snd_seq_query_subscribe_get_root(query);
 		const snd_seq_addr_t *dest = snd_seq_query_subscribe_get_addr(query);
 		snd_seq_port_info_alloca(&port);
-		if (snd_seq_get_any_port_info(seq, dest->client, dest->port, port) < 0)
-			continue;
-		if (!(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_WRITE))
-			continue;
-		if (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT)
-			continue;
-		snd_seq_port_subscribe_alloca(&subs);
-		snd_seq_port_subscribe_set_queue(subs, snd_seq_query_subscribe_get_queue(query));
-		snd_seq_port_subscribe_set_sender(subs, sender);
-		snd_seq_port_subscribe_set_dest(subs, dest);
-		snd_seq_unsubscribe_port(seq, subs);
-	}
 
-	snd_seq_query_subscribe_set_type(query, SND_SEQ_QUERY_SUBS_WRITE);
-	snd_seq_query_subscribe_set_index(query, 0);
-	for (; snd_seq_query_port_subscribers(seq, query) >= 0;
-	     snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1)) {
-		snd_seq_port_info_t *port;
-		snd_seq_port_subscribe_t *subs;
-		const snd_seq_addr_t *dest = snd_seq_query_subscribe_get_root(query);
-		const snd_seq_addr_t *sender = snd_seq_query_subscribe_get_addr(query);
-		snd_seq_port_info_alloca(&port);
-		if (snd_seq_get_any_port_info(seq, sender->client, sender->port, port) < 0)
-			continue;
-		if (!(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_READ))
-			continue;
-		if (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT)
+		if ((snd_seq_get_any_port_info(seq, dest->client, dest->port, port) < 0) ||
+			!(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_WRITE) ||
+			(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT))
+		{
+			snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1);
 			continue;
+		}
 		snd_seq_port_subscribe_alloca(&subs);
 		snd_seq_port_subscribe_set_queue(subs, snd_seq_query_subscribe_get_queue(query));
 		snd_seq_port_subscribe_set_sender(subs, sender);
 		snd_seq_port_subscribe_set_dest(subs, dest);
-		snd_seq_unsubscribe_port(seq, subs);
+		if(snd_seq_unsubscribe_port(seq, subs) < 0){
+			snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1);
+		}
 	}
 }
 
-- 
1.6.3.3


[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2010-03-15 22:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-15 13:04 aconnect patch lieven moors
2010-03-15 14:32 ` Paul Menzel
2010-03-15 17:40   ` lieven moors
2010-03-15 20:47     ` [Patch v2] aconnect -x: Do not update index after removal of connection Paul Menzel
2010-03-15 22:30       ` lieven moors [this message]
2010-03-24 15:32         ` lieven moors
2010-03-25 10:05           ` Paul Menzel
2010-03-25 11:23             ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B9EB507.1060406@gmail.com \
    --to=lievenmoors@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).