13
0
Commit Graph

257 Commits

Author SHA1 Message Date
Carl Hetherington
24b418598a Make EnumWriter exceptions a bit more informative.
git-svn-id: svn://localhost/ardour2/branches/3.0@12758 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-18 18:28:19 +00:00
Carl Hetherington
5ac22e9095 Add new SharedStatefulProperty which manages a shared_ptr to
some Stateful object, and a subclass to use this for
AutomationList.  SharedStatefulProperty will manage undo / redo
using full copies of the XML state, like MementoCommand,
but does it within the Property undo system.



git-svn-id: svn://localhost/ardour2/branches/3.0@12740 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-16 17:20:10 +00:00
Carl Hetherington
7eb8a33910 Add path_is_within to decide if a path is within a given
directory, taking symlinks into account, and use it to
decide whether a file is within the session folder.  Should
fix #4552.


git-svn-id: svn://localhost/ardour2/branches/3.0@12468 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-28 16:32:41 +00:00
Carl Hetherington
23a615a6db Must disconnect old UnscopedConnection when setting a new one in operator=, otherwise the old one is leaked.
git-svn-id: svn://localhost/ardour2/branches/3.0@12356 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-21 10:26:10 +00:00
813c5f0af9 major rationalization of use of search paths. ardour now has just 4 functions used to define how external resources are located: ardour_config_search_path() (for system or user specific configuration data), ardour_data_search_path() (for machine, user and system independent data), ardour_dll_directory() (base directory where shared libraries are found) and user_config_directory(). These are now used throughout the code. the config, data and dll paths/directories can be overridden by environment variables. the user config dir is added as the first element of the first two search paths, and use selectively when searching for a few other things.
This commit re-enabes ./waf install, and it is believed that it works fully at this point (more testing likely required)

git-svn-id: svn://localhost/ardour2/branches/3.0@12326 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-18 17:24:06 +00:00
c1300a0172 reset _signal member of a Connection so that we will never try to disconnect twice
git-svn-id: svn://localhost/ardour2/branches/3.0@12299 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-16 00:06:16 +00:00
Carl Hetherington
b54779ec41 Try to make signals.h.py more cross-python-version compatible.
git-svn-id: svn://localhost/ardour2/branches/3.0@12285 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15 10:43:47 +00:00
Carl Hetherington
4d22a4345a Tidy up a bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@12283 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15 00:06:37 +00:00
Carl Hetherington
a6fdd6c915 Maybe fix typename / no-typename problems better.
git-svn-id: svn://localhost/ardour2/branches/3.0@12282 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15 00:06:33 +00:00
Carl Hetherington
5bbbc98533 Add missing file.
git-svn-id: svn://localhost/ardour2/branches/3.0@12280 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15 00:06:17 +00:00
Carl Hetherington
32bed9aaf0 Make ScopedConnectionList's mutex non-static so that one
list's destruction can cause another without a
deadlock.


git-svn-id: svn://localhost/ardour2/branches/3.0@12279 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15 00:06:06 +00:00
Carl Hetherington
14a86aaccc Merge old a new signals code into one set of classes.
git-svn-id: svn://localhost/ardour2/branches/3.0@12278 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15 00:05:57 +00:00
Carl Hetherington
0c3f6d9819 Remove the need for a shared_ptr for Signal; signal
tells its connections that it's going away, instead.


git-svn-id: svn://localhost/ardour2/branches/3.0@12277 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15 00:05:25 +00:00
Carl Hetherington
f012a84e62 Build libs/pbd/pbd/signal.h from its generator python
script.


