Commit graph

229 commits

Author SHA1 Message Date
Robin Gareus
1f65c66727
MCU: fix mixer-strip buttons (see also 0d9656ef82) 2022-07-15 23:46:28 +02:00
Ben Loftis
c6566f3933 mackie protocol: add more null checks; remove some debug msgs 2022-06-30 16:47:17 -05:00
Ben Loftis
198df78cfe mackie debugging: ugly printouts 2022-06-30 14:04:51 -05:00
Ben Loftis
66bd195030 mackie protocol: potential crash-fix 2022-06-30 11:30:07 -05:00
Paul Davis
0d9656ef82 use new macros to cleanup #ifndef NDEBUG as much as possible (libs edition) 2022-06-22 13:31:08 -06:00
Paul Davis
4878c48386 fix optimized unused variable warning 2022-06-22 13:31:08 -06:00
Marijn Kruisselbrink
0e799357a8 Fix crash in mackie strip code.
Strip::notify_property_changed accesses _stripable without verifying
that is not null. However it is possible for this to be null, so
add a null check.
2021-12-13 21:03:38 -07:00
Todd Naugle
d60a5187bd Mackie Control: Fix detection of QCon Extenders so 2nd LCD is correct
Logic to detect an extender has to be based on if this surface object is
the master position. Has master fader is true for all surfaces in this
"device".
2021-12-13 21:25:07 -06:00
Bruno Vernay
e3836e1162 Typo in code Paramater 2021-10-30 23:02:04 +02:00
Paul Davis
086e48796c surfaces: first round of conversion to use timeline types 2021-08-13 12:51:29 -06:00
Todd Naugle
45f9b45bff Mackie Control Surface: Improved support for iCON QCon Pro X
Support the second LCD on the Pro X and use it for channel strip labels.

Support the stereo master meters on the Pro X
2021-07-02 16:00:51 -05:00
Todd Naugle
e94239cc92 Mackie Control Surface: Update the meters even when the transport is stopped 2021-07-02 15:53:20 -05:00
Todd Naugle
41ac0cb753 Mackie Control Surface: Correctly handle the Monitor section being removed.
Adding a Monitor section updated the surface but removing one did not.
2021-07-02 15:51:53 -05:00
Robin Gareus
b58dfc7f0f
Resolve microseconds_t ambiguity 1/2
This resolves a PBD vs ARDOUR namespace error for some compilers:
```
error: reference to 'microseconds_t' is ambiguous
libs/pbd/pbd/microseconds.h:29:19: error: candidates are: typedef uint64_t PBD::microseconds_t
libs/ardour/ardour/types.h:81:29: error:                  typedef PBD::microseconds_t ARDOUR::microseconds_t
```
2021-06-27 17:33:05 +02:00
Paul Davis
9cbaa31c7e libs fix for get_microseconds() move to libpbd 2021-06-26 18:27:39 -06:00
Paul Davis
0fc50b9bf2 Mackie Control: set select state correctly during initial setup 2021-05-11 15:55:04 -06:00
Paul Davis
3f30a0ad39 more code rearrangement ... old gcc/mingw does not allow Enum::Value 2020-04-07 18:32:45 -06:00
Paul Davis
595be0e5e9 try some rearrangement to fix old mingw builds 2020-04-07 18:15:51 -06:00
Paul Davis
e345f38c7b fix missing #include 2020-04-07 17:22:55 -06:00
Phil
69067b9d99 add plugin support for mackie units
Main features: Plugin (Select & Edit)

1.  Plugin Select: When a track is selected that has PluginInserts, pushing the "Plug-In" button on a mackie will list these across the strips. Clicking a vpot of a strip enables editing the parameters of this selected plugin.
2. Plugin Edit: When a Plugin is selected for editing, the input parameters of the plugin are shown across the channel strips and the vpot is assigned the corresponsing AutomationControl for the parameter.

Minor features

