13
0
Commit Graph

2125 Commits

Author SHA1 Message Date
f7968f15dd
LCXL: Fix uninitialized pointer function
See also 026b74e25d. FilterFunction must point to a valid function.
2019-08-24 00:01:28 +02:00
026b74e25d
Fix potential call of uninitialized pointer function
_template_number can be set via sysex to an arbitrary number, this
can lead to calling a filter-function at an undefined address, usually
a segfault.
2019-08-21 03:53:46 +02:00
c38c91ddbd
Initialize variable, fix branch condition 2019-08-21 03:09:32 +02:00
e6c9bcfd07
Prefer to use API defined return status 2019-08-21 03:06:28 +02:00
df60eca33c
Initialize uninitialized variable
This fixes a potentially undefined branch if the USB device list is empty.
dev is NULL, the loop is never entered, 'r' isn't set.
if (!dev && !r) is undefined.
2019-08-21 03:05:17 +02:00
6227dd5b04
Shuttle Surface: Fix uninitialized argument in case of incomplete state 2019-08-20 04:18:43 +02:00
df2917568d OSC: foldback buses should be able to be mono 2019-08-06 11:12:19 -07:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log 2019-08-03 15:53:18 +02:00
43fe5c0487
Update Push2 level-meter display (use new API)
The meter-type is now implicit set by route/meter-processor, common
to all UIs.
2019-06-09 19:56:33 +02:00
Johannes Mueller
af875e0edc Potential fix for a race.
Do proper bounds checks and force the use of operator[] () const
2019-05-30 17:33:36 +02:00
Johannes Mueller
16d6791566 Make ContourdesignControlProtocol::_button_actions private again ...
... and add proper bounds checks.
2019-05-30 17:09:33 +02:00
203b249135
Shuttle Surface: fix linking .dll
For .dll, all references need to be defined at compile/link time
(not runtime). ie. `ld -zdefs`
2019-05-26 12:46:37 +02:00
d28dc9ee08
Shuttle Surface: request_factory and MSVC compatible struct 2019-05-25 16:49:19 +02:00
3546a7291b
Shuttle Surface: Fix C++ style: use accessor/setter methods
This also fixes C++ compat: no forward declaration of friend classes
(OSX compilation) and C++98 compat (enums are not classes e.g. ActiveState)
2019-05-25 16:49:15 +02:00
Johannes Mueller
e61c4b692b Use ActionModel also in ContourDesign surface 2019-05-19 16:43:48 +02:00
Johannes Mueller
0c3112aed1 Some frame -> sample changes in UCS2400 2019-05-18 16:36:49 +02:00
Johannes Mueller
b8349069f1 Add support for contourdesign ShuttlePRO v2 and ShuttleXpress 2019-05-18 14:04:38 +02:00
Johannes Mueller
89f39d14f2 Add some options for surfaces to jump in the timeline
* ::jump_by_beats()
* request transport to keep rolling after jump
2019-05-18 13:27:49 +02:00
3e7e89db8f Fix some actions that moved from Common to Editor. 2019-05-13 09:20:17 -05:00
9ac18a8e0f
Generic-MIDI ctrl: tweak pitch-bend message behavior
Add support for smoothing, ignore message when controllers are
not in sync to avoid discontinuous jumps.

This is mainly useful for Mackie-like devices that use pitch-bend
messages for faders.

see also https://discourse.ardour.org/t/feature-lazy-sliders/100961
2019-05-09 16:06:00 +02:00
5bde8f4456
Tweak initial generic-midi sync/smoothing
"last_controllable_value" is using midi value range (0..127).
It is used to compare received midi-value with the actual controllable
for non-motorized surfaces, and this change allows the first
event to already be in_sync.

