summaryrefslogtreecommitdiff
path: root/libs/ardour/session_state.cc
AgeCommit message (Collapse)Author
2016-09-15Use g_rename() instead of ::rename() in Session::cleanup_sourcesTim Mayberry
The paths are in UTF-8 encoding and ::rename expects paths in the system codepage encoding so ::rename will fail for any paths that contain characters that aren't in the system codepage. This fixes Flush Wastebasket on Windows where paths contain characters that aren't in the system codepage(usually most non-ascii characters).
2016-09-14Check a return value from 'g_stat()'John Emmas
Some Mixbus users (on Windows) have reported seeing ludicrously high figures for the amount of disk space that'll be recovered if they choose to clean up unused sources. I can't see anything obviously wrong in Ardour's code - except for one situation where we don't check a return value after calling 'g_stat()'. On Windows, the relevant path should be (hopefully!) in UTF8 format and the first thing that g_stat() does is to convert it to UTF16. If that conversion fails for some reason, g_stat() will return an error status and statbuf will be uninitialized - but at the moment, we're not checking this. As an experiment, let's check the returned value and find out if these user reports go away. Unfortunately, if it does fix the problem then we've got an even bigger problem - because somehow, a Windows user can create source files with invalid names which can't be later deleted!!
2016-09-07Fix incorrect estimate of future revision.nick_m
2016-09-07Load midi region length and start correctly in sessions modified by v5.0 -> ↵nick_m
5.3-41
2016-08-17do not allow undo/redo while actively recordingPaul Davis
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-12once the user has explicitly set the session range end, playlist/range ↵Paul Davis
changes do not move it. The user may drag the marker, edit in the Location UI, or use nudge, to set the end
2016-06-28changes in logic used by source cleanup to avoid endless recursion in ↵Paul Davis
sessions with deeply nested/recursive compound regions. This also fixes some potentially dangerous cleanup logic related to two sources with the same name (but different paths)
2016-06-26Enable build for FreeBSD (part 1/2)Robin Gareus
Adopted from Michael Beer -- GH pull-request #232 with minor changes: * rebased on master, * removed trailing whitespace, * don't explicitly change saved configuration defaults (wscript) * moved sys/wait (WNOHANG) to header include * separate changes in GUI and lib
2016-06-10noop: comment fix.Paul Davis
2016-06-06remove incorrect allocation of a second VCAManager in a session.Paul Davis
Fixes warning about a SessionHandleRef at session close
2016-06-01save version string with session for informational purposesRobin Gareus
2016-05-31fix SNAFU in which Stripable::rec_enable_control() was incorrectly defined ↵Paul Davis
as ::recenable_control() Make Mackie support code use the Stripable to access the rec-enable control while we're here
2016-05-31improve/extend Session::controllable_by_descriptor()Paul Davis
2016-05-31remove debug outputPaul Davis
2016-05-31move ControllableDescriptor from libpbd to libardour; add support for ↵Paul Davis
describing VCAs
2016-05-31first vaguely working version using PresentationInfoPaul Davis
remote control ID and "order keys" have been removed.
2016-05-31save and restore vca assignmentsPaul Davis
2016-05-31change API of Controllable::Changed signal to include (from_self, ↵Paul Davis
GroupControlDisposition) This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
2016-05-31don't increment actual VCA counter when saving session statePaul Davis
2016-05-31add required headerPaul Davis
2016-05-31save+restore VCA counter value across instancesPaul Davis
2016-05-31save/restore VCAManager statePaul Davis
2016-05-31Session HAS-A VCAManagerPaul Davis
2016-05-27Tempo ramps - update midi regions and locations when dragging tempo.nick_m
- also make locations and regions use a double beat rather than bbt for musical position.
2016-05-07make boost shared_ptr debugging a little easier to turn on/offPaul Davis
2016-05-07a few strategic LocaleGuards..Robin Gareus
..to prevent switching forth and back during individual ::state(), ::set_state() when loading/saving the session or locating.
2016-05-07Revert "Add a global state localeguard (and one for route templates)"Robin Gareus
This reverts commit 2b7a047e92bc5ebe3287860ff9c9f2fb0acb193c.
2016-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-07Add a global state localeguard (and one for route templates)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-04-24plug some memory leaks in libardourRobin Gareus
2016-04-18add notification if Engine Rate changes and mismatches session's SRRobin Gareus
2016-04-18never ever change sample-rate saved with the session after creation.Robin Gareus
2016-04-12add a new counter (for sidechain numbering)Robin Gareus
2016-04-10expose Undo Commands to LuaRobin Gareus
Some trickery is needed here to manage object lifetimes and multiple inheritance.
2016-04-08improve elapsed time readability for large numbers.Robin Gareus
2016-04-08Profile Session::save_stateRobin Gareus
2016-02-23Implement Lua session-scriptsRobin Gareus
2016-02-22add syntax and scaffolding for MIDI binding maps to refer to selected ↵Paul Davis
tracks/busses. THIS DOES NOT WORK YET. Selection information is not available in libardour at this time
2016-02-02when looking up controllables via descriptors (e.g. generic MIDI control) ↵Paul Davis
use the new "well-known" route controllables
2016-01-19Revert "mackie: still respond to route groups visibility changes"Paul Davis
This reverts commit a9ec547457bfa65655ee946063426f1ba85b6f91.
2016-01-19mackie: still respond to route groups visibility changesPaul Davis
2016-01-18working version of new gain control designPaul Davis
2015-12-19cont'd work on plugin-state templates - #6709Robin Gareus
Refactor and consolidate code and re-use it for session-templates. This avoids recursive copying of the plugin-dir()
2015-12-07change API for accessing session MIDI ports so that (1) boost::shared_ptr<> ↵Paul Davis
is used all the time (2) we avoid using multiple functions to return different subclass versions of some ports
2015-11-20add API to read snapshot name from instant.xmlRobin Gareus
2015-11-20remember in-use snapshot/session name in instant.xmlRobin Gareus
2015-10-22Decouple Session from MidiPatchManager and reduce parsing of midnam xml filesTim Mayberry
The MidiPatchManager only requires a reference to the session to get the path to the Session midnam directory so change it so that the path is passed to MidiPatchManager::add_search_path on Session construction and removed on Session Destruction. This will also make it easier to test and reduce compile times etc. For the common case where the Session doesn't have a Session specific midnam patch files directory(for instance a new session) it won't cause a refresh and reparsing of all the midnam files. This saves about 2 seconds to load a Session on my machine(fast machine with SSD), or about half the time spent in the Session constructor for a new session. There is still going to be that initial cost of parsing the midnam files when the first session is created after starting Ardour. Options to remove that would be to parse the files asynchronously and or use a faster xml parser(eventually), neither of which seem worth doing at this stage. This change will cause a performance regression for the uncommon case where a Session with Session specific midnam files is unloaded and then another Session with Session specific midnam files is loaded as it will cause the common midnam files in midi_patch_path to be parsed twice(unload and load).