fee4b7b3ea
OSC: combine two identical if() statements
2017-05-15 07:43:59 -07:00
b9bbea7174
It might not be obvious why... but 'ARDOUR::ControlProtocol::name()' needs to be a virtual function
...
Basically, libardour is calling functions from libardour_cp and vice versa. For example, libardour needs 'ARDOUR::ControlProtocol::name()' whereas ardour_cp needs 'ARDOUR::Route::soloed()' and various others. Ordinarily, this would require each library to get built before the other one! :-(
To get around this (in MSVC at least) one of the libraries must be forced to use late binding (e.g. by declaring its functions as 'virtual'). It looks like this is already being done for most of the other functions from 'ARDOUR::ControlProtocol', so let's do it for this function too...
2017-05-15 14:46:34 +01:00
3d26a29e8a
Sanitize "well-known" ctrl API
2017-05-14 00:17:11 +02:00
3e2004aa73
OSC: make /*/automation more generic so other controls can be easily added
2017-05-13 14:18:29 -07:00
82e6de3a3f
The #end should be #endif
2017-05-13 08:43:33 -07:00
6a28e02799
More tweaks to FP8 layout for 32C
2017-05-13 07:54:08 -05:00
3efe5bde5f
Update FP8: new controllables, clarify 32C bell-shape labels
2017-05-13 02:02:54 +02:00
7021d02782
don't actually use a method from libardourcp inside libardour; use a PBD::Signal to avoid linker issues
2017-05-12 17:49:09 +01:00
32c3db5c59
OSC: GUI label change
2017-05-12 07:29:29 -07:00
774ebc42e3
OSC: Create new surface struct for ALL incoming messages
2017-05-12 07:29:29 -07:00
eb3f50e15c
change the way ControlProtocols (control surfaces) are notified and handle Stripable selection changes
...
The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal.
The CP Manager calls the ControlProtocol static method to set up static data structures holding
selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12 14:51:39 +01:00
efc2660fec
MCP: Mixbus32C: Restore missing filter controls to the Dyn page.
2017-05-12 15:44:01 +02:00
8ba868e933
MCU: F-keys are reserved only for user-defined actions; no need for explicit handling.
2017-05-12 15:43:55 +02:00
e6e2b6800e
MCP: Momentarily light buttons when they are used to trigger a defined action.
...
*This is mainly for F-keys
*If a button is not assigned an action, it will not light,
hopefully indicating to the user that it is unmapped.
2017-05-12 15:43:52 +02:00
6f298b1a83
Mackie control panel: display the profile name when any button action is changed.
2017-05-12 15:43:44 +02:00
471ed5af4e
OSC: also init unsaved params on session load.
2017-05-11 13:58:25 -07:00
a51e82a29e
OSC: Initialize all surface struct values on creation
2017-05-11 10:52:38 -07:00
d42da9046e
OSC: Actually set feedback on first /strip/command
2017-05-11 08:21:40 -07:00
0124c2e99d
OSC: fix manual port setting to take effect on first incoming message
2017-05-10 14:14:27 -07:00
a76ee7a4d8
OSC: bind should be boost::bind
2017-05-10 09:56:45 -07:00
c8f805ef7c
OSC: Automation feedback should match command
2017-05-10 09:42:48 -07:00
6c97d70127
OSC: change function name to be better description
2017-05-10 09:21:19 -07:00
50e362ffd3
OSC: simplify code.
2017-05-10 08:02:03 -07:00
86149840a1
resolve ambiguity
2017-05-10 05:00:03 +02:00
e8387e101f
Enums are not Classes in C++98
2017-05-10 04:29:41 +02:00
82fed14f41
OSC: Fix select fader automation play feedback as well fixes issue #7160
2017-05-09 14:10:49 -07:00
a12d4c87c6
OSC: Get gain feedback to show with automation Play.
2017-05-09 13:38:57 -07:00
c3c7dfd3e8
OSC: Add Automation mode feedback to /strip
2017-05-09 12:40:20 -07:00
155401b875
OSC: removed letter automation modes to not conflict with feedback
2017-05-09 11:52:21 -07:00
fe5a778535
OSC: Propagate return value so debug shows errors
2017-05-09 09:05:30 -07:00
56ebea48c0
OSC: set Automation mode for fader
2017-05-09 07:55:32 -07:00
f4d62a2a8e
OSC: automation mode get strip (step 2)
2017-05-09 07:55:32 -07:00
9b4d58393d
OSC: Add framework for /*/automation mode
2017-05-09 07:55:32 -07:00
1eb18f8e27
OSC: make some more paths work with or without a parameter.
2017-05-05 15:02:22 -07:00
379ad3357d
OSC: remove debug output.
2017-05-05 15:02:22 -07:00
0c035778e1
libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls
2017-05-05 18:56:25 +01:00
417f63a29e
FP8: use new libardour API
2017-05-05 17:08:42 +02:00
8288fa40b9
FP8: ignore inactive muted tracks w/mute-clear
2017-05-05 15:36:08 +02:00
3a75e7c53b
FP8: solo+mute undo
...
Eventually this should be moved into libardour: Mixer undo history.
the tentative solution is specifically ifdef'ed FP8_MUTESOLO_UNDO.
2017-05-05 15:26:52 +02:00
a3c70696b6
OSC: personal monitoring, fix crash and minor bugs
2017-05-04 15:52:09 -07:00
c784f70966
OSC: Add /jog/mode/name
2017-05-03 21:38:52 -07:00
16e545ad73
OSC: Fix puctuation
2017-05-03 21:36:58 -07:00
2cb54dec60
OSC: arrange modes in a more logical order.
2017-05-03 18:19:45 -07:00
2bbf83e109
OSC: Add multimode /jog command
2017-05-03 16:33:33 -07:00
2abefde534
OSC scrub, fix numbers to work with usec rather than msec.
2017-05-01 13:53:03 -07:00
e5182f3eb4
OSC: fix scrub to not use boost ptime.
2017-05-01 13:45:47 -07:00
5f06ae43d8
OSC: add /scrub function
2017-05-01 07:08:02 -07:00
a283784cce
FP8: channel-navigation/scroll select track on encoder press
2017-04-29 12:38:53 +02:00
de45ac0e76
FP8: snap-to scroll tracks, both editor+mixer
2017-04-29 12:38:53 +02:00
2012dc2553
OSC: correct spelling
2017-04-21 07:29:13 -07:00
ea1769d711
Resolve potential variable name ambiguity for older compilers
2017-04-21 16:05:24 +02:00
b6c222555f
NO-OP: re-order code, add comments
2017-04-20 17:19:03 +02:00
8add4eefad
FP8: some code comments and cleanup
2017-04-20 16:06:47 +02:00
0656d5ab1a
Use XMLNode::get/set_property API in Faderport surface
2017-04-19 09:36:59 +10:00
23eb1fbf01
Use PBD::string_to<bool>() in GenericMidiControlProtocol class
...
Equivalent to PBD::string_is_affirmative()
2017-04-19 09:36:59 +10:00
7170dd84d8
Use XMLProperty::get/set_property API in CC121 Surface module
2017-04-19 09:36:54 +10:00
bd533e305d
Use XMLNode::set_property API in WiimoteControlProtocol class
2017-04-19 09:36:54 +10:00
bd3965e278
Use XMLNode::get/set_property in Push2 surface
...
Fix push2 property names to use hyphen word separator.
2017-04-19 09:36:54 +10:00
0df955412e
Use XMLNode::set_property in OSC_GUI class
2017-04-19 09:36:54 +10:00
6c1e7153ef
Use XMLNode::get/set_property API in OSC class
2017-04-19 09:36:54 +10:00
1680811dbf
Use XMLNode::get_property API in Mackie DeviceInfo class
2017-04-19 09:36:54 +10:00
77b4e041ac
Use XMLNode::get/set_property API in mackie Surface class
2017-04-19 09:36:54 +10:00
86f403cbbd
Use XMLNode::get/set_property API in MackieControlProtocol class
2017-04-19 09:36:54 +10:00
9554dd4445
Use XMLNode::get/set_property API in mackie surface DeviceProfile class
2017-04-19 09:36:54 +10:00
f82cb87f0c
Use XMLNode::get/set_property API in MIDIControllable class
2017-04-19 09:36:54 +10:00
3be0170e82
Use XMLNode::get/set_property API in GenericMidiControlProtocol class
2017-04-19 09:36:54 +10:00
f28bfb2648
Use XMLNode::get/set_property API in FaderPort class
2017-04-19 09:36:54 +10:00
8144b197c0
Use XMLNode::get/set_property API in ARDOUR::ControlProtocol class
2017-04-19 09:36:54 +10:00
63296285be
Add missing header include to ControlProtocol class source file
2017-04-19 09:36:47 +10:00
362303f793
FP8: Fix sort-order
2017-04-18 16:09:44 +02:00
5dce10500c
FP8: handle backend changes + reconnect
...
When the backend is dropped or changed, on engine-restart
the connection_handler() re-establishes already connected ports.
There's no disconnect when the backend dies or is hard-stopped.
2017-04-18 15:14:00 +02:00
3243e17c71
FP8: allow to re-initialize the Strips w/o restart
2017-04-18 15:01:54 +02:00
bce08cf4f3
FP8: experiment with selection-mode
2017-04-18 13:39:42 +02:00
629b5e0446
clear + re-init faderport at disconnect
2017-04-18 03:20:33 +02:00
8e5a972a24
Managed to trigger an assert()
...
Create new Mixbus session, initially incrementally adding Busses to
the session triggers a series of "assign_stripables()"
2017-04-17 23:50:11 +02:00
84804f7d90
cont'd FP8 tweaks
...
* include Mixbus PRE plugin on Mixbusses
* Mixbus master-assign on right-most "S" button
* fix parameter-banking and assignment
* fix typo in 029e963fb
(fader range constaint)
2017-04-17 20:06:00 +02:00
029e963fb5
FP8: limit fader range
...
In case of VCA masters or otherwise the value can exceed the max
+6dB and internal_to_interface() returns a value > 1.0 which cannot
be represented on the physical fader (MIDI &0x7f wraps)
2017-04-16 23:48:06 +02:00
55cd96df8d
Clean up after generic MIDI surface -- #7311
...
When there are some non-released MIDIControllables, signal are still
delivered to the objects, even if there's no surface thread to handle
the signals anymore.
2017-04-16 19:06:17 +02:00
67f2e4b866
FP8: add metronome level reset
2017-04-16 17:18:23 +02:00
8a3d9317bd
FaderPort8 details:
...
* make shift buttons equivalent
* 2 x stop: move to session-start
* RTZ: return to zero (not session-start)
* in Pan mode: encoder controls pan-width (w/o shift)
2017-04-15 21:20:51 +02:00
18dcd4d7ff
FP8: Configuration UI layout & design (add image, separators)
2017-04-15 15:19:58 +02:00
60c12df517
Fondle Port 8
...
* only start touch on parameters in "Touch" mode.
* fix "mute clear" (also affect mute-automation in touch)
2017-04-14 23:03:31 +02:00
74c8ba5c9a
FP8: assign toggled plugin-parameters to buttons
2017-04-14 23:03:31 +02:00
7197231f4c
FP8: Allow binding "Select" to a controllable or functor
2017-04-14 23:03:31 +02:00
43d9feabd3
cont'd FP8 refinement & details
...
* Access pan-width via shift, press encoder to reset
* Add "touch-start" to encoder events
* Show plugin-param value-bar
* Sends & well-known ctrls: follow strip-selection
* map "select" to strip-selection in Sends-mode
* Fader group override (via shift)
* Prev/Next button tweaks.
* consistent enum naming ...
2017-04-14 19:56:42 +02:00
d43a23fe28
Faderport8 control surface support
2017-04-13 21:21:59 +02:00
d64ca9be08
Properly expose "well known" comp_redux output.
2017-04-12 21:14:50 +02:00
6b8be8fa71
Fix set-*-from-edit-range actions, when accessed from control surfaces.
2017-04-01 09:57:06 -05:00
eb1bd9d8e2
OSC: don't skip when deleting cue observers
2017-03-29 16:24:43 -07:00
8de580c123
OSC: Clear devices should clear cue observers as well.
2017-03-29 16:07:21 -07:00
e7ca514887
OSC: reduce feedback noise for surfaces using /strip/list
2017-03-26 21:16:45 -07:00
f5931457fb
OSC: tell surfaces using /strip/list they need to rebuild after strip add/remove
2017-03-24 14:05:39 -07:00
011c4a05d8
OSC: update /strip/list response to add aux, midi bus and VCAs
2017-03-24 13:07:03 -07:00
f69808b372
BasicUI moved toggle_click,toggle_roll and stop_forget from menu action to session calls
2017-03-19 23:09:45 -07:00
7d41e542fe
OSC: add feedback for /monitor/mute,dim,mono
2017-03-19 08:54:58 -07:00
1af7e97fd0
basic_ui send midi_panic directly to session rather than through GUI
2017-03-19 07:27:24 -07:00
b0e5ab1b81
OSC add /monitor/mute,dim,mono
2017-03-18 20:05:04 -07:00
caae0546a7
OSC fix toggle_monitor_mute/dim/mono in basic_ui
2017-03-18 14:14:02 -07:00
891ad41c48
OSC: fix pan stuck at centre.
2017-03-15 13:24:13 -07:00
175027fb6c
OSC amend access_action with action in line to ignore if param is 0
2017-03-15 09:20:42 -07:00
cd4462323f
OSC: add new /access_action/group/action f 1 for float only controllers
2017-03-14 18:47:41 -07:00
dc98fa6f3f
Fix Faderport Proj button (show-editor action)
2017-03-14 09:27:59 -05:00
248521221c
OSC debug: "ALL" == all messages incl. invalid ones
2017-03-13 22:35:07 +01:00
6af51b52ff
Use dedicated "show editor/mixer" actions
2017-03-10 17:52:42 +01:00
f21111d7df
Faderport uses the Mix and Proj buttons to summon mixer and editor; there is no longer a Toggle.
2017-03-09 14:29:08 -06:00
ad6ddf70df
Don't allow GMCP to override loading_state_version
...
- GMPC does not use it directly
- when GMPC was enabled Stateful::loading_state_version was set to 1000
(the protocol is at 1.0.0)
- it messes up session-loading, particularly various plugin states and
templates (e.g Processor::set_state_2X was used)
2017-03-04 17:55:22 +01:00
f1e6cc50b0
Revert "libs: debug output for faderport/editor mixer strip sync"
...
This reverts commit 6fb91b1ac2
.
2017-02-25 19:56:51 +01:00
df52c8c748
OSC: correct busses spelling in GUI
2017-02-25 08:49:18 -08:00
6fb91b1ac2
libs: debug output for faderport/editor mixer strip sync
2017-02-24 23:10:03 +01:00
2b9525c991
try to make sure faderport shows the same strip as the editor mixer strip
2017-02-24 22:54:25 +01:00
febd1d5c88
remove misleading/incorrect comment
...
The previously-commented code is precisely what gets invoked
when solo state changes, and had nothing to do with actually
changing solo state in any way.
2017-02-24 10:18:57 +01:00
6fbdfa353b
OSC: remove invalid feedback for solo and pan az.
2017-02-23 15:45:28 -08:00
b5dbfc9931
leave a ToDo note for the mackie surface
2017-02-17 04:02:15 +01:00
9d8829f5bf
Remove direct calls to set solo_control()
...
Changing solo-state needs to be done in rt-context to atomically
propagate solo/mute.
set_control() queues a rt-event, later Session::rt_set_control() calls
Session::update_route_solo_state() to propagate solo/mute.
2017-02-17 03:58:51 +01:00
8243aeb3a1
remove debugging stacktrace from mackie code
2017-02-09 12:47:25 +01:00
e75c713e5e
make the leftmost mixer stripable API at least work as advertised
2017-02-01 11:57:37 +01:00
0f4530af0d
add new API to ControlProtocol to allow GUI to specify left-most mixer strip
...
Subject To Change. Mileage May Vary. Offer Not Good In All Territories.
2017-02-01 11:46:42 +01:00
bb74bba1c7
mackie: catch data on what presentation info aspects changed; don't change banks on a PI change
2017-02-01 10:27:34 +01:00
9e7652ca62
debugging with markk: stacktrace on bank switch in mackie code
2017-01-31 20:12:04 +01:00
6f66fbbf73
remove recently added MackieControl DEBUG_TRACE msgs
2017-01-31 19:16:50 +01:00
1c9df390bc
stop DEBUG_TRACE for MackieControl crashing in some conditions
2017-01-31 19:16:35 +01:00
0d72fe65a2
mackie: use "markN" for new markers, like the GUI (not "markerN")
2017-01-31 18:24:39 +01:00
7c517f6566
mackie: check modifier bits for button AFTER identifying possibly remapped button ID
2017-01-31 18:08:44 +01:00
efd222afe9
mackie: more debug tracing
2017-01-31 17:52:59 +01:00
58c1ff368c
mackie: more debug tracing
2017-01-31 17:48:49 +01:00
9dc2ef28be
mackie: more debug tracing for remapped buttons
2017-01-31 17:43:33 +01:00
8f13d33efe
Revert "mackie: make profile-mapped keys maybe actually do something"
...
This reverts commit 0d7f88afbd
.
2017-01-31 17:37:45 +01:00
de189721e8
Revert "mackie: improve previous commit - use button_id not button.bid() to make remapping work"
...
This reverts commit 16804e20c8
.
2017-01-31 17:37:23 +01:00
16804e20c8
mackie: improve previous commit - use button_id not button.bid() to make remapping work
2017-01-31 17:31:10 +01:00
0d7f88afbd
mackie: make profile-mapped keys maybe actually do something
2017-01-31 17:23:45 +01:00
404686d258
more mackie debug tracing
2017-01-31 17:05:30 +01:00
88dae1c766
improvement to last loop button commit for MCP
2017-01-31 16:29:22 +01:00
f55ebf26bd
mackie support should use BasicUI::loop_toggle()
2017-01-31 16:10:23 +01:00
cdddf79bcf
Generic MIDI controls should affect group members too, if they exist
2017-01-31 15:33:13 +01:00
b424187be1
another action name fix for Push2 support
2017-01-28 19:16:24 +01:00
41aaee6fe9
fix action names in Mackie code after Editor=>Control migration
2017-01-28 18:51:03 +01:00
220fbbe0d8
fix another action name in BasicUI after Editor=>Control migration
2017-01-28 18:51:03 +01:00
e92c169275
fix action names in BasicUI after Editor=>Control migration
2017-01-28 18:51:03 +01:00
ade59c123c
fix action names in Push2 support code
2017-01-28 18:51:03 +01:00
c8892f411a
MCP GUI make surface numbering the same as port numbering and more explanatory.
2017-01-28 09:35:42 -08:00
390ce9bc4f
mackie surface support changes actions recently moved to Common/*
2017-01-28 18:20:49 +01:00
8c7b0d1486
wiimote surface support changes actions recently moved to Common/*
2017-01-28 18:19:01 +01:00
c3d0af413a
MCP fix issue 7219 get GUI to show main surface for right port
2017-01-27 21:44:40 -08:00
93f837b43e
generic MIDI: put controllables into touch mode (if appropriate) when data is received
2017-01-23 13:25:56 +01:00
7daf620a8d
add some comments
2017-01-22 19:49:40 +01:00
94c11ebd90
remove debug cruft from wscript for push2 that breaks with python3
2017-01-21 15:04:39 +00:00
f05a07837b
MIDI leaks -- the Controllergate conspiracy debunked
2017-01-20 11:40:53 +01:00
5d7b6fdd62
ancillary change related to removal of boost::optional<Rect>
2017-01-19 20:55:38 +01:00
38e47c2f5f
Accommodate newly introduced source(s) in our MSVC project (ardour_osc)
2017-01-13 10:18:38 +00:00
c9715af5d9
OSC: We want to see aux buses even if the gui has them hidden
2017-01-11 19:57:19 -08:00