git-svn-id: svn://localhost/ardour2/branches/3.0@12268 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14 17:46:07 +00:00
1e0fd01815 drop boost::signals2 and replace with carl's solution which continues to rely on boost::function and boost::bind but alters two important semantics of signals2: (1) when a Connection object is disconnected, the slot ("functor") associated with the connection is destroyed immediately, unlike signals2 where this is deferred to a subsequent connect/emit call on the signal (2) if one functor called by the signal disconnects another Connection, the functor represented by the Connection will NOT be called during the current signal emission (signals2 copies the slot list at the start of emission and calls everything in the slot list). this change fixes some very nasty crashes apparently caused by boost::signals2 assuming that the memory referenced by a functor remains valid after a disconnect (google will show other developers who had issues with this).
git-svn-id: svn://localhost/ardour2/branches/3.0@12265 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14 17:18:48 +00:00
37969d837e remove virtual inheritance of sigc::trackable by Receiver and AbstractUI<T>, done by changing Gtkmm2ext::UI to use composition (HAS-A) rather than inheritance (IS-A) for Receiver; use correct synchronization when starting up a BseUI event loop thread so that tests that start/stop quickly do not encounter a race condition
git-svn-id: svn://localhost/ardour2/branches/3.0@12264 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14 17:07:53 +00:00
4302649bd9 Fix compilation on Windows. Probably.
git-svn-id: svn://localhost/ardour2/branches/3.0@12246 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-10 21:53:01 +00:00
482e15a424 correct cut-n-paste error in new comments for signals.h
git-svn-id: svn://localhost/ardour2/branches/3.0@12230 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09 18:16:12 +00:00
73161988bb add some explanatory comments to pbd/signals.h
git-svn-id: svn://localhost/ardour2/branches/3.0@12226 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09 16:25:50 +00:00
7a76168b66 more fixes/tweaks from the land of the lion
git-svn-id: svn://localhost/ardour2/branches/3.0@12150 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-02 20:45:17 +00:00
d5e14b3d91 eventloop and abstractui debugging, lots more commenting on abstractui/eventloop implementation; minor tweaks elsewhere
git-svn-id: svn://localhost/ardour2/branches/3.0@12076 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24 16:45:38 +00:00
Carl Hetherington
9befa88deb Fix some warnings.
git-svn-id: svn://localhost/ardour2/branches/3.0@12048 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20 23:34:15 +00:00
d6051c9953 move string_is_affirmative() into libpbd
git-svn-id: svn://localhost/ardour2/branches/3.0@11936 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 11:45:40 +00:00
338e83d9dc Implement LV2 worker extension.
This is done by way of a generic Worker object/thread, which currently just
applies to one LV2 plugin, but the idea is to share one thread and set of
buffers among many plugins.  The same pattern may also be useful elsewhere in
Ardour.  The responding part gets a bit tricker when sharing a worker between
plugins, it's not a blocker, and I'm lazy, sooo here's this.

This commit also adds a new portable in-process semaphore to PBD.  The existing
one is pretty weird and uses a named semaphore on OSX for reasons unknown to
me.  Perhaps as a quick fix to avoid POSIX semaphores being utterly broken on
OSX?  It would probably be a good idea to replace that with this new one, which
uses Mach kernel semaphores on OSX which work well, though I am not sure how
pedantically real-time safe they are to signal.


git-svn-id: svn://localhost/ardour2/branches/3.0@11790 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-05 00:15:54 +00:00
Carl Hetherington
7f417fb44f Remove unused ustring version of url_decode(). Rework
the other version to be a bit simpler, avoiding #4800.


git-svn-id: svn://localhost/ardour2/branches/3.0@11771 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-01 14:30:06 +00:00
71b3c8cfe1 some deep changes to xml++ in which we retain a C-level xmlDocPtr as a member of an XMLTree objects. this allows us to do repeated XPATH searches (as in the midnam parser of libmidi++) without constantly rewriting an entire tree into memory to recreate a new xmlDocPtr with which we can search. Since XMLTree objects don't typically stay around for very long, just when serializing to/from disk, this is not anticipated to have much (if any) impact on memory consumption
git-svn-id: svn://localhost/ardour2/branches/3.0@11733 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-20 18:01:07 +00:00
3c7f9586ae implement XMLNode::operator=() as a deep operation with the same semantics as the XMLNode copy constructor. attempt to share as much code as possible between them and the destructor
git-svn-id: svn://localhost/ardour2/branches/3.0@11612 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-07 02:07:35 +00:00
f72ecaf54a use #include <typeinfo> before using typeid
git-svn-id: svn://localhost/ardour2/branches/3.0@11576 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-01 20:25:31 +00:00
Carl Hetherington
4381b590bb Reinstate user Controllable values, as they are needed
for gain (which I forgot about).


git-svn-id: svn://localhost/ardour2/branches/3.0@11293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21 16:38:56 +00:00
Carl Hetherington
d03d0363a4 Remove unused concept of user' values. Make user_to_ui
and ui_to_user virtual members of PBD::Controllable.


git-svn-id: svn://localhost/ardour2/branches/3.0@11286 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-20 18:02:36 +00:00
567153e4fb new file, a small idea
git-svn-id: svn://localhost/ardour2/branches/3.0@11257 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-18 01:34:53 +00:00
c3a52084f8 new DEBUG_ENABLED(bits) macro, potentially useful here and there
git-svn-id: svn://localhost/ardour2/branches/3.0@11102 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-28 21:01:52 +00:00
Carl Hetherington
39f765614a Clear up confusion with overloads of _frozen and frozen()
meaning different things.