Previously the first MIDI-event was usually ignored (because
last_controllable_value was out of bounds or didn't match the 0..127
range.
2019-05-05 02:49:53 +02:00
Johannes Mueller
ce47ec411a Make use of ActionModel::build_custom_action_combo() 2019-04-20 22:36:51 +02:00
Johannes Mueller
73f8b8d982 Use ActionModel::build_action_combo() for Control Surfaces that need it 2019-04-20 15:25:32 +02:00
Johannes Mueller
5b7bcec529 Use ActionModel API in the Control Surfaces that can make use of it 2019-04-20 15:25:32 +02:00
Johannes Mueller
8cbbd3dd00 Fadeport: Fix User button state save and restore
Since we (since ddfc37e4) set the UserDown flag for the User button actions, we
need to set it also when we lookup actions when saving the state.
Furthermore, we need also look for the UserDown flag, when we set the state
of the configuration combos for the User button.
2019-04-20 00:15:20 +02:00
Johannes Mueller
23b196952b Fix restoring of CC121 configuration
The button ids are in the children of the cc121 protocol node, not in the
protocol node itself.
2019-04-20 00:12:59 +02:00
2f91bdfa53
NO-OP: <tab> after <space> fixes in libs 2019-04-13 19:19:29 +02:00
a5009bfed3
Indicate automation-latch as "touch" on the CC121
Without a dedicated "Latch" control, this does at least consistently
indicate "Touch", rather than show some arbitrary LED state.
2019-04-08 02:05:36 +02:00
eeb2cddd26
NO-OP: indent 2019-04-08 00:29:13 +02:00
4b86d19b27
Add missing semicolon (Mixbus) 2019-04-08 00:22:13 +02:00
925d25851d
Fix OSC crash when there's no master bus 2019-04-03 03:35:13 +02:00
6d335be418
Indicate automation-latch as "touch" on the FP1
The FP1 does not have a dedicated "Latch" control, but this does
at least consistently indicate that Touch, rather than show some
arbitrary LED state.
2019-04-01 22:30:16 +02:00
50e8c4d529
Expose Latch automation mode to MCUs 2019-04-01 22:28:07 +02:00
3448f3151e
NO-OP: whitespac 2019-03-23 17:35:26 +01:00
c97116083f
Fix generic-midi controllable race-condition
Continued work after e9b36f2bea. Prefer a shared_ptr<>.

MIDIControllable::write_feedback() runs in realtime context, directly
from the main process-thread. Synchronizing weak-pointers and deletion
across threads does not work reliably. Retaining a shared_ptr<> for
controllables that are in use can solve this.
2019-03-23 16:32:48 +01:00
73029d45ba
Re-add global lookup for generic-midi ctrl state 2019-03-23 04:24:39 +01:00
e9b36f2bea
Update GenericMidiControlProtocol to use shared/weak Controllable pointers
This fixes a race-condition when a controllable is deleted
while sending feedback to the device.

Previously there was a race-condition MIDIControllable::write_feedback()
triggered from rt-thread, processed in Surface-thread and deleting
a route or processor.

This is a first step, currently state-restore is not fully functional
session->controllable_by_id() does not cover all Controllables.
2019-03-23 02:09:39 +01:00
baed14c17e
Prepare PBD::Controllable API cleanup (remove only registry user) 2019-03-23 01:41:55 +01:00
9a1c22d7e1
Remove unusued API Create/Delete Binding 2019-03-23 01:28:23 +01:00
acbd12c885 fix all surfaces' available action menus
Note: this replicated code is ridiculous
2019-03-20 14:23:23 -07:00
cf2fa0ae84 fix Mackie available action menu 2019-03-20 13:05:35 -07:00
94d859e30d ActionManager::get_all_actions() no longer includes <Actions> in the paths it returns, part 2 (surface support) 2019-03-20 11:15:34 -07:00
4667ca962b Mixer/show-editor is now Common/show-editor 2019-03-19 10:42:05 -05:00
a3986f703d reorder #include directives 2019-03-18 22:58:24 -07:00
7054b2ffc7 switch remaining use of Common/ToggleMixerList to Mixer/ToggleMixerList 2019-03-18 10:58:02 -07:00
Jan Lentfer
dfda5eab82 LCXL:Disable global mute/solo/recarm in device mode 2019-03-06 09:28:25 +01:00
23a98e5f4d remove references to "Editor_menus" which is an action that no longer exists 2019-02-16 13:12:45 -07:00
56e950b189 rename Main_menu action to Main menu
So that if it ever does show up in a list, it looks nice
2019-02-16 13:05:41 -07:00
586792fcc9
NO-OP: whitespace 2019-01-21 14:36:59 +01:00
657e976a80
NO-OP: remove unused code 2019-01-21 14:34:19 +01:00
d97364736c
ISO-C++ compat, see cd70c6bda5, 91ed9840d 2019-01-21 14:33:08 +01:00
616ee4e43b OSC: remove unused variable 2019-01-18 10:24:13 -08:00
c7787690f6 OSC: shorten foldbackbus names 2019-01-18 10:24:13 -08:00
cd70c6bda5
Fix ambiguity introduced in 91ed9840d
(bool) false == 0 == (const char*) NULL

error: ISO C++ says that these are ambiguous, even though the worst
conversion for the first is better than the worst conversion for the second:

actions.h:92: note: candidate 1: Glib::RefPtr<Gtk::Action> ActionManager::get_action(const char*, const char*, bool)
actions.h:91: note: candidate 2: Glib::RefPtr<Gtk::Action> ActionManager::get_action(const std::string&, bool)
2019-01-16 01:17:52 +01:00
8f9e63575f Clarify which version of 'ActionManager::get_action()' we're calling
For MSVC, the parameter 'false' (i.e. 0) can be considered as either a bool or a pointer - so it'll map to both declarations of ActionManager::get_action()
2019-01-14 14:14:23 +00:00
b67bb8165b do not crash if an unknown action is used by US2400 support 2019-01-11 12:54:44 -06:00
91ed9840d0 do not crash if an unknown action is used by Mackie Control support 2019-01-11 12:39:07 -06:00
Jan Lentfer
ff0ee75a56 LCXL: Fix a problem in switch_bank 2019-01-03 19:22:56 +01:00
Jan Lentfer
45f83beb17 LCXL: fix special 32C handling for autom. lanes 2019-01-03 19:22:15 +01:00
Jan Lentfer
5d2a03578c
LCXL: some more small tweaks
* assign Pan knob to Comp thresh as secondary function
    * make cancel_all_solo and cancel_all_mute work in device mode, too
2018-12-12 18:14:48 +01:00
360261f110 replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls 2018-12-12 11:12:48 -05:00
4b0f0f913b fix Window->Common move for show-mixer 2018-12-10 18:40:16 -05:00
00df619d21 use ActionManager namespace, rather than ActionMap objects 2018-12-10 08:34:01 -05:00
9b2612f686 Make foldback bus match foldback sends namewise
to avoid confusion with listener sends or monitor bus
2018-11-12 22:30:32 -08:00
f27ca29d6c Changed send/deliver role "Personal" to "Foldback" so bus type can match 2018-11-12 22:30:32 -08:00
e9013c0f99 OSC: New personal monitor buses no longer need to be hidden 2018-11-12 22:30:32 -08:00
1b2b3452cb OSC: logic thinko fix 2018-11-12 22:30:32 -08:00
Jan Lentfer
fb1fe5ce30 LCXL: some final fixes 2018-11-11 19:52:37 +01:00
894145c527 OSC: specify which stiripable type we want 2018-11-07 17:00:16 -08:00
f7b67501a9 OSC: Allow non-cue surfaces to create personal send and ListenBus 2018-10-30 12:15:28 -07:00
777fe3c68f Add personal monitor sends 2018-10-19 08:51:29 -07:00
897258f5f1 Fix scalar initialization of shared_ptr<>. 2018-10-18 04:15:47 +02:00
5e21b6633d Option to hide send if aux is hidden 2018-10-17 15:59:00 -07:00
Jan Lentfer
05d3539591 LCXL: complete overhaul and Mixbus support 2018-10-17 15:14:59 +02:00
Térence Clastres
a33a5cdeaf LCXL: Assign one callback function per Knob/Fader 2018-10-17 15:14:59 +02:00
1b7cb8aec4 OSC: personal monitor can hide the aux bus 2018-10-16 13:56:52 -07:00
87ab15c862 OSC: personal monitor send hidden follows aux hidden 2018-10-16 13:56:52 -07:00
8160fd1348 OSC: personal monitor should only send signal present on change 2018-10-16 13:56:52 -07:00
b35283caa1 OSC: allow personal monitor to add a send. 2018-10-14 21:20:57 -07:00
8ed33f1bc7 remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead 2018-10-14 22:06:11 -04:00
0f6e67a32f Faderport(Classic): Add Record-PreRoll and Record-CountIn actions to the footswitch selections. Could make this menu access -any- action, but I think a short useful list of transport items is better in this case. 2018-10-07 10:10:03 -05:00
4c7e5dbc74 move away from "sync source" concepts 2018-10-05 14:15:02 -04:00
ccccac7a10 Fix the User button for Mixbus; we use it as a button, not a modifier. 2018-10-04 19:29:14 -05:00
b6b353d452 Handle generic-midi bindings per session.
This allows to special-cases session-specific control-surface state.
e.g. midi-learn.

Only restore midi-learned, session-specific, bindings when loading a
session with generic-midi enabled.

Also dis/re-enable generic-midi resets midi-learned, but no other
session-independent settings.

This also handles the edge case:
 1) load global config, generic-midi = ON, w/ bindings.
    state is remembered as cpi->state
 2) load session-condig, generic-midi = OFF, cpi->state is retained
 3) user enables the surface, cpi->state from (1) is applied.
 -> invalid bindings applied -> fail
