Commit Graph

65 Commits

Author SHA1 Message Date
Paul Davis 4ba4cd69ff switch from glib atomic to std::atomic (libs edition) 2023-03-24 14:19:15 -06:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Robin Gareus 5957e14259
Remove unused #include<> (2/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:57:16 +02:00
Robin Gareus a75c239c0c
Do not accumulate SessionEvent::Overwrite events #8576 2021-03-22 02:54:42 +01:00
Paul Davis 7232ac2f67 update DiskReader loop delick objects when loop changes 2020-05-13 18:52:29 -06:00
Paul Davis 21bb10238e required header inclusiong 2020-05-07 17:40:20 -06:00
Paul Davis 490fac1632 add new template methods for "foreach {route,track}" and use them
Also remove redundant double call to Track::set_block_size(). This dates back to 2010
when there used be an additional traversal of the Diskstream RCU-managed list, before
they became owned by Tracks
2020-05-07 17:40:20 -06:00
Robin Gareus fc34626e50
Fix loop range changes while playing - #8001
Since ead883302f, it is no longer possible to use a null
pointer SessionEvent::track as flag to indicate overriding all
buffers.
2020-04-12 13:35:21 +02:00
Paul Davis 87f4a4afff use process lock to lock out process() during playback buffer resizing 2019-12-11 20:36:10 -07:00
Paul Davis c3e3930f14 revert to single buffer for disk playback, and 5.x-style overwrite
Also address issues with MIDI and also atomicity of _pending_overwrite
2019-12-10 09:29:22 -07:00
Paul Davis cc8c139a57 fix missing SessionEvent when **all** tracks need a buffer overwrite 2019-12-08 17:01:17 -07:00
Paul Davis 8b4e714006 changes to use overwrite-buffers when loop is disabled or loop range changed 2019-12-05 13:13:16 -07:00
Paul Davis 6128d1759c do not initiate transport stop during loading when setting capture/playback buffer sizes 2019-11-02 16:32:18 -06:00
Paul Davis 2cf9ad8f8c refactor SessionEvent and DiskIO so that we pass around boost::shared_ptr<Track> rather than Route
(this the raw pointers used inside SessionEvent)
2019-11-02 16:32:18 -06:00
Paul Davis bd229936ec add finite state machine to control/manage transport state 2019-09-17 18:26:03 -06:00
Robin Gareus a22f918d9d
Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Paul Davis 63fdfd9e85 remove PostTransportWorkCurveReallocate (no longer used) 2019-02-22 14:54:34 -07:00
Robin Gareus b5587e5e43
NO-OP: clarify internal API, prepare for overwrite queue 2019-02-08 19:33:19 +01:00
Paul Davis 53e6f13852 addd more DEBUG_TRACE for DiskIO; set DiskIOProcess::_need_butler more appropriately; other minor adjustments 2017-09-18 11:40:53 -04:00
Paul Davis cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
David Robillard ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
Paul Davis 23bec25bf5 Remove non-portable and unnused header includes 2013-07-11 11:34:37 -04:00
Paul Davis 3cd8138a41 convert from Glib:: to Glib::Threads for all thread-related API
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +00:00
David Robillard 6fa6514cfd Remove over 500 unnecessary includes (including 54 of session.h).
It's slightly possible that this causes trivial build failures on different
configurations, but otherwise shouldn't cause any problems (i.e. no actual
changes other than include/naming/namespace stuff).  I deliberately avoided
removing libardour-config.h since this can mysteriously break things, though a
few of those do seem to be unnecessary.

