13
0
Commit Graph

11070 Commits

Author SHA1 Message Date
a223b96725 fix mute automation for busses & consolidate code. 2016-06-08 15:39:04 +02:00
fce6ac0ef6 consistent API name for region-list 2016-06-08 15:39:04 +02:00
f05ff9570e fix faderport's use of action name 2016-06-07 19:25:33 -04:00
83770f839b minor optimization when search for actions 2016-06-07 19:25:11 -04:00
73f3abedea make it possible to disable VisibilityTracker's use of WM visibility 2016-06-07 18:29:03 -04:00
04997080a4 add meta-data placeholders for post-export command
needs testing on windows with UTF8
2016-06-07 16:57:17 +02:00
78ad42fd88 fix up logic that connects ControlGroups and RouteGroups
This makes deactivating a RouteGroup also stop the ControlGroups from having any effect
2016-06-07 09:48:17 -04:00
d511d62f65 OSC: reset select strip on bank change or select for non-existing stripable.
Fixes crash when selecting unused strip and then changing bank.
2016-06-06 23:40:35 -07:00
ee1046bbed OSC: Respond to GUI select. 2016-06-06 14:54:33 -07:00
3c0fd1a115 remove incorrect allocation of a second VCAManager in a session.
Fixes warning about a SessionHandleRef at session close
2016-06-06 16:15:25 -04:00
nick_m
36f3291a9c Ensure correct lock style before setting position. 2016-06-07 06:14:47 +10:00
nick_m
86db26ff16 MidiRegion ctor inherits length_beats.
- fixes incorrect length on drag-copying and pasting
	  midi regions.
