Paul Davis
fe8c70e6fc
remove debug output
2017-09-18 11:40:53 -04:00
Paul Davis
e2f33cdc8b
correctly create Tracks, not Busses
2017-09-18 11:40:53 -04:00
Paul Davis
361cab503b
random changes required to get an audio track created and transport functional
2017-09-18 11:40:53 -04:00
Paul Davis
35c7274cc9
remove Diskstream from Track and derivatives; get ardour to actually startup
2017-09-18 11:40:53 -04:00
Paul Davis
a4a87f56e9
mega-commit to save state of first "it compilesand links" state for separated disk i/o changes.
...
THIS WILL NOT RUN. THIS REQUIRES MANY CHANGES
2017-09-18 11:40:52 -04:00
Robin Gareus
f15fc38bd8
Fix a tiny memory leak
2017-08-20 22:23:10 +02:00
Johannes Mueller
bd4db1e151
Remove the template description XMLNode before saving the template
...
... to avoid that the new template description is concatenated to the old one.
2017-08-20 21:09:30 +02:00
Johannes Mueller
ae51d5fd4e
Let the user add a template description on saving session templates
2017-08-20 21:09:30 +02:00
Robin Gareus
fb745cc5a8
Lua may call C++ functions with throw. Catch them
2017-08-19 01:06:44 +02:00
Robin Gareus
5f0279ab06
Catch some exceptions during session loading.
2017-08-17 19:28:14 +02:00
Robin Gareus
22055a07c0
Check major session file format version.
...
Don't allow to load sessions created with a newer version of Ardour
with an old one (no forward compatibility).
2017-08-17 18:32:49 +02:00
Robin Gareus
6ec133ebde
Separate "add master bus" (and add Lua bindings)
...
This is in preparation for "advanced session setup" allow a SessionSetup
Lua script to create the master-bus.
2017-08-16 00:51:20 +02:00
Robin Gareus
1d8c7ef37a
Clean up BusProfile:
...
* requested_physical_in/out was unused
* input/output Autoconnect just overrides Preference/Config
(can be done by a template script)
* master_out_channels is kept for compatibility (allow to create
new empty session)
2017-08-16 00:51:20 +02:00
Robin Gareus
1f5013b4a8
Distinguish error-messages.
...
The vast majority of errors reported by users as
"Cannot configure audio/midi engine with session parameters"
have nothing to do with engine-parameters.
2017-06-27 20:28:45 +02:00
Robin Gareus
de99d7c528
Allow saving state w/o backend
...
Connections are remembered by ARDOUR::Port to re-establish at load.
2017-06-25 22:03:42 +02:00
Robin Gareus
cc7ff53e1f
Create a deep-copy of MIDI sources when saving snapshots
2017-06-25 01:57:19 +02:00
Tim Mayberry
6d35b3c4e4
Remove locale_guard.h from ardour/ardour.h header
...
Add to source files that use LocaleGuard
Results in far less recompiling when pbd/locale_guard.h changes
2017-06-22 10:48:38 +10:00
Tim Mayberry
5c5cfac4a3
Remove LocaleGuard from Session::load_options
...
PBD::ConfigVariable uses PBD::to_string/string_to methods so this LocaleGuard
is no longer necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
def9e110b7
Update Session::writable() during Session::save_as() when switching to copy
...
Loading a read only Session then making a copy with Save As and switch was
not allowing new Session to be saved as writable state was not updated.
Resolves : #7352
2017-05-13 09:02:02 +10:00
Paul Davis
0c035778e1
libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls
2017-05-05 18:56:25 +01:00
Robin Gareus
0d7e9987b3
fix/amend previous commit.
2017-05-04 23:06:52 +02:00
Robin Gareus
3af9fdad0a
Don't save "end-is-free" with templates
2017-05-04 23:00:21 +02:00
Tim Mayberry
4b4d64dd7f
Use a const iterator for sorted RouteList in Session::state
2017-04-26 17:36:58 +10:00
Tim Mayberry
3589740d69
Sort Route xml node order by PBD::ID instead of by PresentationInfo
...
This prevents the node order from changing when the display order of the Routes
changes, which helps to reduce the amount of Session file change.
This is useful for testing and if keeping sessions under version control.
Resolves : #7327
2017-04-26 17:36:58 +10:00
Tim Mayberry
384478a745
Use XMLNode::get_property in Session::restore_history
...
Avoid using std::stringstream due to potential future issues with C++ locale.
Also avoids potential NULL pointer dereferences.
2017-04-21 12:46:04 +10:00
Robin Gareus
f913d5b9f6
NO-OP: whitespace
2017-04-20 23:47:39 +02:00
Tim Mayberry
23d8c41f01
Use XMLNode::get/set_property API in ARDOUR::Session class
2017-04-19 09:36:53 +10:00
Tim Mayberry
334ec95e43
Use ID::to_s() in libardour instead of ID::print()
2017-04-19 07:49:58 +10:00
Robin Gareus
5ebe6fcde8
Add option for record-only metronome.
2017-04-01 23:52:43 +02:00
Robin Gareus
f2c0b0ee3f
Add an API to query if the audible frame is latent pending a locate
...
eg. at the end of a loop, the session may already be playing the
beginning of the loop. The TransportLooped signal was emitted.
Yet due to playback latency, the audible frame is still at the end of
the loop.
To interpolate the playhead position the UI needs to be able to know:
Relying on the TransportLooped signal is not sufficient because it
does not take playback latency into account.
2017-03-31 14:01:50 +02:00
Robin Gareus
37bcbcad41
Optimize Session::set_dirty()
2017-03-12 02:36:33 +01:00
Robin Gareus
cdc8807728
Prepare re-locating missing external files.
2017-02-22 10:51:08 +01:00
Robin Gareus
6616330531
NO-OP; whitespace
2017-02-22 10:47:59 +01:00
Paul Davis
b572f1a617
fix save_as()' inadvertent marking a session as dirty during the process of saving state to disk
2017-02-09 12:40:59 +01:00
Paul Davis
3dbea92519
NO-OP: whitespace removal
2017-02-09 12:40:59 +01:00
Paul Davis
2f0dc08844
when adding a default start/end range to a Location while saving a template, do not mark the current session dirty
2017-02-09 12:40:59 +01:00
nick_m
7b9784fff4
mark session dirty when dragging tempo markers.
2017-01-27 03:05:32 +11:00
Robin Gareus
2dc392b517
update bbe62da55a
- use last-modified-with, strip git-rev
2017-01-21 01:19:19 +01:00
Robin Gareus
bbe62da55a
Extract program version that a session was created with
2017-01-20 18:15:44 +01:00
Robin Gareus
4ee8a0e9fc
Plug a memory leak (recent session list, session info)
2017-01-20 01:49:23 +01:00
Robin Gareus
88d797bd64
Prepare session-wide implicit monitoring overrides
2017-01-16 19:54:42 +01:00
Robin Gareus
d0596d815f
prototype track/bus sharing: state-export
2017-01-08 01:23:01 +01:00
Dobroslav Slavenskoj
5f0857620e
Fixing LV2_SUPPORT #ifdefs
2017-01-05 09:24:40 +00:00
Robin Gareus
3afe3f32df
Remove cruft (old MIDI feedback API)
2016-12-30 17:29:08 +01:00
nick_m
d0580ecfbc
allow all types of range location (loop, start, end etc.) to be glued to bars and beats.
2016-12-29 01:39:31 +11:00
Robin Gareus
fe01666475
Normalize audio when archiving to fixed-point format.
2016-12-27 18:33:41 +01:00
Robin Gareus
e1ca4b2887
Speed up recent session display (for many large sessions)
...
- don't parse XML into XMLTree
- only read the file, extract relevant elements
- don't read session-template contents, only test file
2016-12-08 10:36:12 +01:00
Robin Gareus
7f9befae2d
Add Lua bindings to manage Groups
2016-12-05 23:49:19 +01:00
Robin Gareus
a994fd30bd
extend Mixbus' "Safe Mode"
2016-10-30 22:25:18 +01:00
Paul Davis
235c1f9adb
infrastructure for save/restore of MIDI port user-provided information
2016-10-20 16:34:52 -04:00
Paul Davis
f96b698234
infrastructure for MIDI-input-follows-selection
2016-10-19 17:49:35 -04:00
Robin Gareus
eae567bd9e
Allow opening sessions with files embedded from removable drives
...
Otherwise Windows shows a critical error for files embedded from
removable devices.
2016-10-13 02:07:34 +02:00
Kamil Rytarowski
5b1b3a76b5
Detect free space on NetBSD
2016-10-04 22:16:35 +02:00
Robin Gareus
75f9a7cf11
don't include session-search paths with templates
2016-09-30 00:11:24 +02:00
Paul Davis
e25a4371cb
output more stuff to the error channel if/when a session fails to load/be created
2016-09-28 11:28:45 -05:00
Robin Gareus
8018bed0de
add an option to exclude unused Audio Sources when archiving the session
2016-09-23 20:34:28 +02:00
Robin Gareus
f7cb5b1a6b
fix a typo.
...
Really a no-op, AudioSource::length() ignores the position, and
for regular regions > 0 is equivalent to != 0
2016-09-23 18:46:34 +02:00
nick_m
080e7755a6
Remove _midi_regions_use_bbt_beats from Session, _start_pulse and _length_pulse from MidiRegion.
...
- _start/length_beats are now quarter notes regardless
of loaded session version.
- also restores note colour update
2016-09-23 03:39:05 +10:00
Robin Gareus
c80e8727df
report archive encoding progress
2016-09-21 13:04:25 +02:00
Robin Gareus
aeb1c71211
Add option to flac encode audio when archiving
2016-09-21 04:05:45 +02:00
Robin Gareus
20ebf10ba3
initial support for archiving sessions
2016-09-20 19:52:56 +02:00
Tim Mayberry
ff53fa9806
Send/show error message if g_stat fails in Session::cleanup_sources
...
let the user/developer know if this does occur rather than just silently
skipping the file.
Fix some whitespace issues while we are changing indentation.
2016-09-15 21:27:55 +10:00
Tim Mayberry
304b491a29
Use g_strerror() instead of ::strerror() in Session::cleanup_sources
...
The error is generated by a glib function so use the glib version of this
function(it also consistent with usage in the rest the file).
2016-09-15 21:27:55 +10:00
Tim Mayberry
36d1d842df
Use g_rename() instead of ::rename() in Session::cleanup_sources
...
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-15 21:27:55 +10:00
John Emmas
83b48f5cc4
Check a return value from 'g_stat()'
...
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-14 09:58:10 +01:00
nick_m
ab21b241f7
Fix incorrect estimate of future revision.
2016-09-07 00:32:02 +10:00
nick_m
3f4d49fd2f
Load midi region length and start correctly in sessions modified by v5.0 -> 5.3-41
2016-09-07 00:18:35 +10:00
Paul Davis
41cc35cf6e
do not allow undo/redo while actively recording
2016-08-17 19:22:26 -04:00
Paul Davis
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
Paul Davis
472ef8c55c
once the user has explicitly set the session range end, playlist/range changes do not move it.
...
The user may drag the marker, edit in the Location UI, or use nudge, to set the end
2016-07-12 11:19:49 -04:00
Paul Davis
54d5f36311
changes in logic used by source cleanup to avoid endless recursion in 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-28 15:05:56 -04:00
Robin Gareus
86763cba90
Enable build for FreeBSD (part 1/2)
...
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-26 16:43:07 +02:00
Paul Davis
49011ea146
noop: comment fix.
2016-06-10 13:57:19 -04:00
Paul Davis
3c0fd1a115
remove incorrect allocation of a second VCAManager in a session.
...
Fixes warning about a SessionHandleRef at session close
2016-06-06 16:15:25 -04:00
Robin Gareus
0531d0dd0c
save version string with session for informational purposes
2016-06-01 22:43:40 +02:00
Paul Davis
28afaebdc4
fix SNAFU in which Stripable::rec_enable_control() was incorrectly defined as ::recenable_control()
...
Make Mackie support code use the Stripable to access the rec-enable control while we're here
2016-05-31 15:30:45 -04:00
Paul Davis
d31527f2e6
improve/extend Session::controllable_by_descriptor()
2016-05-31 15:30:43 -04:00
Paul Davis
201c5825ac
remove debug output
2016-05-31 15:30:42 -04:00
Paul Davis
d5127001bb
move ControllableDescriptor from libpbd to libardour; add support for describing VCAs
2016-05-31 15:30:42 -04:00
Paul Davis
e0ff70cf86
first vaguely working version using PresentationInfo
...
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
Paul Davis
1e9b2abe73
save and restore vca assignments
2016-05-31 15:30:41 -04:00
Paul Davis
5531c83496
change API of Controllable::Changed signal to include (from_self, GroupControlDisposition)
...
This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
2016-05-31 15:30:40 -04:00
Paul Davis
c3afeab49c
don't increment actual VCA counter when saving session state
2016-05-31 15:30:39 -04:00
Paul Davis
7b62e08233
add required header
2016-05-31 15:30:39 -04:00
Paul Davis
0dca11cb47
save+restore VCA counter value across instances
2016-05-31 15:30:39 -04:00
Paul Davis
d2c405416c
save/restore VCAManager state
2016-05-31 15:30:38 -04:00
Paul Davis
c61a5cabc7
Session HAS-A VCAManager
2016-05-31 15:30:38 -04:00
nick_m
885f1fd684
Tempo ramps - update midi regions and locations when dragging tempo.
...
- also make locations and regions use a double beat rather than bbt for musical position.
2016-05-27 23:38:10 +10:00
Paul Davis
a232673454
make boost shared_ptr debugging a little easier to turn on/off
2016-05-07 13:36:04 -04:00
Robin Gareus
e59ab55831
a few strategic LocaleGuards..
...
..to prevent switching forth and back during individual
::state(), ::set_state() when loading/saving the session or locating.
2016-05-07 17:16:59 +02:00
Robin Gareus
a6e4494482
Revert "Add a global state localeguard (and one for route templates)"
...
This reverts commit 2b7a047e92
.
2016-05-07 12:20:40 +02:00
Robin Gareus
6d343ba3c6
fix LocaleGuard contstructor ( 3dc77280
)
2016-05-07 12:19:41 +02:00
Robin Gareus
2b7a047e92
Add a global state localeguard (and one for route templates)
2016-05-07 01:11:28 +02:00
Robin Gareus
3dc7728038
we always only use the "C" locale when saving.
2016-05-05 21:49:56 +02:00
Paul Davis
17ace643e4
OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)
2016-05-04 23:09:45 -04:00
Robin Gareus
e3607a4c8b
plug some memory leaks in libardour
2016-04-24 14:43:18 +02:00
Robin Gareus
b2149de37b
add notification if Engine Rate changes and mismatches session's SR
2016-04-18 15:16:27 +02:00
Robin Gareus
888614b714
never ever change sample-rate saved with the session after creation.
2016-04-18 14:50:09 +02:00
Robin Gareus
29543a5dcd
add a new counter (for sidechain numbering)
2016-04-12 13:49:50 +02:00
Robin Gareus
0e70b779b4
expose Undo Commands to Lua
...
Some trickery is needed here to manage object lifetimes and
multiple inheritance.
2016-04-10 01:45:41 +02:00
Robin Gareus
024cf58c05
improve elapsed time readability for large numbers.
2016-04-08 21:50:02 +02:00
Robin Gareus
94ebad3854
Profile Session::save_state
2016-04-08 21:45:32 +02:00
Robin Gareus
f4553880f6
Implement Lua session-scripts
2016-02-23 15:41:21 +01:00
Paul Davis
e9234c856a
add syntax and scaffolding for MIDI binding maps to refer to selected tracks/busses.
...
THIS DOES NOT WORK YET. Selection information is not available in libardour at this time
2016-02-22 15:31:25 -05:00
Paul Davis
2cb3343eec
when looking up controllables via descriptors (e.g. generic MIDI control) use the new "well-known" route controllables
2016-02-02 16:42:50 -05:00
Paul Davis
fe3d85b204
Revert "mackie: still respond to route groups visibility changes"
...
This reverts commit a9ec547457
.
2016-01-19 14:16:49 -05:00
Paul Davis
a9ec547457
mackie: still respond to route groups visibility changes
2016-01-19 13:38:29 -05:00
Paul Davis
1948b50a68
working version of new gain control design
2016-01-18 12:11:08 -05:00
Robin Gareus
d9eb5e00c5
cont'd work on plugin-state templates - #6709
...
Refactor and consolidate code and re-use it for session-templates.
This avoids recursive copying of the plugin-dir()
2015-12-19 14:46:15 +01:00
Paul Davis
41b2de41d6
change API for accessing session MIDI ports so that (1) boost::shared_ptr<> is used all the time (2) we avoid using multiple functions to return different subclass versions of some ports
2015-12-07 12:38:17 -05:00
Robin Gareus
4c04e8028a
add API to read snapshot name from instant.xml
2015-11-20 03:22:41 +01:00
Robin Gareus
c4084932fa
remember in-use snapshot/session name in instant.xml
2015-11-20 03:22:41 +01:00
Tim Mayberry
689862cafb
Decouple Session from MidiPatchManager and reduce parsing of midnam xml files
...
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).
2015-10-22 11:51:03 -04:00
André Nusser
67f557b1f4
Add overwrite option to save_template. (default = false)
...
Before it could not overwrite.
2015-10-21 23:28:44 -04:00
Robin Gareus
f53dc5945e
extend session-save dirty-flag logic
...
Snapshot and continue working on current session incorrectly marks
the session as clean.
2015-10-16 20:54:15 +02:00
Robin Gareus
2397429e99
use quotes for in-tree pbd/glib wrapper include
2015-10-05 22:15:18 +02:00
Robin Gareus
dc36b063bf
remove unused fstream includes
2015-10-05 22:15:18 +02:00
Paul Davis
297e80e020
attempt to stop transport, finish butler work, and close all files as part of Session > Cleanup
2015-10-04 14:18:04 -04:00
Paul Davis
e63de172d5
NOOP: delete trailing whitespace
2015-10-04 14:18:04 -04:00
John Emmas
c68736bc02
Change a few instances of 'stat()' to use 'g_stat()' (for UTF8 compatibility on Windows)
2015-10-04 14:18:54 +01:00
Robin Gareus
fedec84d3b
fix iterator after map::erase().
...
The iterator referring to the removed element is invalidated.
Other iterators remain valid.
2015-09-23 22:26:44 +02:00
Robin Gareus
7ac691ec82
use pbd's gstdio compatibility wrapper
2015-09-17 14:37:57 +02:00
Robin Gareus
04e7cfabbe
prepare peak-file cleanup/recreate.
2015-09-15 14:44:05 +02:00
John Emmas
551e20b926
Remove ifstream / ofstream when accessing session template files (or creating a new session from a template file)
...
On Windows, the above classes don't support UTF-8 so let's get rid of them and use g_fopen / stringstream / fwrite() etc.
2015-09-15 13:17:22 +01:00
Robin Gareus
cb6c975417
remove cruft
2015-09-12 17:55:04 +02:00
Robin Gareus
390ea007c5
rework peakfile handling:
...
- copy old peak-files to new (do not require re-calc)
- keep old peak-files (for now, backwards compat)
- fix cleanup-sources to remove *new* peak-file
- include channel-number in hash (like it was done before)
see also 624f76b
TODO: add Session > Cleanup > remove/re-create peaks
2015-09-10 00:55:58 +02:00
Mathias Buhr
624f76b229
Fixes case where audiofiles used wrong peakfiles
2015-09-03 09:54:23 +02:00
Tim Mayberry
b4e13cbbb7
Add undo history related debug output for debugging Undo/Redo issues
2015-08-19 13:56:11 +10:00
Paul Davis
b8b5d0b4c7
alternative fix for the same problem that 9e2048decf
was addressing
2015-07-02 14:15:11 -04:00
Robin Gareus
9e2048decf
Don’t use invalid iterator during cleanup. fixes #6403
2015-07-02 19:46:38 +02:00
Paul Davis
205f9bca96
push seek-after-state-loaded into butler thread, to avoid multiple threads doing disk i/o related stuff
2015-06-29 14:18:16 -04:00
Paul Davis
8e9bb12f92
no-op: fix whitespace/indentation
2015-06-29 14:18:15 -04:00
GZharun
dd0a73e2d4
Fixed use case when session is being replaced with new session with the same name.
...
We should check session state file (*.ardour) presence to determine if the session is new for TracksLive as TracksLive has a use case which gives user a possibility to replace existing session by clicking on it's state file when new session is being created.
[To be Reviewed by] Paul Davis
2015-06-29 14:18:15 -04:00
Paul Davis
6bdac56998
some more information output to log during save-as, for debugging
2015-06-29 14:18:15 -04:00
Paul Davis
8ac5ef15f0
add more directory names to set managed via various APIs (automation, analysis, plugins, externals)
2015-06-29 14:18:14 -04:00
Paul Davis
68aab0153c
rename Session::add_session_range_location() to ::set_session_range_location()
2015-06-29 14:18:14 -04:00
Paul Davis
ab2e23db9a
follow various events related to playhead priority (loop changes, parameter changes); remove debug output
2015-06-29 14:18:13 -04:00
Paul Davis
e2a76746e6
fix accidentally deleted return value
2015-06-29 14:18:13 -04:00
Paul Davis
5927fb4997
fix timing of Butler mapping config parameters to avoid crash.
...
Amazing that this didn't show up on Linux at all, or on the first run after build. Computers ... sigh.
Conflicts:
libs/ardour/butler.cc
2015-06-29 14:18:13 -04:00
Paul Davis
5f4f40205b
clean up cherry-pick of varifill tweaks from Waves Tracks
2015-06-29 14:18:12 -04:00
Paul Davis
ca09a4a355
more tweaks for varifill model, and avoid filling playback buffers during session loading
...
Conflicts:
libs/ardour/diskstream.cc
libs/ardour/session.cc
libs/ardour/session_state.cc
Conflicts:
libs/ardour/session.cc
2015-06-29 14:18:12 -04:00
Valeriy Kamyshniy
8505c16057
[Summary] Just adding comment for better code-maintaining.
2015-06-29 14:18:12 -04:00
Paul Davis
f116455280
after changing session SR, reset all write sources to use new rate
2015-06-29 14:18:12 -04:00
Paul Davis
32224ee608
add in more Tracks-related auto-(re)connect changes
2015-06-29 14:18:11 -04:00
Paul Davis
bebb03a0a4
add in more Tracks-related auto-(re)connect changes, all conditionalized by Profile
2015-06-29 14:18:11 -04:00
nikolay
ed291ee8d0
[Summary] Changed function name update_route_active_state() on update_route_record_state()
...
[Reviewed] GZharun
Conflicts:
libs/ardour/ardour/session.h
libs/ardour/session.cc
libs/ardour/session_state.cc
2015-06-29 14:18:10 -04:00
Paul Davis
4235367acd
fixed previous commit from Tracks to work correctly in all cases
2015-06-29 14:18:10 -04:00
Valeriy Kamyshniy
07c81a763f
[Summary] BUG FIXED: New name of a session saved with “save as”, was not stored in the session recent list.
...
[Reviewed] YPozdnyakov
2015-06-29 14:18:10 -04:00
Valeriy Kamyshniy
1f98535b52
[Summary] Adding informative message to failed file copy exception in Session::save_as.
...
[Review required] Paul Davis
2015-06-29 14:18:10 -04:00
Paul Davis
445d742af1
save recent templates analogously to recent sessions
2015-06-29 14:18:10 -04:00
Paul Davis
0365c5cc47
Tracks-specific handling of template dir
2015-06-29 14:18:10 -04:00
Paul Davis
893cb3460c
fix cherry-pick logic failure with Session::save_template() - Tracks case already taken care of
2015-06-29 14:18:10 -04:00
Valeriy Kamyshniy
1acee68037
[Summary] a) On MAC OS, .DS_Store files are ignored when saving a session by “Save As”.
...
b) plugins folder is not created for Templates.
[Required review] Paul Davis, YPozdnyakov
Conflicts:
libs/ardour/session_state.cc
2015-06-29 14:18:10 -04:00
Valeriy Kamyshniy
7c5d849247
[Summary] For tracks when saving templates, we need stored the Auto Loop Range and all MIDI markers. As well, just to follow canonical rule: dealing with a pointer (_location in Session::state) check it for NULL prior to any operation (s), accessing the pointer.
...
[Review required] YPozdnyakov, GZharun, Paul Davis
2015-06-29 14:18:10 -04:00
Paul Davis
2a1d0e20f0
emit SessionSaveUnderWay signal during template save
2015-06-29 14:18:10 -04:00
Paul Davis
fba9bff5b0
improved error handling and checking for Session::save_template()
2015-06-29 14:18:10 -04:00
Paul Davis
ec991ae047
expand comment
2015-06-02 12:27:39 -04:00
Paul Davis
59028b6c80
close all source files before renaming interchange tree in Session::rename()
2015-06-02 12:09:04 -04:00
Paul Davis
0412060b44
tweaks and improvements to Save-As
...
Always copy MIDI files, they are small and they get rewritten for lots of reasons, which can cause confusion
if the user elected to NOT "copy media" since the file ends up existing in both the new and old (but in use)
session.
Avoid copying analysis files on Windows, where for now the files contain illegal colon characters
2015-05-28 19:26:21 -04:00
Paul Davis
7f902ae1b6
some more information output to log during save-as, for debugging
2015-05-27 10:57:40 -04:00
Paul Davis
e73b4e6f55
fix cleanup (code is self-evident). From Yevgeny @ waves
2015-05-14 07:01:01 -04:00
Paul Davis
f082e45298
extend save-as API to allow for new empty sessions based on current
2015-05-07 22:35:35 -04:00
Paul Davis
0038820f47
copy contents of analysis, plugins, automation and externals folders during save-as
2015-05-07 17:10:14 -04:00
Paul Davis
e902029b26
fix Session::rename()
2015-05-07 12:06:49 -04:00
Paul Davis
31acba8305
debugging rename/save-as
2015-05-05 21:30:00 -04:00
Robin Gareus
27dac7c31f
Expose “/route/trim” midi binding.
2015-04-26 19:07:45 +02:00
Paul Davis
847c9de7be
do not reset paths for sources that are still outside the session after save-as
2015-04-21 00:18:49 -04:00
Paul Davis
ced4378d09
Merge branch 'master' into saveas
...
Conflicts:
gtk2_ardour/ardour.menus.in
libs/ardour/session_state.cc
2015-04-20 15:10:41 -04:00
Paul Davis
6dea7ebfb0
changes related to resetting source paths during save-as.
...
This does NOT work with MIDI files at present, because of SNAFU in SMF class, where end_write()
opens the file on its own, without _file_path being set. Needs some careful work, because basically
the SMF<=>SMFSource relationship is not tenable
2015-04-06 21:18:52 -04:00
Paul Davis
b2da3bccc0
after save-as, if switching to new session, reset all track write sources to use new session path
2015-04-06 12:05:36 -04:00
Robin Gareus
f0231766d7
session rename details:
...
* don’t allow to rename read-only sessions
* prevent periodic save (while rename is in progress)
* no renaming while actively recording (peak files
among other things will mess things up)
2015-04-05 16:02:07 +02:00
Robin Gareus
4b485332ce
fix renaming renamed session.
2015-04-05 16:01:08 +02:00
Robin Gareus
5694509bdf
fix rename error message
2015-04-05 15:40:25 +02:00
Robin Gareus
1395125283
update peak filename when renaming session, fixes #5869
2015-04-05 14:55:19 +02:00
Paul Davis
73f967c330
delete tempo map at appropriate times
2015-04-01 10:58:56 -04:00
Robin Gareus
db8406dc4a
disk-space calc is windows (not MSVC) specific.
2015-03-10 00:21:37 +01:00
Ben Loftis
6cad07fc11
fix boot message always sticking on the last loaded route; it looked like an error
2015-02-10 14:43:16 -06:00
nick_m
ff13ac8b4f
Clean up Session's _current_trans when aborting a drag.
2015-02-05 23:32:57 +11:00
Paul Davis
ab3ec791ea
Add a new signal (not yet used) to initiate session saves; alter signal name for existing signal used to allow other objects to add XML state to session
2015-01-24 19:06:31 -05:00
Ben Loftis
d2fa2450aa
use C locale, because POSIX locale is not supported on windows, and operation is undefined. C works on all platforms
2015-01-19 07:29:25 -06:00
Paul Davis
7a0b0685c2
set failure message if new session folder cannot be created for any reason during save-as
2015-01-15 09:11:56 -05:00
Paul Davis
140778641c
get Session::save_as() working much more correctly, and cleaner
2015-01-14 17:53:23 -05:00
Paul Davis
08d56360d6
first working version of save-as
2015-01-12 12:57:05 -05:00
Paul Davis
c3725d0a7b
add initial code (and stubs) for save-as related functionality
2015-01-11 12:15:14 -05:00
Ben Loftis
0fba29a67a
tweak boot message so the final message makes more sense
2015-01-08 07:38:08 -06:00
Robin Gareus
6e3e1738dd
removed hardcoded ".ardour" suffix
2015-01-05 17:48:42 +01:00
David Robillard
7eb4e5d22b
Replace thinning static state with parameter.
2014-11-30 23:56:20 -05:00
Robin Gareus
37937d9c69
synchronize preferences and monitor-section
2014-11-18 03:49:20 +01:00
Paul Davis
f900711136
port changes to ARDOUR::Location and ARDOUR::Locations APIs from Tracks to Ardour.
...
Fixes deadlocks caused by mutex on Locations list, and clarifies the purposes and uses of the class-level and
object-level change-related signals.
2014-10-24 12:18:46 -04:00
Paul Davis
679356c5ee
fix delivery of MMC events under split process cycle conditions
2014-10-22 17:07:11 -04:00
Robin Gareus
472900f4ff
cleanup unused nested regions:
...
This and two previous commits fixes #5979
2014-10-10 14:12:48 +02:00
Colin Fletcher
44f71ce599
Text tweaks and typo fixes
2014-10-02 18:03:19 +01:00
Robin Gareus
56f5bcffce
copy plugin-state from template on session creation (amend 3353b48
)
2014-09-28 19:25:40 +02:00
Robin Gareus
3353b48646
fix templates: copy plugin state
2014-09-28 18:24:08 +02:00
Paul Davis
3ec0f367c1
next (final?) part of handling missing MIDI files.
...
If an external-to-session file is missing, consider it a fatal error in session loading.
If an internal-to-session file is missing, just create a new MIDI source with the same path and ID, and use that instead.
2014-09-24 19:04:05 -04:00
Paul Davis
cfc658de04
do not mark session dirty during loading process; sync with loaded locations state using standard method
2014-09-17 12:28:09 -04:00
Paul Davis
b3c78e906c
if a (file) source really cannot be found, differentiate between audio & MIDI.
...
For now, recovering from missing MIDI is a no-can-do situation (because MIDI is inherently data-editable).
2014-09-15 14:09:12 -04:00
Robin Gareus
d421602c24
delete session XML object after loading and setting state.
2014-09-10 05:18:09 +02:00
Ben Loftis
b128271f29
consistently use mixed-case labels
2014-08-01 14:31:18 -05:00
Paul Davis
1fd4d40dbb
add mutex to prevent concurrent session state saves.
...
Why wasn't this done 10 years ago?
2014-07-09 10:18:28 -04:00
Paul Davis
7364ca213a
do not attempt to save undo history if it is empty, and do not do any part of history save if we're not going to write a new file
2014-07-09 10:10:44 -04:00
Paul Davis
fcabd5d8ee
initial implementation of "bring all media into session folder". Incomplete but basically functional for audio files
2014-07-08 00:53:13 -04:00
Robin Gareus
7d13a49761
remove cruft.
...
periodic save is done with maybe_write_autosave()
2014-07-06 14:43:07 +02:00
Paul Davis
23e7cf1019
merge with master.
...
Manually resolved conflicts in import.cc and session.cc
2014-07-01 09:46:18 -04:00
Robin Gareus
8df35b35ba
allow to load/save default session-properties
2014-06-29 16:11:46 +02:00
Robin Gareus
ecd11253c1
add Session::StateProtector
...
temp. disable save during batch updates, save once at
the end.
2014-06-28 22:02:20 +02:00
Robin Gareus
c0c68dbf4d
consolidate session_dirs: use Searchpath instead of custom code
2014-06-28 22:02:20 +02:00
Tim Mayberry
cb3a604936
Move functions in pbd/clear_dir.h/cc into pbd/file_utils.h/cc
2014-06-25 12:40:10 -04:00
Tim Mayberry
547689a055
Replace all use of PathScanner with equivalent functions from pbd/file_utils.h
2014-06-17 21:41:29 +10:00
Tim Mayberry
0e96d84079
Change PBD::PathScanner API to return results by value to avoid inadvertent memory leaks
2014-06-17 21:13:05 +10:00
Robin Gareus
ca3c9cae6e
basic integration of delaylines (still un-nused)
2014-06-11 17:14:18 +02:00
Paul Davis
74bc0c8468
substantive changes to the logic and safety for naming of (audio/MIDI) sources, especially when created via import
2014-06-02 11:20:37 -04:00
Paul Davis
2cf411e4be
merge (squash) with scenechange topic branch to provide MIDI-driven scene change markers
2014-04-28 19:58:24 -04:00
Robin Gareus
5a3a8fc8f2
fix issue with duplicate entry in "Recent" menu after re-naming a session
2014-04-20 18:55:14 +02:00
John Emmas
5d9c2104d2
Oops - correct some typos in my previous commit
...
(accidentally used G_DIR_SEPARATOR instead of G_SEARCHPATH_SEPARATOR)
2014-04-11 15:36:04 +01:00
John Emmas
d95de39339
Make sure we use the correct style of filepath separator on Windows
...
('libs/ardour/file_source.cc' still to be investigated)
2014-04-11 13:03:48 +01:00
Robin Gareus
903f1d7853
check if session dir is writable (needed for .bak files, undo, etc)
2014-03-21 16:10:29 +01:00
Paul Davis
9f98837255
more error messages if session renaming fails, and remove stupid use of RENAME macro and use ::g_rename() instead
2014-03-12 08:49:18 -04:00
Paul Davis
2a7ed69c28
merge with master, with minor conflict fixes
2014-02-07 19:00:44 -05:00
Paul Davis
d47fe167e3
when cleaning up sources, do not remove "stub" sources from the source list, even though they do not exist on disk yet; remove some debug output
2014-02-07 17:38:42 -05:00
Paul Davis
60a9213035
fix utter confusion about session _path in new sessions.
...
Yikes!
2014-02-07 13:56:44 -05:00
Robin Gareus
7c69b0ab82
add debug-message to track down missing Sources
2014-02-05 18:49:32 +01:00
Paul Davis
550b991176
remove unnecessary recently-added include for realpath, which is not actively used
2013-12-05 17:39:41 -05:00
Paul Davis
3144a81acb
additional header needed for mingw build to get realpath()
2013-12-05 14:49:03 -05:00
Tim Mayberry
c3d2b1ea18
Use PBD::canonical_path instead of ::realpath
...
This is a previous change that seems to have been lost in master -> windows merge
2013-12-02 21:25:47 +10:00
Paul Davis
d135c4dc3a
fix merge conflicts with master
2013-10-23 08:47:57 -04:00
nick_m
5b62e88fbf
Unify editor / mixer ordering.
2013-10-21 00:19:43 +11:00
Paul Davis
c4b1a5504e
fix missing Click outputs for new sessions
2013-10-18 15:28:10 -04:00
Paul Davis
2a6a16f980
merge with master, fixing conflicts in 3 wscript files
2013-10-09 14:00:42 -04:00
Paul Davis
82f0f3a9a7
fix up crash caused by changes in object creation order and setting the state of the click IO object
2013-10-02 16:17:22 -04:00
Paul Davis
e43a8dac1c
make information extraction from session file options list robust against some old badly formatted session files
...
Fixes crash experienced by GillesM, where a rogue XML entry caused a segfault
2013-09-25 17:59:10 -04:00
Paul Davis
4209e8a834
add new static functions to get SR and disk sample format from session XML
2013-09-23 21:35:51 -04:00
Paul Davis
20f28c82ec
make session creation from a template work again
2013-09-22 11:19:34 -04:00
Paul Davis
fb45fdc052
fix conflicts and merge with master
2013-09-16 22:11:06 -04:00
Paul Davis
39ee88b3f9
more session construction order changes, and removal of 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-16 12:08:19 -04:00
Paul Davis
31157cb343
fix ordering in session construction so that new sessions and existing ones both work
2013-09-16 09:57:22 -04:00
Paul Davis
60da662aff
Merge branch 'master' into windows
2013-09-14 16:21:32 -04:00
Paul Davis
6b23417ae0
move creation of Graph till after we have the engine running, since we need access to the backend
2013-09-14 16:17:24 -04:00
Paul Davis
4861eca974
Merge branch 'master' into windows
2013-09-13 11:55:56 -04:00
Paul Davis
9af75b2ac9
reinstate unblocking-of-connections in session setup, accidentally dropped in reorganization work
2013-09-12 16:27:58 -04:00
Paul Davis
bb826f4bee
incomplete merge of master into windows (requires upcoming changes to master to be complete)
2013-09-12 11:28:50 -04:00
Paul Davis
f85b362351
*maybe* fix issues with zombification during session loading
2013-09-11 16:33:40 -04:00
Paul Davis
7c719e441a
fix handling of new session
...
defer save state till after everything done in post_engine_init() is complete.
2013-09-11 09:59:56 -04:00
Paul Davis
209e4bdcae
many changes relating to session construction and audioengine interaction
...
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-10 15:41:19 -04:00
Paul Davis
19d05fa436
start reordering of Session initialization
...
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-09 22:40:54 -04:00
Tim Mayberry
8ddd12a60d
Rename SearchPath class Searchpath
...
Windows headers define SearchPath which means we have to undefine it
where necessary. This is a pain and can be tricksy, so I feel renaming
the class slightly is the easiest solution.
2013-09-06 14:31:11 +10:00
Paul Davis
1c49138e00
move MidiPortManager from AudioEngine to Session
...
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-09-05 13:22:34 -04:00
John Emmas
a64f7fe28c
'libs/ardour' - Minor changes to prevent MSVC from complaining about malformed comments
2013-09-05 10:07:57 +01:00
Paul Davis
a34d707175
split up session code that uses parts of the JACK API (timebase + session event handling) and connect it directly to the jack audiobackend
...
i've made the audiobackend call the session directly so that only one object (ARDOUR::Session) has a need for the JACK types
and only one .cc file (session_jack.cc) needs jack.h. having ARDOUR::AudioEngine act as an intermediary would be cleaner
conceptually but would end up causing two different ARDOUR objects to have jack types in their own API.
2013-08-09 12:15:37 -04:00
Paul Davis
031675f795
changes to allow window branch to build on OS X
2013-08-09 09:17:03 -04:00