Commit Graph

2523 Commits

Author SHA1 Message Date
Robin Gareus 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
Robin Gareus a6f8f2dd9e
Consolidate search/file-system paths (fixes vst builds)
Keep file-system paths and PBD::Searchpath mostly separate.
This amends 58c2b0a848 libs/fst directly includes relevant
ardour C++ code, so lib/fst must not link against libardour.

The problem was that 58c2b0a848 introduced additional
dependencies on other libardour functions.
2022-11-19 00:48:11 +01:00
Robin Gareus d521c2ede6
src-tree cleanup: separate surfaces from libraries
libardourcp and now libardour_midisurface are not control
surfaces, but helper libraries for those.
They need to be deployed to the library folder (shared between
ctrl surfaces) and not scanned as ctrl surfaces at runtime.
2022-11-19 00:09:17 +01:00
Paul Davis 58c2b0a848 move midi maps folders and file extension out of control surfaces library 2022-11-18 14:04:59 -07:00
Gon Solo 85a45b2645
Fix missing glib include path 2022-11-17 03:21:25 +01:00
Paul Davis a130041547 use MIDISurface in original Faderport support, plus required changes in MIDISurface & Push 2 2022-11-16 08:37:57 -07:00
Paul Davis e5bbccef28 various changes to get Push 2 surface support functional after inheriting from MIDISurface 2022-11-16 08:37:57 -07:00
Paul Davis 99712e7585 surfaces; convert push2 to inherit from MIDISurface 2022-11-16 08:37:57 -07:00
Paul Davis 4fbf3028aa basic skeleton for new MIDISurface base class 2022-11-16 08:37:57 -07:00
Ben Loftis 7038e586d0 OSC: add support for Mixer Scenes: save, recall, and state feedback 2022-11-07 10:28:30 -06:00
Ben Loftis 0bda71b40b BasicUI: Add simple functions to store and recall Mixer Scenes 2022-11-07 10:28:30 -06:00
Robin Gareus 6813884857
Restore custom generic midi settings #9062
DeviceInfo (bindings file) can include explicit motorized
and threshold settings. These values, when specified, are
used during load_bindings() during set_state and overwrote
any user customization.

