Hello, I was going to send this patch via git, but I've troubles setting it up against gmail, then I hope I'm not doing something wrong by posting this directly here.
I found out that pyalsa doesn't provide delete_port, then I added it; please, note, I'm not a programmer, I just do this for fun and I actually have no experience in C programming: I just understand (most of) it by reading the code, so I just used some knowledge and logic to add this binding. So far, it looks fine to me and works without any problem.
Signed-off-by: MaurizioB maurizio.berti@gmail.com
diff --git a/pyalsa/alsaseq.c b/pyalsa/alsaseq.c index ce332ed..2ad4d55 100644 --- a/pyalsa/alsaseq.c +++ b/pyalsa/alsaseq.c @@ -2343,6 +2343,44 @@ Sequencer_create_simple_port(SequencerObject *self, return PyInt_FromLong(port); }
+ +/** alsaseq.Sequencer delete_port() method: __doc__ */ +PyDoc_STRVAR(Sequencer_delete_port__doc__, + "delete_port(port_id) -> int" + "\n" + "Delete an existing port.\n" + "\n" + "Parameters:\n" + " port_id -- id of the port\n" + "Raises:\n" + " SequencerError: if ALSA can't delete the port" +); + + +/** alsaseq.Sequencer delete_port() method */ +static PyObject * +Sequencer_delete_port(SequencerObject *self, + PyObject *args, + PyObject *kwds) { + int port_id = 0; + int ret; + char *kwlist[] = { "port_id", NULL}; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "|i", kwlist, + &port_id)) { + return NULL; + } + + ret = snd_seq_delete_port(self->handle, port_id); + if (ret < 0) { + RAISESND(ret, "Failed to delete port"); + return NULL; + } + + Py_RETURN_NONE; +} + + /** alsaseq.Sequencer connection_list() method: __doc__ */ PyDoc_STRVAR(Sequencer_connection_list__doc__, "connection_list() -> list\n" @@ -3248,6 +3286,10 @@ static PyMethodDef Sequencer_methods[] = { (PyCFunction) Sequencer_create_simple_port, METH_VARARGS | METH_KEYWORDS, Sequencer_create_simple_port__doc__ }, + {"delete_port", + (PyCFunction) Sequencer_delete_port, + METH_VARARGS | METH_KEYWORDS, + Sequencer_delete_port__doc__ }, {"connection_list", (PyCFunction) Sequencer_connection_list, METH_VARARGS,