13
0
Commit Graph

845 Commits

Author SHA1 Message Date
81939faa1a
UF8 surface is currently only for Mixbus 2023-09-11 17:13:22 +02:00
8fd8eaa01d UF8: parameterize the device name and pass to MackieControlProtocol 2023-08-26 17:34:04 -05:00
848f74d803
MCU/UF8: Fix issue with windows build
Enable Surface, show GUI, disable surface. repeat.
Previously this cased a crash in glibmm:

The type name `glibmm__CustomBoxed_N13ArdourSurface6NS_UF86Button2IDE'
has been registered already.
2023-08-25 21:08:14 +02:00
4f7bd872be
MCU/UF8: use dedicated ctrl-protocol 2023-08-25 18:12:35 +02:00
c0366a5f13
MCU/UF8: Continued work to special case Mackie surface
* Use dedicated port-names for UFx
* Do not show SSL-UFx device-info files in MCU
* Fix Window namespacing/missing symbols
* Address Windows ambiguous symbols (Button, Surface)
  Those used to have a Mackie:: prefix, now they need
  MACKIE_NAMESPACE

When re-opening the GUI, there is still a somewha mysterious warning:
```
glibmm-WARNING **: file value_custom.cc: (Glib::custom_boxed_type_register): The type name `glibmm__CustomBoxed_N13ArdourSurface6NS_UF86Button2IDE' has been registered already.
```
2023-08-25 18:09:27 +02:00
ec365820d8
MCU/UF8: reuse and special-case Mackie ctrl surface for SSL-UF8
This adds a unique namespace to the MCU source code, so it can be
compiled multiple times resulting in different ctrl surfaces.
2023-08-24 19:19:10 +02:00
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
8c2454238e
Remove explicit well-known ctrl enum string functions
This is better provided by Plugin::print_parameter, which
is called by PluginControl::get_user_string(). This removes
special cases for the mode enums.
2023-03-29 17:32:22 +02:00
dad40f960d fixup various mistakes when rebasing boost->std shared_ptr changes 2023-03-24 14:19:16 -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
0b50bec6f4 MCU: Update view modes for Cue, Foldback, and VCA
This changes the function of the Inputs, Instruments, and Outputs
buttons as follows:

