summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-03-06Separate pre-roll cycle calculationRobin Gareus
This is also needed when exporting.
2020-03-06Remove debug messageRobin Gareus
2020-03-05move more or less all responsibility for ShouldLoad (macOS, NSM) back into ↵Paul Davis
ARDOUR_UI
2020-03-05continue with code simplification and add comment given 4a40ff9e53Paul Davis
2020-03-05transport stop resets default_transport_speedPaul Davis
This means that using the wheel in the GUI (or equivalent) ends its effect at transport stop
2020-03-05Remove a suspected C99-ismJohn Emmas
'lower_bound()' iterates between param #1 and param #2, comparing the result with param #3 - either by making the comparison internally or by deferring to an external comparator function. Prior to C99 however, BOTH cases required param #3 to match the type being iterated. In the case of a deferred comparison, there was apparently a proposal to relax this restriction in C99, though I'm not sure if it in fact got implemented (can't find any examples of it anywhere...)
2020-03-03Fix odd right click crash on master track.Todd Naugle
To reproduce. Launch, right click in ruler area then drag down until over the master track and let go. #0 0x0000555555ba1d44 in boost::shared_ptr<ARDOUR::Route>::get() const (this=0x8) at /usr/include/boost/smart_ptr/shared_ptr.hpp:748 #1 0x0000555555ba0a2f in boost::dynamic_pointer_cast<ARDOUR::Track, ARDOUR::Route>(boost::shared_ptr<ARDOUR::Route> const&) (r=...) at /usr/include/boost/smart_ptr/shared_ptr.hpp:904 #2 0x000055555650b92b in RouteUI::track() const (this=0x0) at ../gtk2_ardour/route_ui.cc:1885 #3 0x0000555555d0b92f in Editor::popup_track_context_menu(int, int, ItemType, bool) (this= 0x555557a3efd0, button=1, time=600214966, item_type=StreamItem, with_selection=false) at ../gtk2_ardour/editor.cc:1595 #4 0x0000555555e1a4cf in Editor::button_release_handler(ArdourCanvas::Item*, _GdkEvent*, ItemType) (this=0x555557a3efd0, item= 0x555557b2fe00, event=0x7fffffffc310, item_type=StreamItem) at ../gtk2_ardour/editor_mouse.cc:1543 ....
2020-03-03Fix off by one in Lua scriptsRobin Gareus
Lua arrays (tables) start counting at one. Also `for i = a, b do .. end` is inclusive: a <= i <= b
2020-03-02Retain custom internal-send name on session re-loadRobin Gareus
2020-03-02Refactor send naming (#7905)Robin Gareus
This allows users to rename sends without enforcing a numeric bitslot number. However this prevents a user to to use "send" names that are potentially used for new sends or inserts.
2020-03-02Exclude zita-convolver from being available as external libRobin Gareus
Ardour statically links libardour against zita-convolver, this is required because it's used in plugins and available by Lua scripts. libzita-convolver has been modified to be in a custom namespace and extern global symbols have been removed. On most GNU/Linux distros system-wide default zita-convolver is not compatible nor suitable to be used as-is.
2020-03-02Micro-optimization: only recreate polarity buttons as neededRobin Gareus
2020-03-02Improve RouteUI API consistencyRobin Gareus
This is an effective NO-OP * Some methods have been re-named to improve consistency * Duplicate function calls were removed: RouteUI::set_route() already updates mute/solo MixerStrip does not have to update it again * virtual methods have been protected
2020-03-02Fix polarity invert buttons (amend d6315618da)Robin Gareus
ConfigurationChanged() is emitted after processors have been reconfigured (e.g adding/removing a plugin). The button state needs to be updated after setup. Bfore d6315618da this worked because _route->io_changed() is emitted before the processors are re-configured, and phase_control()->Changed() triggered an update after that. PS. The motivation for d6315618da are Mixbusses. They have no input channels, but a Return processor before the polarity processor.
2020-03-02Fix UI insert/send renamingRobin Gareus
This fixes an issue when trying to rename a send or insert to the current name (no-rename). ::rename_processor() checks if io_name_is_legal(), Since the current name is already in use, a numeric-suffix was added.
2020-03-02Update doxygen docRobin Gareus
Add new folders, update and alphabetically sort HAVE_[] defines. Specify that .h header files are C++ (fixes some warnings)
2020-03-02Fix some doxygen warningsRobin Gareus
2020-03-02Do not include <stdint.h> in the Ardour namespaceRobin Gareus
2020-03-01unfinished fix for handling desktop/NSM specifying session to loadPaul Davis
More work needed to fix requirement in StartupFSM that ::load_from_application_api() is called before ::start()
2020-03-02Fix previous commit (increase max, not default)Robin Gareus
2020-03-02Allow a-delay to boost output gainRobin Gareus
From #ardour IRC: > there have been a few times that I wished a-Delay could boost volume > it has an "output gain" slider, but it only subtracts. the maximum is 0db > delay is a big part of guitar solos, so a boost in the same plugin would be awesome
2020-03-01Fix Luadoc build (follow up 2e9ac80e9, 5794d21a)Robin Gareus
2020-02-29Fix order setting I/O namesRobin Gareus
IO::set_name() may fail, in case Port::set_name() fails. In that case the IOProcessor should not update its name.
2020-02-29Fix off-by-one, start "Send" names at bitslot 1 (not 2)Robin Gareus
Session::next_*_send_id() starts counting at bit 1. Probably for historical reasons (bit zero = 1).
2020-02-29no pre-release warning dialog if beyond pre0Paul Davis
2020-02-29Fix 'samples / frames' typo in PBD::stacktrace()John Emmas
2020-02-29Lua Amplifier plugin with gain-coeff ratio controlsRobin Gareus
2020-02-28Convert v5 send state-stateRobin Gareus
2020-02-28Bail out if Playlist cannot be createdRobin Gareus
This prevents later crashes. Tracks cannot exist without a playlist.
2020-02-28Display recent session-load errors in the GUIRobin Gareus
Dumping errors to stderr only is not very useful. Particularly not on Windows and MacOS. Even though a user may not be able to address the issue, this can lead to better reports vs just printing "corrupt state".
2020-02-28Allow to limit error dumpRobin Gareus
This is in preparation of displaying verbose errors to the user.
2020-02-28Ensure that regions have sources when savingRobin Gareus
Otherwise this will lead to a corrupt state: ERROR: Session: XMLNode describing a AudioRegion references an unknown source id ERROR: Session: cannot create Region from XML description. Can not load state for region ERROR: Playlist: cannot create region from XML and a track without playlist is created, resulting in a later crash. Eventually SessionPlaylists::load() needs to handle this gracefully, but this should help catch cases causing the actual issue.
2020-02-28NO-OP: whitespace, re-indentRobin Gareus
2020-02-28Fix some recursive undo removalRobin Gareus
~StatefulDiffCommand() may trigger UndoTransaction::command_death() which may delete the StatefulDiffCommand() that's just being destroyed. This depends on the signal-connection order, which is undefined. In any case when a shared_ptr<> object is being destroyed it means that all references to it are already gone. There's no need to emit drop_references from the d'tor.
2020-02-28Fix script to bypass all pluginsRobin Gareus
deactivate() hard bypassed all plugins, this made plugins with a dedicated en/disable soft-bypass option inaccessible.
2020-02-28Restore visible automation lanes (#7914)Robin Gareus
On session re-load only automation lanes with events were displayed, regardless of visibility state. This allowed for inconsistent state (menu showed them as visible even if they were not).
2020-02-28Fix double free of undo commands (amend 9e6435ff145)Robin Gareus
This fixes a case when deleting a plugin, deletes all automation undo/redo events: <UndoTransaction name="add automation event"> <MementoCommand type-name="ARDOUR::AutomationList"> ... `delete this;` calls the d'tor which emits drop_references(), that leads to UndoTransaction::command_death() destroying the object, whichh causes a double free.
2020-02-28Fix duplicate control-ID when copying processors or proc stateRobin Gareus
Ideally we'd use a "retain ID when present", so that GUI object state of automation lanes and inline controls will be retained.
2020-02-27Fix libwebsockets compatRobin Gareus
LWS_CALLBACK_HTTP_CONFIRM_UPGRADE is only available since v3.1.0
2020-02-27Dialog default to cancel (#7915)Robin Gareus
There are various ways to cancel a dialog. Only checking for RESPONSE_CANCEL is not sufficient. e.g. Esc causes a delete-event. * Gtk::RESPONSE_CLOSE * Gtk::RESPONSE_REJECT * Gtk::RESPONSE_DELETE_EVENT * Gtk::RESPONSE_CANCEL * Gtk::RESPONSE_NO Among others this fixes "Clicking session > open, then hitting ESC opens the currently selected folder and session"
2020-02-27Punch/Loop GUI control sensitivityRobin Gareus
2020-02-27Fix removal of punch rangeRobin Gareus
set_auto_punch_location() is a NO-OP when there's no punch range. This disconnects `punch_connections`, clears session-events, and emits auto_punch_location_changed().
2020-02-27Add signals to indicate Punch/Loop constraintsRobin Gareus
This is in preparation for GUI sensitivity of Loop and Punch actions.
2020-02-27Avoid occasional response delay when handling HTTP in the websockets surfaceLuciano Iam
2020-02-27Make previous commit 81ecc2b compatible with libwebsockets==2Luciano Iam
2020-02-27Gracefully reject HTTP requests reaching the websockets surfaceLuciano Iam
2020-02-27Prevent concurrent loop and punch recording (backend)Robin Gareus
This also prevents switching between punch-in/out record and looping without transport-stop.
2020-02-26Add example Lua DSP script with multiple MIDI outputsR
2020-02-26Add support for Lua DSP scripts with multiple MIDI outputsR
2020-02-26And removing even more unused forward declarations.André Nusser