summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
AgeCommit message (Collapse)Author
2014-09-15tentative fix for losing (empty) MIDI files. Incomplete because testing ↵Paul Davis
shows issues with some workflows
2014-06-02substantive changes to the logic and safety for naming of (audio/MIDI) ↵Paul Davis
sources, especially when created via import
2014-05-29back port 6576105 from cairocanvas as fix for data loss/file deletionPaul Davis
2014-04-14merge 5764970709f15e85ec30c9cea89c318eb8114c58 from cairocanvas as final(?) ↵Paul Davis
change related to data loss
2014-04-14check whether a source with the same path exists in session list not just on ↵Paul Davis
disk. This is intended to catch a potential wierd condition where a source exists as a stub, but has not yet been written to disk, and then a new source is created with the same path. Currently it is not understood how/when this might happen
2014-04-14further code simplification and rationalization related to MIDI source/file ↵Paul Davis
renaming
2014-04-14dramatic change in logic and naming for operations related to adding a MIDI ↵Paul Davis
region on demand and cloning/unlinking Existing code would cause data loss due to creation of two Source objects referring the same path, one with removable flags and one without. Careful code review suggested a variety of thinkos, function naming problems and other confusion that caused this. I have tried ot extensively comment what is going on with these operations, because it is one key area in which MIDI differs from audio: with audio, capture is the only way to add a new audio region, but for MIDI there are GUI input events that can add a new region.
2014-04-14redesign technique for naming/creating regions for MIDI clone (or other ↵Paul Davis
non-capture driven MIDI region creation operations). See comments in Session::new_midi_source_name() for details.
2014-01-19lock source list when destroying it.Robin Gareus
2014-01-16allow auditioning via the monitor section to work.Paul Davis
Ideally, we would feed the monitor section via an internal (aux) send/return, but this is an improvement over what we had before
2014-01-03improve clarity of logic parenthesesPaul Davis
2014-01-02mantis 0005805derAbgang
2013-10-23make fixed IO ports untranslatableRobin Gareus
Outdated and fuzzy translations of MTC, MTC, LTC, etc caused various issues (duplicate jack port names, exceptions, crashes). Functionality should not be affected by translations (for now).
2013-10-24New routes are placed after highest selected route.nick_m
2013-10-21Unify editor / mixer ordering.nick_m
2013-10-18fix missing Click outputs for new sessionsPaul Davis
2013-10-02fix up crash caused by changes in object creation order and setting the ↵Paul Davis
state of the click IO object
2013-09-21likely fix for creating new sessions from templatesPaul Davis
2013-09-20Revert "actually load new state after creating a session."Paul Davis
This reverts commit 914ba475de48f72e57bb6ac8a81888ad71cea7fa. Unclear why I applied this or what it was supposed to do. A new session has no state.
2013-09-20Merge branch 'master' of https://github.com/nmains/ardourPaul Davis
2013-09-19switch from JACK_Slave to Engine_SlavePaul Davis
2013-09-18actually load new state after creating a session.nick_m
2013-09-16more session construction order changes, and removal of ↵Paul Davis
n_physical_{inputs,outputs} members which were (a) not initialized early enough (b) not used anywhere except monitor bus connection. Things almost make sense now.
2013-09-16fix missing initialization of two Session members, which fixes a crash ↵Paul Davis
during quit-without-finished-session
2013-09-16fix ordering in session construction so that new sessions and existing ones ↵Paul Davis
both work
2013-09-12don't stop metering thread when session is removed; move engine-setup code ↵Paul Davis
into its own method. sorry, ardour build-from-source folk :)
2013-09-12lots of changes to auto-start (and stop) the backend for latency ↵Paul Davis
measurements, and continuing work on the session construction/engine configuration flow
2013-09-12change names, add comment, improve return type to avoid extra call to get ↵Paul Davis
EngineControl::State*
2013-09-11*maybe* fix issues with zombification during session loadingPaul Davis
2013-09-11fix handling of new sessionPaul Davis
defer save state till after everything done in post_engine_init() is complete.
2013-09-10many changes relating to session construction and audioengine interactionPaul Davis
every session member is now initialized using C++ constructor syntax session construction reordered to clarify the split(s) between work where the engine is not relevant and work where is it is. this split is still not 100% obvious, but is enormously clearer than previously. if engine/backend are not running as session is created, and the SR of the sample rate is known, attempt to force backend to that value.
2013-09-09start reordering of Session initializationPaul Davis
the goal is to allow a clear demarcation of where we need the audioengine and have existing data parameters (e.g. sample rate) for the session so that we can coerce the engine (if possible) to match to session values. also, to rationalize construction even more and use C++ constructor syntax as much as possible.
2013-09-09move engine dialog from a widget to an actual dialog; emit ↵Paul Davis
Session::AudioEngineSetupRequired when loading a session if it is necessary
2013-09-05move MidiPortManager from AudioEngine to SessionPaul Davis
This makes the responsibilities and ownership of non-Route related MIDI ports more clear, and removes a few wierd bits of code. It also ensures that open/close/open on the same session will retain connections for those MIDI ports
2013-08-09more purging of JACK as an explicit name from libardourPaul Davis
2013-08-07major redesign of MIDI port heirarchy and management (part 2)Paul Davis
2013-08-05fix conflicts after merge with masterPaul Davis
2013-08-01full compilation and linking (coding not finished, will not run)Paul Davis
2013-08-01use zeroed scratch buffers for "silent" plugin runsRobin Gareus
Plugins rewrite the buffer data in-place and some plugins can produce output even when fed with silence. Hence, during a PluginInsert::silence() run a plugin can inject data into the "silent" buffers which causes side-effects. Kudos to Chris 'oofus' Goddard for finding this issue.
2013-07-30use dedicated buffers for route (and track)Robin Gareus
"scratch buffers are by definition scratch and their contents are undefined at all times" "silent buffers are by definition all-zero and should not be used for real data" But track & route were using those for actual data; plugins (which may run in the same thread and may get the same buffers) use them for scratch thereby overwriting real data. In particular get_silent_buffers() (used by LadspaPlugin::connect_and_run) clears the buffer which can holds real data: e.g. via Route::passthru_silence() -> plugin1 -> plugin2 (clears output of plugin1)
2013-07-25most of libardour now actually compilesPaul Davis
2013-07-10Revert "show track-ID in mixer" and "...towards unique track numbers."Robin Gareus
This reverts commits: ca54ea2b462869bfd9254a493d073ca1e9ad4b8e. 9e87e058e26b87013e89ddf5d3b7358d50024d60.
2013-07-10...towards unique track numbers.Robin Gareus
2013-05-17initialize ltc_enc_buf to 0 to fix crash in ltc_tx_cleanup at startupjdekozak
2013-04-15Revert "option to ignore feedback detection - /i know what i'm doing/ mode."Robin Gareus
This reverts commit e17f75b351356279778e4ea4adbb6c0d544ba755.
2013-04-15option to ignore feedback detection - /i know what i'm doing/ mode.Robin Gareus
This currently only has effect if the loop connection is made/unmade while the option was set/unset. Toggling the option itself won't trigger a graph re-order
2013-04-06rename Route::is_hidden() to Route::is_auditioner() and Route::Hidden to ↵Paul Davis
Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit
2013-04-01fix #5424: routes created from templates do not get names based on the ↵Paul Davis
user-supplied text from the add route dialog
2013-03-31Make sure every imported file is copied to the session pathRoy Vegard Ovesen
2013-03-30fix up some confusion with filesources' _origin and _file_is_new members. if ↵Paul Davis
_origin is set, it means that the file is "external" to the session (aka "embedded") and for some purposes this is more significant than _file_is_new. rename SourceFactory::createReadable() to ::createExternal() to more clearly indicate its purpose; remove never-supplied "origin" argument from SourceFactor::createWritable(). Fixes problems caused by 864ce8f0