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
Tim Mayberry
4d927c6bd4
Use braces in BasicUI::jump_by_bars()
2017-05-23 09:13:27 +10:00
Tim Mayberry
7fe188ec92
Use braces in BasicUI::jump_by_seconds()
2017-05-23 09:13:27 +10:00
Tim Mayberry
df185e575e
Use correct variable in BasicUI::jump_by_seconds
2017-05-23 09:13:27 +10: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
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
Ben Loftis
6b8be8fa71
Fix set-*-from-edit-range actions, when accessed from control surfaces.
2017-04-01 09:57:06 -05:00
Len Ovens
f69808b372
BasicUI moved toggle_click,toggle_roll and stop_forget from menu action to session calls
2017-03-19 23:09:45 -07:00
Len Ovens
1af7e97fd0
basic_ui send midi_panic directly to session rather than through GUI
2017-03-19 07:27:24 -07:00
Len Ovens
caae0546a7
OSC fix toggle_monitor_mute/dim/mono in basic_ui
2017-03-18 14:14:02 -07: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
220fbbe0d8
fix another action name in BasicUI after Editor=>Control migration
2017-01-28 18:51:03 +01:00
Paul Davis
e92c169275
fix action names in BasicUI after Editor=>Control migration
2017-01-28 18:51:03 +01:00
Paul Davis
6dbe3a1e3b
post-rebase fixes
2016-09-27 14:59:30 -05: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
0e5ac13a04
use new shared cancel_all_solo() in Mackie code
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
John Emmas
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
Paul Davis
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04: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
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
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
nick_m
34c9ac9dd7
Tempo ramps - rename bbt_time() -> bbt_at_frame(), frame_time() -> frame_at_bbt()
2016-05-27 23:38:17 +10:00
John Emmas
b0200b23f2
Accommodate the fact that 'msvc_resources.rc.in' got moved to a new path
2016-05-21 10:33:18 +01:00
Paul Davis
ae7cc64377
copy-n-paste the ARDOUR_UI toggle-roll code into BasicUI (for Faderport and others)
2016-05-09 08:17:23 -04:00
Paul Davis
8b52b69810
make BasicUI (for control surfaces) loop toggle work like the GUI
2016-04-30 10:54:40 -04:00
John Emmas
40aa4cfe06
Modify our MSVC projects to build liblua as a DLL rather than a static lib
2016-04-04 16:40:20 +01:00
Robin Gareus
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
John Emmas
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
Paul Davis
ff2c3dbc81
control surfaces: fix BaseUI method for disabling record enable
2016-02-02 09:03:41 -05:00
Ben Loftis
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
Paul Davis
2005891d40
use route gain control, not amp->gain()
2016-01-25 11:48:43 -05:00