- When the number of plugins or the number of parameters exceeds the number of strips available on the surface, one can flip through "pages" of views using the Cursor Left and Right keys (this logic I took from http://www.emagic.de/media/support/content/manuals/LogicControl_en.pdf)
- When in the Plugin Select mode, rearranging the plugins in the mixer strip is reflected on the surface.
- When in Plugin Edit mode, rearranging the plugins in the mixer strip still retains the edit view of the selected plugin (rearranging does not take away the current subview)
 - When removing a plugin in the mixer strip, this is reflected in Plugin Select, while the view jumps to Pan/Surround (the None subview) when in Plugin Edit mode.
- Removing a track resets the subview to None
- When in a Subview that is track-specific (Track, EQ, Send, Plug-In, Inst), selecting a different track retains the subview but updates the channel displays and vpot assignments accordingly. When in Plugin Edit mode for track A, and track B is selected, it changes to Plugin Select mode for track B (if plugins are present).
2020-04-07 14:35:09 -06:00
Robin Gareus
bf894d80fb
NO-OP: remove unused #includes 2020-03-21 19:46:38 +01:00
Ben Loftis
ef5fddd8b5 MCU: fix pan_azimuth direction by setting Rotary flag. 2020-02-20 12:25:51 -06:00
Robin Gareus
d4e023e1cb
Make BusSendLevel 1st class citizen (1/2)
Equivalent to Gain and Trim (gain-coefficient, not dB) and use
it for Sends.
2019-12-14 15:06:23 +01:00
Robin Gareus
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log 2019-08-03 15:53:18 +02:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis
03e99e9866 fix longstanding compiler warning 2017-09-18 11:40:53 -04:00
Robin Gareus
fde0e293a3 Remove unused "mark" parameter from stop_touch() API 2017-07-24 01:59:18 +02:00
Robin Gareus
1138b62fb8 amend 5e5f7a55; re-add wrongly removed variable 2017-06-23 18:15:50 +02:00
Robin Gareus
66a3dd7ded MCU: Remove use of AutomationType as ID, part two.
This may need some small tweaks for MB channelstrip to set
print-format (like LV2 plugins would) for cases where the default
value_as_string() differs.
2017-06-23 17:39:20 +02:00
Robin Gareus
5e5f7a55ee MCU: Remove use of AutomationType as ID, part one. 2017-06-23 17:39:20 +02:00
Ben Loftis
d3738b087e MCP: Fix issue with strip "select" buttons that stayed stuck on.
* Depending on individual strips to watch the selection property is prone to failure.
  * Stripable_selection_changed() is called when a selection operation is completed.
2017-05-17 15:55:43 -05:00
Ben Loftis
60cc2823f3 MCP: map the well-known EQ knobs more explicitly, not heuristically. 2017-05-17 15:53:14 -05:00
Robin Gareus
3d26a29e8a Sanitize "well-known" ctrl API 2017-05-14 00:17:11 +02:00
Paul Davis
eb3f50e15c change the way ControlProtocols (control surfaces) are notified and handle Stripable selection changes
The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal.
The CP Manager calls the ControlProtocol static method to set up static data structures holding
selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12 14:51:39 +01:00
Ben Loftis
efc2660fec MCP: Mixbus32C: Restore missing filter controls to the Dyn page. 2017-05-12 15:44:01 +02:00
Paul Davis
0c035778e1 libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls 2017-05-05 18:56:25 +01:00
Robin Gareus
d64ca9be08 Properly expose "well known" comp_redux output. 2017-04-12 21:14:50 +02:00
Paul Davis
febd1d5c88 remove misleading/incorrect comment
The previously-commented code is precisely what gets invoked
when solo state changes, and had nothing to do with actually
changing solo state in any way.
2017-02-24 10:18:57 +01:00
Robin Gareus
b5dbfc9931 leave a ToDo note for the mackie surface 2017-02-17 04:02:15 +01:00
Robin Gareus
1de584961a NO-OP; Backport changes from Mixbus branch 2016-11-27 22:54:23 +01:00
Paul Davis
44fcbd988c mackie: ensure that the strip where select was pressed ends up as the first_selected_stripable 2016-07-06 21:40:29 -04:00
Paul Davis
21bf61d559 MackieControl: in sends subview, if there are no sends for a vpot, drop the controllable for the vpot 2016-06-12 08:44:34 -04:00
Paul Davis
a8d7b0fca3 redesign/reimplement selection knowledge in MackieControlProtocol object
strips listen to Stripable::presentation_info().PropertyChange, and forward selected status changes
to the MCP object
2016-06-12 08:19:16 -04:00
Paul Davis
3eaa6c0389 remove certain ControlProtocol signals related to stripable selection
includes change to Mackie support so that strips listen for PropertyChange
on the stripables they represent, no global selection change used anymore.
2016-06-10 13:57:18 -04:00
Paul Davis
f03f2e5c3f use new record safe control in surface support 2016-05-31 15:30:45 -04:00
Paul Davis
28afaebdc4 fix SNAFU in which Stripable::rec_enable_control() was incorrectly defined as ::recenable_control()
Make Mackie support code use the Stripable to access the rec-enable control while we're here
2016-05-31 15:30:45 -04:00
Paul Davis
0d9433aef6 remove no-effect handling of route active-status change in Mackie Control code 2016-05-31 15:30:43 -04:00
Paul Davis
186209c03c fix crash in mackie code caused by assumption that all Stripables have meters 2016-05-31 15:30:43 -04:00
Paul Davis
c34ad3a723 convert Mackie Control Surface support to use Stripable, not Route 2016-05-31 15:30:42 -04:00
Paul Davis
e0ff70cf86 first vaguely working version using PresentationInfo
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00