Furthermore showing the GUI invalidated any prior setting
by explicitly calling binding_changed, which re-applies.
2022-11-02 17:44:00 +01:00
Ben Loftis c6dade9484 OSC: implement controls and feedback for a banked trigger grid controller
(first iteration ... API may change)
2022-11-01 13:52:54 -05:00
Ben Loftis bdf9cedb0e triggers: implement grid banking in BasicUI so it can be shared (?) 2022-11-01 13:52:54 -05:00
Ben Loftis 0851d230cd basic_ui: add convenience functions to access an NxM bank of triggers 2022-11-01 13:52:54 -05:00
Ben Loftis c23210aae8 various fixes to prevent BasicUI diverging from GUI behaviors 2022-11-01 13:52:54 -05:00
David Robillard 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
Robin Gareus 2939ed3164
Add dedicated InsertReturnLevel type
This is preparation for PortInsert Send and Return
level control.
2022-10-14 02:21:49 +02:00
Robin Gareus f3423b8a77
Consolidate send/delivery gain control
This moves the _amp from send to delivery (which already
applies gain for the master-bus normalization). This generalizes
the use of a gain stage for use in port-inserts.
2022-10-14 02:21:49 +02:00
Paul Davis 3c0820e36e move default_triggers_per_box into a namespace ; change value for Ardour to 16 2022-10-04 19:55:05 -06:00
Paul Davis a0c93328ea push2: fix intended behavior of push2 "lower buttons" 2022-10-03 15:41:50 -06:00
Ben Loftis 42a4216f22 osc: publish session-provided trigger functions: bang/unbang 2022-10-01 09:13:14 -05:00
Ben Loftis 7fe7adb83c push2: adapt to new unbang and 'stop' semantics (needs testing) 2022-10-01 09:13:14 -05:00
Ben Loftis 6c292a83da basic_ui: use session-provided bang/unbang functions 2022-10-01 09:13:14 -05:00
Ben Loftis 1e283adb22 disambiguate trigger functions: stop_all_triggers -> trigger_stop_all 2022-10-01 09:13:14 -05:00
Ben Loftis 75ae0fd4b1 disambiguate trigger functions: cue_bang -> trigger_cue_row 2022-10-01 09:13:14 -05:00
Ben Loftis be28c9ff88 osc: add functions to trigger cue rows, and stop all triggers 2022-10-01 09:13:14 -05:00
Robin Gareus 9a34d15b3c
Fix crash when disabling generic MIDI surface
The event-loop has to be stopped before unregistering ports
and deleting the instance.
2022-09-30 01:58:24 +02:00
Paul Davis 0cd87a917c push2: apply concept in 0af0e3a8e8 to push2 code (unused follow action icon) 2022-09-22 09:20:01 -06:00
Paul Davis af28394bfd push2: fix an apparent bug in cairo when drawing follow action icons
It seems that using ::move_to() followed by Pango::Layout::show_in_cairo_context() leaves
the context in a state that is not correctly restored when using ::restore(). Therefore,
clear the path to avoid leaving any dangling current point
2022-09-22 00:43:38 -06:00
Paul Davis 10ac1901dd push2: temporarily comment display of jump loop actions due to cairo oddity 2022-09-07 17:03:08 -06:00
Paul Davis 1eab84b7da push2: remove unconditional setting of canvas item names 2022-09-03 17:48:03 -06:00
Robin Gareus 4863e6b45e Fix mac and windows builds (resolve namespace ambiguities) 2022-09-04 01:37:48 +02:00
Paul Davis 97540dafde push2: update cue layout when tracks are added 2022-09-03 16:46:41 -06:00
Paul Davis 2d4042abd7 push2: fix handling of pads-as-note-entry during selection changes 2022-09-03 16:46:41 -06:00
Paul Davis b3b6e94297 push2: fix canvas level meter object so that it draws 2022-09-03 16:46:41 -06:00
Paul Davis b7d86cb118 push2: track mix layout needs to be setup even if not currently visible 2022-09-03 16:46:41 -06:00
Paul Davis 96a9c1df7f push2: bug fixes for pad color mgmt and other fixes/improvements 2022-09-02 17:57:46 -06:00
Robin Gareus 49e6066306 Fix mac and windows builds (resolve namespace ambiguities) 2022-09-02 12:44:44 +02:00
Paul Davis f8312cacc4 add back Rect -> ArdourCanvas::Rect define 2022-09-01 22:03:11 -06:00
Paul Davis 55ff73a2ad fix clang/macos compilation 2022-09-01 16:23:12 -06:00
Paul Davis cbbc6f9b84 push2: use vector of pads rather than map when shutting down 2022-08-31 10:23:12 -06:00
Paul Davis 253dac007d push2: fully init and de-init buttons and pads at startup and shutdown 2022-08-31 10:22:24 -06:00
Paul Davis 681ca38848 push2: fix a couple of potential crashes 2022-08-31 10:11:02 -06:00
Paul Davis 678ed40bd3 push2: fix pad colors etc. after layout switches 2022-08-30 21:37:16 -06:00
Paul Davis 748fbf6fb1 push2: add follow action icons to display 2022-08-30 16:51:34 -06:00
Paul Davis 6986c18163 push2: add clip names to display and slightly shift progress circle 2022-08-28 22:37:31 -06:00
Paul Davis b98ec59ed8 push2: another bunch of Live-chasing functionality for trigger control 2022-08-28 18:58:50 -06:00
Paul Davis a06ed85269 push2: prep for triggerbox property changes 2022-08-27 21:21:22 -06:00
Paul Davis f6cfa3c3e1 push2: let's not crash 2022-08-27 16:25:09 -06:00
Paul Davis 741ff552a0 push2: start tracking route properties in cue layout 2022-08-27 16:22:07 -06:00
Paul Davis 06abdb4c4e push2: vector, not map 2022-08-27 16:03:01 -06:00
Paul Davis 6627d24c2b push2: add an (x,y) map for pads and use it 2022-08-27 15:53:03 -06:00
Paul Davis a5dd6c1128 push2: lots more clip control functionality and display 2022-08-27 12:55:16 -06:00
Paul Davis b10a99dcad push2: clip stop ala Live 2022-08-27 08:32:15 -06:00
Paul Davis 19db8f9c68 control protocols: fix design of trigger unbang method 2022-08-27 08:32:03 -06:00
Paul Davis 3cffca9178 control protocols: add trigger unbang method 2022-08-27 08:26:08 -06:00
Paul Davis 8ed8895439 push2: launch clips with pads 2022-08-27 08:15:40 -06:00
Paul Davis 26c48aae1b control protocols: add trigger bang method to BasicUI 2022-08-27 08:15:17 -06:00
Paul Davis 092fdb5b46 push2: turn off scene buttons when appropriate 2022-08-26 19:31:15 -06:00
Paul Davis 1ecdeb25a7 push2: an ever-growing array of cue-related support 2022-08-26 19:23:43 -06:00
Paul Davis f835fb279a push2: don't like the clip button since it does nothing 2022-08-26 17:40:41 -06:00
Paul Davis f57669fbde push2: rename things to match the rest of ardour, and use Session button not Clip
the clip button is intended to "look at" a single clip and edit it
2022-08-26 17:40:04 -06:00
Paul Davis 17b0764639 push2: clip view actually visible via button on surface 2022-08-26 16:39:36 -06:00
Paul Davis dd2442b0c2 push2: skeleton for new clip view layout 2022-08-26 16:15:32 -06:00
Paul Davis 58d262384b fix error during rebase fixup 2022-08-26 14:49:29 -06:00
David Robillard 7670f87d0a Push2: Use condensed font to avoid overlap in scale menu 2022-08-26 14:10:40 -06:00
David Robillard 7883695ba9 Push2: Implement special "sequential" mode for in-key note grids
This makes "sequential" more or less mean an octave vertical interval,
but only for in-key mode.  For chromatic mode, "sequential" is still just a
naive wrap-around layout for every note.
2022-08-26 14:10:40 -06:00
David Robillard a6cd0a3f6e Push2: Ensure every pad is set up once when the grid layout changes
This juggles the implementation slightly in a way that's more resilient to
mistakes: the representation of pads in the surfaces is always fully reset
before setting up the grid, and a state message is sent for every single pad
once after the scale algorithm sets things up.

