Commit Graph

13795 Commits

Author SHA1 Message Date
Damien Zammit
12d62cd16e pt import: Fix race condition/threading, don't call new_audio_track() in bg thread 2021-01-17 13:19:54 +11:00
Paul Davis
a307cc602c remove duplicate initialization of PBD::DEBUG::Selection 2021-01-14 11:25:29 -07:00
Robin Gareus
350938b68e Fix crash at exit when EngineDialog shows some page other than 1st
#1  std::operator==<char> (__lhs=<error reading variable: Cannot access memory at address 0x801f0f1f>) at /usr/include/c++/8/bits/basic_string.h:6058
#2  EngineControl::get_matching_state at ../gtk2_ardour/engine_dialog.cc:1874
#3  EngineControl::get_saved_state_for_currently_displayed_backend_and_device() at ../gtk2_ardour/engine_dialog.cc:1893
#4  EngineControl::post_push() at ../gtk2_ardour/engine_dialog.cc:2655
#5  EngineControl::push_state_to_backend(bool) at ../gtk2_ardour/engine_dialog.cc:2643
#6  EngineControl::on_switch_page(_GtkNotebookPage*, unsigned int) (this=0x55bc43fd4d40, page_num=1) at ../gtk2_ardour/engine_dialog.cc:2988
[...]
#20  () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 g_object_run_dispose () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 Gtk::VBox::~VBox() () at /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#23 EngineControl::~EngineControl() (this=0x55bc43fd4d40, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../gtk2_ardour/engine_dialog.cc:73
2021-01-14 01:54:43 +01:00
Robin Gareus
7ef55225a0 Plug a tiny memory leak 2021-01-09 20:18:12 +01:00
Robin Gareus
9b1a2e6dba Indicate that plugin-window MIDI keyboard is not recorded 2021-01-08 22:50:53 +01:00
Robin Gareus
44528f4fd0 Fix editor summary exposure rectangle
Rectangle uses position and width, not coordinate pairs.
2021-01-08 18:39:57 +01:00
Robin Gareus
aecd84e7fd Update session extents calculation
* Expose API via Public Editor
* Skip hidden tracks in calculation
* Use a single call to query playlist extents.
  This way the playlist read-lock is needed at most once per track
  which speeds up calculation.
2021-01-08 18:39:57 +01:00
Robin Gareus
4769c387f3 Expose EditorCursor via public editor API
This is in preparation to subscribe to playhead cursor position
changes in the recorder-UI.

