13
0
Commit Graph

83 Commits

Author SHA1 Message Date
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