Commit graph

62 commits

Author SHA1 Message Date
Paul Davis
9e763c2672 remove all dangling event-loop-precall code 2021-10-11 17:48:53 -06:00
Paul Davis
c64db47b37 use new libtemporal sample rate mechanism (libs edition) 2021-08-13 12:51:31 -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
Robin Gareus
a266a2d5b9
Use session API to set solo
This is required so that ::update_route_solo_state() is called
to propagate solo/mute state
2020-10-18 15:28:10 +02:00
Robin Gareus
72736289c8
NO-OP: rename API rename
CP selection API is now implemented as functions, not signals.
2020-10-18 14:47:05 +02:00
Robin Gareus
84bf97aa49
Update ControlProtocol API, use CoreSelection
* replace signal-emission with direct calls to CoreSelecton
  using BaseUI's session pointer
* remove unused leftmost strip API
* use CoreSelection for first-selected strip
* Accessing CoreSelection does not modify the session
  (allow access from const callbacks)
* replace static calls in P2 surface

This removes indirection and dependency on the GUI for
managing strip selection.
2020-10-18 14:44:38 +02:00
Robin Gareus
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log 2019-08-03 15:53:18 +02:00
Paul Davis
7021d02782 don't actually use a method from libardourcp inside libardour; use a PBD::Signal to avoid linker issues 2017-05-12 17:49:09 +01: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
Tim Mayberry
8144b197c0 Use XMLNode::get/set_property API in ARDOUR::ControlProtocol class 2017-04-19 09:36:54 +10:00
Tim Mayberry
63296285be Add missing header include to ControlProtocol class source file 2017-04-19 09:36:47 +10:00
Paul Davis
f1e6cc50b0 Revert "libs: debug output for faderport/editor mixer strip sync"
This reverts commit 6fb91b1ac2.
2017-02-25 19:56:51 +01:00
Paul Davis
6fb91b1ac2 libs: debug output for faderport/editor mixer strip sync 2017-02-24 23:10:03 +01:00
Robin Gareus
9d8829f5bf Remove direct calls to set solo_control()
Changing solo-state needs to be done in rt-context to atomically
propagate solo/mute.

set_control() queues a rt-event, later Session::rt_set_control() calls
Session::update_route_solo_state() to propagate solo/mute.
2017-02-17 03:58:51 +01:00
Paul Davis
e75c713e5e make the leftmost mixer stripable API at least work as advertised 2017-02-01 11:57:37 +01:00
Paul Davis
0f4530af0d add new API to ControlProtocol to allow GUI to specify left-most mixer strip
Subject To Change. Mileage May Vary. Offer Not Good In All Territories.
2017-02-01 11:46:42 +01:00
Paul Davis
77a8da9010 set ControlProtocol::_first_selected_stripable at the right time only 2016-07-06 20:58:33 -04:00
Paul Davis
cf9706974c a few post-rebase cleanups 2016-07-06 14:03:24 -04:00
Paul Davis
2047ee527c restore/extend/simplify ControlProtocol API to allow tracking of selection 2016-07-06 13:39:10 -04:00
Paul Davis
291aec468f use session stripable selection API
and remove old ControlProtocol signals to talk to GUI etc.
2016-07-04 12:45:53 -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
08f01085de remove now-redundant control protocol route-selection signals 2016-05-31 15:30:43 -04:00
Paul Davis
c438ba2b6e remove no-longer-used TrackSelectionChanged signal from ControlProtocol 2016-05-31 15:30:43 -04:00
Paul Davis
dd57a83793 add Stripable analogs for Route signals and methods in ControlProtocol
These will go away once all surfaces have migrated to Stripables
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
Paul Davis
653ae4acd6 universal change in the design of the way Route/Track controls are designed and used. The controls now own their own state, rather than proxy for state in their owners.
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31 15:30:40 -04:00
Paul Davis
aee283f056 use redesigned Route and VCA object architecture/API 2016-05-31 15:30:39 -04:00
Paul Davis
2005891d40 use route gain control, not amp->gain() 2016-01-25 11:48:43 -05:00
Paul Davis
9e5b7db89f first compiling, mostly working version of group controls changes 2016-01-22 11:58:31 -05:00
Paul Davis
64c9198d60 add group disposition argument to Route::set_gain() and use it in various UIs
Executive decisions were necessary in a couple of places about the correct group disposition
behaviour, notably faderport and OSC surfaces
2016-01-18 12:11:09 -05:00
Paul Davis
55094b7237 move Amp::GainControl out into its own source module and out of Amp 2016-01-18 12:11:08 -05:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Paul Davis
2ea5962af2 rationalize save/restore of control surface "feedback" property 2015-06-24 13:46:07 -04:00
Robin Gareus
ce259edbcd professionalize peak-meters
The peak meter needs to withstand various test-signals
without visual jitter (in particular 1kHz sine) regardless
of settings (period-size, sample-rate, custom fall-off).