2016-06-07 06:12:41 +10:00
nick_m
9488201a2c Region ctor inherits position, start and beat. 2016-06-07 06:10:55 +10:00
9a50d15c7f fix crashing bug in Pane when accessing dividers 2016-06-06 16:05:43 -04:00
5700296cb6 add a destructor for Gtkmm2ext::Pane that unparents the children.
This seems to be required, although there is confusion in Gtkmm3 about this.
2016-06-06 16:05:25 -04:00
nick_m
288ebbe5a7 Fix initialization of Region::_beat. 2016-06-07 03:00:28 +10:00
nick_m
6a622d86dc Fix midi region split, trim and move operations.
- there is still the problem of being unable to drag
	  a trimmed region to the left when it's source
	  (not it's position) would end up on a negative beat.
2016-06-07 02:14:31 +10:00
nick_m
92fdf7deda Region always sets position before length. 2016-06-07 02:12:04 +10:00
da5119583a there is no remote model choice anymore - ordering is determined by the GUI 2016-06-06 12:04:45 -04:00
cde50f847f MSVC won't allow floating point types to be mapped directly to enums 2016-06-06 09:07:45 +01:00
cb7e8025f2 Accommodate newly introduced source(s) in our MSVC project (ardour_osc)
(also, libardour_osc now needs to link to libardour_timecode)
2016-06-06 09:06:08 +01:00
cce4726c4c OSC: More controls in /select/*, off by one fixed 2016-06-05 22:30:14 -07:00
nick_m
f0f2e3bb71 Consolidate notifications when MidiRegion changes length due to position change. 2016-06-06 14:26:43 +10:00
2c0396c9aa fix Session::get_remote_nth_stripable() to use zero-based numbering 2016-06-05 20:50:57 -04:00
6520548fc2 extend/modify PresentationInfo to make searching for routes via Session::get_remote_nth_stripable() work 2016-06-05 20:50:57 -04:00
5bbfac2380 OS X clang build issue fix 2016-06-05 18:00:48 -04:00
91ad3ef81d don't connect to individual PresentationInfo signals per Stripable; we only reorder strips once, when the global signal arrives 2016-06-05 16:33:02 -04:00
dfcc8fd547 Stripable signals moved to PresentationInfo 2016-06-05 16:33:02 -04:00
6637260ac9 Stripable signals moved to PresentationInfo 2016-06-05 16:33:02 -04:00
d58cb3daa3 extensive changes to PresentationInfo API
Now handles color, partially.
2016-06-05 16:33:01 -04:00
e3e77475cd fix registration of PresentationInfo enums 2016-06-05 16:33:01 -04:00
58f6b98662 extend comments to avoid unused-variable warnings from commented code 2016-06-05 16:33:01 -04:00
e4a588901b change property names (not quark/strings) for RouteGroup properties to avoid collisions with new ones 2016-06-05 16:33:01 -04:00
nick_m
bd551e97ea Midi regions recalculate their length in frames when moved/copied.
- should fix 6793
2016-06-06 03:54:23 +10:00
86607097d6 plugin support for Controllable::NotAutomatable 2016-06-05 19:05:05 +02:00
03d2939f27 OSC: Added feedback for /select 2016-06-05 07:25:54 -07:00
6e42d7b99e prepare for LV2 non-automatable control ports 2016-06-05 14:45:24 +02:00
37b90c2a9e refine self-automating plugin interface
* thin automation at end
* allow plugins to disable its internal write state (ctrl port)
* Debug messages
2016-06-05 14:44:54 +02:00
nick_m
b4a020cdf5 Fix ignored note_type in TempoMap::frames_per_beat_at(). 2016-06-05 07:10:06 +10:00
3f336f2021 OSC: Bug fix for no monitor, bug fix heart beat on turned global feedback on.
Start select code.
2016-06-04 07:04:32 -07:00
56a5dd92af allow latent self-automating plugins 2016-06-03 23:09:18 +02:00
nick_m
360f87b217 Fix FramedCurve Outside fill for curve. 2016-06-04 07:03:18 +10:00
nick_m
1eb8216408 More FramedCurve render work
- draw last point correctly if applicable

	- comment intent.
2016-06-04 06:40:59 +10:00
nick_m
62be6b2ed8 Fix framed curve thinko.
- in FramedCurve, the first _point is used for the bounding box.
	  Don't confuse this with actual data.
2016-06-04 06:00:41 +10:00
ee0f073e8d move from PresentationInfo::global_order() to PresentationInfo::order 2016-06-03 15:15:39 -04:00
e8379b3818 simplify PresentationInfo concept of order so that it is always global
Cases that need more complex sort orders (e.g. all routes, then all vcas then master) need
to take of this themselves
2016-06-03 15:15:39 -04:00
1550f3af35 NOOP: space required 2016-06-02 19:19:22 -04:00
8e4c6f7f5a fix creating aux-busses from templates, reset return-bitslot 2016-06-02 22:25:41 +02:00
8566d898b5 fix possible deadlock replacing processor state. 2016-06-02 22:25:41 +02:00
a0fad16648 change name of a Session method to makes its intended function clear 2016-06-02 14:46:35 -04:00
3b58010c8c mark session dirty on creation/deletion of a VCA 2016-06-02 14:46:35 -04:00
nick_m
575bb7792f Small cleanup in FramedCurve. 2016-06-03 02:02:50 +10:00
nick_m
8f88f42ba9 Fix assorted drawing bugs in framed curve.
- treat drawing area of boxes and curves similarly.

	- handle a redraw request between
	  the last sample and the last point.
2016-06-03 00:00:31 +10:00
a047d814f6 fix case where pane divider is not redrawn after a leave event. 2016-06-01 22:30:17 -04:00
d680c1f1db fix styling of pane dividers (the original reason for the "*Pane*" widget=>style spec) 2016-06-01 22:23:34 -04:00
6e258e0ade OSC: Fixed some button type commands to have path only as well as path f 2016-06-01 14:27:30 -07:00
0531d0dd0c save version string with session for informational purposes 2016-06-01 22:43:40 +02:00
85a9ff8007 fix crash during session deletion while removing VCA masters 2016-06-01 15:15:13 -04:00
eeed8edf82 isspace 2016-06-01 19:19:09 +02:00
10a91850f2 strip trailing whitespace from lv2 log message 2016-06-01 19:01:13 +02:00
81a2fe39e8 port 7e716d27 to XFadeCurve 2016-06-01 17:48:33 +02:00
nick_m
7e716d27a8 Fix conditional on uninitialised idx (via n_samples) in framed curve.
- possibly fixes drawing artefacts in the tempo curve.
2016-06-02 01:11:23 +10:00
46ae5aa9d1 Class 'VCAManager' needs to be visible from outside libardour 2016-06-01 14:30:30 +01:00
17f1132545 Accommodate recently introduced/removed source(s) in our MSVC project (libardour) 2016-06-01 14:30:28 +01:00
38ab8dee90 Accommodate recently introduced source(s) in our MSVC project (ardour_osc) 2016-06-01 14:30:28 +01:00
7d770293e9 Accommodate recently introduced source(s) in our MSVC project (gtkmm2ext) 2016-06-01 14:30:27 +01:00
f592b6c07b Accommodate recently removed source(s) in our MSVC project (libpbd) 2016-06-01 14:30:26 +01:00
38a955fbe7 update lua bindings (tempo-ramps, VCA,...) 2016-06-01 15:12:14 +02:00
67083d65e4 add lua/C++ dynamic_cast<> 2016-06-01 13:59:31 +02:00
79245a296b remove duplicate call: MeterSection is-a MetricSection 2016-06-01 13:58:37 +02:00
d60200c899 OSC: finish /set_surface group of commands. 2016-05-31 22:04:25 -07:00
e0908a4154 fix windows/lua bindings
...this needs a better solution...
2016-06-01 05:13:43 +02:00
2f94e2de23 32bit compatibility 2016-06-01 04:29:08 +02:00
761ce9c914 allow StripWidth icon to draw properly on non-square buttons 2016-06-01 03:06:14 +02:00
a03217c27f update lua bindings for API changes
luaBridge implicit inheritance uses a single direct parent
(other parents object need casts). This motivates
 Route -> Stripable -> SessionObject
2016-05-31 23:51:22 +02:00
f87cd4435d allow lua binding functions with up to 9 parameters
e.g new_midi_track()
2016-05-31 23:51:22 +02:00
14b4bac7f2 comment out a DEBUG_TRACE statement that causes issues for clang, reasons are unclear 2016-05-31 17:39:38 -04:00
9ff3c55e34 OSC: Paths changed, feedback added, etc. 2016-05-31 14:09:38 -07:00
c69ef7aa37 Surfaces: Metering could only handle one surface at a time. 2016-05-31 13:53:11 -07:00
5308293597 fix conditional used to decide whether to copy old config files 2016-05-31 15:30:46 -04:00
eaf7677913 adjust theme search path 2016-05-31 15:30:46 -04:00
8c74a1b99c make pane divider placement a little safer 2016-05-31 15:30:45 -04:00
e4cfa1d955 infrastructure for finding theme files 2016-05-31 15:30:45 -04:00
47b85c3845 fix default pane divider cursor for vertical panes 2016-05-31 15:30:45 -04:00
4ef8e862b3 shrink down pane divider/handle width 2016-05-31 15:30:45 -04:00
0baedac4f4 fix pane behaviour when children are hidden/shown 2016-05-31 15:30:45 -04:00
229b026356 explicitly expose dividers
hmm, seems important to understand how this worked before
2016-05-31 15:30:45 -04:00
7c6cfd9fa0 more sensible API for Pane::set_child_minsize 2016-05-31 15:30:45 -04:00
d8b02be745 provide a mechanism to avoid allocating too small of a space to a Pane child
Gtk::Notebook throws an assertion if allocated too small a space during drawing (at least with Clearlooks)
2016-05-31 15:30:45 -04:00
f03f2e5c3f use new record safe control in surface support 2016-05-31 15:30:45 -04:00
2ac7108ccb use new record safe control in libardour 2016-05-31 15:30:45 -04:00
203cf3ce7c new RecordSafeControl control 2016-05-31 15:30:45 -04:00
067616a84f various work on Pane, including cursors, more styling stuff, and making the forall_vfunc safe against gtk_container_remove 2016-05-31 15:30:45 -04:00
9694a3181b Pane: use style-provided colors, and change colors on enter/leave/dragging 2016-05-31 15:30:45 -04:00
3c4503a849 fix use of widget allocation origin in Gtkm2mext::Pane 2016-05-31 15:30:45 -04:00
29b9c4ecc3 set default pane divider position to 0.5 2016-05-31 15:30:45 -04:00
ce68505a51 working but incomplete version of new Pane replacement widget 2016-05-31 15:30:45 -04:00
28afaebdc4 fix SNAFU in which Stripable::rec_enable_control() was incorrectly defined as ::recenable_control()
Make Mackie support code use the Stripable to access the rec-enable control while we're here
2016-05-31 15:30:45 -04:00
983a8f3f3c remove debug output 2016-05-31 15:30:44 -04:00
109be3b4f3 remove debug output 2016-05-31 15:30:44 -04:00
a448b5ea12 no-op: explanatory comments 2016-05-31 15:30:44 -04:00
66c7ef1fb5 no-op: explanatory comments 2016-05-31 15:30:44 -04:00
fefbc4df01 fix typo in definition of solo-safe automation control (fixes solo) 2016-05-31 15:30:44 -04:00
624743572c reduce number of Controls attempted for auto-slave-on-assign; use just a single definition 2016-05-31 15:30:44 -04:00
027caa4207 add new API to InstrumentInfo to get program names in a very slightly different format 2016-05-31 15:30:44 -04:00
f022784014 convert editor routes code to use Stripable 2016-05-31 15:30:44 -04:00
2380bbae5b remove useless code recently added to RouteGroup
When a slaved automation control is changed because of a Master changing
its own value, the slave notifies about the change with NoGroup as the
GroupControlDisposition. There is therefore no need to disable a RouteGroup's
enabled status for its ControlGroups - the changes initiated by any Master
will not propagate to the group (which is precisely what we intend)
2016-05-31 15:30:44 -04:00
405fda66f7 basics of printing bindings as HTML 2016-05-31 15:30:44 -04:00
d09b466f05 VCA: fix numbering scheme to allow contiguous numbers after removing the last VCA; remove unnecessary remote_control_id() method 2016-05-31 15:30:44 -04:00
d98e47cf54 remove debug output 2016-05-31 15:30:44 -04:00
55791301c3 no-op: move some declarations 2016-05-31 15:30:44 -04:00
fe1d27444b don't store shared_ptr<VCA> in functor for Drop or DropReferences signal from VCA in Slavable 2016-05-31 15:30:44 -04:00
dc3ebc8eec use (possibly null) macros to mark VCAs for boost shared ptr debugging 2016-05-31 15:30:44 -04:00
fc14f1f2ed add macro for boost shared ptr debugging of VCAs 2016-05-31 15:30:44 -04:00
6c61194710 provide mechanism for "drop all slaves" for VCA master 2016-05-31 15:30:44 -04:00
b5869ac0a4 fix issues with route group assignment to control master 2016-05-31 15:30:43 -04:00
637379d7a2 fix some bugs with unassigning from a control master 2016-05-31 15:30:43 -04:00
57f4706204 provisional code to support assigning an entire RouteGroup to a VCA master 2016-05-31 15:30:43 -04:00
0e830fb6ec add ::n_vcas() method to VCAManager 2016-05-31 15:30:43 -04:00
a48888e688 add slaved_to() and slaved() methods to VCA 2016-05-31 15:30:43 -04:00
b2df48263b add generic ::slaved() method to Route 2016-05-31 15:30:43 -04:00
a2704dbff8 use correct signal to select route from generic MIDI, and add explanatory comment 2016-05-31 15:30:43 -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
7f4880ad12 use correct types in arguments to Session::get_remote_nth...() 2016-05-31 15:30:43 -04:00
0d9433aef6 remove no-effect handling of route active-status change in Mackie Control code 2016-05-31 15:30:43 -04:00
4f76f26634 remove debug output 2016-05-31 15:30:43 -04:00
9d2538ae72 remove any reference to Route in Generic MIDI support (basically a NO-OP) 2016-05-31 15:30:43 -04:00
d31527f2e6 improve/extend Session::controllable_by_descriptor() 2016-05-31 15:30:43 -04:00
c448b805d1 fix implementation of Session::get_remote_nth_stripable() 2016-05-31 15:30:43 -04:00
05647470ef add required MuteControl method 2016-05-31 15:30:43 -04:00
2ff7821128 expand and correct accepted syntax for ControllableDescriptor strings
note: manual needs updating to reflect this
2016-05-31 15:30:43 -04:00
31a8f01d16 fix thinko in use of sizeof() for bitshifting 2016-05-31 15:30:43 -04:00
cefd3ac8be convert faderport to use Stripable instead of Route 2016-05-31 15:30:43 -04:00
7eb2d1d16d make ::muted_by_others_soloing() part of the Muteable API 2016-05-31 15:30:43 -04:00
7321e1b4a2 add MonitorProcessor accessor to Stripable API 2016-05-31 15:30:43 -04:00
186209c03c fix crash in mackie code caused by assumption that all Stripables have meters 2016-05-31 15:30:43 -04:00
83052ad18c clean up debug output for OrderKeys 2016-05-31 15:30:42 -04:00
2c27b3df93 improve debug output 2016-05-31 15:30:42 -04:00
201c5825ac remove debug output 2016-05-31 15:30:42 -04:00
6ef7139fb3 missing initialization 2016-05-31 15:30:42 -04:00
2c9c210213 manually fix rebase/merge issues caused by addition of plugin presets to methods which add a new track/bus 2016-05-31 15:30:42 -04:00
4b0a235f91 manually fix rebase/merge issues for Mackie Control support 2016-05-31 15:30:42 -04:00
01890af71e temporarily remove Session::new_midi_track from lua api 2016-05-31 15:30:42 -04:00
4b7bbacaaa make mackie surfaces aware of VCAs 2016-05-31 15:30:42 -04:00
c34ad3a723 convert Mackie Control Surface support to use Stripable, not Route 2016-05-31 15:30:42 -04:00
1a8769ab03 add two more AutomationControl fetch methods to Stripable 2016-05-31 15:30:42 -04:00
937af04ba0 more const value_as_string fixes 2016-05-31 15:30:42 -04:00
14fb1367a2 fix check for order max in PresentationInfo::parse (string&) 2016-05-31 15:30:42 -04:00
38dde7f818 add Session::get_stripables() 2016-05-31 15:30:42 -04:00
d7cce2ff7d implementation side of Controllable::get_user_string() with const arg 2016-05-31 15:30:42 -04:00
99bc6a4290 add two more AutomationControl fetch methods to VCA 2016-05-31 15:30:42 -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
96faa622ee fwd declaration of Stripable and associated lists 2016-05-31 15:30:42 -04:00
534b2de35b Add PanControllable::get_user_string() (provide indirect access to Panner::value_as_string(); make ::get_user_string() use a const arg everywhere 2016-05-31 15:30:42 -04:00
8346fab567 remove irrelevant, out of date and incorrect comment 2016-05-31 15:30:42 -04:00
d5127001bb move ControllableDescriptor from libpbd to libardour; add support for describing VCAs 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
0ab10bf8e3 API and implementation tweaks for destroying VCAs 2016-05-31 15:30:42 -04:00
f485cfa324 rearrange inheritance so that Automatable IS-A Slavable
Share assign code via Slavable; add visibility tags to Slavable+SlavableAutomationControl
2016-05-31 15:30:41 -04:00
eee3837245 remove explicit setting of Toggle flag for AutomationControls
Make it be based on the ParameterDescriptor, which indicates toggle status anyway
2016-05-31 15:30:41 -04:00
52b150ba5d generalize VCA assign/unassign code.
Need to share this approach across Slavables
2016-05-31 15:30:41 -04:00
f2984260d4 add rec-enable and monitor controls to VCAs 2016-05-31 15:30:41 -04:00
1e9b2abe73 save and restore vca assignments 2016-05-31 15:30:41 -04:00
83e51ee69b add Slavable API for VCA assign/unassign 2016-05-31 15:30:41 -04:00
84a0386f9c new files 2016-05-31 15:30:41 -04:00
be4e898996 improve cleanup of VCA related objects 2016-05-31 15:30:41 -04:00
51064f77a8 fix compiler issues with pair<T1,T2> construction 2016-05-31 15:30:41 -04:00
d0f5958542 fix chaining of masters for boolean controls 2016-05-31 15:30:41 -04:00
a48fada3c7 move new fractional pane utility functions into libs/gtkmm2ext 2016-05-31 15:30:41 -04:00
b9ba91ac1d fix solo isolate controls 2016-05-31 15:30:41 -04:00
a89b3f5687 clear all solo state should affect VCAs too 2016-05-31 15:30:41 -04:00
5b5e64d860 remove Route::listening_via_monitor()
This is better tested with direct use of the solo_control and
Config->get_solo_controls_are_listen_controls()
2016-05-31 15:30:41 -04:00
01bba9f910 fix backend logic for PFL/AFL when mastered 2016-05-31 15:30:41 -04:00
69250b64ea move ever close to working master/slave logic, this time with audio testing 2016-05-31 15:30:41 -04:00
bce617375e fix return type of SlavableAutomationControl::get_boolean_masters() to make it usefl 2016-05-31 15:30:41 -04:00
9e70384ccf fix solo control to use VCA logic as worked out for mute 2016-05-31 15:30:41 -04:00
0ef0492cbb remove debug output 2016-05-31 15:30:41 -04:00
3fe50951e4 fix call to base class 2016-05-31 15:30:41 -04:00
8ee6603561 design changes to various SlavableAutomationControls to make it possible to get the logic right for boolean controls 2016-05-31 15:30:41 -04:00
01aefd236a move SlavableAutomationControl into its own header 2016-05-31 15:30:41 -04:00
6de4953be8 a variety of changes that get closer to correctly functioning behaviour for VCA solo+mute (BUT ARE NOT DONE YET) 2016-05-31 15:30:41 -04:00
7d493b091a do not route AutomationControl changes to an RT thread if we are loading a session 2016-05-31 15:30:40 -04:00
4a30e1f4c8 add Session::loading() to allow easy detection of "session is being loaded" condition 2016-05-31 15:30:40 -04:00
e1bcd70712 a slew of as-yet incomplete work to get VCA solo+mute closer to working 2016-05-31 15:30:40 -04:00
86a9fb2844 stop crash caused by missing conditional 2016-05-31 15:30:40 -04:00
cba56ade87 fix logic for Session::solo_control_mode_changed() 2016-05-31 15:30:40 -04:00
b042072df4 fix logic for removing an AutomationControl from a ControlGroup 2016-05-31 15:30:40 -04:00
b2b5c965c8 some tweaks for solo logic to get things working as they were before (correctly) 2016-05-31 15:30:40 -04:00
5499bad836 add back some amount of XML save/restore for route controls 2016-05-31 15:30:40 -04:00
0cf89e76ef add new enums 2016-05-31 15:30:40 -04:00
e9d72383c7 extend function of Automatable::control_factory() [ this may be the wrong design ... review coming ] 2016-05-31 15:30:40 -04:00
2ca819c00b add track controls to its Automatable self 2016-05-31 15:30:40 -04:00
8fc1876626 do not non-automable controls to an Automatable's list of what can be automated 2016-05-31 15:30:40 -04:00
2c6d595614 add a new Controllable::NotAutomable flag 2016-05-31 15:30:40 -04:00
4aa1c242ab add new files to source tree 2016-05-31 15:30:40 -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
194b213456 add implicit mute state to MuteMaster and use when a master of a mute control is enabled/disabled. Add AutomationControl::master_changed() as a virtual method to handle ... master value changes 2016-05-31 15:30:40 -04:00
5531c83496 change API of Controllable::Changed signal to include (from_self, GroupControlDisposition)
This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
2016-05-31 15:30:40 -04:00
4b36593106 fix faderport and mackie to use route AutomationControls to be notified about solo/mute changes 2016-05-31 15:30:40 -04:00