Sources now know about Session.
rearrange session directory heirarchy. remove tape_dir stuff.
NSD allows absolute/relative paths to be typed straight into the text entry.
Session history reloaded after all 3rd party registrations done.
Editor restores its ID; other objects still need this.
use g_mkdir_with_parents() instead of mkdir()
one example of using g_file_test() instead of access.
git-svn-id: svn://localhost/ardour2/trunk@908 d708f5d6-7413-0410-9779-e7cbd77b26cf
process_output_buffers() from inverting the phase of a buffer twice.
Also fixed bug in apply_declick() which resulted in incorrect phases for
even buffers of p-reversed routes.
git-svn-id: svn://localhost/ardour2/trunk@906 d708f5d6-7413-0410-9779-e7cbd77b26cf
libs/ardour/SConscript.
Renamed define WITH_JACK_PORT_ENSURE_MONITOR to HAVE_etc to
be more consistant.
Added a test in libs/ardour/SConscript for jack video support and
ifdef'd the small code blocks in audioengine.cc and session_time.cc
where it was used.
git-svn-id: svn://localhost/ardour2/trunk@882 d708f5d6-7413-0410-9779-e7cbd77b26cf
Seperated AUDIOUNITS support from COREAUDIO support.
Fixed metadata saving in SfdbUI.
git-svn-id: svn://localhost/ardour2/trunk@879 d708f5d6-7413-0410-9779-e7cbd77b26cf
without my editor configured correctly and haven't noticed. Sorry about
that.
git-svn-id: svn://localhost/ardour2/trunk@849 d708f5d6-7413-0410-9779-e7cbd77b26cf
Connect to jack before we start the metering thread in case
the connect fails and an exception is thrown.
* [Modified] SConstruct
Change back the pkg-config argument for the SoundTouch library
to the name used in the upstream tarball. Sorry drobilla, perhaps
there is a way to handle both.
git-svn-id: svn://localhost/ardour2/trunk@848 d708f5d6-7413-0410-9779-e7cbd77b26cf
OS X MacTypes.h/libgnomecanvasmm Rect problem workaround when COREAUDIO=0
git-svn-id: svn://localhost/ardour2/branches/undo@788 d708f5d6-7413-0410-9779-e7cbd77b26cf
creating a memory leak(?) that will go away with the transition of XMLNode* to
shared_ptr<>. A few bits toward restoring history from XML.
git-svn-id: svn://localhost/ardour2/branches/undo@779 d708f5d6-7413-0410-9779-e7cbd77b26cf
Save state basics, including adding PBD::ID to the delinquents. Compiles but needs to be tested (because I can't get the whole thing to compile on OSX due to the Rect problem).
git-svn-id: svn://localhost/ardour2/branches/undo@769 d708f5d6-7413-0410-9779-e7cbd77b26cf
Nuke Serializable in favor of Stateful. Got rid of some warnings with stub
code.
git-svn-id: svn://localhost/ardour2/branches/undo@767 d708f5d6-7413-0410-9779-e7cbd77b26cf
It compiles and runs and seems to still work. Still needed is the actual
serialization. Time to merge back to trunk so things can be tested by all.
git-svn-id: svn://localhost/ardour2/branches/undo@754 d708f5d6-7413-0410-9779-e7cbd77b26cf
global {solo,mute,record enable,metering} state commands. Same philosophy as
the MementoCommand but using only the appropriate state and not the entire
state of the session.
git-svn-id: svn://localhost/ardour2/branches/undo@718 d708f5d6-7413-0410-9779-e7cbd77b26cf
Memento(Redo|Undo)Command has a noop for the undo or redo respectively, and
we don't need both before and after state. This is primarily useful for
drag start/finish callbacks, and really only makes sense where wrapped by
(begin|commit)_reversible_command (a composite command).
Also a few more "normal" MementoCommands.
git-svn-id: svn://localhost/ardour2/branches/undo@695 d708f5d6-7413-0410-9779-e7cbd77b26cf
All the obvious MementoCommand grunt work. Now there's some
add_undo/add_redo_no_execute sprinkled around where one is separated from the
other (e.g. in different callbacks) or perhaps even where there's only an undo
and no redo. Also some sigc-based undo/redo pairs that probably need their own
Command class.
git-svn-id: svn://localhost/ardour2/branches/undo@692 d708f5d6-7413-0410-9779-e7cbd77b26cf
This is the first swath of changes, replacing add_undo with MementoCommand
pattern, through most of the editor_mouse.cc file. However there were a few
places that weren't symmetrical that I need to think about. The question is
whether to tweak things so that they are symmetrical (add_undo paired with
add_redo*), or to allow Commands to not be undoable or not be redoable. Your
thoughts are welcome.
git-svn-id: svn://localhost/ardour2/branches/undo@685 d708f5d6-7413-0410-9779-e7cbd77b26cf
I just had an epiphany. I tried so many ways to make saving function name and
args work, it never occured to me that you could just as easily save undo
information as a pair of mementos, even in the Command-based structure we
agreed on.
Since many (read: almost all) existing undo commands take this form:
begin_reversible_command (_("change fade in length"));
session->add_undo (arv->region.get_memento());
arv->region.set_fade_in_length (fade_length);
session->add_redo_no_execute (arv->region.get_memento());
commit_reversible_command ();
We are already doing the save a memento before and after work. All we need to
do is instantiate an appropriate instance of MementoCommand. So the above
becomes:
begin_reversible_command (_("change fade in length"));
MementoCommand<arv_region_t, arv_region_memento_t> before, after;
before = arv->region.get_memento();
arv->region.set_fade_in_length (fade_length);
after = arv->region.get_memento();
session->add_command(arv->region, before, after);
commit_reversible_command ();
(With apologies for being too lazy to go look up what arv_region_t and
arv_region_memento_t are)
Note that the true command approach is still possible, and encouraged (both by
dictate and design).
git-svn-id: svn://localhost/ardour2/branches/undo@680 d708f5d6-7413-0410-9779-e7cbd77b26cf
Coding for undo/redo starts in earnest. Paul and I decided to go with a
standard gang of four Command pattern, with serialization. This overcomes the
terrible difficulties we were having with static type checking and the sigc++
approach. I'm adding the requirement that each command support undo,
simplifying undo/redo. NOTE that an important fallout here is that
Command::operator()() is the opposite of the old UndoAction::operator()(), i.e.
Command::operator()() is execute/redo, and Command::undo() is undo.
This commit is a reworking of the infrastructure, and won't compile until
creating Command subclasses for the various commands being performed. That is
primarily where you find get_memento and/or calls to add_(undo|redo.*).
git-svn-id: svn://localhost/ardour2/branches/undo@655 d708f5d6-7413-0410-9779-e7cbd77b26cf
renamed UndoCommand to UndoTransaction, and created new UndoCommand class and
its templated subclass SlotCommand. Those two are still in considerable flux.
git-svn-id: svn://localhost/ardour2/branches/undo@606 d708f5d6-7413-0410-9779-e7cbd77b26cf
b) various changes to ControlProtocol model/implementation
c) more attempts to get autoscroll to work nicely (unfinished)
d) move editor item types into their own header
git-svn-id: svn://localhost/trunk/ardour2@506 d708f5d6-7413-0410-9779-e7cbd77b26cf
a) measure lines extend the full height of the canvas
b) region name color bars and text positioning now adjusted to match
font size for different display resolutions
c) vertical scrollbar limited to cover visible tracks only
git-svn-id: svn://localhost/trunk/ardour2@486 d708f5d6-7413-0410-9779-e7cbd77b26cf