This commit only targets includes of ardour/*.h.  There is also a very large
number of unnecessary includes of stuff in gtk2_ardour; tackling that should
also give a big improvement in build time when things are modified.


git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24 06:09:29 +00:00
Carl Hetherington a2897ecef6 Fairly major change to the way in which crossfades are handled;
they are now done with region fades, rather than separate objects.
After this commit, Ardour will try to convert your session files
to the new crossfade format, but will make a backup in your
session folder first.

If you have works in progress using Ardour 3 it is
***STRONGLY RECOMMENDED*** that you back up session files before
updating to this commit.


git-svn-id: svn://localhost/ardour2/branches/3.0@11986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16 16:32:22 +00:00
Paul Davis 14004b75a6 dynamic playback & capture buffer resizing (though transport is stopped first)
git-svn-id: svn://localhost/ardour2/branches/3.0@7250 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-09 17:24:07 +00:00
Carl Hetherington 5670e2c3a4 Reset buffer stats on stop. Remove unused minimum playback/capture load stats.
git-svn-id: svn://localhost/ardour2/branches/3.0@7098 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-12 00:29:28 +00:00
Carl Hetherington 061a85191c Move Diskstream ownership to Track, so that Session no longer holds lists of Diskstreams. Breaks 3.0 file format again.
git-svn-id: svn://localhost/ardour2/branches/3.0@6945 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-21 20:42:22 +00:00
Paul Davis 9ad2875905 move Session::Event into SessionEvent class; add SessionEventManager (Session IS-A SessionEventManager); make session ops to toggle all track rec-enable be atomic with respect to process()
git-svn-id: svn://localhost/ardour2/branches/3.0@6273 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-04 02:15:12 +00:00
Paul Davis ff122d0fe8 monster commit: transport mgmt changes from 2.X (omnibus edition); make slave use nframes64_t ; avoid crashes in Drags when commiting reversible transactions that do not exist
git-svn-id: svn://localhost/ardour2/branches/3.0@6034 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-08 16:28:21 +00:00
David Robillard a532e7247c Move butler methods from Session to Butler.
Slay the dragon.  A lil' bit.


git-svn-id: svn://localhost/ardour2/branches/3.0@5901 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-24 00:39:28 +00:00
David Robillard d56817e785 Split butler into separate object (partially, just data so far...)
git-svn-id: svn://localhost/ardour2/branches/3.0@5900 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-23 23:23:00 +00:00
David Robillard bb9cc45cd2 Strip trailing whitespace and fix other whitespace errors (e.g. space/tab mixing). Whitespace changes only.
Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red.  I don't know the emacs equivalent...


git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14 16:10:01 +00:00
Paul Davis 12949b390b allow automation-follows-relevant-regions again
git-svn-id: svn://localhost/ardour2/branches/3.0@5285 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-26 17:56:35 +00:00
David Robillard 848df74e58 Fix MIDI playback.
git-svn-id: svn://localhost/ardour2/branches/3.0@5024 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-01 17:32:48 +00:00
David Robillard e0aaed6d65 *** NEW CODING POLICY ***
All #include statements that include a header that is a part of a library
bundled with ardour MUST use quotes, not angle brackets.

Do this:

#include "ardour/types.h"

NOT this:

#include <ardour/types.h>

Rationale:

This is best practice in general, to ensure we include the local version
and not the system version.  That quotes mean "local" (in some sense)
and angle brackets mean "system" (in some sense) is a ubiquitous
convention and IIRC right in the C spec somewhere.

More pragmatically, this is required by (my) waf (stuff) for dependencies
to work correctly.  That is:

!!! FAILURE TO DO THIS CAN RESULT IN BROKEN BUILDS !!!

Failure to comply is punishable by death by torture. :)

P.S. It's not that dramatic in all cases, but this (in combination with some
GCC flags specific to the include type) is the best way I have found to be
absolutely 100% positive the local ones are being used (and we definitely
want to be absolutely 100% positive on that one).


git-svn-id: svn://localhost/ardour2/branches/3.0@4655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-25 18:26:51 +00:00
David Robillard aaa91db6d9 Trim include dependency graph, especially for io.h and session.h.
Clean up some stuff and other such gruntwork in the process.


git-svn-id: svn://localhost/ardour2/branches/3.0@4468 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-30 20:18:31 +00:00
Paul Davis bc89fe0147 most of the 2.X->3.0 commit (up to rev 4299) except for gtk2_ardour/editor_canvas.cc; builds and runs and does a few specific things but expect it to be buggy for a while yet
git-svn-id: svn://localhost/ardour2/branches/3.0@4313 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12 14:43:24 +00:00
David Robillard 2c4a08bc57 MIDI looping fixes from torbenh.
git-svn-id: svn://localhost/ardour2/branches/3.0@3932 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-10-12 17:40:37 +00:00
Paul Davis 68e943265e merge from 2.0-ongoing @ 3581
git-svn-id: svn://localhost/ardour2/branches/3.0@3711 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-10 15:03:30 +00:00
Paul Davis 449aab3c46 rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 21:41:35 +00:00
Doug McLain 9c0d7d72d7 remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 05:02:28 +00:00
David Robillard 873d884fb2 Separate audio and MIDI disk buffer size (and track read ahead) parameters.
Clean up and remove more unused stuff from MidiDiskstream.
Remove false assumptions that MIDI ring buffer space (bytes) corresponds to disk I/O chunk length (frames).


git-svn-id: svn://localhost/ardour2/branches/3.0@3375 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-05-21 07:45:45 +00:00
David Robillard d9228151ae Don't read inactive tracks in Diskstream (merge oops, now matches 2.0).
Change soundtouch pkg-config name back to to "soundtouch-1.0" (Debian switched to this, I think fedora uses it too?).


git-svn-id: svn://localhost/ardour2/branches/3.0@3373 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-05-21 04:23:23 +00:00
Paul Davis 997e4b1f9c merge with 2.0-ongoing @ rev 3147
git-svn-id: svn://localhost/ardour2/branches/3.0@3152 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-03-17 20:54:03 +00:00
David Robillard 8a2e30816e Merge with 2.0-ongoing R2883.
git-svn-id: svn://localhost/ardour2/trunk@2885 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-01-10 22:22:29 +00:00
David Robillard bb457bb960 Merge libs/ardour and gtk2_ardour with 2.0-ongoing R2837.
git-svn-id: svn://localhost/ardour2/trunk@2883 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-01-10 21:20:59 +00:00
Paul Davis b4b891b6ab make region opacity work again; fix several other region context menu items that may have been messing with region state in unforeseen ways
git-svn-id: svn://localhost/ardour2/trunk@1691 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-04-09 18:07:15 +00:00
Paul Davis 54f18f26d4 fix for #1503, crash on new session in write-protected dir
git-svn-id: svn://localhost/ardour2/trunk@1510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-02-26 04:37:32 +00:00
Paul Davis c268314b64 remove all lines to avoid recompiles after commits
git-svn-id: svn://localhost/ardour2/trunk@1489 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-02-22 18:40:54 +00:00