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
847f1e54c1
Clean up ctrl surface API
...
Remove unused fields, no mandatory surfaces
2023-05-01 02:22:45 +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
3f3d0c7e49
Surfaces and panners should not export headers
...
Those are not shared libraries but only dynamically loaded
plugin objects. Their headers are their own.
2022-11-19 01:11:53 +01:00
7a32ff33d4
handle compiler stupidity with early return
2022-06-22 13:31:08 -06:00
9758e6280f
use new event loop callback to ensure that all surface/control protocol threads have tempo map ptr set
2022-05-16 15:24:52 -06:00
Mads Kiilerich
49855e52aa
wscript: consistently have at most one empty separator line
2022-04-09 12:16:40 +02:00
7bf89ce109
Constification: make Stateful::get_state() const, with all other required const-ness added (libs)
2022-04-06 21:56:59 -06:00
Mads Kiilerich
8bb91099c5
wscript: drop configure statements already present in the top level wscript
...
Avoid repeated pointless configure messages like:
Checking for 'g++' (C++ compiler!) : /usr/lib64/ccache/g++
Checking for 'gcc' (C compiler) : /usr/lib64/ccache/gcc
2022-01-22 22:19:03 +01: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
72736289c8
NO-OP: rename API rename
...
CP selection API is now implemented as functions, not signals.
2020-10-18 14:47:05 +02:00
23feb0491e
Remove using std::min/max from header
2020-06-18 01:05:48 +02: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
b9b6a57245
LCXL: fix pan for Mixbus device mode, too
2020-02-13 09:53:38 +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
06b2eb1c27
Explicitly use OSX
...
Previously this was inherited via PBD.
On MacOS/X, this adds
"-undefined dynamic_lookup -flat_namespace"
and various "-framework .." options to linkflags
Without this flag, .dylibs fail to link usually because
of missing `-lintl` (Undefined symbols: "_libintl_dgettext")
On other systems this is a NO-OP:
CFLAGS_OSX, CXXFLAGS_OSX and LINKFLAGS_OSX
are only set on the darwin platform.
2020-01-25 04:07:41 +01:00
David Runge
2e9ac80e99
Towards waf python 2+3 support
2020-01-25 04:07:37 +01:00
d10c4c651c
Consolidate and extend "well-known" controls:
...
* Add new common strip controls (inspired from Mixbus)
* Remove duplicate documentation, document virtual API only.
* "azimuth" not "azi"
2019-09-25 14:02:45 +02: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
dfda5eab82
LCXL:Disable global mute/solo/recarm in device mode
2019-03-06 09:28:25 +01: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
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
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
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
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