Commit Graph

242 Commits

Author SHA1 Message Date
Robin Gareus b2d4280e0f
Add support for Region Fx Automation 2024-04-23 21:56:22 +02:00
Robin Gareus e5506d281a
GUI support for Region Fx (in Region Properties) 2024-04-23 21:56:18 +02:00
Paul Davis b3de53eb95 when a playlist is relayered, relayer ghost regions too 2023-06-26 14:18:18 -06:00
Robin Gareus dbebc0b7e0
Make Markers properly themable, use color-names
This simplifies code, and also immediately changes marker
colors when the theme is changed.
2023-05-18 01:26:35 +02:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Robin Gareus c44b40afd7
Indicate UTF8 literals - fixes glyph rendering with MSVC (2/2) 2023-01-16 21:41:22 +01:00
Paul Davis 6ed1402812 use ItemChangeBlocker to improve performance of RegionView::remove_silent_frames() 2022-12-10 13:40:06 -07:00
Robin Gareus 0bb81a9a18
Do not shade transparent regions in Layered mode
There already is a shaded coverage frame indicating
if a layer is audible. This leads to a more consistent view.

In addition changing layered mode now has to update the
colors (set_frame_color).
2022-12-10 02:37:05 +01:00
Robin Gareus 9093059ba0
Use ArdourSans for symbols cross platform 2022-11-15 21:50:13 +01:00
Robin Gareus 19236c2a7d Handle time-domain undo/redo changes
The region itself has no time_domain property, changing the time-domain
is done by changing the domain of the region length. undo/redo hence
emite a Length PropertyChange signal.
2022-11-02 21:40:55 +01:00
Paul Davis 15b92334dc remove dangerous and unused RegionView::source_relative_distance() method 2022-10-26 22:25:51 -06:00
Robin Gareus 63c78ebced Fix MIDI edit opertaiont (trim, draw) across tempo-changes
In the presence of tempo-changes distinguishing between offsets and
absolute positions is signficant. It is only valid to convert absolute
times using the tempo-map

Furthermore since GUI zoom-factor is time-invariant (samples per pixel),
all GUI operations must explictly use samples (or timecnt). It is not
valid (and problematic) to use use a location dependent timepos.
2022-10-23 19:12:31 +02:00
Paul Davis 254297355e increment/decrement name changes ... out with old in with the new (gui) 2022-10-07 17:30:45 -06:00
Paul Davis 45e21de209 implement and adopt new conventions for AudioClock use
The class now has two separate methods for setting a duration or a point
value. They MUST be used appropriately, because their behavior is different.

When ::set_duration() is used in timecode mode, an extent (inclusive-end
length) is shown rather than a length.

Some objects, such as the TimeInfoBox, now deliberately shown an inclusive end
for their "end" clock, but this not universally followed, pending more feedback
from users and investigating of conventions in other DAWs.
2022-10-07 16:24:56 -06:00
Robin Gareus 5adb6eadaf
Fix region coverage display, take audible opacity into account 2022-09-09 17:31:20 +02:00
Robin Gareus 2220280776
Only create coverage frames to cover muted parts
Do not create transparent coverage frames for audible sections.
This should improve rendering of stacked region views.
2022-07-06 01:49:51 +02:00
Robin Gareus 0bd1d9bc17
Fix layered region non-playing shade (timepos_t API)
Before nutempo, ::find_next_region_boundary() used to return -1
when no boundary was found (now timepos_t::max is returned).

timepos_t::increment() returns the incremented value, not increments
the variable itself.
2022-07-06 01:49:50 +02:00
Robin Gareus efa2efa221
Fix "muted" indicator (dup on audio-regions, missing on macOS)
RegionView::make_name already adds the prefix, AudioRegionView
does not need to add it again.

Also the font used on macOS (Lucia Grande) has a rather limited
UTF-8 charset and does not support:
 \u20F0 (COMBINING ENCLOSING CIRCLE BACKSLASH)
 \U0001F507 (SPEAKER WITH CANCELLATION STROKE)