git-svn-id: svn://localhost/ardour2/branches/3.0@11016 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-17 16:37:18 +00:00
Carl Hetherington
084cd5ffda Add basic test of playlist layering.
git-svn-id: svn://localhost/ardour2/branches/3.0@11011 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-15 14:33:20 +00:00
Carl Hetherington
73a91402cd Save templates as directories with plugin state, if
there is any, and copy that state to sessions created
from those templates.  Should fix #4525.  Breaks
existing session templates, sorry; they can be fixed by
moving the .template file into a new directory with the
name of the template (minus the .template).


git-svn-id: svn://localhost/ardour2/branches/3.0@10982 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-11 20:38:42 +00:00
Carl Hetherington
5c73926324 Simple ambiguitity-resolution wrapper for gettext; use for
Manual (#4496).


git-svn-id: svn://localhost/ardour2/branches/3.0@10720 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21 00:04:44 +00:00
Carl Hetherington
0c9c47086c Slightly unpleasant fix for creation of tracks from
templates; it would be nice if we could set things up using
the Route's logic for setting names of its children, rather
than repeating the same logic in XML-land (#4303).


git-svn-id: svn://localhost/ardour2/branches/3.0@10655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-16 23:03:59 +00:00
535f52c1b5 remove stupid symlink stuff
git-svn-id: svn://localhost/ardour2/branches/3.0@10635 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-16 00:13:42 +00:00
4bd00b89c7 utility function to detect symlinks
git-svn-id: svn://localhost/ardour2/branches/3.0@10604 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-15 01:25:03 +00:00
Carl Hetherington
4c2f9dd11b Add function to recover a full path from something like '.'
git-svn-id: svn://localhost/ardour2/branches/3.0@10284 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-22 21:46:46 +00:00
4085309cdb make Stateful::_id private and provide appropriate methods to set it, and use them throughout ardour
git-svn-id: svn://localhost/ardour2/branches/3.0@10222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18 13:18:47 +00:00
Carl Hetherington
fa590d385b Add Signal5.
git-svn-id: svn://localhost/ardour2/branches/3.0@10134 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-26 22:22:14 +00:00
Carl Hetherington
185b58f259 Use a MementoCommandBinder for Crossfades so that the undo record can contain details for crossfades that are subsequently deleted (#4325).
git-svn-id: svn://localhost/ardour2/branches/3.0@10104 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-21 15:54:19 +00:00
1060243302 major, substantive reworking of how we store GUI information (visibility, height) for automation data. old design stored (insufficient) identifying information plus actual data in a GUI-only XML node; new scheme adds GUI data via extra_xml node to each AutomationControl object. reworked public/private methods for showing/hiding TimeAxisView objects; changed labelling of automation tracks to just show the name of the controlled parameter - more info can be viewed in the tooltip for the track headers. NOTE: Session file format ALTERED. No data loss but track visibility may be different than previous ardour3 versions
git-svn-id: svn://localhost/ardour2/branches/3.0@9703 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-11 15:35:34 +00:00
Carl Hetherington
b6587ad160 Assorted doxygen fixes; no functional changes.
git-svn-id: svn://localhost/ardour2/branches/3.0@9575 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-23 22:12:45 +00:00
ee728d763d allow invalidation-of-UI-request-by-object-deletion to work more often by setting the event loop record at connect time, not execution time
git-svn-id: svn://localhost/ardour2/branches/3.0@9379 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-19 16:07:10 +00:00
93a24066de add PBD::sys::path::exists_and_writable() method to help replace access(2)
git-svn-id: svn://localhost/ardour2/branches/3.0@9338 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-09 15:27:22 +00:00
Carl Hetherington
02cfe41bff Update region peak amplitude when the region is trimmed (#3931).
git-svn-id: svn://localhost/ardour2/branches/3.0@9276 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-04 12:21:26 +00:00
Carl Hetherington
05cc0f0db7 Spurious character in GPL boilerplate.
git-svn-id: svn://localhost/ardour2/branches/3.0@9241 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-30 12:36:53 +00:00
ea9979b4b9 remove Evoral::RingBuffer, which was (a) duplicating PBD::RingBufferNPT and (b) broken; replace it with PBD::RingBufferNPT
git-svn-id: svn://localhost/ardour2/branches/3.0@9212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-26 19:01:12 +00:00