13
0
Commit Graph

187 Commits

Author SHA1 Message Date
Johannes Mueller
f7452c2a3a Addressing #7371: don't trigger session->undo() from non-GUI-thread
When triggering Session::undo() or Session::redo() from a
non-GUI-thread (e.g. from a surface protocol) Ardour crashes if setting a
CairoWidget dirty due to a ENSURE_GUI_THREAD assertion. (see #7371)

By triggering undo by BasicUI::access_action() rather than by Session::undo()
we ensure that the GUI thread will finally call Session::undo().

So more like a workaround ... but better than crashing :)
2017-07-01 01:04:44 +02:00
4d927c6bd4 Use braces in BasicUI::jump_by_bars() 2017-05-23 09:13:27 +10:00
7fe188ec92 Use braces in BasicUI::jump_by_seconds() 2017-05-23 09:13:27 +10:00
df185e575e Use correct variable in BasicUI::jump_by_seconds 2017-05-23 09:13:27 +10:00
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
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
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
8144b197c0 Use XMLNode::get/set_property API in ARDOUR::ControlProtocol class 2017-04-19 09:36:54 +10:00
63296285be Add missing header include to ControlProtocol class source file 2017-04-19 09:36:47 +10:00
6b8be8fa71 Fix set-*-from-edit-range actions, when accessed from control surfaces. 2017-04-01 09:57:06 -05:00
f69808b372 BasicUI moved toggle_click,toggle_roll and stop_forget from menu action to session calls 2017-03-19 23:09:45 -07:00
1af7e97fd0 basic_ui send midi_panic directly to session rather than through GUI 2017-03-19 07:27:24 -07:00
caae0546a7 OSC fix toggle_monitor_mute/dim/mono in basic_ui 2017-03-18 14:14:02 -07:00
f1e6cc50b0 Revert "libs: debug output for faderport/editor mixer strip sync"
This reverts commit 6fb91b1ac2.
2017-02-25 19:56:51 +01:00
6fb91b1ac2 libs: debug output for faderport/editor mixer strip sync 2017-02-24 23:10:03 +01:00
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
e75c713e5e make the leftmost mixer stripable API at least work as advertised 2017-02-01 11:57:37 +01:00
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
220fbbe0d8 fix another action name in BasicUI after Editor=>Control migration 2017-01-28 18:51:03 +01:00
e92c169275 fix action names in BasicUI after Editor=>Control migration 2017-01-28 18:51:03 +01:00
6dbe3a1e3b post-rebase fixes 2016-09-27 14:59:30 -05:00
d7a16786fc change API for BasicUI::goto_start() to use optional roll-after arg 2016-09-27 14:59:29 -05:00
ac9b5f872d add method (taken from GTK GUI) to goto_nth_marker() to BasicUI 2016-09-27 14:59:29 -05:00
0e5ac13a04 use new shared cancel_all_solo() in Mackie code 2016-09-27 14:59:29 -05:00
40dd604dbc add correct implementation for cancel all solo to BasicUI 2016-09-27 14:59:29 -05:00
0ff233d234 Update our MSVC project files to generate the most recent Ardour session file format (ver 5) rather than the older v3 format 2016-08-30 07:15:00 +01:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
77a8da9010 set ControlProtocol::_first_selected_stripable at the right time only 2016-07-06 20:58:33 -04:00
cf9706974c a few post-rebase cleanups 2016-07-06 14:03:24 -04:00
2047ee527c restore/extend/simplify ControlProtocol API to allow tracking of selection 2016-07-06 13:39:10 -04:00
eed3ea5047 remove a bunch of code that will no longer be used 2016-07-06 13:38:13 -04:00
291aec468f use session stripable selection API
and remove old ControlProtocol signals to talk to GUI etc.
2016-07-04 12:45:53 -04:00
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
f03f2e5c3f use new record safe control in surface support 2016-05-31 15:30:45 -04:00
08f01085de remove now-redundant control protocol route-selection signals 2016-05-31 15:30:43 -04:00
c438ba2b6e remove no-longer-used TrackSelectionChanged signal from ControlProtocol 2016-05-31 15:30:43 -04:00
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
e0ff70cf86 first vaguely working version using PresentationInfo
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
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
aee283f056 use redesigned Route and VCA object architecture/API 2016-05-31 15:30:39 -04:00
nick_m
34c9ac9dd7 Tempo ramps - rename bbt_time() -> bbt_at_frame(), frame_time() -> frame_at_bbt() 2016-05-27 23:38:17 +10:00
b0200b23f2 Accommodate the fact that 'msvc_resources.rc.in' got moved to a new path 2016-05-21 10:33:18 +01:00
ae7cc64377 copy-n-paste the ARDOUR_UI toggle-roll code into BasicUI (for Faderport and others) 2016-05-09 08:17:23 -04:00
8b52b69810 make BasicUI (for control surfaces) loop toggle work like the GUI 2016-04-30 10:54:40 -04:00
40aa4cfe06 Modify our MSVC projects to build liblua as a DLL rather than a static lib 2016-04-04 16:40:20 +01:00
ba78359129 prepare for update to waf 1.8
uselib is no longer implicit (inherited by .use). This is still incomplete,
some uselibs for non-linux variants may be missing.

bld.is_defined("HAVE_XXX") also no longer works and will have to be
changed (I think to bld.env["HAVE_XXX"]) in countless places.
2016-02-28 21:16:44 +01:00
d3634c5779 Accommodate 'lua' search paths in various projects where they're needed
(i.e. so that MSVC can find header files from lua).
2016-02-27 16:29:55 +00:00
ff2c3dbc81 control surfaces: fix BaseUI method for disabling record enable 2016-02-02 09:03:41 -05:00
3332633d19 Editing from a control surface must have the ability to ignore mouse location.
Add mark_in and mark_out actions that explicitly use the playhead as the edit location.
2016-01-28 13:46:33 -06:00
2005891d40 use route gain control, not amp->gain() 2016-01-25 11:48:43 -05:00