Commit Graph

35572 Commits

Author SHA1 Message Date
Paul Davis 02b77ca88a better fix for CURL debugging unused variable warning 2022-06-21 17:36:26 -06:00
Paul Davis ae9c11fb01 fix redefined CANVAS_DEBUG warning 2022-06-21 17:35:01 -06:00
Paul Davis 670b1fe3e2 fix initialization order warning 2022-06-21 17:34:48 -06:00
Paul Davis ac18b84351 remove always-true-condition from if() to avoid compiler warning 2022-06-21 17:34:09 -06:00
Paul Davis b51c4b7ef9 fix signed/unsigned warning 2022-06-21 17:33:37 -06:00
Paul Davis 181f40a349 fix signed/unsigned warning 2022-06-21 17:33:22 -06:00
Paul Davis 83b5fdf569 fix unused code warning 2022-06-21 17:33:04 -06:00
Paul Davis e1f9d28d6a fix unused code warning 2022-06-21 17:32:50 -06:00
Paul Davis 48ab542ffa fix signed/unsigned warning 2022-06-21 17:32:27 -06:00
Paul Davis 5bc7c26d9b fix unused variable errors 2022-06-21 17:32:09 -06:00
Paul Davis cd4549aff7 fix signed/unsigned warning 2022-06-21 17:31:50 -06:00
Paul Davis dc4235efbe fix left-shift of negative value warning 2022-06-21 17:31:17 -06:00
Paul Davis e2ef135161 remove unused warning 2022-06-21 17:30:59 -06:00
Paul Davis 4b11b2ba28 remove unused item 2022-06-21 16:55:29 -06:00
Paul Davis d47b581cbb remove RegionRippleDrag
This used to be a distinct kind of drag, but ended up being refactored into
something that happens during a regular drag. Has not been used in quite some time.
2022-06-21 15:52:16 -06:00
Paul Davis f679da4e1e simplify implementation of Beats::operator%= (Beats) 2022-06-21 14:46:20 -06:00
Paul Davis 5d81535588 remember to use muldiv() when doing a*b/c; also no need to call to_ticks(), just use _ticks 2022-06-21 14:46:20 -06:00
Paul Davis 1be136adbd allow construction of Beats with a beat count that exceeds INT32_MAX 2022-06-21 14:46:20 -06:00
Paul Davis d6d9792dcb fix construction of Beats from an int64_t that exceeds INT32_MAX 2022-06-21 14:46:20 -06:00
Robin Gareus 71ee12af6a
Add API to format keyboard modifiers for tooltips 2022-06-21 22:11:49 +02:00
Robin Gareus 5b03bf72fa
NO-OP: code style 2022-06-21 22:11:08 +02:00
Robin Gareus af38528174
Physical modifier abstraction is constant 2022-06-21 22:09:54 +02:00
Robin Gareus 9ae9282547
Use abstract group_override_modifier instead of hardcoded modifiers 2022-06-21 21:38:41 +02:00
Robin Gareus 8a5fc65df4
Expose newly added semantic modifiers 2022-06-21 21:38:37 +02:00
Robin Gareus 3266b1acb0
Add API to query currently held modifiers keys 2022-06-21 21:37:14 +02:00
Robin Gareus f1eb45e129
NO-OP: clang format 2022-06-21 21:37:08 +02:00
Paul Davis 696e05c3e5 convert internal implementation of Temporal::Beats to just use a 64 bit tick value
This expands significantly the maximum number of Beats that can be represented, which is a good
thing in itself. It slightly speeds up some Beats::operator methods, and slightly slows down
::get_beats() and ::get_ticks().

One minor change in an API user was required, and several tweaks to the unit tests due to the
macros being used by cppunit creating possible type confusion.

Units test pass
2022-06-21 12:26:54 -06:00
Robin Gareus 4661957091
Re-establish 47932fb7bf (which was lost in e557245bf7) 2022-06-21 20:17:01 +02:00
Ben Loftis 0cc9f87baf continued work on modifier semantics (gtk part)
more implementations of group_override_event() and momentary_push_event()
2022-06-21 13:01:30 -05:00
Ben Loftis e557245bf7 implement group_override_modifier() (lib part)
Consistently use Tertiary for Group Override on all platforms (and be consistent about it)

