Paul Davis
468731c14b
goodbye Profile->...trx
2019-09-25 13:02:31 -06:00
Paul Davis
401ace0c67
don't bother following playhead priority during session loading
2019-09-18 10:08:42 -06:00
Robin Gareus
e0d5c1426c
NO-OP: fix some Wimplicit-fallthrough
...
gcc can recognize various regexps in comments. Since C++17 provides
[[fallthrough]], using /* fallthrough */ consistently seems
appropriate until we switch to C++17.
see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
2019-09-18 17:37:54 +02:00
Paul Davis
bd229936ec
add finite state machine to control/manage transport state
2019-09-17 18:26:03 -06:00
Robin Gareus
65ec8fe65a
Clarify splash-screen boot messages
...
Parsing MIDNAM is what takes the most time.
"Reset Remote Controls" message is misleading (it means MMC), not
control-surfaces, which a user may have none.
2019-09-16 23:08:01 +02:00
Robin Gareus
51b2e305c4
Skip duplicate early session-save for new sessions
...
Identical code is called unconditionally at the end of
the Session c'tor via Session::session_loaded()
2019-09-05 17:00:14 +02:00
Robin Gareus
ae2b6e6b09
Further tweaks to .pending file removal
...
* only delete it after successful save
* show unlink notification in debug-builds
2019-08-16 05:31:50 +02:00
Robin Gareus
6dc8f5ed1d
Fix periodic backup saves
...
Retain ".pending" files until explicit save or session destruction.
Previously every transport-stop deleted them :(
2019-08-16 01:54:21 +02:00
Robin Gareus
a22f918d9d
Update libardour GPL boilerplate and (C) from git log
2019-08-03 15:53:16 +02:00
Ben Loftis
edde5d64a2
(Source List) Clean up the natural_position implementation (libardour part).
2019-08-01 12:11:31 -05:00
Paul Davis
6f506962a7
Revert "fix use of session-creation via template, when just template name is given"
...
This reverts commit ce7add1481
.
2019-07-18 13:38:43 -06:00
Paul Davis
ce7add1481
fix use of session-creation via template, when just template name is given
2019-07-18 12:27:16 -06:00
Robin Gareus
6cfb164d7c
Backport backup folder creation
...
Other parts for auto-backup is already in ardour-git.
2019-04-12 18:32:34 +02:00
Robin Gareus
ff8bd935cf
Remove chicken/egg d'tor
...
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-23 14:31:00 +01:00
Paul Davis
fd3b8f79af
do not create a (throwaway) playlist during track creation
2019-03-19 15:43:06 -07:00
Robin Gareus
50604d83de
Fix incorrectly saved un-used playlists
...
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-19 22:05:06 +01:00
Robin Gareus
cf11e11fc5
Remove global Session::playlists variable, use getter method (1/2)
...
Global variables that can written by anyone are to be avoided.
This also simplifies exposing SessionPlaylists as Lua bindings.
2019-03-19 05:14:00 +01:00
Robin Gareus
4706201425
NO-OP: Use API to set/test state-of-the-state
2019-03-18 15:36:58 +01:00
Robin Gareus
b890cf73ad
Prepare to configure procs only once - fix missing panners
...
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 1af123465c
2019-03-17 17:19:02 +01:00
Robin Gareus
1854a72b80
Revert Monitor-Section to be per session
...
This partially reverts 639dff3a7c
. When loading a session,
the monitor-bus that was saved with the session is used.
This changes semantics of the monitor-section/config.
Config::set_use_monitor_bus(bool) is used to initiate a change!
Notification about the change is sent asynchronously by
Session::MonitorBusAddedOrRemoved
It is no longer possible to directly call add/remove_monitor_section()
and leave the session + config in an inconsistent state.
2019-03-01 16:45:42 +01:00
Robin Gareus
e48fe0fd42
Remove more cruft (unused rf-scale)
2019-02-21 00:24:56 +01:00
Ben Loftis
688bd28458
Session-range behavior (libardour part)
2019-02-12 11:35:48 -06:00
Paul Davis
1be3301342
new approach to handling Transport Masters when engine is restarted
...
Trust that ::reset() works for all transport masters, and call it when engine is stopped. This way
the transport masters are ready to be called again as soon as the engine restarts.
2019-01-25 09:23:08 -07:00
Paul Davis
639dff3a7c
make session/Config now responsible for adding/removing a monitor section
2018-12-11 12:22:28 -05:00
Robin Gareus
c2652437da
Skip silent sources on session-archive -- fixes #7699
2018-12-05 16:54:13 +01:00
Robin Gareus
f443626daa
Fix a tiny memory leak, add_instant_xml() copies the node
2018-11-29 14:25:52 +01:00
Paul Davis
4c7e5dbc74
move away from "sync source" concepts
2018-10-05 14:15:02 -04:00
Robin Gareus
b6b353d452
Handle generic-midi bindings per session.
...
This allows to special-cases session-specific control-surface state.
e.g. midi-learn.
Only restore midi-learned, session-specific, bindings when loading a
session with generic-midi enabled.
Also dis/re-enable generic-midi resets midi-learned, but no other
session-independent settings.
This also handles the edge case:
1) load global config, generic-midi = ON, w/ bindings.
state is remembered as cpi->state
2) load session-condig, generic-midi = OFF, cpi->state is retained
3) user enables the surface, cpi->state from (1) is applied.
-> invalid bindings applied -> fail
2018-10-04 02:30:21 +02:00
Paul Davis
e6915e01de
new transport slave/master implementation, libs/ edition
2018-09-18 19:06:04 -04:00
Robin Gareus
e951a55d02
Ignore state-changes during deletion
...
Closing a session removes tracks, which triggers set_dirty().
There is no need to inform the UI or change the session's state.
2018-07-30 17:47:29 +02:00
Ben Loftis
ffc5d1474a
auto-backup: libardour part. (from mixbus)
2018-07-14 12:46:49 -05:00
Robin Gareus
bee09ac9e1
Remove unused CubicInterpolation from session
2018-07-09 17:30:38 +02:00
Paul Davis
8a18929d57
remove Session::controllable_by_descriptor() and move code into GenericMIDI code (the only user).
...
This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string
parsing every time, but this is not likely to be a notable cost.
2018-06-21 13:05:58 -04:00
Paul Davis
a5e8a69dec
add well known controls to list accessible via a MIDI binding map (or OSC?)
2018-05-04 09:40:28 -04:00
Paul Davis
2e41652e61
internally, ControllableDescriptors (used by MIDI binding maps) should use enums for automation types, rather than something custom
2018-05-04 08:25:04 -04:00
Robin Gareus
d3a74d3c70
Fix some small memory leak (libardour)
2018-01-27 15:45:12 +01:00
Robin Gareus
2fec64f0bd
Fix another duplicate if from session/system config consolidation
...
Found by PVS-Studio - https://www.viva64.com/en/b/0540/
2017-11-23 09:53:50 +01:00
Robin Gareus
9c3983a7a5
Fix various edge-cases with session-archives
...
* prevent duplicate names when pulling-in external sources
* drop "origin" after including external sources
* don't include unused playlists
(they may reference sources that are not included)
* likewise exclude unused regions
2017-10-04 05:06:47 +02:00
Robin Gareus
e31f5d9998
Clean up State API:
...
* Processor implement get_state(), classes derived from Processor
implement protected ::state() -- as documented in processor.h
* likewise for Route, Track: make ::state() a protected interface
* removal of "full_state", use explicit "template_save"
* use RAII/Unwind to skip saving automation-state
2017-10-04 00:54:55 +02:00
Robin Gareus
0802a0872f
API change: expose session-archive compression-level
2017-10-03 02:24:16 +02:00
Robin Gareus
7613c9cb34
Fix session-archive edge-cases, prepare uncompressed archives
...
* don't fork/clone midi regions (default snapshot)
* properly handle encoding embedded/external multi-channel files
* use dedicated file-extension (prepare for uncompressed archive)
2017-10-03 02:24:10 +02:00
Paul Davis
3f48d00081
use new CubicInterpolation API
2017-10-02 12:46:12 -04:00
Robin Gareus
45336723f9
Re-initialize MMC devices when the preference is enabled
2017-09-30 16:48:30 +02:00
Robin Gareus
72fb8a5342
Align punch in/out recording with latency-compensation
2017-09-30 02:45:13 +02:00
Paul Davis
7db12f6b12
convert codebase to use Temporal for various time types
2017-09-24 12:03:54 -04:00
Paul Davis
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis
6f553ce988
changes required to operate with the Evoral::Beats ticktime commit
2017-09-18 11:40:53 -04:00
Paul Davis
ac8dc40035
fix for loading older sessions, where the rest for "is-track" was "has-diskstream", rather than "has-playlist"
2017-09-18 11:40:53 -04:00
Paul Davis
1f53c861b8
remove Track::hidden(); replace with Stripable::is_private_route()
2017-09-18 11:40:53 -04:00
Paul Davis
5a52925695
NO-OP explanatory comment
2017-09-18 11:40:53 -04:00
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