so for now we keep using "!" on macOS.
2022-06-07 02:33:55 +02:00
itmuckel 498a3d90c5
Modernize region_view 2022-05-14 23:33:21 +02:00
itmuckel 13836bde44
Give muted regions cancelled speaker instead of '!' 2022-05-14 23:33:21 +02:00
Paul Davis f8b0a8843c stash info on whether we disabled region view redisplay for view-only or model changes
The bool may be unnecessary since everywhere we use this seems to be for model changes
2022-04-05 20:52:10 -06:00
Paul Davis 4fa97e2c50 split midi region view redisplay into two similar methods
::model_changed() is used when the model has changed (eg. new notes or some
notes deleted); ::view_changed() is used when only some view parameter (e.g.
zoom, scroll, track height etc) has been altered.

Not fully functional yet (::view_chanted() ignores scroll)
2022-04-05 20:52:10 -06:00
Paul Davis b8a6b97b49 redesign (MIDI)RegionView display disabling around an RAII model 2022-04-05 20:52:10 -06:00
Paul Davis ae8c043fe1 regionviews: use integer counter instead of boolean to control redisplay of contents 2022-04-05 20:52:09 -06:00
Paul Davis e8dc95ded5 NOOP: whitespace conventions 2022-02-21 16:13:48 -07:00
Paul Davis 2eda6d1865 initialize sync mark/line in Region copied from another region 2022-02-21 16:13:30 -07:00
Paul Davis 61b728bdcc more avoidance of double initialization 2022-02-19 16:42:03 -07:00
Paul Davis dcdfd3ff0f no need to repeat initialization 2022-02-19 09:03:48 -07: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
Robin Gareus 3c03e4951e
Use updated temporal API 2/2 2021-12-11 15:51:31 +01:00
Paul Davis 754230921d there is no Properties::position any more (GUI)
Position is a part of a length property (a duple specifying
"duration AT position", and there is no distinct property
for just the position itself
2021-09-25 16:49:51 -06:00
Paul Davis 7415f5cc18 fix timeline type usage in region/cue markers 2021-08-13 12:51:36 -06:00
Paul Davis daad7b74ae libtemporal: rename TempoMap::full_duration_at() to ::convert_duration() and reorder parameters 2021-08-13 12:51:34 -06:00
Paul Davis 9a9bc3408f fixups for xrun-marker work, now that Region::sample() and Region::length() so not return sample types 2021-08-13 12:51:34 -06:00
Paul Davis 068cc4135f remove another NUTEMPO #warning (see comment) 2021-08-13 12:51:33 -06:00
Paul Davis 0632ced2d5 fix Region::(region|source)_relative_distance() 2021-08-13 12:51:31 -06:00
Paul Davis 18d64f0402 change all Region::nt_*() methods to names without the nt_ prefix (GUI version) 2021-08-13 12:51:30 -06:00
Paul Davis aa56f4a16e GUI: moving along with timeline type conversion 2021-08-13 12:51:29 -06:00
Paul Davis 5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
Paul Davis 7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
Paul Davis 899ffa3b23 amend 256e22344f - no need for a non-const iterator 2021-08-06 10:16:05 -06:00
Paul Davis 256e22344f ensure that region cue markers that get "trimmed off the edge" of a region actually vanish 2021-08-03 11:42:39 -06:00
Paul Davis b8bb5e6bd1 delete region cue marker (views) when a regionview is deleted. Fixes #8757 2021-08-03 11:41:49 -06:00
Paul Davis 54e0b7f230 renaming cue markers (via dbl-click) 2021-05-24 20:23:06 -06:00
Paul Davis 60a972a7de implement region marker deletion 2021-05-18 18:01:38 -06:00
Paul Davis baee1a2f01 add API to make sure that region cue markers are above any waveviews or MIDI etc 2021-05-18 16:50:27 -06:00
Paul Davis b76991c00b reset region cue marker colors when colors change 2021-05-18 16:17:37 -06:00
Paul Davis eb8c25edce remove debug output 2021-05-18 16:17:37 -06:00
Paul Davis 91ec860b3b redesign color mgmt when entering/leaving markers of various kinds 2021-05-18 16:17:37 -06:00
Paul Davis 689d33ddd5 get line for region markers functioning and visible 2021-05-14 18:37:50 -06:00