65346496f5
Refactor Ctrl Surface API
...
* reserve "probe" to actually probe for devices
* use separate probe for libusb and MIDI port devices
* use "available" to check if surface can be used
* allow both methods to be NULL
* remove unused ControlProtocolDescriptor* argument
Most surface just return `true` for available.
2023-05-03 15:38:42 +02:00
f718279949
surfaces & event loops: i really mean no more request buffer factories
2023-04-21 13:55:58 -06:00
b35518e212
switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
...
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
7a32ff33d4
handle compiler stupidity with early return
2022-06-22 13:31:08 -06:00
7bf89ce109
Constification: make Stateful::get_state() const, with all other required const-ness added (libs)
2022-04-06 21:56:59 -06:00
e0a6aba28d
Ignore saved port-name when loading ctrl-surface state
...
In some cases old and/or conflicting port names were saved
with the session (e.g. "Faderport" for FP1,8). Loading old sessions
then merges this state into the config, which could lead to
port-registration failure when the surfaces was enabled.
2021-04-17 02:07:09 +02:00
acfa04d700
Update Ctrl-surface MIDI port list when ports change
...
This is a better variant of bbb6851468
, directly using
the GUI context without indirection.
2021-02-04 06:19:37 +01:00
bbb6851468
Subscribe to pretty-port name changes (surfaces)
2021-01-18 03:18:20 +01:00
Jan Lentfer
d7fed7c52e
LCXL: make sends assignable for 32C
...
* add an option to the controller configuration gui
to assign the 3x2 send banks in mixer mode
to either the upper (1-6) or lower (7-12) Mixbus sends
* This was a user request to better support the workflow
of the CoMondo Mix system
2020-02-13 18:32:41 +01:00
Jan Lentfer
260e7ad5a9
LCXL: Make the pan fix nice again
2020-02-12 21:37:52 +01:00
Jan Lentfer
cc7eca7453
LCXL: Adopt pan knob behaviour
...
* "left/right" changed in A6, adopt for this
* add a pick_up_rev function to honour this
2020-02-09 23:34:20 +01:00
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
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02: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
fb1fe5ce30
LCXL: some final fixes
2018-11-11 19:52:37 +01:00
897258f5f1
Fix scalar initialization of shared_ptr<>.
2018-10-18 04:15:47 +02: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
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
Jan Lentfer
eff7a51de1
LCXL: Refactor code to use boost::shared_ptr
2018-09-04 18:55:49 +02:00
Térence Clastres
2a78f0a852
LCXL: Fix check if ports exist
2018-08-30 22:39:24 +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
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
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
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
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
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
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
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
cbb0a33aa3
Correct formatting for if/else statements
2018-08-09 21:05:55 +02: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
Térence Clastres
8c7a1e004b
Add Launch Control XL control surface support
2018-08-07 04:16:09 +02:00