Commit graph

106 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
ce7ea4ec36 Use glib event callback in Mackie Control support to set thread-local variables 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
fbd1221833 move FaderPort8 method "button_varispeed()" into BasicUI for more general use 2021-05-04 16:10:24 -06: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
Ben Loftis
276baee8ad surfaces transport hotfix: BasicUI: prefer actual_speed() and transport_stopped_or_stopping() for current Transport FSM 2020-02-23 09:02:21 -06:00
Paul Davis
47767738b9 rename DoTheRightThing to RollIfAppropriate 2020-01-18 08:49:18 -07:00
Paul Davis
3c00048b0c Session::request_locate() takes a tri-valued second argument for "roll-after-locate"
This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it
can be cnentralized and is less ambiguous
2020-01-18 08:49:18 -07:00
Paul Davis
a8cc5b1303 provide new methods for BasicUI that wrap the "complexity" of how to show transport state via lit buttons 2019-12-29 18:43:51 -07:00
Paul Davis
7b25a89944 part 1 of replicating semantics of ARDOUR_UI::toggle_roll() in BasicUI::toggle_roll()
This can be done better, even without sharing code
2019-11-02 16:32:18 -06:00
Robin Gareus
66ceb2b3c7
NO-OP: whitespace 2019-09-06 20:43:20 +02:00
Robin Gareus
33c251a623
Fix MSVC compilation
This resolves a circular dependency:
libardour calls methods from libardour_cp and vice versa.
Since 9bb2f2bb libardour is also calling active() and that method
needs to be forced to use late binding. -- compare to b9bbea7174
2019-09-06 20:35:49 +02:00
Robin Gareus
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log 2019-08-03 15:53:18 +02:00
Johannes Mueller
89f39d14f2 Add some options for surfaces to jump in the timeline
* ::jump_by_beats()
* request transport to keep rolling after jump
2019-05-18 13:27:49 +02:00
Paul Davis
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04: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
John Emmas
b9bbea7174 It might not be obvious why... but 'ARDOUR::ControlProtocol::name()' needs to be a virtual function
Basically, libardour is calling functions from libardour_cp and vice versa. For example, libardour needs 'ARDOUR::ControlProtocol::name()' whereas ardour_cp needs 'ARDOUR::Route::soloed()' and various others. Ordinarily, this would require each library to get built before the other one! :-(

To get around this (in MSVC at least) one of the libraries must be forced to use late binding (e.g. by declaring its functions as 'virtual'). It looks like this is already being done for most of the other functions from 'ARDOUR::ControlProtocol', so let's do it for this function too...
2017-05-15 14:46:34 +01: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
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
d7a16786fc change API for BasicUI::goto_start() to use optional roll-after arg 2016-09-27 14:59:29 -05:00
Paul Davis
ac9b5f872d add method (taken from GTK GUI) to goto_nth_marker() to BasicUI 2016-09-27 14:59:29 -05:00
Paul Davis
40dd604dbc add correct implementation for cancel all solo to BasicUI 2016-09-27 14:59:29 -05:00
Paul Davis
2047ee527c restore/extend/simplify ControlProtocol API to allow tracking of selection 2016-07-06 13:39:10 -04:00
Paul Davis
eed3ea5047 remove a bunch of code that will no longer be used 2016-07-06 13:38:13 -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
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
Ben Loftis
a7141e1fc3 Transport_play should not jump back.
Typical use of transport controls is to ffwd and rewind, then "play".
This doesn't work well if the Play command always resets to starting position.
2016-01-19 14:00:51 -06:00
Ben Loftis
5493e20c84 Add all_tracks_rec actions 2016-01-19 14:00:03 -06:00
Ben Loftis
c5b93e2a01 track scrolling and zooming 2016-01-18 18:24:14 +01:00
Ben Loftis
27d82af077 add some horz and vert zoom actions; remove some whitespace from the code of the ui-actions, so they are easier to see and maintain 2016-01-18 18:24:14 +01:00
Ben Loftis
16623b1cb3 add more remote transport toggles for touchOSC: midi_panic, toggle_roll, stop_forget, set_X_range, quick snapshots. also add boilerplate for monitor controls, but those are not implemented yet 2016-01-18 18:24:14 +01:00
Ben Loftis
36e1ff48bc implement mark_in, mark_out, toggle_click 2016-01-18 18:24:14 +01:00
Ben Loftis
f0d9295dd6 implement remover_marker, jump_by_bars, and jump_by_seconds 2016-01-18 18:24:14 +01:00
Paul Davis
0d9efc1148 redesign cross-thread registration/signalling system
This new design will work even when threads that need to receive
messages from RT threads are created *after* the RT threads. The
existing design would fail because the RT thread(s) would never
be known the later created threads, and so signals emitted by the
RT thread and causing call_slot() in the receiver would end up
being enqueued using a lock-protected list. The new design ensures
that communication always uses a lock-free FIFO instead
2015-12-28 10:14:17 -05:00
Paul Davis
2e3721ecf4 add goto_zero() function for BasicUI 2015-11-24 23:40:54 -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
d00ab0221a allow to set/change loop-range via OSC 2015-04-12 23:40:35 +02:00
Paul Davis
8a4fdbf023 final eradication of jack header files from anything except the JACK backend 2014-04-11 02:52:28 -04:00
Paul Davis
e6c3cece64 remove recently added conflation of mingw64 and msvc with respect to symbol export 2014-03-02 14:59:08 -05:00
Paul Davis
19395ac258 when mingw is mingw64, it appears that we need to use __declspec() and not __attribute__((visibility)) for export control 2014-03-01 15:16:39 -05:00
Paul Davis
79b7fb82f3 try to get export/visibility and build conditionals right for surfaces/, once more 2014-01-25 13:57:28 -05:00