13
0
Commit Graph

27642 Commits

Author SHA1 Message Date
d42c0f2d60
Fix some more Gtk::Menu memory leaks 2019-03-08 01:44:51 +01:00
15cd1163fc
Pass stderr mode properly to vfork wrapper 2019-03-07 23:51:04 +01:00
df8097e31e
Fix mp3 export
For reasons yet to be investigated, closing stderr when using a
pipe into ffmpeg results in ffmpeg's stderr being written
verbatim in the output file.
2019-03-07 23:51:01 +01:00
7ed27e3ef7
Request for comment: Bug or feature? 2019-03-07 23:50:59 +01:00
7b96fa1c5e
Fix some Gtk::Menu memory leaks
A Gtk::manage()d widget will be deleted when its parent container
is destroyed. Top-level context menus are not inside a container and
hence need to be manually deallocated.

The solution here is to use a shared Gtk::Menu pointer that is
centrally de/re-allocated.

This works because the GUI is single-threaded and at most one
context menu is visible at a time.
2019-03-07 23:50:50 +01:00
12a415f077
Cleanup Editor/Marker context-menu
This could have caused crashes previously:
::build_range_marker_menu() may have created range_marker_menu
while the GUI wanted transport_marker_menu.
2019-03-07 23:50:46 +01:00
64e1d691ec
Prefer using RAII to suspend signals 2019-03-07 23:50:43 +01:00
3bc9281c31
Fix some Gtk::Menu related memory leaks
A Gtk::manage()d widget will be deleted when its parent container
is destroyed. Top-level context menus are not inside a container and
hence need to be manually deallocated.

