From 18177e3d51615e1aee344dc47beef87f174b2398 Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 25 Sep 2019 02:16:16 +0100 Subject: [PATCH] Add port rename and property change to evmon (sync with jack1) --- example-clients/evmon.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/example-clients/evmon.c b/example-clients/evmon.c index bb4e6104..3f3b8050 100644 --- a/example-clients/evmon.c +++ b/example-clients/evmon.c @@ -26,6 +26,8 @@ #include #include +#include +#include jack_client_t *client; @@ -37,6 +39,12 @@ static void signal_handler(int sig) } static void +port_rename_callback (jack_port_id_t port, const char* old_name, const char* new_name, void* arg) +{ + printf ("Port %d renamed from %s to %s\n", port, old_name, new_name); +} + +static void port_callback (jack_port_id_t port, int yn, void* arg) { printf ("Port %d %s\n", port, (yn ? "registered" : "unregistered")); @@ -61,6 +69,39 @@ graph_callback (void* arg) return 0; } +void +propchange (jack_uuid_t subject, const char* key, jack_property_change_t change) +{ + char buf[JACK_UUID_STRING_SIZE]; + const char* action = ""; + + switch (change) { + case PropertyCreated: + action = "created"; + break; + + case PropertyChanged: + action = "changed"; + break; + + case PropertyDeleted: + action = "deleted"; + break; + } + + if (jack_uuid_empty (subject)) { + printf ("All properties changed!\n"); + } else { + jack_uuid_unparse (subject, buf); + + if (key) { + printf ("key [%s] for %s %s\n", key, buf, action); + } else { + printf ("all keys for %s %s\n", buf, action); + } + } +} + int main (int argc, char *argv[]) { @@ -80,6 +121,10 @@ main (int argc, char *argv[]) fprintf (stderr, "cannot set port registration callback\n"); return 1; } + if (jack_set_port_rename_callback (client, port_rename_callback, NULL)) { + fprintf (stderr, "cannot set port registration callback\n"); + return 1; + } if (jack_set_port_connect_callback (client, connect_callback, NULL)) { fprintf (stderr, "cannot set port connect callback\n"); return 1; @@ -92,6 +137,10 @@ main (int argc, char *argv[]) fprintf (stderr, "cannot set graph order registration callback\n"); return 1; } + if (jack_set_property_change_callback (client, (JackPropertyChangeCallback) propchange, 0)) { + fprintf (stderr, "cannot set property change callback\n"); + return 1; + } if (jack_activate (client)) { fprintf (stderr, "cannot activate client"); return 1; -- 2.11.4.GIT