This needs to be done in sync (and not by a random non-rt
‘smoothing’ thread).

On the downside this voids the ‘visual smoothing’ particularly 
with large buffersizes - but then again exactly this “always 
fall-off no matter what [the next real data will be]” is the
problem.

One the upside, there’s one less high-frequency (100Hz) thread
(Yay!) PS. it probably never worked on windows, anyway.

Only peak-meters are affected by his change.
K-meters, IEC I/II and VU were never visually smoothed.
2015-05-02 03:46:49 +02:00
Paul Davis
8a005319b8 clean up aspects of ControlProtocol API 2013-12-21 15:31:28 -05:00
Paul Davis
ae2e8c6765 MCP: ctrl-select toggle selections status, analogous to GUI op
git-svn-id: svn://localhost/ardour2/branches/3.0@12102 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 22:10:32 +00:00
Paul Davis
ec97b8e58d MCP: lots of good stuff - recenable bug fixed, cursor keys for vertical scroll work, loop button lights/unlightspan pots don't adjust if there is no panner, etc.
git-svn-id: svn://localhost/ardour2/branches/3.0@12093 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 03:46:18 +00:00
Paul Davis
4bfdcc18bd ControlProtocol doesn't actually need any record of an event loop and doesn't need to connect to any signals itself
git-svn-id: svn://localhost/ardour2/branches/3.0@12063 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-23 10:54:34 +00:00
Paul Davis
8f7fa7d93b MCP: timeout display of value when altering with fader or pot; range ops on strip buttons should work; select logic may be broken
git-svn-id: svn://localhost/ardour2/branches/3.0@11959 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 16:11:55 +00:00
Paul Davis
62620122a9 propagate GUI track selection to control protocols; make MCP update when GUI track selection changes
git-svn-id: svn://localhost/ardour2/branches/3.0@11941 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 14:34:03 +00:00
Paul Davis
bef3ea1adc MCP: F1-7 jump to a given view; F8 closes any currently open dialog; in zoom mode, up/down alter vertical track height of all tracks; option-up/down alters selected track heights
git-svn-id: svn://localhost/ardour2/branches/3.0@11858 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 18:53:51 +00:00
Paul Davis
57a046804c MCP: different meter debug trace; initial support for track selection
git-svn-id: svn://localhost/ardour2/branches/3.0@11852 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 16:15:55 +00:00
Paul Davis
e2d62d9af4 allow ControlProtocols to call for undo/redo in GUI; make MCP use this
git-svn-id: svn://localhost/ardour2/branches/3.0@11851 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 15:50:38 +00:00
Paul Davis
f75bbfd8ac track changes to config parameters for MMC device id's correctly (from roy vegard)
git-svn-id: svn://localhost/ardour2/branches/3.0@9985 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-08-13 16:27:29 +00:00
Carl Hetherington
1f07948972 Put Mackie surface ports into the Ardour tab of the port matrix.
git-svn-id: svn://localhost/ardour2/branches/3.0@7522 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-30 02:09:39 +00:00
Paul Davis
c685724c80 step editing now accessed via a context menu on MIDI track rec-enable buttons. along the way, fixed up confusion between set_rec_enable() and set_rec_enabled() methods in Route/Track/Diskstream
git-svn-id: svn://localhost/ardour2/branches/3.0@7482 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-24 16:40:56 +00:00
Paul Davis
14b0ca31bc handle deletion of UI objects between the time that a callback is queued with the UI event loop and the execution of the callback (intrusive, big)
git-svn-id: svn://localhost/ardour2/branches/3.0@6807 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-03-30 15:18:43 +00:00
Paul Davis
f450df300c fully implement and deploy explicit x-thread signal connection syntax (testing comes next)
git-svn-id: svn://localhost/ardour2/branches/3.0@6379 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-21 18:23:07 +00:00