Browse Source

implemented Port.get_aliases()

Fabian Peter Hammerle 9 years ago
parent
commit
59c0fc9acb
2 changed files with 29 additions and 0 deletions
  1. 27 0
      jack.c
  2. 2 0
      tests/ports-list.py

+ 27 - 0
jack.c

@@ -175,6 +175,27 @@ static PyObject* port_get_name(Port* self)
     return (PyObject*)PyString_FromString(jack_port_name(self->port));
 }
 
+static PyObject* port_get_aliases(Port* self)
+{
+    PyObject* aliases_list = PyList_New(0);
+    if(!aliases_list) {
+        return NULL;
+    }
+
+    char* aliases[2];
+    aliases[0] = (char*) malloc(jack_port_name_size());
+    aliases[1] = (char*) malloc(jack_port_name_size());
+    int alias_count = jack_port_get_aliases(self->port, aliases);
+    int alias_index;
+    for(alias_index = 0; alias_index < alias_count; alias_index++) {
+        PyList_Append(aliases_list, PyString_FromString(aliases[alias_index]));
+    }
+    free(aliases[0]);
+    free(aliases[1]);
+
+    return aliases_list;
+}
+
 static PyObject* port___repr__(Port* self)
 {
     static PyObject* format;
@@ -194,6 +215,12 @@ static PyMethodDef port_methods[] = {
         METH_NOARGS,
         "Return port's name.",
         },
+    {
+        "get_aliases",
+        (PyCFunction)port_get_aliases,
+        METH_NOARGS,
+        "Return list of assigned aliases.",
+        },
     {NULL},
     };
 

+ 2 - 0
tests/ports-list.py

@@ -13,6 +13,8 @@ def run():
 
     for port in client.get_ports():
         print port.get_name()
+        for alias in port.get_aliases():
+            print '\talias: ' + alias
 
 def _init_argparser():