2018-10-04 02:30:21 +02:00
b519434744 Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 2 of 3 (more to follow)
2018-09-30 09:06:25 +01:00
d76589d90f FP8/16: include makeup gain control 2018-09-28 16:19:40 +02:00
Albert Graef
65693a72a2 MCP: Fix up the feedback for the view selection buttons. 2018-09-27 11:31:13 -04:00
Albert Graef
38bccabeca MCP: Allow the current bank to move right one channel even if this results in a partial bank.
Rationale: This change is trivial, but Ardour's behavior of refusing to move right one channel unless a full bank remains has been there for a long time, and there are probably good reasons for it. This design was likely conceived when all MCP-compatible devices had banks of 8 faders anyway. However, with the advent of affordable single-strip devices like the X-Touch ONE it becomes a real issue.

Single-strip devices can only access the first channel in the current bank, so relaxing this restriction is the easiest way to enable such devices to access all strips, while still maintaining the usual bank size of 8. Note that maintaining a bank size of 8 is beneficial even with single-strip devices for several reasons:

- It allows use of the bank switch buttons to flip through a large number of strips more quickly.

- It maintains compatibility with existing device descriptions. E.g., the X-Touch ONE can be used with the existing X-Touch device description without any ado.

- Most importantly, it maintains compatibility with other MCP-compatible controllers which do have 8 strips and may be connected to Ardour at the same time. E.g., one might want to use an X-Touch Mini, or even a full-size X-Touch along with the X-Touch ONE in some use cases. Changing the bank size to 1 affects all connected MCP devices, so you'd rather keep the bank size to 8 in such scenarios. (Ardour should preferably have separate bank size settings for each connected MCP device, but that isn't possible right now since only one MCP device description can be active at the same time.)
2018-09-27 11:31:13 -04:00
Albert Graef
936f6814ac MCP: Fix up the feedback for the bank left/right buttons. 2018-09-27 11:31:13 -04:00
Jan Lentfer
e52c8e376a LCXL: fix off by one cause by fader8master 2018-09-22 15:12:26 +02:00
Jan Lentfer
7d6c9c3085 LCXL: Fix a crash on exit 2018-09-22 15:12:26 +02:00
357361c89d Fix --no-nls (4/5), i18n include order in libs/*
"i18n.h" needs to be included last (after any includes that may indirectly
pull in getext or libintl etc)
2018-09-21 19:05:39 +02:00
7390b88c2b OSC: Allow personal monitor to change output connection 2018-09-18 15:39:14 -07:00
a96aa4e1fd OSC: Personal monitoring can add a new aux 2018-09-10 09:58:15 -07:00
79f01bc889 Initial changes needed for building Mixbus (with MSVC) as version 5
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
2172337306 Add missing cast (NoteButton to TrackButton) 2018-09-06 23:03:55 +02:00
e1c58aad60 Fix an invalid conversion from 'int' to non-scalar. 2018-09-06 19:28:45 +02:00
Jan Lentfer
eff7a51de1 LCXL: Refactor code to use boost::shared_ptr 2018-09-04 18:55:49 +02:00
ed678aa2f9 Fix shared_ptr initialization
error: no matching function for call to
 'boost::shared_ptr<ArdourSurface::Push2::Button>::shared_ptr(int)'
2018-09-03 13:38:37 +02:00
6e419a961e use boost::shared_ptr<> to manage Button/Pad lifetimes in Push2 code 2018-09-02 13:23:57 -04:00
Térence Clastres
2a78f0a852 LCXL: Fix check if ports exist 2018-08-30 22:39:24 +02:00
9f30d14906 P2: Fix check if ports exist 2018-08-30 22:28:31 +02:00
Jan Lentfer
c3d0c80f68 LCXL: Fix two crashes
* fix a crash when accessing VCAs
    * fix a crash when being at the end
      of available stripables
    * unify for-loop constructs
2018-08-29 23:40:26 +02:00
Jan Lentfer
fdbce2e8c8 LCXL: add visual feedback for sec button functions
also add some little fixes in regard
    to fixing master fader on controller
    fader no 8
2018-08-25 22:51:31 +02:00
3136b20847 Cleanup various design patterns.
* do not use implicit bool-to-int-cast
* avoid C++11 member initialization in header
* always use set and access methods, remove public variable
2018-08-24 16:55:00 +02:00
510a0314cf move select-all-tracks,deselect-all,invert-selection to be global actions (and bindings) 2018-08-24 10:08:08 -04:00
Térence Clastres
6bd81ee3c7 Revert "LCXL: Fast skip to first/last stripable with left/right long press"
This reverts commit 27b05f4d8d.
2018-08-22 22:40:57 +02:00
Térence Clastres
65cadf2cb6 LCXL: Make knobs' leds' color constant when controlling master bus 2018-08-22 22:33:00 +02:00
Térence Clastres
3f77c1245c LCXL: track select: change from 1 strip at a time to whole bank 2018-08-22 22:33:00 +02:00
Jan Lentfer
266c5fbc16 LCXL: Mixbus secondary function for Ctrl buttons
In Mixbus holding Device and pressing
    one (or many) of the Track Control buttons
    will toggle the Master Assignment for the
    corresponding track
2018-08-22 19:56:10 +02:00
Jan Lentfer
fa7c8f6013 LCXL: Add some Mixbus functionality
in the mixer mode secondary functions
    (Device/Hold) of knobs per track
    will map as follows:

    Send A - trim (same as for Ardour)
    Send B - HPF Freq
    PAN    - Compressor threshold
2018-08-22 19:56:10 +02:00
Jan Lentfer
d17b6c5eea LCXL: save assignment of 8th fader in config 2018-08-22 19:52:09 +02:00
Jan Lentfer
b80e079353 LCXL: fix some more typos 2018-08-22 19:50:51 +02:00
Térence Clastres
27b05f4d8d LCXL: Fast skip to first/last stripable with left/right long press 2018-08-19 01:37:35 +02:00
Térence Clastres
3da024b4b7 LCXL: fix crash when disabling the surface while having the GUI open 2018-08-19 00:27:12 +02:00
Jan Lentfer
74ad41f8d9 LCXL: Add configuration option for handling master
In the Controller's settings you can now
    choose between two operation modes:
    1)  8 track mode
    2)  7 track plus master mode

    In case 2) fader 8 is fixed on the master
2018-08-18 23:06:32 +02:00
Térence Clastres
51b5c01b8b Add knob leds and refine colors 2018-08-18 20:49:17 +02:00
Jan Lentfer
c2b4f19612 LCXL: fix typos in function names 2018-08-18 18:12:18 +02:00
Jan Lentfer
5e67630b23 LCXL: add isolate solo as secondary function
Holding the Device button and press one
    of the Track Focus button will toggle
    solo isolation on the correspongind track
2018-08-18 18:12:18 +02:00
Jan Lentfer
4789147482 LCXL: split track focus button and led code 2018-08-18 18:12:18 +02:00
Térence Clastres
4122ff891c Code styling: remove whitespaces between parenthesis 2018-08-15 18:48:32 -04:00
Térence Clastres
7c6c8ac270 Attempt to make some function's names more explicit 2018-08-15 18:48:32 -04:00
Térence Clastres
928a6ef4be Fix track select right led wrong behaviour 2018-08-15 18:48:32 -04:00
Térence Clastres
cb0ae63fe2 Fix track buttons not working when selecting the last stripable 2018-08-15 18:48:32 -04:00
f88b557ce7 Remove some unused includes 2018-08-16 00:23:05 +02:00
Jan Lentfer
6434bf9dd3 LCXL: Reorganize knobs functions
Make the knobs work as printed on the controller

    Holding the Device button will enable extra functionality:
    Send A -> Trim Control
    Pan -> Stereo Width
2018-08-13 22:10:47 +02:00
Jan Lentfer
d3e7fa0ebf LCXL: implement mute, solo and record arm toggles
Holding the Device button and pressing one
    of mute, solo and record arm will toggle
    selected tracks (use Track Focus buttons)
    accordingly.
2018-08-13 14:53:43 -04:00
Térence Clastres
dab2513d9f Add pick-up mode and use it for knobs and faders
The pick up mode ignores new controller values until they match with the current setting of the stripable's ac
2018-08-13 13:57:06 -04:00
Térence Clastres
0d01a2abe9 Add Launch Control XL icon 2018-08-09 22:42:44 +02:00
Térence Clastres
740e075803 Turn off button led if it doesn't control a stripable 2018-08-09 22:13:14 +02:00
Térence Clastres
5276a9941b Call switch_bank() and use button_track_mode() within it to init required LEDs 2018-08-09 21:38:56 +02:00
Térence Clastres
a9958840b0 Add reset method and use it during start-up/shutdown 2018-08-09 21:05:55 +02:00
Térence Clastres
2c460135c5 Add missing set_color(Off) in else statement 2018-08-09 21:05:55 +02:00
Térence Clastres
cbb0a33aa3 Correct formatting for if/else statements 2018-08-09 21:05:55 +02:00
Térence Clastres
24e4ba399c Fix wrong note number offset 2018-08-09 21:05:51 +02:00
3064c5a675 fix button note number map lookup 2018-08-08 11:36:15 -04:00
ecfe1c2c67 emacs whitespace fixes 2018-08-07 10:49:33 -04:00
973c1cc61b explicitly drop connections from destructor 2018-08-07 10:49:15 -04:00
120115aec0 don't use an invalidator when connecting an EventLoop object's methods to a signal 2018-08-07 10:48:43 -04:00
87b745face fix uninitialized pointer error in launch control code 2018-08-07 10:44:56 -04:00
149dc68809 Fix invalid C++11isms: don't use of enum as class or namespace 2018-08-07 15:48:39 +02:00
8fa62f102e Fix C++98 compatibility error
'>' should be '> >' within a nested template argument list
2018-08-07 15:44:30 +02:00
be51e617bb LCXL: add missing request-buffer factory. 2018-08-07 15:40:30 +02:00
6d983d5f0b Fix -Wnon-virtual-dtor
`struct ArdourSurface::LaunchControlXL::LED' has virtual functions
and accessible non-virtual destructor [-Wnon-virtual-dtor]
2018-08-07 15:36:22 +02:00
c4d25037c4 Fix invalid use of enum as class or namespace. 2018-08-07 15:34:03 +02:00
f0105dafc1 NO-OP: whitespace 2018-08-07 15:30:26 +02:00
Térence Clastres
8c7a1e004b Add Launch Control XL control surface support 2018-08-07 04:16:09 +02:00
eb304fe4b8 FP2: Fix banking in NavChannel mode. 2018-08-01 11:35:35 -05:00
b61b1cd7aa Tweak FP2/2018 Ctrl-Surface UI 2018-07-31 15:43:21 +02:00
cc2324e763 Tweak UI for Faderport2/2018 2018-07-31 15:32:26 +02:00
b30cd5f657 Fix Faderport8/16 support in the wake of FP2 2018-07-31 15:23:49 +02:00
948834bb1e Add support for PreSonus Faderport2 (2018 model)
This is a cleaned-up, foward-ported version of Ben's
Mixbus patch (d6694c5b31).
2018-07-31 14:54:20 +02:00
1d61a3e17f CC121: cycle track monitoring states 2018-07-12 21:43:49 +02:00
da6a6f1366 CC121: watch Track monitoring state 2018-07-12 21:42:57 +02:00
8004b9bb8e OSC: custom mode should turn temp mode off 2018-07-06 08:09:03 -07:00
e1ce87956a OSC: record tally should include master record 2018-07-06 08:08:29 -07:00
c2af992ac7 OSC: Use spill instead of collect 2018-07-06 07:35:24 -07:00
3322e6f5a5 OSC: make temp modes work with linked surfaces too 2018-07-05 23:24:30 -07:00
7af016b089 Prepare CC121 ctrl surface for Mixbus
- fix Panner
- implement touch-start when changing ctrls
- map some well-known ctrls (not yet ideal)
2018-07-05 16:49:01 +02:00
4b47a4c4cc OSC: Set lowest select meter to -120 for mixbus 2018-07-04 19:18:38 -07:00
9d99cc8b01 OSC: Make sure group name for select gets updated 2018-07-02 08:18:42 -07:00
f30add4c0e OSC: bugfix, select/next\previous sometimes resets to old strip 2018-06-30 18:59:37 -07:00
6e082b16b2 OSC: Add collect of groups or subgroups 2018-06-30 15:25:17 -07:00
ff03eeab04 fix mixing scope brace 2018-06-25 10:06:57 -04:00
d7ac5792b8 Accommodate recently removed source(s) in our MSVC project (libardour)
(this also needs ardour_genericmidi to link to both evoral and boost-regex)
2018-06-25 12:11:10 +01:00
87bab9c0f7 OSC: make select logic more sensible 2018-06-24 20:04:54 -07:00
8725ed5bd1 add Ctl_Dial to get better behaviour when binding a MIDI controller KNOB/DIAL to a toggled controllable.
No intent to change Ctl_Momentary or Ctl_Toggle behaviour, plus I tried to document what they are intended to support
2018-06-21 22:28:11 -04:00
8a18929d57 remove Session::controllable_by_descriptor() and move code into GenericMIDI code (the only user).
This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string
parsing every time, but this is not likely to be a notable cost.
2018-06-21 13:05:58 -04:00
4b37e248e1 OSC: fix pre gcc5 problem 2018-06-20 12:39:34 -07:00
e34f006658 OSC: Add /select/vca/toggle 2018-06-20 12:39:34 -07:00
6edea6064e OSC: reworking of previous/next select 2018-06-19 09:46:29 -07:00
2fa49c51b2 OSC: Feedback was not making it to surface 2018-06-19 09:46:29 -07:00
5ce341c127 OSC group sharing should be cleared for VCAs 2018-06-19 09:46:29 -07:00
0141700d4b OSC: added context based previous/next select 2018-06-19 09:46:29 -07:00
641b8a1139 OSC: select should not show expand if invalid 2018-06-19 09:46:29 -07:00
cc78d78390 OSC expand off should check current sellect 2018-06-19 09:46:29 -07:00
fee23d8778 OSC: Allow expand to be global 2018-06-19 09:46:28 -07:00
293326cd94 OSC do not recalc select if still valid 2018-06-19 09:46:28 -07:00
518f8108ac OSC make strippable null on drop references 2018-04-07 09:16:07 -07:00
0e88eff05c Use precalulated value rather than recalculating 2018-04-07 09:16:07 -07:00
b286f4f851 OSC: Setting strip types should clear temporary custom modes 2018-04-07 09:16:07 -07:00
224295266f faderport: make ::invoke() tell us whether or not something was actually invoked for a button event
Only put the button into "consumed" if it actually invoked something.
This helps to get reverse-polarity footswitches to work as expected
2018-03-26 18:26:39 -04:00
ddfc37e42a fix binding to long-press for User button on FaderPort 2018-03-26 13:56:50 -04:00
7b42c7e361 MSVC won't allow us to cast directly from float to an enum. We need to kludge it by first casting to an integer type
(is it safe to be casting from float to enum anyway??)
2018-03-22 10:54:21 +00:00
c177434669 OSC: Change custom mode to enum 2018-03-20 14:37:40 -07:00
5385aece94 OSC: a strip controlling a send should deactivate other controls 2018-03-20 08:43:10 -07:00
bfbab2d0b5 OSC: Add feedback for bus_only mode and automation and pan 2018-03-20 08:43:10 -07:00
29975638c0 OSC: select should have latch too. 2018-03-20 08:43:10 -07:00
c768aeabc4 OSC: Add bus only mode for gain controls 2018-03-20 08:43:10 -07:00
3cd79cd80f Sort generic-midi bindings alphabetically 2018-03-13 16:18:03 +01:00
74c4e4a6d8 OSC: group commands should feedback all off if no group 2018-03-12 16:03:53 -07:00
98d6fe9c91 OSC: fix /strip/hidden feedback excess 2018-03-10 13:07:13 -08:00
b2259e11d0 OSC: change group sharing to individual commands
Send less feedback for group name and sharing
2018-03-10 13:07:13 -08:00
ed04660940 OSC: set surface should reset custom mode 2018-03-10 13:07:13 -08:00
f1dc45c7f2 OSC: Display only strips controlled by selected VCA 2018-03-10 13:07:13 -08:00
e4da386eb5 OSC: add set VCA for slavable strip 2018-03-10 13:07:13 -08:00
30533cd43a OSC: Added slaved feedback to select 2018-03-10 13:07:13 -08:00
d1290e82db OSC: check route exists 2018-03-10 13:07:13 -08:00
Jan Lentfer
a2af019c95 generic_midi: add proper handling of midi controll toggles 2018-03-03 14:04:12 +01:00
edd21ac89e OSC: add group sharing bit feedback 2018-02-27 21:59:43 -08:00
6adeded426 OSC: add group sharing bit setting 2018-02-27 21:59:43 -08:00
d99060134b OSC: display only strips in group. 2018-02-27 21:59:43 -08:00
d79bcd44b2 OSC: fix compiler warning and catch possible errors 2018-02-21 20:26:43 -08:00
d4ae858bf6 OSC: Add session name change 2018-02-20 15:49:37 -08:00
a9d041c62e OSC: allow setting of marker name 2018-02-18 09:16:16 -08:00
08632d623e OSC: select comment should feedback when comment changed 2018-02-18 09:16:16 -08:00
66fa0778ab OSC: Allow surface to change route comment. 2018-02-18 09:16:16 -08:00
a29d3c1b31 OSC: Select should be able to rename as well. 2018-02-16 22:54:16 -08:00
dffecfa4c6 OSC: added group join, switch, remove function 2018-02-16 13:10:20 -08:00
3504ecff5f noop OSC: path strings should not get tranlated 2018-02-16 13:10:20 -08:00
3ac47220a0 OSC: Add /group/list so surface can get a list of groups 2018-02-16 13:10:20 -08:00
b9c9777b9a When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format 2018-02-15 09:03:32 +00:00
6f019faaa0 Accommodate the change from libtimecode to libtemporal 2018-02-14 10:02:11 +00:00
11e50fe0c5 Resolve a few -Wunused-variable warnings in US2400. 2018-02-10 22:43:53 -06:00
b1d7eabf54 iCon device tweaks: faster timecode display refresh rate. Submitted by Michal Barhon. 2018-02-10 22:43:53 -06:00
ff319ce63f Resolve -Wreorder in qcon code. 2018-02-10 22:43:42 -06:00
70d8300cb2 OSC: clean up jog mode, simplify feedback 2018-02-05 10:40:25 -08:00
ea1740d65f MSVC only allows static class members to be initialised in the class declaration 2018-02-03 14:58:45 +00:00
3aacdd79ae Fixes for the iCON Qcon mcp device - LED rings. Submitted by Michal Barhon : mbarhon@seznam.cz 2018-02-02 09:27:37 -06:00
16a5e3ce55 OSC: jog mode and jog mode name should be sent at refresh 2018-02-01 22:03:04 -08:00
ae3d9deefb Support for the iCON Qcon mcp device - sysex strings. Submitted by Michal Barhon. 2018-02-01 14:39:59 -06:00
f549fcfb76 OSC: Add group name feedback to strips 2018-01-31 11:48:10 -08:00
11d2077b43 FP8/16: Update Plugin List when Selection changes. 2018-01-27 20:56:13 +01:00
0aa0d49a4d FP8/16: Don't show Channelstrip as Plugin, use well-known API only 2018-01-27 20:53:31 +01:00
c1632635b5 OSC: reorder /set_surface parameters to fit manual
remove unused call
2018-01-24 08:17:45 -08:00
5e4aa5455e OSC: Make sure observers are restarted if port changes 2018-01-24 08:17:45 -08:00
ea0808de2d OSC: Allow Surface to set it's own receive port 2018-01-24 08:17:45 -08:00
f7ec31d95d OSC: allow each surface to set portmode for that IP. 2018-01-24 08:17:45 -08:00
d785883836 Fix FP16 Solo (0x53 is mapped to encoder-press, 0x56 to loop) 2018-01-23 19:00:18 +01:00
1ebe6cdf07 OSC: Added feedback for /strip/hide 2018-01-14 13:07:40 -08:00
c7a052a45f OSC: add /strip/hide 2018-01-14 13:07:40 -08:00
ef1301759d OSC: Add feedback for hidden strip 2018-01-13 08:41:58 -08:00
e51c5ab76a OSC: add /select/hide 2018-01-13 07:58:37 -08:00
7d6e6424c7 OSC: Expand gainmode to add two new options
fix bug where a surface might have more than one global observer
2018-01-09 19:19:29 -08:00
15fa89c8dd OSC: Plugin activate should detect no plugins 2018-01-02 10:23:11 -08:00
6536126ad2 OSC: Check for no markers yet (crash fix) 2017-12-29 14:47:00 -08:00
6d204e76eb OSC: fix jog mode } in wrong place 2017-12-23 13:50:28 -08:00
283ff0230d OSC: Add feedback for /marker 2017-12-23 13:17:11 -08:00
34a926fc51 OSC: add /marker to locate to a marker. 2017-12-22 12:04:05 -08:00
5a23719da3 FP8/16: Ignore "black" a strip color, always light select-button 2017-12-21 02:30:01 +01:00
1deb6525b8 FP8/16 fix meter + no-pan display mode 2017-12-21 02:30:01 +01:00
c0d333ba9c FP8/16 subscribe to panner changes (add/remove channel) 2017-12-21 02:30:01 +01:00
0d72f37318 OSC: Add /surface/list option to setting GUI 2017-12-20 07:48:35 -08:00
e921088ee8 Fix fp16 encoder (misleading doc on fp8) 2017-12-19 17:56:57 +01:00
3cb952d7fb Revert "Prototype to allow embedding sysex in midi-map"
This reverts commit 561c8eea0c.
It is rare that a device needs sysex-initialization every time it is
connected, besides a single simple "Sysex" entry without options
is not very flexible.
2017-12-19 17:45:03 +01:00
f9d7a3720d Fix faderport-16 touch on/off (fixes faders 9..16) 2017-12-19 03:50:07 +01:00
22939488e7 OSC: Move /surface/list output to PBD::info 2017-12-16 12:42:32 -08:00
847b71e12d OSC: make custom strip lists work on linked surfaces too 2017-12-16 08:24:41 -08:00
886244feea OSC: Add Sorted or not to custom strip list
fix bug where processor_changed sometimes gets null address
2017-12-15 09:43:48 -08:00
559344d99d OSC: in custom strip list check all strips exist 2017-12-15 09:43:48 -08:00