summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
2019-03-23Remove chicken/egg d'torRobin Gareus
Session::Controllables is a shared_ptr<> list. As long as the session exists the Controllables will be around. Destroyed(*) can only be called after the session is destroyed and releases the shared_ptr<> NB. this code had a nice hack to construct a "shared_from_this" workaround. For future reference: struct null_deleter { void operator()(void const *) const {} }; boost::shared_ptr<Controllable>(c, null_deleter())
2019-03-23Re-add Controllable registryRobin Gareus
To facilitate a central registry with weak/shared pointer lookup, enable_shared_from_this<ARDOUR::AutomationControl> was migrated to enable_shared_from_this<PBD::Controllable> The main (and only) user is generic-midi surface's state interface :(
2019-03-22Update cAutomationControl values when copying stateRobin Gareus
This fixes a bug that can result in inconsistent session-state when copying plugin state from one plugin to another (via drag/drop ProcessorBox::object_drop, LINK). The underlying plugin state and settings are copied, port _shadow_data is updated, and ::get_parameter() shows the correct new value. However the Controllable was not updated. On Session save/restore the value may have be lost or was inconsistently restored.
2019-03-22Prevent crashes when copying LV2 plugin stateRobin Gareus
LV2 plugin state-loading is generally safe to perform concurrently with running the plugin (as per LV2 spec). However concurrent run() is not.
2019-03-22NO-OP: reduce scopeRobin Gareus
2019-03-21Add ultra-insane CBR 320kbit mp3 qualityRobin Gareus
2019-03-20working but still confusing fix for ensuring that playlist shared-with data ↵Paul Davis
is correct when duplicating tracks. Confusing because orig_track_id is still being switched to the NEW track, and shared_with refers to the OLD one
2019-03-20fix Session::new_route_from_template() to use playlist IDs and not names. ↵Paul Davis
This also fixes #7674
2019-03-20remove "rename_playlist" argument from Route::set_name_in_state().Paul Davis
We no longer find playlists by name when constructing tracks, so the name of the playlist is not relevant
2019-03-19do not create a (throwaway) playlist during track creationPaul Davis
2019-03-19Fix incorrectly saved un-used playlistsRobin Gareus
This addresses issues with session-cleanup and region-cleanup in some sessions. The root-cause why some unused playlists were saved in the session XML under <Playlists> and not <UnusedPlaylists> is not known. Early 6.0-pre did incorrect reference counting, but also older sessions had this issue. Perhaps due to ambiguities of matching playlists by name in 5.x or session-format changes 3.x .. 5.x.
2019-03-19Add some more playlist Lua bindingsRobin Gareus
2019-03-19Add Lua bindings for SessionPlaylistsRobin Gareus
2019-03-19Add convenience methods (mainly for scripting)Robin Gareus
2019-03-19Remove global Session::playlists variable, use getter method (1/2)Robin Gareus
Global variables that can written by anyone are to be avoided. This also simplifies exposing SessionPlaylists as Lua bindings.
2019-03-19Fix Playlist refcount when deleting trackRobin Gareus
Both Disk-reader and Disk-writer use the same playlist. ARDOUR::Track::use_playlist() sets it for both Disk-IO processors, so it needs to be released by both on destruction.
2019-03-18compute correct size for working buffers used by compound regions during ↵Paul Davis
disk refills
2019-03-18NO-OP: Use API to set/test state-of-the-stateRobin Gareus
2019-03-17remove debug outputPaul Davis
2019-03-18Avoid calling rt-methods from non-rt contextRobin Gareus
Since upcoming state-machine transitions are done in rt-context via ARDOUR::Session::process_event () they should all in rt-context. set_session() is called from the UI thread (and the process-lock wasn't even taken)
2019-03-17Temporary change to make auto-return work with broken transport-logicRobin Gareus
Revert this once transport state machine waits for de-click! This causes audible-clicks on stop, but prevents audible artifacts on LocateRoll with the current transport-control-logic.
2019-03-17Speed up session deletionRobin Gareus
No need to reconfigure routes due to removal of monitor or aux send/return. The processors will be removed with the route.
2019-03-17Remove unneeded calls to configure_processors during session-loadRobin Gareus
Those are superseded by b890cf73ad, which is done after all IOChanges have been processed.
2019-03-17Prepare to configure procs only once - fix missing pannersRobin Gareus
During session load, all earlier configure_processors() calls were useless and not taking I/O into account! The Delivery ::pan_out() needs _output I/O ports in order to correctly report the correct port-count! This worked in earlier versions because Config->map_parameters() triggered [two] processor re-configs via ::listen_position_changed(). That behavior was changed in 1af123465c290664
2019-03-17NO-OP: prefer to use API to check session-stateRobin Gareus
2019-03-15Amend 883ee9c2, setup required invisible processorRobin Gareus
This fixes a potential silent master-bus when re-loading a session ("mains_out" may be skipped).
2019-03-14Unused skeleton of the transport state-machineRobin Gareus
Simple test/example code. Eventually this is to replace Session::process_event() and Session::realtime_*() methods are to become transition actions.
2019-03-13NO-OP: re-order code, collect realtime transport actionsRobin Gareus
2019-03-12Change region-equivalence enum to accommodate new mode.Ben Loftis
2019-03-12Change default RE to use Layer+TimeRobin Gareus
2019-03-12Add a time+layer equivalence checkRobin Gareus
This is more useful than exact_equivalent() since _start offset may not match in some cases (compounds, import, record with different capture latencies). However shared group editing (range, copy/paste) does result in consistent layers and matching position+length.
2019-03-11Use VST's print_parameter() when applicable.Robin Gareus
2019-03-11Remove generic parameter-printerRobin Gareus
This has been superseded by value_as_string() along with meta-data from parameter-descriptor, which is supported by all standards, except VST.
2019-03-11Remove cruft, unused variableRobin Gareus
2019-03-08do not save MIDI port info unnecessarilyPaul Davis
2019-03-08on engine (re)start, just mark MIDI port info dirtyPaul Davis
2019-03-08add runtime warning messagePaul Davis
2019-03-08drop silly canonical name stuff from MIDI port info, and just store backend ↵Paul Davis
name (libs version
2019-03-07rework name/canonical-name stuff for MIDI port infoPaul Davis
2019-03-07Fix mp3 exportRobin Gareus
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-07save/restore MIDI port pretty names, but prefer backend pretty name if availablePaul Davis
2019-03-07redesign naming and reload of MIDI port information (library edition)Paul Davis
2019-03-07a more nuanced version of the ↵Paul Davis
"do-not-automatically-disconnect-selection-follows-input
2019-03-06Remove unused fluidsynth setting (since fluidsynth 2.0)Robin Gareus
2019-03-06Add missing newline on error messageRobin Gareus
2019-03-06Fix typoRobin Gareus
2019-03-06Tweak session loadRobin Gareus
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-06Allow to call set_state() on existing routesRobin Gareus
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-06Tweak, optimize route setupRobin Gareus
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-05Use enum for exec stderr parameter (1/2)Robin Gareus