Commit graph

118 commits

Author SHA1 Message Date
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
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
26c48aae1b control protocols: add trigger bang method to BasicUI 2022-08-27 08:15:17 -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
33b7c38e42 control protocols: add API to control selection by RID 2022-06-05 15:03:48 -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
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
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
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