Commit Graph

34433 Commits

Author SHA1 Message Date
Robin Gareus 51b0d29555
Add dedicated Trigger Route List 2022-01-27 01:28:50 +01:00
Robin Gareus b68097422a
Reduce and abstract EditorRoutes to a dedicated RouteList 2022-01-27 01:28:50 +01:00
Robin Gareus 7623834421
Simplify treeview resync
The session marks itself as modified when the order-key
changes and also ensure_stripable_sort_order.
2022-01-27 01:28:49 +01:00
Robin Gareus 729ff35faf
Mark session as modified when stripable order chanes
Previously this was handled by the Editor/Mixer Treeviews,
centralizing it in Session makes more sense.
2022-01-27 01:28:49 +01:00
Robin Gareus 5b3eacd421
Make editor independent of EditorRoutes 2022-01-27 01:28:49 +01:00
Ben Loftis a274c1473a Triggerbox: Preserve some settings when dragging a new clip into a slot 2022-01-26 17:57:55 -06:00
Ben Loftis b1c04f1108 Triggerbox: Empty slots act as a Stop unless cue_isolated is set (TODO: can we report this to user?) 2022-01-26 17:57:55 -06:00
Ben Loftis 760c55b0b2 Cue Page: the property-box does not need a resizable pane 2022-01-26 17:57:55 -06:00
Robin Gareus 036ad841bf
Remove `using namespace Gtk;` from headers
This causes issues if the header is included early on
in particular a conflict with gdkx.h
The reference to ‘Window’ is ambiguous `Gtk::Window` vs [X11]Window.
2022-01-26 22:32:28 +01:00
Robin Gareus 1da131db41
Add missing namepaces
This works since gtkmm2ext headers have `using namespace Gtk`
2022-01-26 22:32:27 +01:00
Robin Gareus c9f40a0bf5
Fix pane size for widgets that explicitly allow 0 size
Amend 1aca71e22b
2022-01-26 22:32:27 +01:00
Ben Loftis 3362f7d4fa Triggerbox: support for files that use a space between bpm value and bpm text 2022-01-26 11:51:08 -06:00
Ben Loftis 0350e58eb7 remove unused variables (fix warnings) 2022-01-26 11:51:08 -06:00
Ben Loftis 065e0ba210 Cue page: rough-in a display for Bar-length 2022-01-26 11:51:08 -06:00
Ben Loftis 289199d01d triggerbox: barcnt -> beatcnt (gui part) 2022-01-26 11:51:08 -06:00
Ben Loftis efb44fc640 triggerbox: barcnt -> beatcnt (libardour part) 2022-01-26 11:51:07 -06:00
Ben Loftis 925a3b3ccd Only show the Range property header when a Range is selected (WIP) 2022-01-26 11:51:07 -06:00
Ben Loftis a29510c1c4 trigger_ui: highlight Cue buttons when the user clicks them 2022-01-26 11:51:07 -06:00
luz paz 364f2f0788 Fix typos in gtk2_ardour/ directory
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sur,te,trough,ue`
2022-01-26 12:35:38 -05:00
Paul Davis 7f96255722 triggerbox UI: catch up with method and property name changes from 528fd247 2022-01-26 10:12:13 -07:00
Paul Davis f20966cbad triggerbox: formalize setter/getter methods for Trigger properties
These are all defined via macros now. We send PropertyChange notifications when the value is set
even though it may not yet be in use.

This also changes the std::atomic used to protect the UIState<->Properties interlocking to
unsigned, to get defined behavior when the generation counter wraps
2022-01-26 10:12:13 -07:00
Robin Gareus 2796d7250b
Do not allow to deactivate master-bus 2022-01-26 17:24:31 +01:00
Robin Gareus 1aca71e22b
Fix ArdourWidgets::Pane honor child min-size
This doesn't yet correctly fix Pane::constrain_fract() constraints,
when moving the divider, but it does prevent child widgets from
being allocated with a size smaller than their minimum.

This fixes some layout and rendering issues (widgets that have
a too small allocation are not exposed and/or bleed into neighbors)
2022-01-26 17:24:31 +01:00
Paul Davis 9ac93a4792 triggerbox: sidechain should only process "its" MIDI buffer when looking for events 2022-01-26 07:57:32 -07:00
Paul Davis a7645022e1 triggerbox; fix i/o configuration of sidechain 2022-01-26 07:57:05 -07:00
Paul Davis 684ac0e42e fix buglets after some recent changes to editor tempodisplay
These were caught by msvc but not by gcc .Disappointing
2022-01-26 07:25:00 -07:00
Ben Loftis 0496701a8f Simplify the tab-selector tooltips 2022-01-25 19:50:57 -06:00
Ben Loftis 986942fe96 Cue Page: rename Trig -> Cue 2022-01-25 19:50:57 -06:00
Paul Davis 8122a879ee fix a couple of conflicts after TriggerBox::scene_isolated became ::cue_isolated 2022-01-25 18:10:49 -07:00
Paul Davis b6f37f11be triggerbox: CAS-based property updating GUI editing
Follow actions are now set by two distinct methods, not one
2022-01-25 18:07:21 -07:00
Paul Davis ccf90a9181 triggerbox: change to a CAS-based mechanism for setting UI-controlled properties
UIs only set a "shadow" value of most trigger properties, and use CAS to interlock (contention
is not expected to ever be an issue, it would imply two UIs being used to control this at
precisely the same time. The actual properties are updated whenever the trigger calls ::retrigger()
2022-01-25 18:07:21 -07:00
Robin Gareus f7b826841b
Log Thread-name in stacktrace 2022-01-26 00:17:49 +01:00
Ben Loftis 3fbfe72fa9 mini-timeline: fix some thinkos in prior commit; rename some variables for readability 2022-01-25 16:21:25 -06:00
Ben Loftis 2fa4eadf8e trigger_ui: cue_isolate deserves a button, not just a menu entry 2022-01-25 07:22:20 -06:00
Robin Gareus 0cf0de8c97
Remove indirection when showing/hiding TAV 2022-01-25 06:27:22 +01:00
Robin Gareus dd4b4dc00b
Move PluginSetup callback to Editor
This is unrelated to the sidebar route-list and should never
have been in EditorRoutes.
2022-01-25 06:27:21 +01:00
Robin Gareus 28392bdcdb
GUI property "visible" applies only to automation-lanes
Tracks and Busses use PresentationInfo::hidden
2022-01-25 06:27:18 +01:00
Paul Davis b7769a8f4b possible fix for a valgrind reported illegal read 2022-01-24 16:42:12 -07:00
Robin Gareus 5f3cd26d02
Cleanup at exit, delete duplicate_routes_dialog 2022-01-24 21:25:20 +01:00
Robin Gareus bdb91a434a
Simplify call to find_route_name()
Use std::string directly. There's no need to create a temporary
std::string from a char* when the API can use it directly.
2022-01-24 21:25:20 +01:00
Robin Gareus 7128c9958f
Fix crash when duplicating track(s)
Compare to PluginInsert::set_state(). The sidechain must not
inherit the name from the template track. That leads
to port-name ambiguities.

Also later there will be a crash when ::update_sidechain_name()
calls IO::set_name since: _name is not found in _current_name.
2022-01-24 21:25:20 +01:00
Paul Davis 4c433106a4 add interview mode to preferences and fix up implementation 2022-01-24 11:29:36 -07:00
Paul Davis 8a310a748a add new config variable for interview-editing
If enabled, this prevents range-selection from propagating across
all tracks when RippleAll is set
2022-01-24 11:29:36 -07:00
Robin Gareus b6b9d9231b
Trigger page, slot property layout hacks
The layout should eventually really be simplified.
Use a HBox, remove nested tables, get rid of tables with only
one Frame inside. etc.
2022-01-24 19:28:58 +01:00
Robin Gareus 5b5d8e72f1
Tweak TB layout: same height for all slot-property frames 2022-01-24 18:53:58 +01:00
Robin Gareus 9b224a79d4
Mixbus prefers stereo-tracks when importing files as triggers 2022-01-24 18:52:51 +01:00
Robin Gareus 1c5cfdad82
..but there is a Temporal::timecnt_t modulo operation 2022-01-24 06:51:28 +01:00
Robin Gareus dd0dcd6d59
timepos_t modulo operator is defined but not implemented 2022-01-24 06:50:52 +01:00
Robin Gareus 90ff5de6e3
Add Lua bindings for libtemporal type operations
This allows to use standard arithmetic (+ - * / %) and
relational (< <= ==) operations on Temporal::timepos_t
and Temporal::timecnt_t class instances.

Furthermore `print()` outputs the actual value (no longer
user-data pointer to the instance).
2022-01-24 06:23:16 +01:00
Robin Gareus d51a1ccd99
Add API to modify Lua Metatable and set Metamethods
This allows to map C++ operators to be used as Lua
arithmetic and relational operations.
2022-01-24 06:23:16 +01:00