Re: [LAU] Toggle Jack Transport CLI

From: <holger@email-addr-hidden>
Date: Wed Nov 16 2016 - 09:04:04 EET

Hi lista :) Using an i3 (https://i3wm.org/docs/userguide.html#exec) shortcut, I can control my jack transport from everywhere, even when no jack application has focus : bindsym $mod+p exec echo play | jack_transport bindsym $mod+Shift+p exec echo stop | jack_transport Thanks to FalkTX for the pipe trick BTW, I saw that on linuxmusicians ; This is very cool if you have some sort of wireless keyboard, but as you can see it's two different keystrokes, how do I make it so toggles play/pause? Alternatively, how do I know when jack transport is rolling, so I can hack my way into making my own toggle script? I did my homework and read the inline --help of all the available jack commands on my machine : With this patch, jack_transport should be able to toggle. I will suggest it to the jack-develop list but would be happy if some else can test it. Holger ----------------- diff --git a/example-clients/transport.c b/example-clients/transport.c index c543b41..0b1130f 100644 --- a/example-clients/transport.c +++ b/example-clients/transport.c @@ -211,6 +211,29 @@ static void com_timeout(char *arg) jack_set_sync_timeout(client, (jack_time_t) (timeout*1000000)); } +/* Set sync timeout in seconds. */ +static void com_toggle(char *arg) +{ + jack_position_t current; + jack_transport_state_t transport_state; + + transport_state = jack_transport_query (client, ¤t); + + switch (transport_state) { + case JackTransportStopped: + com_play( arg ); + break; + case JackTransportRolling: + com_stop( arg ); + break; + case JackTransportStarting: + printf ("state: Starting - no transport toggling"); + break; + default: + printf ("state: Unknown - no transport toggling"); + } +} + /* Command parsing based on GNU readline info examples. */ @@ -238,6 +261,7 @@ command_t commands[] = { {"stop", com_stop, "Stop transport"}, {"tempo", com_tempo, "Set beat tempo "}, {"timeout", com_timeout, "Set sync timeout in "}, + {"toggle", com_toggle, "Toggle transport rolling"}, {"?", com_help, "Synonym for `help'" }, {(char *)NULL, (cmd_function_t *)NULL, (char *)NULL } };

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Wed Nov 16 12:15:02 2016

This archive was generated by hypermail 2.1.8 : Wed Nov 16 2016 - 12:15:02 EET