Consistently use Primary-mod for Momentary on all platforms (partially reverts 47932f)
Primary modifier is used for fine-adjust on knobs and sliders, with no analogous operation on switches.
2022-06-21 13:01:30 -05:00
Paul Davis 4dbdaf7fe9 fix possible negative return from TempoPoint::quarters_at_superclock() 2022-06-21 11:39:10 -06:00
Robin Gareus 47932fb7bf
Only special case middle-click modifier for macOS by default 2022-06-20 23:30:45 +02:00
Paul Davis bbb0b78a50 fetch thread local tempo map in potential peak-building threads 2022-06-20 14:25:40 -06:00
Robin Gareus 4825d67c4a
Fix record w/count-in
The pre-nutemo code used fmod() to calculate the offset into the bar:
`bar_fract = fmod (barbeat, 1.0); // fraction of bar elapsed`
with nutempo, beats start at 1, and the tick offset must also be
taken into account.

The bug was introduced in f67029bd0
2022-06-20 21:15:00 +02:00
Paul Davis 65b7b3f2eb fix unset per-thread tempo map in AutomationWatch thread 2022-06-20 08:43:00 -06:00
Robin Gareus f5866c1dee
Fix video-file audio extraction on big-endian systems 2022-06-20 16:16:25 +02:00
Robin Gareus 0f2c3bf9c9
Fix mp3 export on big-endian systems 2022-06-20 16:05:28 +02:00
Robin Gareus df518cba3c
Don't show blank MIDI Port Config page when no MIDI devices are present 2022-06-20 16:04:59 +02:00
Robin Gareus 35612d26c6
Unify ::get_buffer, remove debug code 2022-06-18 22:54:09 +02:00
Robin Gareus 32161cf154
Fix valid_port race/crash when ranaming ports
PortIndex is sorted by name, and uses port-name as unique identifier.

Ports can be re-named concurrently with processing.
::set_port_name() updates the RCU in the background. The engine
may concurrently process with an old RCU reader value.

In this case valid_port() failed in the process-callback.
and ::get_buffer() returned NULL
2022-06-18 22:54:08 +02:00
Paul Davis 4acd63b2ef fix uninitialized variable (detected with valgrind) 2022-06-18 12:37:39 -06:00
Paul Davis 64c8607ffd midi streamview: fix crash when switching playlists
We need to delete all existing region views before we redisplay the track. This
was removed as part of an "experimental performance optimization" in 4f7a4cd233
but playlist switching is a rare and non-performance limited operation
2022-06-18 08:28:31 -06:00
Ben Loftis ca744cd94a tooltips: append 'Lock' to Solo Safe menu-item, to match mixer-strip button 2022-06-17 11:08:04 -05:00
Ben Loftis 1965e90c24 tooltips: enumerate the various modifiers for mute, solo, scenes
TODO: monitor buttons, maybe more
2022-06-17 11:07:58 -05:00
Ben Loftis fd9a76073b modifiers: add momentary_push_name (for tooltips) 2022-06-17 11:07:58 -05:00
Ben Loftis 9a6533c382 modifiers: unconditionally show the solo context menu
* accessing solo-isolate from the context menu is the preferred way
* some route_uis (like track headers) do not have solo isolate buttons
2022-06-17 11:07:58 -05:00
Ben Loftis 88888237ac modifiers: remove shortcut for solo isolate
* you should not be able to invisibly change a solo 'mode' from a modified click

* we want to use shift+click for momentary operation, anyway
2022-06-17 11:07:58 -05:00
Ben Loftis a92af7768d modifiers: implement is_momentary_push_event for momentary buttons (gtk2 part) 2022-06-17 11:07:58 -05:00
Ben Loftis 12e703414d modifiers: make a new abstraction for momentary-click, instead of button_2 (lib part)
is_button2_event()  was used to detect the user's desire for a
  momentary-click on some buttons (mute, solo, mixer scenes)

is_momentary_push_event() disambiguates this action from is_button2_event()

for the special case of momentary, we can drop the workarounds for
  the lack of middle-mouse buttons on Mac, and instead just use
  shift+left-click on all platforms.
2022-06-17 11:07:49 -05:00
Ben Loftis 71833911a4 modifiers: publish button2_name (for use in tooltips) 2022-06-17 10:52:06 -05:00