- REGISTER_CALLBACK (serv, "/routes/list", "", routes_list);
- REGISTER_CALLBACK (serv, "/ardour/add_marker", "", add_marker);
- REGISTER_CALLBACK (serv, "/ardour/access_action", "s", access_action);
- REGISTER_CALLBACK (serv, "/ardour/loop_toggle", "", loop_toggle);
- REGISTER_CALLBACK (serv, "/ardour/loop_location", "ii", loop_location);
- REGISTER_CALLBACK (serv, "/ardour/goto_start", "", goto_start);
- REGISTER_CALLBACK (serv, "/ardour/goto_end", "", goto_end);
- REGISTER_CALLBACK (serv, "/ardour/rewind", "", rewind);
- REGISTER_CALLBACK (serv, "/ardour/ffwd", "", ffwd);
- REGISTER_CALLBACK (serv, "/ardour/transport_stop", "", transport_stop);
- REGISTER_CALLBACK (serv, "/ardour/transport_play", "", transport_play);
- REGISTER_CALLBACK (serv, "/ardour/transport_frame", "", transport_frame);
- REGISTER_CALLBACK (serv, "/ardour/transport_speed", "", transport_speed);
- REGISTER_CALLBACK (serv, "/ardour/record_enabled", "", record_enabled);
- REGISTER_CALLBACK (serv, "/ardour/set_transport_speed", "f", set_transport_speed);
- REGISTER_CALLBACK (serv, "/ardour/locate", "ii", locate);
- REGISTER_CALLBACK (serv, "/ardour/save_state", "", save_state);
- REGISTER_CALLBACK (serv, "/ardour/prev_marker", "", prev_marker);
- REGISTER_CALLBACK (serv, "/ardour/next_marker", "", next_marker);
- REGISTER_CALLBACK (serv, "/ardour/undo", "", undo);
- REGISTER_CALLBACK (serv, "/ardour/redo", "", redo);
- REGISTER_CALLBACK (serv, "/ardour/toggle_punch_in", "", toggle_punch_in);
- REGISTER_CALLBACK (serv, "/ardour/toggle_punch_out", "", toggle_punch_out);
- REGISTER_CALLBACK (serv, "/ardour/rec_enable_toggle", "", rec_enable_toggle);
- REGISTER_CALLBACK (serv, "/ardour/toggle_all_rec_enables", "", toggle_all_rec_enables);
-
- /*
- * NOTE: these messages are provided for (arguably broken) apps
- * that MUST send float args ( TouchOSC and Lemur ).
- * Normally these ardour transport messages don't require an argument,
- * so we're providing redundant calls with vestigial "float" args.
- */
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_loop_toggle", "f", loop_toggle);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_add_marker", "f", add_marker);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_goto_start", "f", goto_start);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_goto_end", "f", goto_end);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_rewind", "f", rewind);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_ffwd", "f", ffwd);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_transport_stop", "f", transport_stop);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_transport_play", "f", transport_play);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_save_state", "f", save_state);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_prev_marker", "f", prev_marker);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_next_marker", "f", next_marker);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_undo", "f", undo);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_redo", "f", redo);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_toggle_punch_in", "f", toggle_punch_in);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_toggle_punch_out", "f", toggle_punch_out);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_rec_enable_toggle", "f", rec_enable_toggle);
- REGISTER_CALLBACK (serv, "/ardour/unused_argument_toggle_all_rec_enables", "f", toggle_all_rec_enables);
-
- REGISTER_CALLBACK (serv, "/ardour/routes/mute", "ii", route_mute);
- REGISTER_CALLBACK (serv, "/ardour/routes/solo", "ii", route_solo);
- REGISTER_CALLBACK (serv, "/ardour/routes/recenable", "ii", route_recenable);
- REGISTER_CALLBACK (serv, "/ardour/routes/gainabs", "if", route_set_gain_abs);
- REGISTER_CALLBACK (serv, "/ardour/routes/gaindB", "if", route_set_gain_dB);
- REGISTER_CALLBACK (serv, "/ardour/routes/trimabs", "if", route_set_trim_abs);
- REGISTER_CALLBACK (serv, "/ardour/routes/trimdB", "if", route_set_trim_dB);
- REGISTER_CALLBACK (serv, "/ardour/routes/pan_stereo_position", "if", route_set_pan_stereo_position);
- REGISTER_CALLBACK (serv, "/ardour/routes/pan_stereo_width", "if", route_set_pan_stereo_width);
- REGISTER_CALLBACK (serv, "/ardour/routes/plugin/parameter", "iiif", route_plugin_parameter);
- REGISTER_CALLBACK (serv, "/ardour/routes/plugin/parameter/print", "iii", route_plugin_parameter_print);
- REGISTER_CALLBACK (serv, "/ardour/routes/send/gainabs", "iif", route_set_send_gain_abs);
- REGISTER_CALLBACK (serv, "/ardour/routes/send/gaindB", "iif", route_set_send_gain_dB);
+ // Some controls have optional "f" for feedback or touchosc
+ // http://hexler.net/docs/touchosc-controls-reference
+
+ REGISTER_CALLBACK (serv, "/set_surface", "iiii", set_surface);
+ REGISTER_CALLBACK (serv, "/set_surface/feedback", "i", set_surface_feedback);
+ REGISTER_CALLBACK (serv, "/set_surface/bank_size", "i", set_surface_bank_size);
+ REGISTER_CALLBACK (serv, "/set_surface/gainmode", "i", set_surface_gainmode);
+ REGISTER_CALLBACK (serv, "/set_surface/strip_types", "i", set_surface_strip_types);
+ REGISTER_CALLBACK (serv, "/strip/list", "", routes_list);
+ REGISTER_CALLBACK (serv, "/add_marker", "", add_marker);
+ REGISTER_CALLBACK (serv, "/add_marker", "f", add_marker);
+ REGISTER_CALLBACK (serv, "/access_action", "s", access_action);
+ REGISTER_CALLBACK (serv, "/loop_toggle", "", loop_toggle);
+ REGISTER_CALLBACK (serv, "/loop_toggle", "f", loop_toggle);
+ REGISTER_CALLBACK (serv, "/loop_location", "ii", loop_location);
+ REGISTER_CALLBACK (serv, "/goto_start", "", goto_start);
+ REGISTER_CALLBACK (serv, "/goto_start", "f", goto_start);
+ REGISTER_CALLBACK (serv, "/goto_end", "", goto_end);
+ REGISTER_CALLBACK (serv, "/goto_end", "f", goto_end);
+ REGISTER_CALLBACK (serv, "/rewind", "", rewind);
+ REGISTER_CALLBACK (serv, "/rewind", "f", rewind);
+ REGISTER_CALLBACK (serv, "/ffwd", "", ffwd);
+ REGISTER_CALLBACK (serv, "/ffwd", "f", ffwd);
+ REGISTER_CALLBACK (serv, "/transport_stop", "", transport_stop);
+ REGISTER_CALLBACK (serv, "/transport_stop", "f", transport_stop);
+ REGISTER_CALLBACK (serv, "/transport_play", "", transport_play);
+ REGISTER_CALLBACK (serv, "/transport_play", "f", transport_play);
+ REGISTER_CALLBACK (serv, "/transport_frame", "", transport_frame);
+ REGISTER_CALLBACK (serv, "/transport_speed", "", transport_speed);
+ REGISTER_CALLBACK (serv, "/record_enabled", "", record_enabled);
+ REGISTER_CALLBACK (serv, "/set_transport_speed", "f", set_transport_speed);
+ // locate ii is position and bool roll
+ REGISTER_CALLBACK (serv, "/locate", "ii", locate);
+ REGISTER_CALLBACK (serv, "/save_state", "", save_state);
+ REGISTER_CALLBACK (serv, "/save_state", "f", save_state);
+ REGISTER_CALLBACK (serv, "/prev_marker", "", prev_marker);
+ REGISTER_CALLBACK (serv, "/prev_marker", "f", prev_marker);
+ REGISTER_CALLBACK (serv, "/next_marker", "", next_marker);
+ REGISTER_CALLBACK (serv, "/next_marker", "f", next_marker);
+ REGISTER_CALLBACK (serv, "/undo", "", undo);
+ REGISTER_CALLBACK (serv, "/undo", "f", undo);
+ REGISTER_CALLBACK (serv, "/redo", "", redo);
+ REGISTER_CALLBACK (serv, "/redo", "f", redo);
+ REGISTER_CALLBACK (serv, "/toggle_punch_in", "", toggle_punch_in);
+ REGISTER_CALLBACK (serv, "/toggle_punch_in", "f", toggle_punch_in);
+ REGISTER_CALLBACK (serv, "/toggle_punch_out", "", toggle_punch_out);
+ REGISTER_CALLBACK (serv, "/toggle_punch_out", "f", toggle_punch_out);
+ REGISTER_CALLBACK (serv, "/rec_enable_toggle", "", rec_enable_toggle);
+ REGISTER_CALLBACK (serv, "/rec_enable_toggle", "f", rec_enable_toggle);
+ REGISTER_CALLBACK (serv, "/toggle_all_rec_enables", "", toggle_all_rec_enables);
+ REGISTER_CALLBACK (serv, "/toggle_all_rec_enables", "f", toggle_all_rec_enables);
+ REGISTER_CALLBACK (serv, "/all_tracks_rec_in", "f", all_tracks_rec_in);
+ REGISTER_CALLBACK (serv, "/all_tracks_rec_out", "f", all_tracks_rec_out);
+ REGISTER_CALLBACK (serv, "/remove_marker", "", remove_marker_at_playhead);
+ REGISTER_CALLBACK (serv, "/remove_marker", "f", remove_marker_at_playhead);
+ REGISTER_CALLBACK (serv, "/jump_bars", "f", jump_by_bars);
+ REGISTER_CALLBACK (serv, "/jump_seconds", "f", jump_by_seconds);
+ REGISTER_CALLBACK (serv, "/mark_in", "", mark_in);
+ REGISTER_CALLBACK (serv, "/mark_in", "f", mark_in);
+ REGISTER_CALLBACK (serv, "/mark_out", "", mark_out);
+ REGISTER_CALLBACK (serv, "/mark_out", "f", mark_out);
+ REGISTER_CALLBACK (serv, "/toggle_click", "", toggle_click);
+ REGISTER_CALLBACK (serv, "/toggle_click", "f", toggle_click);
+ REGISTER_CALLBACK (serv, "/midi_panic", "", midi_panic);
+ REGISTER_CALLBACK (serv, "/midi_panic", "f", midi_panic);
+ REGISTER_CALLBACK (serv, "/toggle_roll", "", toggle_roll);
+ REGISTER_CALLBACK (serv, "/toggle_roll", "f", toggle_roll);
+ REGISTER_CALLBACK (serv, "/stop_forget", "", stop_forget);
+ REGISTER_CALLBACK (serv, "/stop_forget", "f", stop_forget);
+ REGISTER_CALLBACK (serv, "/set_punch_range", "", set_punch_range);
+ REGISTER_CALLBACK (serv, "/set_punch_range", "f", set_punch_range);
+ REGISTER_CALLBACK (serv, "/set_loop_range", "", set_loop_range);
+ REGISTER_CALLBACK (serv, "/set_loop_range", "f", set_loop_range);
+ REGISTER_CALLBACK (serv, "/set_session_range", "", set_session_range);
+ REGISTER_CALLBACK (serv, "/set_session_range", "f", set_session_range);
+ // /toggle_monitor_* not working (comented out)
+ REGISTER_CALLBACK (serv, "/toggle_monitor_mute", "", toggle_monitor_mute);
+ REGISTER_CALLBACK (serv, "/toggle_monitor_mute", "f", toggle_monitor_mute);
+ REGISTER_CALLBACK (serv, "/toggle_monitor_dim", "", toggle_monitor_dim);
+ REGISTER_CALLBACK (serv, "/toggle_monitor_dim", "f", toggle_monitor_dim);
+ REGISTER_CALLBACK (serv, "/toggle_monitor_mono", "", toggle_monitor_mono);
+ REGISTER_CALLBACK (serv, "/toggle_monitor_mono", "f", toggle_monitor_mono);
+ REGISTER_CALLBACK (serv, "/quick_snapshot_switch", "", quick_snapshot_switch);
+ REGISTER_CALLBACK (serv, "/quick_snapshot_switch", "f", quick_snapshot_switch);
+ REGISTER_CALLBACK (serv, "/quick_snapshot_stay", "", quick_snapshot_stay);
+ REGISTER_CALLBACK (serv, "/quick_snapshot_stay", "f", quick_snapshot_stay);
+ REGISTER_CALLBACK (serv, "/fit_1_track", "", fit_1_track);
+ REGISTER_CALLBACK (serv, "/fit_1_track", "f", fit_1_track);
+ REGISTER_CALLBACK (serv, "/fit_2_tracks", "", fit_2_tracks);
+ REGISTER_CALLBACK (serv, "/fit_2_tracks", "f", fit_2_tracks);
+ REGISTER_CALLBACK (serv, "/fit_4_tracks", "", fit_4_tracks);
+ REGISTER_CALLBACK (serv, "/fit_4_tracks", "f", fit_4_tracks);
+ REGISTER_CALLBACK (serv, "/fit_8_tracks", "", fit_8_tracks);
+ REGISTER_CALLBACK (serv, "/fit_8_tracks", "f", fit_8_tracks);
+ REGISTER_CALLBACK (serv, "/fit_16_tracks", "", fit_16_tracks);
+ REGISTER_CALLBACK (serv, "/fit_16_tracks", "f", fit_16_tracks);
+ REGISTER_CALLBACK (serv, "/fit_32_tracks", "", fit_32_tracks);
+ REGISTER_CALLBACK (serv, "/fit_32_tracks", "f", fit_32_tracks);
+ REGISTER_CALLBACK (serv, "/fit_all_tracks", "", fit_all_tracks);
+ REGISTER_CALLBACK (serv, "/fit_all_tracks", "f", fit_all_tracks);
+ REGISTER_CALLBACK (serv, "/zoom_100_ms", "", zoom_100_ms);
+ REGISTER_CALLBACK (serv, "/zoom_100_ms", "f", zoom_100_ms);
+ REGISTER_CALLBACK (serv, "/zoom_1_sec", "", zoom_1_sec);
+ REGISTER_CALLBACK (serv, "/zoom_1_sec", "f", zoom_1_sec);
+ REGISTER_CALLBACK (serv, "/zoom_10_sec", "", zoom_10_sec);
+ REGISTER_CALLBACK (serv, "/zoom_10_sec", "f", zoom_10_sec);
+ REGISTER_CALLBACK (serv, "/zoom_1_min", "", zoom_1_min);
+ REGISTER_CALLBACK (serv, "/zoom_1_min", "f", zoom_1_min);
+ REGISTER_CALLBACK (serv, "/zoom_5_min", "", zoom_5_min);
+ REGISTER_CALLBACK (serv, "/zoom_5_min", "f", zoom_5_min);
+ REGISTER_CALLBACK (serv, "/zoom_10_min", "", zoom_10_min);
+ REGISTER_CALLBACK (serv, "/zoom_10_min", "f", zoom_10_min);
+ REGISTER_CALLBACK (serv, "/zoom_to_session", "", zoom_to_session);
+ REGISTER_CALLBACK (serv, "/zoom_to_session", "f", zoom_to_session);
+ REGISTER_CALLBACK (serv, "/temporal_zoom_in", "f", temporal_zoom_in);
+ REGISTER_CALLBACK (serv, "/temporal_zoom_in", "", temporal_zoom_in);
+ REGISTER_CALLBACK (serv, "/temporal_zoom_out", "", temporal_zoom_out);
+ REGISTER_CALLBACK (serv, "/temporal_zoom_out", "f", temporal_zoom_out);
+ REGISTER_CALLBACK (serv, "/scroll_up_1_track", "f", scroll_up_1_track);
+ REGISTER_CALLBACK (serv, "/scroll_up_1_track", "", scroll_up_1_track);
+ REGISTER_CALLBACK (serv, "/scroll_dn_1_track", "f", scroll_dn_1_track);
+ REGISTER_CALLBACK (serv, "/scroll_dn_1_track", "", scroll_dn_1_track);
+ REGISTER_CALLBACK (serv, "/scroll_up_1_page", "f", scroll_up_1_page);
+ REGISTER_CALLBACK (serv, "/scroll_up_1_page", "", scroll_up_1_page);
+ REGISTER_CALLBACK (serv, "/scroll_dn_1_page", "f", scroll_dn_1_page);
+ REGISTER_CALLBACK (serv, "/scroll_dn_1_page", "", scroll_dn_1_page);
+ REGISTER_CALLBACK (serv, "/bank_up", "", bank_up);
+ REGISTER_CALLBACK (serv, "/bank_up", "f", bank_up);
+ REGISTER_CALLBACK (serv, "/bank_down", "", bank_down);
+ REGISTER_CALLBACK (serv, "/bank_down", "f", bank_down);
+
+ // controls for "special" strips
+ REGISTER_CALLBACK (serv, "/master/gain", "f", master_set_gain);
+ REGISTER_CALLBACK (serv, "/master/fader", "i", master_set_fader);
+ REGISTER_CALLBACK (serv, "/master/mute", "i", master_set_mute);
+ REGISTER_CALLBACK (serv, "/master/trimdB", "f", master_set_trim);
+ REGISTER_CALLBACK (serv, "/master/pan_stereo_position", "f", master_set_pan_stereo_position);
+ REGISTER_CALLBACK (serv, "/monitor/gain", "f", monitor_set_gain);
+ REGISTER_CALLBACK (serv, "/monitor/fader", "i", monitor_set_fader);
+
+ // Controls for the Selected strip
+ REGISTER_CALLBACK (serv, "/select/recenable", "i", sel_recenable);
+ REGISTER_CALLBACK (serv, "/select/record_safe", "i", sel_recsafe);
+ REGISTER_CALLBACK (serv, "/select/mute", "i", sel_mute);
+ REGISTER_CALLBACK (serv, "/select/solo", "i", sel_solo);
+ REGISTER_CALLBACK (serv, "/select/solo_iso", "i", sel_solo_iso);
+ REGISTER_CALLBACK (serv, "/select/solo_safe", "i", sel_solo_safe);
+ REGISTER_CALLBACK (serv, "/select/monitor_input", "i", sel_monitor_input);
+ REGISTER_CALLBACK (serv, "/select/monitor_disk", "i", sel_monitor_disk);
+ REGISTER_CALLBACK (serv, "/select/polarity", "i", sel_phase);
+ REGISTER_CALLBACK (serv, "/select/gain", "f", sel_gain);
+ REGISTER_CALLBACK (serv, "/select/fader", "f", sel_fader);
+ REGISTER_CALLBACK (serv, "/select/trimdB", "f", sel_trim);
+ REGISTER_CALLBACK (serv, "/select/pan_stereo_position", "f", sel_pan_position);
+ REGISTER_CALLBACK (serv, "/select/pan_stereo_width", "f", sel_pan_width);
+ REGISTER_CALLBACK (serv, "/select/send_gain", "if", sel_sendgain);
+ REGISTER_CALLBACK (serv, "/select/send_fader", "if", sel_sendfader);
+ REGISTER_CALLBACK (serv, "/select/send_enable", "if", sel_sendenable);
+
+ /* These commands require the route index in addition to the arg; TouchOSC (et al) can't use these */
+ REGISTER_CALLBACK (serv, "/strip/mute", "ii", route_mute);
+ REGISTER_CALLBACK (serv, "/strip/solo", "ii", route_solo);
+ REGISTER_CALLBACK (serv, "/strip/solo_iso", "ii", route_solo_iso);
+ REGISTER_CALLBACK (serv, "/strip/solo_safe", "ii", route_solo_safe);
+ REGISTER_CALLBACK (serv, "/strip/recenable", "ii", route_recenable);
+ REGISTER_CALLBACK (serv, "/strip/record_safe", "ii", route_recsafe);
+ REGISTER_CALLBACK (serv, "/strip/monitor_input", "ii", route_monitor_input);
+ REGISTER_CALLBACK (serv, "/strip/monitor_disk", "ii", route_monitor_disk);
+ REGISTER_CALLBACK (serv, "/strip/select", "ii", strip_select);
+ REGISTER_CALLBACK (serv, "/strip/gui_select", "ii", strip_gui_select);
+ REGISTER_CALLBACK (serv, "/strip/polarity", "ii", strip_phase);
+ REGISTER_CALLBACK (serv, "/strip/gain", "if", route_set_gain_dB);
+ REGISTER_CALLBACK (serv, "/strip/fader", "if", route_set_gain_fader);
+ REGISTER_CALLBACK (serv, "/strip/trimdB", "if", route_set_trim_dB);
+ REGISTER_CALLBACK (serv, "/strip/pan_stereo_position", "if", route_set_pan_stereo_position);
+ REGISTER_CALLBACK (serv, "/strip/pan_stereo_width", "if", route_set_pan_stereo_width);
+ REGISTER_CALLBACK (serv, "/strip/plugin/parameter", "iiif", route_plugin_parameter);
+ // prints to cerr only
+ REGISTER_CALLBACK (serv, "/strip/plugin/parameter/print", "iii", route_plugin_parameter_print);
+ REGISTER_CALLBACK (serv, "/strip/send/gainabs", "iif", route_set_send_gain_abs);
+ REGISTER_CALLBACK (serv, "/strip/send/gain", "iif", route_set_send_gain_dB);
+ REGISTER_CALLBACK (serv, "/strip/send/fader", "iif", route_set_send_fader);
+ REGISTER_CALLBACK (serv, "/strip/send/enable", "iif", route_set_send_enable);