From: Hector Martin <hector@marcansoft.com>
To: Clemens Ladisch <clemens@ladisch.de>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH] alsa-python: add register_poll to alsaseq
Date: Wed, 21 Apr 2010 16:05:29 +0200 [thread overview]
Message-ID: <4BCF0629.4070100@marcansoft.com> (raw)
In-Reply-To: <4BCEA0BC.3060905@ladisch.de>
[-- Attachment #1: Type: text/plain, Size: 404 bytes --]
On 04/21/2010 08:52 AM, Clemens Ladisch wrote:
> Please provide a Signed-off-by tag; we use this also for non-kernel code.
Done.
> This isn't freed; better use alloca().
Whoops. I see this got fixed on hcontrol with 866af7359. I based my
patch on 1.0.21's hcontrol so I missed that fix.
New patch attached.
--
Hector Martin (hector@marcansoft.com)
Public Key: http://www.marcansoft.com/marcan.asc
[-- Attachment #2: 0001-Add-register_poll-for-alsaseq.patch --]
[-- Type: text/plain, Size: 2359 bytes --]
>From f801ff2f940b24c3ee3f27271ec4b249a2c67fb8 Mon Sep 17 00:00:00 2001
From: Hector Martin <hector@marcansoft.com>
Date: Wed, 21 Apr 2010 05:54:49 +0200
Subject: [PATCH] Add register_poll for alsaseq
Signed-off-by: Hector Martin <hector@marcansoft.com>
---
pyalsa/alsaseq.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/pyalsa/alsaseq.c b/pyalsa/alsaseq.c
index de131a4..bbf6b2e 100644
--- a/pyalsa/alsaseq.c
+++ b/pyalsa/alsaseq.c
@@ -3236,6 +3236,53 @@ Sequencer_stop_queue(SequencerObject *self,
Py_RETURN_NONE;
}
+PyDoc_STRVAR(Sequencer_registerpoll__doc__,
+"register_poll(pollObj, input=False, output=False) -- Register poll file descriptors.");
+
+static PyObject *
+Sequencer_registerpoll(SequencerObject *self, PyObject *args, PyObject *kwds)
+{
+ PyObject *pollObj, *reg, *t;
+ struct pollfd *pfd;
+ int i, count;
+ int input = 0;
+ int output = 0;
+ int mode = POLLIN|POLLOUT;
+
+ static char * kwlist[] = { "pollObj", "input", "output", NULL };
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|ii", kwlist, &pollObj, &input, &output))
+ return NULL;
+
+ if (input && !output)
+ mode = POLLIN;
+ else if (!input && output)
+ mode = POLLOUT;
+
+ count = snd_seq_poll_descriptors_count(self->handle, mode);
+ if (count <= 0)
+ Py_RETURN_NONE;
+ pfd = alloca(sizeof(struct pollfd) * count);
+ count = snd_seq_poll_descriptors(self->handle, pfd, count, mode);
+ if (count <= 0)
+ Py_RETURN_NONE;
+
+ reg = PyObject_GetAttr(pollObj, PyString_InternFromString("register"));
+
+ for (i = 0; i < count; i++) {
+ t = PyTuple_New(2);
+ if (t) {
+ PyTuple_SET_ITEM(t, 0, PyInt_FromLong(pfd[i].fd));
+ PyTuple_SET_ITEM(t, 1, PyInt_FromLong(pfd[i].events));
+ Py_XDECREF(PyObject_CallObject(reg, t));
+ Py_DECREF(t);
+ }
+ }
+
+ Py_XDECREF(reg);
+
+ Py_RETURN_NONE;
+}
@@ -3309,6 +3356,10 @@ static PyMethodDef Sequencer_methods[] = {
(PyCFunction) Sequencer_stop_queue,
METH_VARARGS | METH_KEYWORDS,
Sequencer_stop_queue__doc__},
+ {"register_poll",
+ (PyCFunction) Sequencer_registerpoll,
+ METH_VARARGS | METH_KEYWORDS,
+ Sequencer_registerpoll__doc__},
{NULL}
};
--
1.6.4.4
[-- 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
next prev parent reply other threads:[~2010-04-21 14:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-21 4:00 [PATCH] alsa-python: add register_poll to alsaseq Hector Martin
2010-04-21 6:52 ` Clemens Ladisch
2010-04-21 14:05 ` Hector Martin [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-05-12 1:51 Hector Martin
2010-05-27 8:20 ` 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=4BCF0629.4070100@marcansoft.com \
--to=hector@marcansoft.com \
--cc=alsa-devel@alsa-project.org \
--cc=clemens@ladisch.de \
/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