Commit Graph

49 Commits

Author SHA1 Message Date
Ben Loftis ee6d46d403 Ardour repo should not distinguish between Mixbus variants 2024-01-08 08:25:18 -06:00
Robin Gareus 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
Paul Davis f718279949 surfaces & event loops: i really mean no more request buffer factories 2023-04-21 13:55:58 -06:00
Paul Davis 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
Paul Davis 7a32ff33d4 handle compiler stupidity with early return 2022-06-22 13:31:08 -06:00
Paul Davis 7bf89ce109 Constification: make Stateful::get_state() const, with all other required const-ness added (libs) 2022-04-06 21:56:59 -06:00
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus f7968f15dd
LCXL: Fix uninitialized pointer function
See also 026b74e25d. FilterFunction must point to a valid function.
2019-08-24 00:01:28 +02:00
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Paul Davis ecfe1c2c67 emacs whitespace fixes 2018-08-07 10:49:33 -04:00
Paul Davis 973c1cc61b explicitly drop connections from destructor 2018-08-07 10:49:15 -04:00
Paul Davis 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