Paul Davis [Sat, 9 Mar 2019 00:51:00 +0000 (17:51 -0700)]
do not save MIDI port info unnecessarily
Paul Davis [Sat, 9 Mar 2019 00:50:32 +0000 (17:50 -0700)]
on engine (re)start, just mark MIDI port info dirty
Paul Davis [Sat, 9 Mar 2019 00:08:29 +0000 (17:08 -0700)]
add runtime warning message
Paul Davis [Sat, 9 Mar 2019 00:04:43 +0000 (17:04 -0700)]
avoid crazy levels of work when MIDI Port Info preferences panel is not visible
Paul Davis [Fri, 8 Mar 2019 19:10:32 +0000 (12:10 -0700)]
drop silly canonical name stuff from MIDI port info, and just store backend name (GUI version)
Paul Davis [Fri, 8 Mar 2019 19:10:22 +0000 (12:10 -0700)]
drop silly canonical name stuff from MIDI port info, and just store backend name (libs version
Paul Davis [Fri, 8 Mar 2019 04:58:04 +0000 (21:58 -0700)]
rework name/canonical-name stuff for MIDI port info (GUI edition)
Paul Davis [Fri, 8 Mar 2019 04:57:53 +0000 (21:57 -0700)]
rework name/canonical-name stuff for MIDI port info
Olivier Humbert [Fri, 8 Mar 2019 01:43:34 +0000 (02:43 +0100)]
French translation update
Robin Gareus [Fri, 8 Mar 2019 00:53:55 +0000 (01:53 +0100)]
Reduce #includes - avoid ardour_ui.h
Robin Gareus [Fri, 8 Mar 2019 00:44:30 +0000 (01:44 +0100)]
Fix some more Gtk::Menu memory leaks
Robin Gareus [Thu, 7 Mar 2019 20:40:14 +0000 (21:40 +0100)]
Pass stderr mode properly to vfork wrapper
Robin Gareus [Thu, 7 Mar 2019 20:39:51 +0000 (21:39 +0100)]
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.
Robin Gareus [Thu, 7 Mar 2019 16:00:47 +0000 (17:00 +0100)]
Request for comment: Bug or feature?
Robin Gareus [Thu, 7 Mar 2019 16:02:12 +0000 (17:02 +0100)]
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.
Robin Gareus [Thu, 7 Mar 2019 20:24:15 +0000 (21:24 +0100)]
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.
Robin Gareus [Thu, 7 Mar 2019 15:42:04 +0000 (16:42 +0100)]
Prefer using RAII to suspend signals
Robin Gareus [Thu, 7 Mar 2019 15:40:16 +0000 (16:40 +0100)]
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.
Robin Gareus [Thu, 7 Mar 2019 15:07:02 +0000 (16:07 +0100)]
Remove cruft: unused members
Robin Gareus [Thu, 7 Mar 2019 15:04:05 +0000 (16:04 +0100)]
Remove unused region_edit_menu & edit-point action
Paul Davis [Thu, 7 Mar 2019 20:30:54 +0000 (13:30 -0700)]
save/restore MIDI port pretty names, but prefer backend pretty name if available
Paul Davis [Thu, 7 Mar 2019 20:30:24 +0000 (13:30 -0700)]
selection must be enabled to allow editable columns :((
Paul Davis [Thu, 7 Mar 2019 19:01:03 +0000 (12:01 -0700)]
redesign naming and reload of MIDI port information (GUI edition)
Paul Davis [Thu, 7 Mar 2019 19:00:51 +0000 (12:00 -0700)]
redesign naming and reload of MIDI port information (library edition)
Paul Davis [Thu, 7 Mar 2019 02:46:51 +0000 (19:46 -0700)]
a more nuanced version of the "do-not-automatically-disconnect-selection-follows-input
Ben Loftis [Thu, 7 Mar 2019 15:50:00 +0000 (09:50 -0600)]
Fix thinko: if the entered_regionview is already part of the selection, do not treat it as a special case when splitting.
Robin Gareus [Wed, 6 Mar 2019 22:50:07 +0000 (23:50 +0100)]
Remove unused fluidsynth setting (since fluidsynth 2.0)
Robin Gareus [Wed, 6 Mar 2019 22:48:07 +0000 (23:48 +0100)]
Use unique midi-port names for Ardour's Dummy backend
Robin Gareus [Wed, 6 Mar 2019 22:41:15 +0000 (23:41 +0100)]
Ardour/ALSA allow multiple MIDI devices with the same name
Robin Gareus [Wed, 6 Mar 2019 20:21:29 +0000 (21:21 +0100)]
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.
Robin Gareus [Wed, 6 Mar 2019 16:09:29 +0000 (17:09 +0100)]
Add missing newline on error message
Robin Gareus [Wed, 6 Mar 2019 16:09:12 +0000 (17:09 +0100)]
Fix typo
Jan Lentfer [Wed, 6 Mar 2019 08:12:08 +0000 (09:12 +0100)]
LCXL:Disable global mute/solo/recarm in device mode
Robin Gareus [Wed, 6 Mar 2019 00:01:03 +0000 (01:01 +0100)]
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)
Robin Gareus [Tue, 5 Mar 2019 23:57:49 +0000 (00:57 +0100)]
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.
Robin Gareus [Tue, 5 Mar 2019 23:47:59 +0000 (00:47 +0100)]
Properly map MonitorSection state on session load
Robin Gareus [Tue, 5 Mar 2019 23:03:46 +0000 (00:03 +0100)]
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.
Robin Gareus [Tue, 5 Mar 2019 18:11:10 +0000 (19:11 +0100)]
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.
Robin Gareus [Tue, 5 Mar 2019 18:06:29 +0000 (19:06 +0100)]
Use enum for exec stderr parameter (2/2)
Robin Gareus [Tue, 5 Mar 2019 18:06:15 +0000 (19:06 +0100)]
Use enum for exec stderr parameter (1/2)
Robin Gareus [Tue, 5 Mar 2019 13:44:47 +0000 (14:44 +0100)]
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().
Paul Davis [Tue, 5 Mar 2019 01:23:06 +0000 (18:23 -0700)]
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
Robin Gareus [Mon, 4 Mar 2019 23:25:53 +0000 (00:25 +0100)]
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.
Robin Gareus [Mon, 4 Mar 2019 20:42:21 +0000 (21:42 +0100)]
Make it compile again
ISO C++ forbids applying 'sizeof' to an expression of function type
John Emmas [Mon, 4 Mar 2019 12:16:47 +0000 (12:16 +0000)]
Add/remove source(s) in our MSVC project (audiographer)
Paul Davis [Sun, 3 Mar 2019 20:19:01 +0000 (13:19 -0700)]
remove double assignments and one debug trace output; tweak second debug trace output
Paul Davis [Sun, 3 Mar 2019 20:17:42 +0000 (13:17 -0700)]
debug trace output tweaks
Paul Davis [Sun, 3 Mar 2019 20:17:30 +0000 (13:17 -0700)]
remove debug output
Paul Davis [Sun, 3 Mar 2019 20:16:30 +0000 (13:16 -0700)]
remove conditional surrounding wait-for-master-to-catch-us logic
Paul Davis [Sun, 3 Mar 2019 20:15:12 +0000 (13:15 -0700)]
remove debug output
Paul Davis [Sun, 3 Mar 2019 18:39:56 +0000 (11:39 -0700)]
do not initialize LTC timecode rate from session FPS
Paul Davis [Sun, 3 Mar 2019 17:27:38 +0000 (10:27 -0700)]
fix decision about sending MTC to be based not just on whether the transport master is locked, but whether it is external
Paul Davis [Sun, 3 Mar 2019 17:26:48 +0000 (10:26 -0700)]
audioengine skip should trigger full LTC_Slave::reset(), not just feed silence to the decoder
Paul Davis [Sun, 3 Mar 2019 17:26:22 +0000 (10:26 -0700)]
LTC_Slave: count frames since reset
Paul Davis [Sun, 3 Mar 2019 17:24:02 +0000 (10:24 -0700)]
debug trace output tweaks (including avoiding stderr/stdout issues)
Paul Davis [Sun, 3 Mar 2019 17:22:22 +0000 (10:22 -0700)]
LTC_Slave::reset() should change _current.speed back to zero
Paul Davis [Sun, 3 Mar 2019 17:21:07 +0000 (10:21 -0700)]
NO-OP: brace position
Paul Davis [Sun, 3 Mar 2019 17:20:49 +0000 (10:20 -0700)]
NO-OP: brace position
Paul Davis [Sun, 3 Mar 2019 17:20:27 +0000 (10:20 -0700)]
expand scope of LTC_Slave::reset() to include more object state
Paul Davis [Sun, 3 Mar 2019 17:19:45 +0000 (10:19 -0700)]
fix semantics of LTC_Slave::locked() - we must have detected FPS to be considered locked
Paul Davis [Sun, 3 Mar 2019 17:19:06 +0000 (10:19 -0700)]
fix initialization order
Paul Davis [Sun, 3 Mar 2019 17:17:46 +0000 (10:17 -0700)]
rename LTC_Slave::prev_sample to prev_frame, correcting s/frame/sample/ changes
Paul Davis [Sun, 3 Mar 2019 17:12:08 +0000 (10:12 -0700)]
removed _locked property from TransportMaster (it's a method, not a property)
Paul Davis [Sun, 3 Mar 2019 16:59:05 +0000 (09:59 -0700)]
remove ill-conceived use-session-timecode-format option
Robin Gareus [Sat, 2 Mar 2019 13:39:10 +0000 (14:39 +0100)]
Add GUI option to include session-meta-data when exporting mp3
Robin Gareus [Sat, 2 Mar 2019 13:38:19 +0000 (14:38 +0100)]
FFmpeg/MP3 export supports tagging
Robin Gareus [Sat, 2 Mar 2019 13:32:54 +0000 (14:32 +0100)]
Remove another unused include
Robin Gareus [Fri, 1 Mar 2019 18:02:38 +0000 (19:02 +0100)]
Show VCA pane when a new VCA is created.
Robin Gareus [Fri, 1 Mar 2019 17:56:56 +0000 (18:56 +0100)]
Add a signal to indicate VCA creation
As opposed to VCAAdded this is not emitted when re-loading a session
and only emitted when a user creates a new VCA.
Robin Gareus [Fri, 1 Mar 2019 17:44:52 +0000 (18:44 +0100)]
Revert "Show VCA pane whan adding a VCA"
This reverts commit
9a0260148d7c582037bdc13aab6b412379638ab3.
Robin Gareus [Fri, 1 Mar 2019 17:00:11 +0000 (18:00 +0100)]
Show VCA pane whan adding a VCA
Robin Gareus [Fri, 1 Mar 2019 16:48:46 +0000 (17:48 +0100)]
Prefix an asterisk to indicate plugin replication
This saves space compared to "(NxN) ", especially with narrow
mixer-strips
Robin Gareus [Fri, 1 Mar 2019 16:43:44 +0000 (17:43 +0100)]
Replicated plugin instances may or may not be mono
Robin Gareus [Fri, 1 Mar 2019 15:51:08 +0000 (16:51 +0100)]
GUI updates to handle monitor-section changes
This fixes various MS related action sensitivity issues, as well
as action-states.
Also manually adding a monitor-section to a session now always
immediately shows it, regardless of prior ToggleMonitorSection
visibility.
Robin Gareus [Fri, 1 Mar 2019 15:46:08 +0000 (16:46 +0100)]
Update scripts, monitor-section API change
Robin Gareus [Fri, 1 Mar 2019 15:45:42 +0000 (16:45 +0100)]
Revert Monitor-Section to be per session
This partially reverts
639dff3a7c7. When loading a session,
the monitor-bus that was saved with the session is used.
This changes semantics of the monitor-section/config.
Config::set_use_monitor_bus(bool) is used to initiate a change!
Notification about the change is sent asynchronously by
Session::MonitorBusAddedOrRemoved
It is no longer possible to directly call add/remove_monitor_section()
and leave the session + config in an inconsistent state.
Robin Gareus [Fri, 1 Mar 2019 14:59:41 +0000 (15:59 +0100)]
NO-OP: whitespace
Robin Gareus [Fri, 1 Mar 2019 14:51:17 +0000 (15:51 +0100)]
Don't use c99 (amend
959947e7f84a)
John Emmas [Fri, 1 Mar 2019 08:40:18 +0000 (08:40 +0000)]
Add/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Fri, 1 Mar 2019 08:39:50 +0000 (08:39 +0000)]
Add/remove source(s) in our MSVC project (libardour)
Paul Davis [Fri, 1 Mar 2019 00:18:08 +0000 (17:18 -0700)]
simplifications to the logic and additional comments for code that handles auto-return at transport stop
Paul Davis [Thu, 28 Feb 2019 23:46:42 +0000 (16:46 -0700)]
auto-return is still available if using JACK transport
Robin Gareus [Thu, 28 Feb 2019 23:52:36 +0000 (00:52 +0100)]
Remove unused RulerType
Robin Gareus [Thu, 28 Feb 2019 22:57:44 +0000 (23:57 +0100)]
NO-OP: whitespace
Robin Gareus [Thu, 28 Feb 2019 22:57:32 +0000 (23:57 +0100)]
Abort when Action cast failed
Previously the action-manager only called ::abort() when
an action could no be found. This add a further restriction
that the expected class must match.
Robin Gareus [Thu, 28 Feb 2019 22:54:42 +0000 (23:54 +0100)]
Consolidate ToggleAction cast, use new API
Furthermore we can assume that all Actions are registered and
Unregistered actions will ::abort() execution.
Robin Gareus [Thu, 28 Feb 2019 21:56:35 +0000 (22:56 +0100)]
Initialize per session instant state
Per session (instant.xml) GUI options do not have a sigc::slot<> backed
configuration interface to initialize the Actions.
This fixes a first-time start issue (no instant.xml) where GUI panes
may be visible (default) while the actions are "off" (default).
This is a tentative solution, instant.xml backed ToggleAction
initialization needs to be consolidated somehow.
Robin Gareus [Thu, 28 Feb 2019 20:30:45 +0000 (21:30 +0100)]
x-fade uses cairo-generated icons, remove XPM
Robin Gareus [Thu, 28 Feb 2019 19:56:23 +0000 (20:56 +0100)]
NO-OP: whitespace (remove vi modelines)
Robin Gareus [Thu, 28 Feb 2019 19:40:45 +0000 (20:40 +0100)]
Consolidate gdither noise code
Robin Gareus [Thu, 28 Feb 2019 17:52:10 +0000 (18:52 +0100)]
Amazing PCM byte/array convert functions, unused.
Robin Gareus [Thu, 28 Feb 2019 17:41:57 +0000 (18:41 +0100)]
The end of long and winding "road to compiling"
cdc2d055f
Robin Gareus [Thu, 28 Feb 2019 17:30:06 +0000 (18:30 +0100)]
Remove unused RDF in RIFF prototype
Robin Gareus [Thu, 28 Feb 2019 17:28:44 +0000 (18:28 +0100)]
Remove even more cruft
http://lv2plug.in/ns/dev/host-info# doesn't exist, and nobody needs
a config.guess from 2005 :)
Robin Gareus [Thu, 28 Feb 2019 17:21:05 +0000 (18:21 +0100)]
Move bug-tool into the Python Museum
Robin Gareus [Thu, 28 Feb 2019 17:12:44 +0000 (18:12 +0100)]
Remove ancient, unmaintained xcode project files
Robin Gareus [Thu, 28 Feb 2019 17:04:42 +0000 (18:04 +0100)]
Remove cruft, unused files
Robin Gareus [Thu, 28 Feb 2019 17:00:08 +0000 (18:00 +0100)]
Clean up remnants from a half eaten apple
Robin Gareus [Thu, 28 Feb 2019 03:15:37 +0000 (04:15 +0100)]
Add phase labels -180..180 deg for analysis display
Robin Gareus [Thu, 28 Feb 2019 02:43:22 +0000 (03:43 +0100)]
NO-OP: whitespace