This means that scale algorithms don't need to deal with hairy edge cases like
running off the end of the scale or the valid range of MIDI notes.
2022-08-26 14:10:40 -06:00
David Robillard b6389bf274 Push2: Show both row and column interval explicitly in the same way
This hopefully makes the layout clearer to people who aren't familiar with what
all the settings mean.
2022-08-26 14:10:40 -06:00
David Robillard e4e874bed0 Push2: Add "fixed" and "rooted" note grid option 2022-08-26 14:10:40 -06:00
David Robillard ecd1a9660b Push2: Fix Db root button 2022-08-26 14:10:40 -06:00
David Robillard 380a24b837 Push2: Remove debug printing 2022-08-26 14:10:40 -06:00
David Robillard e93b7e2507 Push2: Add UI for changing the vertical interval 2022-08-26 14:10:40 -06:00
David Robillard d5ca05edff Push2: Implement a vertical interval for "tuning" the pads
The implementation is generic, but the actual call is hardcoded to 4ths here.
UI to follow.
2022-08-26 14:10:40 -06:00
David Robillard b35796af75 Push2: Factor out set_pad_note_kind()
Factors button details out of the scale algorithm, to make it more clear.
2022-08-26 14:10:40 -06:00
David Robillard 2af9c2180a Push2: Mostly fix scale menu text rendering (#8599)
"Mostly" because there are still some issues with horizontal overlap between
entries, but I think that's something that needs to be addressed separately.

Like earlier issues, this was caused by using a screen-derived or default
cairo/pango context.  I also tinkered with some constants to make things look
sensible to me, and hopefully everywhere since it should always look the same
with the context fix.
2022-08-26 14:10:40 -06:00
David Robillard 2a31e0721d Push2: Invert splash screen
This looked janky and out of place to me, since everything else is on black and
the LCD doesn't seem to do light backgrounds very well in general.
2022-08-26 14:10:40 -06:00
David Robillard c4632da2e7 Push2: Drop "using namespace std"
No functional changes, just makes some more context explicit like the previous
commit.
2022-08-26 14:10:40 -06:00
David Robillard 61088a1a01 Push2: Use consistent naming convention for private member variables
No functional changes, just makes code easier to read.
2022-08-26 14:10:36 -06:00
Mads Kiilerich 3fa64af624 osc: fix warning message
Apparently just a missing update from copy-paste.
2022-08-19 10:58:41 -06:00
Mads Kiilerich 1f1565e08b surface faderport: drop old debug print
This showed up in test output, and was introduced 5 years ago in
ecc2348ecc .
2022-08-19 10:56:55 -06:00
Todd Naugle db8262bd7b
Mackie Control: Use view names from Mackie spec and define them all 2022-08-05 00:50:27 +02:00
Todd Naugle 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
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 41948821e2 fix optimized unused variable warning 2022-06-22 13:31:08 -06:00
Paul Davis ebb9d3d4dc fix optimized unused variable warning 2022-06-22 13:31:08 -06:00
Paul Davis 26d2c8a7fa handle compiler stupidity with early return 2022-06-22 13:31:08 -06:00
Paul Davis bb5798ee66 fix may-be-used-unset warning and bizarre brace/indent style 2022-06-22 13:31:08 -06:00
Paul Davis 6fd4c01fc9 fix optimized unused variable warning 2022-06-22 13:31:08 -06:00
Paul Davis 4878c48386 fix optimized unused variable warning 2022-06-22 13:31:08 -06:00
Paul Davis 7a32ff33d4 handle compiler stupidity with early return 2022-06-22 13:31:08 -06:00
Paul Davis f7b91d577b handle compiler stupidity with early return 2022-06-22 13:31:08 -06:00
Paul Davis 9922daf284 handle compiler stupidity with early return 2022-06-22 13:31:08 -06:00
Ben Loftis d66bda9f07 mackie send subview: potential fix for send-enable banking (vpot push) 2022-06-16 13:27:30 -05:00
Paul Davis 75fe2ce095 generic MIDI: extend select function API and make argument be bank-relative, always 2022-06-05 15:37:04 -06:00
Paul Davis eb4ac77a7b control protocol: allow protocol implementations to override rid selection API 2022-06-05 15:36:41 -06:00
Paul Davis 2e027e5894 generic MIDI: re-enable the "select" function 2022-06-05 15:03:48 -06:00
Paul Davis 33b7c38e42 control protocols: add API to control selection by RID 2022-06-05 15:03:48 -06:00
dancesWithBugs e505407b76
fix boundary check 2022-05-28 19:14:57 +02:00
Paul Davis cc2e6b3cf8 libardour: change API of Session::request_locate() to include "force" argument
No behavior should be changed by this modification; the argument has a default value of false, which
matches previous semantics, and every instance where the argument is specified, it is given as false.
2022-05-27 18:49:11 -06:00
Paul Davis 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
Paul Davis 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
Todd Naugle be90b4e0ca US2400 - fix crash when no strip is selected
first selected could be null, so check that first.
This is untested since I don't have a surface.
2022-05-10 09:17:33 -05:00
Robin Gareus 44bb8caa65
Use new Route fed-by API (2/2) 2022-05-06 14:02:35 +02:00
Robin Gareus 3862d13e21
Prepare for GraphNode::feeds () and fed-by API update (2/2) 2022-05-06 14:02:34 +02:00
Caleb Potter b689d2881e M: US2400: allows user to bank over sends while in TrackView.
Sends only appear on the last 8 vpots, which means sends to matrices 9-12
are unreachable without banking.
2022-05-02 22:41:40 -06:00
Caleb Potter 20fff72370 US2400: Use Bank- and Bank+ to page over sends on pots 2022-05-02 22:41:40 -06:00
Caleb Potter 0d05cd231b US2400: maps track parameters and sends to vpots
Pots 0-4 now display the 5 parameters from the Mackie track subview when a
track is selected and pots 8-23 will display up to the first 16 sends.
2022-05-02 22:41:40 -06:00
Robin Gareus 7cd16d9473
Apply new Item method name to various other usage sites 2022-04-27 13:16:18 +02:00
Paul Davis c9b8a91edb apply new Item method name to various other usage sites 2022-04-26 22:04:08 -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
Robin Gareus 844479568b
fix building OSC surface (amend 9b89dd7967) 2022-04-14 04:49:23 +02:00
Mads Kiilerich 49855e52aa wscript: consistently have at most one empty separator line 2022-04-09 12:16:40 +02:00
Mads Kiilerich bac32a8c2d wscript: consistently use 4 spaces for indentation 2022-04-09 12:16:40 +02:00
Mads Kiilerich c3bdcdd3fa wscript: consistently use space indentation instead of tab indentation 2022-04-09 12:16:40 +02:00
Mads Kiilerich 06f8936a73 wscript: remove trailing whitespace 2022-04-09 12:16:37 +02:00
Paul Davis 7c3268d12f temporal: TempoMap::use() returns a const ptr to enforce semantics (library version)
This commit leaves two issues outstanding:

1. unclear/ugly semantics for drag operations that reset the GUI thread's tempo map to the writable copy
2. undo/redo for the tempo map

These will be addressed in future commits
2022-04-08 11:58:04 -06:00
Remi Thebault a77ac7107f
fix websockets toggle_roll
Also fix BasicUI::toggle_roll who is supposed to do
the same as spacebar but doesn't.
2022-04-08 19:48:23 +02:00
Remi Thebault 93987de09f
websockets provide BBT 2022-04-08 19:39:25 +02:00
Mads Kiilerich 9b89dd7967
wscript: drop liblo check in libs/surfaces - it is already mandatory in top level wscript 2022-04-08 18:39:15 +02: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
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
Len Ovens 7633005a22 Fix solo control activation 2022-03-17 13:51:30 -07:00
Paul Davis f58b8e3cb4 fix accidental insertion of "x1" 2022-02-09 10:08:01 -07:00
Paul Davis 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
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
Paul Davis 9ee4c14bce generic MIDI: extend menu options to drop ALL MIDI bindings, not just a binding map 2022-01-15 13:15:38 -07:00
Robin Gareus 16511974e2
Fix class/struct mismatch C++ ABI [-Wmismatched-tags] 2022-01-10 00:06:24 +01:00
Paul Davis 12847b0125 remove Session::bbt_time() and use TempoMap::use()->bbt_at() explicitly everywhere 2021-12-14 21:59:33 -07:00
Paul Davis 58796e6b19 fix likely crash in faderport8 support, from calling TempoMap::use() and not TempoMap::fetch() 2021-12-13 21:07:18 -07: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 d04d25e7c7 Mackie Control: Clean up detection of QCon master display and meter.
Only enable the master display and meter modes for Qcon devices if this
surface is in the master position. Extenders don't have master meters
or master displays.
2021-12-13 21:26:45 -06: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
Robin Gareus 60be0c27a1
Use updated temporal API 1/2 2021-12-11 14:42:36 +01:00
Paul Davis fcf0c253ad control surface changes to follow TempoMap::sample_at() API change 2021-11-17 15:57:54 -07:00
Bruno Vernay e3836e1162 Typo in code Paramater 2021-10-30 23:02:04 +02:00
Robin Gareus 2066b6b33a
websockets: require Windows7 (with pollfd) 2021-10-13 21:40:39 +02:00
Robin Gareus 2e0a069c51
WebSockets: use v7 tempo-map correctly 2021-10-12 15:32:41 +02:00
Paul Davis 9e763c2672 remove all dangling event-loop-precall code 2021-10-11 17:48:53 -06:00
Paul Davis 9adc336d50 control surfaces: fix BasicUI::jump_by_bars() to use tempo map correctly 2021-10-11 17:48:53 -06:00
Paul Davis 52decdd1b4 push2: prevent crash caused by missing per-thread tempo map ptr 2021-10-09 11:47:13 -06:00
Paul Davis 3475350d7c push2: session button should be lit 2021-10-09 11:46:53 -06:00
Robin Gareus ed3d374f47
Fix --no-nls compilation 1/2 -- #8802
pbd/i18n.h MUST NEVER be included from header files and always be
the last include. This is because `_` is declared other headers
notably boost and some apple headers.

leading to issues like
../libs/pbd/gettext.h:58:27: error: expected unqualified-id before ‘const’
   58 | # define gettext(Msgid) ((const char *) (Msgid))
2021-09-27 16:28:44 +02:00
Robin Gareus b3fff25d5c
Fix --maschine builds (pure virtual) 2021-08-13 21:53:18 +02:00
Paul Davis c0425ba70f canvas: items should not add child bboxes in their ::compute_bounding_box() method, Item::bounding_box() does that 2021-08-13 12:51:37 -06:00
Paul Davis 8bada4b5e1 remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion
libtemporal still needs ::bbt_at (superclock_t) fairly often so retain it as a private method, but public
interfaces take either Beats or timepos_t
2021-08-13 12:51:35 -06:00
Paul Davis 3702da5488 fix up osc support after rebase/merge conflicts 2021-08-13 12:51:33 -06:00
Paul Davis 364fffd458 temporal: TempoMap::Changed is now a static member named TempoMap::MapChanged 2021-08-13 12:51:32 -06:00
Paul Davis c64db47b37 use new libtemporal sample rate mechanism (libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis bed76798f3 manual fixups after rebase against master (general libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis 11af6253f5 mackie: NOOP: fix whitespace 2021-08-13 12:51:31 -06:00
Paul Davis b866335d8f add glib event loop callback to Generic MIDI surface support 2021-08-13 12:51:30 -06:00
Paul Davis ce7ea4ec36 Use glib event callback in Mackie Control support to set thread-local variables 2021-08-13 12:51:30 -06:00
Paul Davis 79763893b3 remove/hide Session::tempo_map() and use TempoMap::use() instead (thread local shared ptr) 2021-08-13 12:51:30 -06:00
Paul Davis f67029bd02 random commit to facilitate trivial move of work from laptop back to main system 2021-08-13 12:51:29 -06:00
Paul Davis 086e48796c surfaces: first round of conversion to use timeline types 2021-08-13 12:51:29 -06:00
Paul Davis f4490f54c5 change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
Paul Davis 60f3985957 replace push2 call to Canvas::Box::pack_start() with Canvas::Box::add() which is equivalent
::pack_start() was removed
2021-08-13 12:51:26 -06:00
Paul Davis 210702481b add required virtual method to Push2Canvas 2021-08-13 12:51:26 -06:00
Paul Davis 9e5354a65e tweak a minor issue with canvas API 2021-08-13 12:51:26 -06:00
Todd Naugle bd008fb87c Mackie Control: Fix logic in timecode display update
Old and new strings are compared before sending to keep traffic down. To
ensure that we send all the required characters be sure to init the last
value to characters that are never going to appear in a real string.

Space is a bad choice since it is a valid character. Use NUL instead.
2021-08-10 16:20:36 -05:00
Todd Naugle 4001fc2cff Mackie Control: Use space as replacement for invaild characters on TC disp 2021-08-10 16:17:11 -05:00
Todd Naugle 563309f6d1 Mackie Control: Fix one off error in timecode display that broke spaces
Ignored spaces and allowed character 0x60 which is not valid on the display
2021-08-10 16:16:08 -05:00
Todd Naugle 8cf7204917 Mackie Control: Use selected device's info when building the Keys dialog
The device info file allows key names and values to be configured in each
device file. Use that information when building the Functions Keys tab in
the Mackie protocol setup dialog.
2021-08-06 12:18:24 -05:00
Todd Naugle c1dddb1b25 Mackie Control: Be consistent and take the surfaces lock when iterating.
Some places in the code take the lock, others don't. This makes everyone
take the lock.
2021-08-03 16:26:26 -05:00
Todd Naugle a84543bcc7 Mackie Control: Don't crash when the master is on the right
While surfaces are being created it is possible to have surfaces, but
not have a master surface yet. This happens when the config calls
for extenders to the left of the master section.  Don't assume that
if we have surfaces, the master surface is available.
2021-08-03 16:26:26 -05:00
Todd Naugle 454b330950 Mackie Control: Hold the surfaces lock while resetting the master_surface 2021-08-03 16:26:26 -05:00
Ben Loftis 193cebc912 US2400: build-fix: need some IFDEFs for Mixbus. 2021-08-03 10:58:30 -05:00
Ben Loftis 521117054e US2400: Fix order of mixbuses in Flip mode (Mixbus only) 2021-08-03 10:38:19 -05:00
Ben Loftis 398a1efbd5 US2400: Fix send levels from joystick ("surround pan" on mixbuses 11,12) (Mixbus32C only) 2021-08-03 10:38:18 -05:00
Ben Loftis 0b5ab1b570 US2400: Fix direction of pan knob LEDs 2021-08-03 10:38:18 -05:00
Todd Naugle a22fe3cdc8 Amend 285bb4ac7f: remove incomplete code 2021-07-19 20:32:11 -05:00
Todd Naugle 285bb4ac7f Mackie Control : Improve debug trace output by skipping meter write output 2021-07-19 12:25:27 -05:00
Todd Naugle 581589f080 Mackie Control: Don't call port write directly since it bypasses active chk
This keeps the master fader from sending midi output before everything
is initialized.
2021-07-19 12:24:36 -05:00
Ben Loftis 3114ef4de2
Default_Play_Speed: prep work (libardour)
* remove unused variables in session.h
* move default play speed (varispeed(sic)) into fsm
* request_transport_speed should -never- set the default_play_speed
2021-07-03 19:06:02 +02: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 7a5ccdd3c3 Mackie Control Surface: Move meter deflection calc to a function. 2021-07-02 15:56:11 -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
Todd Naugle c63918ec68 Clear Mackie Control surfaces once connected.
This gets the surface in a known state. Otherwise a previous application
or run of ardour may have left LEDs on that are not being used.
2021-07-02 15:43:37 -05:00
Robin Gareus b35a8f6626
Fix Wsign-compare, consistently use microseconds_t 2021-06-29 02:04:02 +02:00
Paul Davis b20a541d7e change PBD::microseconds_t to a signed type and check for -1 in TimingStats::update
This may help a Windows issue with the return value of QueryPerformanceCounter
2021-06-28 14:47:48 -06:00