This adds explicit delete calls for menus where there is a
member variable reference to the Menu.
2019-03-07 23:50:32 +01:00
204d7bf76c
Remove cruft: unused members 2019-03-07 22:25:19 +01:00
b410cd07ab
Remove unused region_edit_menu & edit-point action 2019-03-07 22:25:19 +01:00
99462a50e6 save/restore MIDI port pretty names, but prefer backend pretty name if available 2019-03-07 13:30:54 -07:00
10bc824032 selection must be enabled to allow editable columns :(( 2019-03-07 13:30:24 -07:00
d301bef742 redesign naming and reload of MIDI port information (GUI edition) 2019-03-07 12:01:27 -07:00
f7802325dc redesign naming and reload of MIDI port information (library edition) 2019-03-07 12:01:27 -07:00
8b212bfa12 a more nuanced version of the "do-not-automatically-disconnect-selection-follows-input 2019-03-07 12:01:27 -07:00
66f73f40db Fix thinko: if the entered_regionview is already part of the selection, do not treat it as a special case when splitting. 2019-03-07 09:50:00 -06:00
b774ef1e20
Remove unused fluidsynth setting (since fluidsynth 2.0) 2019-03-06 23:50:07 +01:00
ce961d73f3
Use unique midi-port names for Ardour's Dummy backend 2019-03-06 23:48:07 +01:00
8ccc45d44d
Ardour/ALSA allow multiple MIDI devices with the same name 2019-03-06 23:41:15 +01:00
210d03a477
Retain generated plugin menu
Fixes occasional crash when Menu is re-used.
PluginSelector::plugin_menu() is called every time the processor box
shows the context-menu. The provided menu needs to remain valid
regardless of usage.
2019-03-06 21:21:29 +01:00
51674b0307
Add missing newline on error message 2019-03-06 17:09:29 +01:00
a24252e0d0
Fix typo 2019-03-06 17:09:12 +01:00
Jan Lentfer
dfda5eab82 LCXL:Disable global mute/solo/recarm in device mode 2019-03-06 09:28:25 +01:00
1af123465c
Tweak session load
Listen positions are already correctly set when the route state
is restored. The Route directly uses the Config.

This skips duplicate calls to re-configure all processors on all Routes
during RCConfiguration::map_parameters() on session-load, twice
(pfl-position, listen-position)
2019-03-06 01:04:29 +01:00
883ee9c2a0
Allow to call set_state() on existing routes
Delaylines are not saved in the XML and internal-return is an
invisible processor not explicitly re-added when the state is restored.

They are [re]inserted during Route::setup_invisible_processors().
So this method need to be called after restoring processor state
(indirectly via configure_processors_unlocked as needed).

PS. During route creation this call happens explicitly and on session load
hookup_io() -> Route::output_change_handler() implicitly sets this up.
2019-03-06 00:57:49 +01:00
2bfe0c6ff7
Properly map MonitorSection state on session load 2019-03-06 00:47:59 +01:00
6a7750a55d
Tweak, optimize route setup
Speed up route creation: add_processor() takes a process-lock
and calls configure_processors() but this is done explicitly at the
end of init() already.
2019-03-06 00:03:46 +01:00
8b5437301b
Close stderr of child processes on MacOS
This fixes a bug on some modern mac systems. Related to
setup_logging() changing stderr to use ASL and write to com.apple.console.

When a forked application writes to stderr while ASL is used,
the child is terminated for some reason.
2019-03-05 22:52:53 +01:00
a390d8d3ca
Use enum for exec stderr parameter (2/2) 2019-03-05 22:49:18 +01:00
e1ffe7857f
Use enum for exec stderr parameter (1/2) 2019-03-05 22:49:15 +01:00
fdf74cf850
Enable de-click in disk-reader
This breaks auto-return and other post-transport locates until
such transport-states wait for de-click before seek().
2019-03-05 22:49:08 +01:00
f1dfc6d2a2 do not disconnect MidiPortSelection-flagged ports from everything when (MIDI track) selection changes
If the user manually connects such a port to something, then it is
up the user to disconnect it too
2019-03-04 18:23:06 -07:00
2cf57e9257
Fix recursive WriteLock crash due to signal emission
Route::processors_changed() signal connects to a same thread session-slot
Session::route_processors_changed() which can end up iterating over
Routes and Processors to re-calculate latency.
This takes a ReadLock after WriteLock, which eventually leads a duplicate
unlock and segfault.
2019-03-05 00:25:53 +01:00
bb6408d553
Make it compile again
ISO C++ forbids applying 'sizeof' to an expression of function type
2019-03-04 21:42:21 +01:00
d3657a8944 Add/remove source(s) in our MSVC project (audiographer) 2019-03-04 12:16:47 +00:00
6dad858620 remove double assignments and one debug trace output; tweak second debug trace output 2019-03-03 13:19:01 -07:00
7c820af42f debug trace output tweaks 2019-03-03 13:17:42 -07:00
cd3c72bffe remove debug output 2019-03-03 13:17:30 -07:00
033699a4cd remove conditional surrounding wait-for-master-to-catch-us logic 2019-03-03 13:16:30 -07:00
64b6ea4341 remove debug output 2019-03-03 13:15:12 -07:00
1568cd4411 do not initialize LTC timecode rate from session FPS 2019-03-03 11:39:56 -07:00
5b0d98abcd fix decision about sending MTC to be based not just on whether the transport master is locked, but whether it is external 2019-03-03 10:27:38 -07:00
564796b6c0 audioengine skip should trigger full LTC_Slave::reset(), not just feed silence to the decoder 2019-03-03 10:26:48 -07:00
920fc66540 LTC_Slave: count frames since reset 2019-03-03 10:26:22 -07:00
18f75c9f8a debug trace output tweaks (including avoiding stderr/stdout issues) 2019-03-03 10:24:02 -07:00
42f93487b5 LTC_Slave::reset() should change _current.speed back to zero 2019-03-03 10:22:22 -07:00
a000faaa47 NO-OP: brace position 2019-03-03 10:21:07 -07:00
cbc93c3487 NO-OP: brace position 2019-03-03 10:20:49 -07:00
7fd05ff051 expand scope of LTC_Slave::reset() to include more object state 2019-03-03 10:20:27 -07:00
5146d93853 fix semantics of LTC_Slave::locked() - we must have detected FPS to be considered locked 2019-03-03 10:19:45 -07:00