df185e575e
Use correct variable in BasicUI::jump_by_seconds
2017-05-23 09:13:27 +10:00
b3fb75fead
OSC: Further fixes so multiple controls can touch at once.
2017-05-20 10:17:31 -07:00
ab069b1372
OSC: fix c++98 mistake
2017-05-20 09:09:01 -07:00
6926b7eb75
OSC: Catch case of surface sending fader move before touch
2017-05-19 15:48:36 -07:00
84e1a216bc
OSC: Add fake timeout based touch
2017-05-18 15:32:12 -07:00
d3738b087e
MCP: Fix issue with strip "select" buttons that stayed stuck on.
...
* Depending on individual strips to watch the selection property is prone to failure.
* Stripable_selection_changed() is called when a selection operation is completed.
2017-05-17 15:55:43 -05:00
60cc2823f3
MCP: map the well-known EQ knobs more explicitly, not heuristically.
2017-05-17 15:53:14 -05:00
f2aac0bcae
OSC: Add /strip/fader/touch
2017-05-15 19:38:41 -07:00
f3f1816899
remove unused variable
2017-05-15 19:38:41 -07:00
7e791981f0
OSC: added automation name feedback
2017-05-15 07:43:59 -07:00
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