This change also clean up the API, replacing a public variable
with a const access method and follows #12 of
https://ardour.org/styleguide.html
2021-01-08 18:39:56 +01:00
Robin Gareus
559ffcff63 VKeybd: use a non-translatable port-name (2/2) 2021-01-08 16:33:29 +01:00
Paul Davis
b59e687f83 prevent addition mouse button press/release events while an existing drag is still underway from interfering (fixes #8529) 2021-01-07 22:55:44 -07:00
Martin Vlk
1f96f95e65 Fix "Manual". 2021-01-06 18:40:45 +01:00
Damien Zammit
cbd0ba90c6 pt import: Fix two warnings from valgrind
- Remove uninitialised unused variable
- Remove jump condition on uninitialised variable
2021-01-06 11:30:12 +11:00
Robin Gareus
a3df0523b5 Fix crash when requesting disk/in monitoring of busses
e.g. select the master-bus, use  "D" or "I" keyboard shortcuts
in the mixer window.
2021-01-05 23:35:55 +01:00
Paul Davis
20bdc394f4 remove debug output unintentionally committed in 14318dd34 2021-01-03 18:17:14 -07:00
Paul Davis
7c27f617dc use bold font for major (bar) marks in BBT ruler to heighten contrast 2021-01-03 17:14:35 -07:00
Paul Davis
14318dd342 use larger font for bars on BBT ruler 2021-01-03 16:50:18 -07:00
Robin Gareus
caf55e105e Dynamically load Dr.Mingw
This improves compatibility with older systems, notably 32bit WinXP.
2021-01-02 23:19:40 +01:00
Robin Gareus
f188a1ad10 Bump (C) for a hopefully happier new year 2021-01-01 13:18:43 +01:00
John Emmas
bf50535d69 To keep MSVC happy, clarify which overloaded version of 'floor()' to call 2020-12-31 16:13:51 +00:00
Robin Gareus
e85ae7f9a6 Verbose cursor audio region peak display
https://discourse.ardour.org/t/is-it-possible-to-view-audio-levels-in-db-by-moving-cursor-over-a-waveform/105199
2020-12-30 13:42:42 +01:00
Robin Gareus
3f60d12308 Handle async removal of sidechain input
Apparently a user managed to remove a SC input and then
use the input's context-menu before the UI had caught up.
(PluginPinWidget::plugin_reconfigured happens during idle)

---
Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0  [..] PluginPinWidget::sc_input_press(_GdkEventButton*, boost::weak_ptr<ARDOUR::Port>) + 1140
2020-12-29 16:08:46 +01:00
Robin Gareus
ce07765347 video-export dialog, only show abort/progress when exporting 2020-12-22 19:35:12 +01:00
Robin Gareus
1a49d7d42b Fix invisible multicahannel waveform at rec-stop
AudioRegionView() c'tor calls create_waves() early on
before the _height is set [1].

Now one following can happen:
 1. All peak-files are present. create_waves() directly calls
    create_one_wave() for each channel. They are initialized
    with zero height.
    But all channels are present so waves[] is populated and
    a later call to set_height() corrects this
 2. All peak-files are still missing. create_waves() schedules
    callbacks via PeaksReady -> peaks_ready_handler()
    Those callbacks arrive after set_height() was called and
    the waveforms are displayed correctly.

 3. Only some peak-files are present. This can happen at
    rec-stop when the region is created.
    create_waves() directly calls create_one_wave() for available
    peaks, and schedules peaks_ready_handler() for the remainder.
    The directly created waves have zero-height.
    Since not all waves are ready, they are stored in tmp_waves.
    waves[] remains unpopulated.

The set_height() call only ever changed the height of wave[], which
resulted in hidden waveforms, until a user manually changed the
height of the track.


[1] the height is set from
```
#1 AudioStreamView::create_region_view(boost::shared_ptr<ARDOUR::Region>, bool, bool)
#2 AudioStreamView::add_region_view_internal(boost::shared_ptr<ARDOUR::Region>, bool, bool)
#3 StreamView::add_region_view(boost::weak_ptr<ARDOUR::Region>)
 ...
## PBD::Signal1 Playlist::RegionAdded()
```
2020-12-22 03:37:17 +01:00
Robin Gareus
ee1e7ad00e Clear waveform cache when rebuilding peak-files 2020-12-21 21:13:13 +01:00
Robin Gareus
241105b477 Revert "Add debug output for NSM"
This reverts commit ba9e310d4d.
2020-12-17 16:15:33 +01:00
Robin Gareus
bbc54873ae VST3: GUI d'tor re-order
We have to call close_view(), which calls IPlugView::removed()
before destroying the parent widget.

Previously ~VST3PluginUI() was called after the derived class
destroyed the owned private `_gui_widget`, `_ns_view` or x11 parent.

On windows that may lead to the hwnd of the window becoming invalid
before the call to ::removed().
2020-12-14 19:29:53 +01:00
Robin Gareus
2a011e19cb Update AxisView API: name_label is owned by the axis 2020-12-08 00:07:51 +01:00
Robin Gareus
8cbb318223 Yet another fix for VST3 default path 2020-12-05 00:11:04 +01:00
Tyler Stank
0cfee47867 Disable vertical autoscroll for UI elements where it doesn't make sense
Fixes issue 6396 as well as a few other instances where autoscroll could be annoying
2020-12-02 23:10:13 +01:00
Robin Gareus
ba9e310d4d Add debug output for NSM
Trying to track down
https://discourse.ardour.org/t/nsm-ardour-6-session-created-with-ardour-5-wont-open-correctly/105020
2020-11-26 01:29:35 +01:00
Robin Gareus
0f372e2785 Late to the party, relax 6.0 stringfreeze 2020-11-26 01:25:24 +01:00
Robin Gareus
7942897d93 VST3: cleanup, drop references (1/2)
VST3PluginInfo holds a shared_ptr reference to
VST3PluginModule. In order to cleanly unload a plugin, all
references have to be dropped.

Unloading a plugin cleanly before exit is needed in some
cases (e.g. Waves shell otherwise crashes)
2020-11-25 05:33:16 +01:00
Robin Gareus
27f0baab53 VST3: fix VST3 path customization 2020-11-24 00:32:01 +01:00
Robin Gareus
7a0263295b Allow to add notes to buttons in the prefs dialog 2020-11-24 00:31:57 +01:00
Robin Gareus
132e6f5076 The release that should never have been 2020-11-22 20:22:42 +01:00
Paul Davis
734dc78ed5 prevent possible crash in AudioClock setup 2020-11-19 17:11:48 -07:00
Robin Gareus
62a62eaeb3 VST3 resize quirks (Reason, macOS) 2020-11-20 00:05:34 +01:00
Robin Gareus
1effa1d888 Remove debug message (mac VST3 resizing) 2020-11-20 00:00:37 +01:00
Robin Gareus
7e2bb01ff1 VST3: ignore GUI size allocations before realizing the view
This fixes crashes with some VST3s when calling `onSize()` before
attaching thew view (e.g. Reason Rack Plug on macOS).
2020-11-19 23:12:52 +01:00
Robin Gareus
aef366c156 Fix AudioUnit window size for some non-resizable plugins
Some fixed size AU, do unset `autoresizesSubviews` (Apple's default
is enabled). This also results in the initial size, and position
below Ardour's toolbar to be set incorrectly.

This fixes e.g. Reason Rack Plug AU (and maybe others).
2020-11-19 23:12:52 +01:00
John Emmas
abfceea98c Add missing namespace qualifiers 2020-11-19 16:06:43 +00:00
Porrumentzio
a8d924d9e1 Update and rework Basque translation 2020-11-19 16:48:58 +01:00
Robin Gareus
ff3b23d169 More codenames, thanks Eno 2020-11-18 22:33:30 +01:00
Robin Gareus
a7a389407b NO-OP: whitespace 2020-11-18 19:33:27 +01:00
Robin Gareus
44a6d9d164 Update Export Format dialog layout
* reduce height requirement
  https://tracker.ardour.org/view.php?id=8313#c25191
* group settings sensibly
2020-11-18 19:26:32 +01:00
Robin Gareus
94af225eaf Fix window parent when using different workspaces
This affects only windows opened from the mixer window,
in case the mixer is detached and on a different workspace (desktop).

Window::init (and Dialog::init) set transient parent early on,
and it defaults to the main window (with toolbar). It needs to be
unset before presenting the window, in order to show the window
on the same workspace as the eventual transient parent.

This follows 6dc9134 and f3fbf58.
2020-11-18 16:26:36 +01:00
Robin Gareus
6dc91348d7 Fix transient parent for plugin windows w/detached mixer
This follows f3fbf58185 which unconditionally set the main window
as transient parent. However when detaching the mixer, plugins should
be transient for the detached parent window.
2020-11-16 15:47:05 +01:00
Robin Gareus
b6ae22cfed Fix script name of pre-seeded scripts (amend c2ffa07e28) 2020-11-15 00:41:24 +01:00
Robin Gareus
29b0775508 GUI: allow to enable wav/aiff tagging 2020-11-14 19:31:01 +01:00
Robin Gareus
f7cb1b0b48 LXVST2: only call effEditIdle after realizing the GUI
This fixes an issue with some plugin-wrappers, notably
ff021d0581
2020-11-14 02:49:50 +01:00