Inputs = Cue Tracks
Instruments = VCA
Outputs = Foldback Busses
2023-03-13 12:21:49 -05:00
alex
4ca947f078 changed parantheses and lines 2023-03-06 00:43:34 +01:00
alex
777c7c6c03 added trackcolors to X-Touch, added _is_xtouch to device info as condition for trackcolors 2023-03-06 00:08:38 +01:00
2c7f8eeb97
Indicate UTF8 literals - fixes glyph rendering with MSVC (1/2) 2023-01-16 21:41:09 +01:00
9403b116ad Mackie: make AudioInstruments button work correctly
Also toggle Global View LED appropriately
2022-12-10 10:32:47 -07: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
bdacfb8724 Fix invalid use of Doxygen "@param" command
This is never for inline references to parameters, only for starting parameter
documentation blocks.  The "@p" command is for this, although unfortunately
Doxygen doesn't actually do anything with it and it's just an alias for code
text.
2022-10-30 20:44:28 -04:00
2939ed3164
Add dedicated InsertReturnLevel type
This is preparation for PortInsert Send and Return
level control.
2022-10-14 02:21:49 +02:00
db8262bd7b
Mackie Control: Use view names from Mackie spec and define them all 2022-08-05 00:50:27 +02:00
de0893cc8d
backport to Ardour: Don't set the MCU Click led state from the button
Allow the update process to get the correct state and update the LED.
2022-08-05 00:43:02 +02:00
luz paz
47c525315d Fix various typos
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch  -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-08-03 12:10:01 -06:00
1f65c66727
MCU: fix mixer-strip buttons (see also 0d9656ef82) 2022-07-15 23:46:28 +02:00
c6566f3933 mackie protocol: add more null checks; remove some debug msgs 2022-06-30 16:47:17 -05:00
198df78cfe mackie debugging: ugly printouts 2022-06-30 14:04:51 -05:00
66bd195030 mackie protocol: potential crash-fix 2022-06-30 11:30:07 -05:00
0d9656ef82 use new macros to cleanup #ifndef NDEBUG as much as possible (libs edition) 2022-06-22 13:31:08 -06:00
6fd4c01fc9 fix optimized unused variable warning 2022-06-22 13:31:08 -06:00
4878c48386 fix optimized unused variable warning 2022-06-22 13:31:08 -06:00
d66bda9f07 mackie send subview: potential fix for send-enable banking (vpot push) 2022-06-16 13:27:30 -05: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
2079a150dd probable fix for Mackie vpot press/release misbehavior in sends (and plugin) subview
The accessed control needs to reflect the current subview banking
2022-05-16 15:24:52 -06:00
Caleb Potter
8b82de7ac1 Prevents user from infinitely banking right in mackie plugin subview
Changes handle_cursor_right_press() in PluginSubviewState to pure virtual
function so that PluginSelect and PluginEdit can each have their own
version.
2022-04-18 11:14:53 -06:00
Caleb Potter
f3bd740913 Formatting. Adds spaces before parentheses 2022-04-18 11:07:45 -06:00
Caleb Potter
8e375f5acd Moves left brackets to be on the same line as conditionals 2022-04-18 11:07:45 -06:00
Caleb Potter
bc6461dc76 Prevents user from infinitely banking right in mackie sends subview 2022-04-18 11:07:45 -06:00
Caleb Potter
17a7dbe06d adds ability to bank over in mackie sends subview
The cursor_left and cursor_right mackie control buttons will now move the
sends subview left and right like it does in the plugin subview. Previously,
if you had more than 8 sends (which is almost always the case for Mixbus),
then sends 9+ were unreachable on an 8 channel controller.
2022-04-18 11:07:45 -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
CalebJPotter
e64fdcfb55 fixes issue where monitor section gets stuck on mute
This mute button wasn't meant to mute the monitor section in the first
place.
2022-03-17 15:37:07 -06:00
Caleb Potter
643342995d fixes issue where MCP controller strips got stranded switching banks
This commit fixes an issue where if your controller was currently on a
bank not near the first few tracks, and you then deleted tracks, the
controller bank buttons would appear unresponsive because of the
"if (initial >= sorted.size())" check in switch_banks().
This would occur when the difference between the _initial_bank and
whatever sorted.size() returns was greater than or equal to strip_cnt.
For example, if your _initial_bank was 48, your strip_cnt was 24 and you
had 24 tracks after the deletion, then the above conditional would evaluate
to true and exit out of switch_banks BEFORE actually switching the bank,
effectively stranding the controller unless you added enough tracks back.
2022-03-17 15:37:07 -06:00
Caleb Potter
e89d85f776 remaps button handlers specific to iCon QCon ProG2
If the QCon ProG2 is selected as the device profile, then the button map
will be built with handlers that map specific to the iCon QCon ProG2
controller.
2022-03-17 15:37:07 -06:00
Caleb Potter
ad4475fe7a adds iCon QCon ProG2 specific MCP button handlers
Adds function to clear solo and (with shift) mute all channels.Adds
function to save and (with shift) save as. Adds function to toggle all
processors on selected track. Adds functions to select track to the
left/right. Adds function to add marker and (with shift) remove marker at
playhead. Adds function to undo without needing shift modifier.
2022-03-17 15:37:07 -06:00
Caleb Potter
b846356f87 adds MCP button to toggle between master fader and monitor fader
Adds an MCP button function to switch the master fader on the controller
between the session master fader and (if enabled) monitor fader.
2022-03-17 15:37:07 -06:00
Caleb Potter
b6a1144472 adds a few general purpose MCP button functions
Adds a function to go to the next and previous marker. Adds a function to
redo (without requiring a shift modifier). Adds a function to open a
project.
2022-03-17 15:37:07 -06:00
Caleb Potter
381276e862 adds support for iCon QCon ProG2 controller
This commit does no remapping, but it adds the Pro G2 as a value in the
device profiles.
2022-03-17 15:37:07 -06:00
Caleb Potter
d1f4679abc adds support for iCon Platform M+ controller
Adds a device profile for iCon Platform M+ controller and new function
that flips between editor and mixer window. This function is mapped to
"mixer" button on controller.
2022-03-17 15:37:07 -06:00
Caleb Potter
fc961f1622 adds support for MCP device-specific button to function remapping
Adding this function so that different devices can remap their buttons
to functions based on device profile.
2022-03-17 15:37:07 -06:00
f58b8e3cb4 fix accidental insertion of "x1" 2022-02-09 10:08:01 -07:00
e77e3b35b8 mackie: fix crash when using thread-local tempo map
TempoMap::use() assumes the thread_local pointer has been set up. This
is not the case for the control protocol event loop, so call ::fetch()
instead which does not require this assumption (and sets the thread_local
pointer too, though nothing else in the Mackie code uses it)
2022-02-09 10:08:01 -07:00