Commit graph

61 commits

Author SHA1 Message Date
Robin Gareus
5cbd4ce759 fix crash @ session-restore of plugins windows
The question is: why is _owner not set [yet], when the
window is restored. This rather smells like a race condition.
2013-11-22 18:22:55 +01:00
Paul Davis
d9058499af add a back-pointer to the owner of a Processor
Use SessionObject* rather than Route so that per-region plugins will be possible in the future.
2013-10-14 11:12:50 -04: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
Paul Davis
d46acb86ea redesign how XML state, bitslots and names get propagated during copying a send/port insert/return
git-svn-id: svn://localhost/ardour2/branches/3.0@11669 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-13 20:14:55 +00:00
Carl Hetherington
d9a3c6b89f Rename windows VST stuff with a Windows prefix.
git-svn-id: svn://localhost/ardour2/branches/3.0@10738 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21 17:42:29 +00:00
Paul Davis
4aeebb914e changes for OS X support: change waf config define to COREAUDIO_SUPPORT, remove PluginInsert call to IO::PortCountChanged, remove use of explicit Carbon linkage, fix up AudioUnit internals to actually work (Cocoa GUIs still currently broken)
git-svn-id: svn://localhost/ardour2/branches/3.0@10224 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18 15:08:42 +00:00
Paul Davis
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
Paul Davis
0938a42440 fixes for 98% of all the warnings/errors reported by OS X gcc on tiger
git-svn-id: svn://localhost/ardour2/branches/3.0@10179 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-30 17:55:14 +00:00
Carl Hetherington
9d57b87999 Save / restore processor _user_latency (another part of #4186).
git-svn-id: svn://localhost/ardour2/branches/3.0@9880 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-15 00:03:18 +00:00
Paul Davis
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
David Robillard
a473d630eb Fix broken whitespace. I'd apologize for the compile times if it was my fault :D
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 16:50:12 +00:00
Carl Hetherington
b38b5fd59b Doxygen tweaks.
git-svn-id: svn://localhost/ardour2/branches/3.0@9581 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-25 10:15:54 +00:00
David Robillard
852232ad27 Tolerate LV2 plugins that call persist/file state functions early.
git-svn-id: svn://localhost/ardour2/branches/3.0@9343 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-13 01:44:46 +00:00
Carl Hetherington
ad1f38c0a2 Fix warning.
git-svn-id: svn://localhost/ardour2/branches/3.0@8734 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-07 01:12:55 +00:00
Carl Hetherington
801bd95613 Fix compiler warning.
git-svn-id: svn://localhost/ardour2/branches/3.0@8673 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-02 01:12:13 +00:00
Paul Davis
b78d036aa0 store void pointers to processor UIs in Processors, and reset ProcessorWindowProxy objects to use them, so that we can never create 2 windows (UIs) for the same processor
git-svn-id: svn://localhost/ardour2/branches/3.0@8638 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-01 02:41:31 +00:00
Carl Hetherington
19ee77a74c Prevent Processor classes messing with names when setting state from XML. Fixes JACK-send loading from state.
git-svn-id: svn://localhost/ardour2/branches/3.0@8503 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-11 02:47:38 +00:00
Carl Hetherington
1f0ac78bc4 Fix deadlock on closing a send IO dialogue.
git-svn-id: svn://localhost/ardour2/branches/3.0@8240 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-10 22:46:53 +00:00
Carl Hetherington
d2c23d8204 Fix save/reload of pan automation.
git-svn-id: svn://localhost/ardour2/branches/3.0@7798 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-18 20:01:36 +00:00
Paul Davis
be85889464 fix load+save of plugin parameter automation
git-svn-id: svn://localhost/ardour2/branches/3.0@7678 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-24 22:07:53 +00:00
Carl Hetherington
579fcb70e2 First go at saving window visibility and position state across saves.
git-svn-id: svn://localhost/ardour2/branches/3.0@7644 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-18 02:20:15 +00:00
Carl Hetherington
9a539fd347 Call activate() on plugins when setting state so that they are initialised correctly.
git-svn-id: svn://localhost/ardour2/branches/3.0@7562 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-07 23:31:33 +00:00
Carl Hetherington
b75977920e Remove stub class.
git-svn-id: svn://localhost/ardour2/branches/3.0@7407 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-13 01:26:30 +00:00
Carl Hetherington
f35dc8b35d Remove muting behaviour from the Amp processor. Fix some small
bugs with delivery muting.  The upshot being that muting now definitely
happens in a channel's deliveries, and not really in the channel strip
at all.  When the channel is muted, those deliveries described by
the MuteMaster settings are muted.  Should fix #3141.



git-svn-id: svn://localhost/ardour2/branches/3.0@7115 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-17 23:28:13 +00:00
Paul Davis
c0c617902e revisit setting up processors during route construction; remove several more XML-based constructors; don't put () parens around inactive plugin names (we have a checkbox); improve management of send, return and insert bitslot IDs; clean up Diskstream construction a bit more
git-svn-id: svn://localhost/ardour2/branches/3.0@6819 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-01 01:24:13 +00:00
Paul Davis
325671e20a how about that ... a monitor/main section .. GUI is still unfinished .. several small fixes to processor loading/listen mgmt and a few debug output lines rmeoved. knob images are provisional, and can be found in icons/knob.png and related files
git-svn-id: svn://localhost/ardour2/branches/3.0@6744 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-03-10 17:31:16 +00:00
David Robillard
650c6d5824 Fix various code quality issues found by cppcheck (e.g. uninitialized members, larger than necessary variable scope, memory leaks, etc).
git-svn-id: svn://localhost/ardour2/branches/3.0@6710 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-23 20:25:53 +00:00
Paul Davis
aae367b63c use new syntax for connecting to backend signals that enforces explicit connection scope, plus a few other related matters
git-svn-id: svn://localhost/ardour2/branches/3.0@6376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-19 20:26:31 +00:00
Paul Davis
f6fdd8dcbf switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17 18:24:23 +00:00
Paul Davis
57e1358fb2 add "custom" meter option which is the only option where the meter processor is visible in the UI; hide main outs always
git-svn-id: svn://localhost/ardour2/branches/3.0@6126 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-18 20:01:37 +00:00
David Robillard
bc56eb8bd7 Fix unused parameter warnings since GCC apparently doesn't feel like listening to -Wno-unused-parameter
git-svn-id: svn://localhost/ardour2/branches/3.0@5835 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-21 00:15:42 +00:00
Paul Davis
8713667ec1 rework Stateful::set_state() patch to avoid default version argument
git-svn-id: svn://localhost/ardour2/branches/3.0@5787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 18:56:11 +00:00
Carl Hetherington
79f91c7a20 Part 1 of loading 2.X sessions; some things work, some things don't, hacks a-plenty.
LOADING 2.X SESSIONS WITH THIS COMMIT IN PLACE WILL (PROBABLY) CORRUPT THE .ardour FILE,
MAKING THE SESSION UNLOADABLE ON 2.X AND LOSING INFORMATION.

So don't do that unless you make a backup of the session file first.



git-svn-id: svn://localhost/ardour2/branches/3.0@5786 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 00:57:55 +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
e488378d42 string_is_affirmative() fix for 3.0
git-svn-id: svn://localhost/ardour2/branches/3.0@5723 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-02 20:53:31 +00:00
Paul Davis
e7e071db1a more MIDI editing tweaks ; flip mouse mode buttons around for MIDI so that "object" mode is the most likely mode for both region \& region editing ; frame handle events (from lincoln's region trimming patch) are now handled more explicitly
git-svn-id: svn://localhost/ardour2/branches/3.0@5600 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-28 16:06:08 +00:00
Paul Davis
0bf3eb7759 first part of MIDI cut/copy/paste ; fix for input/output_streams of an IOProcessor being reported in a misleading way; in/out translation fix from 2.X, sort of
git-svn-id: svn://localhost/ardour2/branches/3.0@5510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-10 19:29:29 +00:00
Paul Davis
f411496289 fix clicking when processors become active/inactive; reduce crazy 2.5sec delay for quit dialog
git-svn-id: svn://localhost/ardour2/branches/3.0@5402 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-21 14:39:21 +00:00
Paul Davis
88beef2e93 merge pre- and post-fader processor boxes; start removing Placement (not finished) ; add -DWAF_BUILD and use per-directory foobar-config.h to correctly pick up configure-time settings like HAVE_OGG ; check for libgiomm (part of upgrade to newer gtk stack); 32 bit marker reload fix from 2.X; audiounit IO config cache fix from 2.X; multi-add route template fix from 2.X; plugin GUI delete fix from 2.X; solo button labels are A or P for listen mode
git-svn-id: svn://localhost/ardour2/branches/3.0@5344 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-13 00:26:28 +00:00
Paul Davis
1e8047f0ed solo models work again (amazing how hard this was); remove crufty debug output; remove scrollbars on editor (and temporarily lose zoom controls)
git-svn-id: svn://localhost/ardour2/branches/3.0@5207 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-17 15:50:29 +00:00
Paul Davis
86f24d20e1 first pass (ok, third really) at internal send+return - audio routing inside ardour without JACK. lots still to do, but at least the obvious works
git-svn-id: svn://localhost/ardour2/branches/3.0@5202 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-16 14:58:33 +00:00
Paul Davis
e6eb059576 the big Route structure refactor. !!!! THIS WILL ***NOT LOAD*** PRIOR 3.0 or 2.X SESSIONS !!!! BREAKAGE IS EXPECTED !!!! IF YOU HAVE AND NEED A WORKING 3.0 DO **NOT** UPDATE. !!!! otherwise, update and enjoy the steadily emerging joys of this major reworking of ardour internals
git-svn-id: svn://localhost/ardour2/branches/3.0@5137 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-09 20:21:19 +00:00
Paul Davis
ace07c80a8 a gadzillion changes all over the place. nothing is finished, but all is better than it was. more to come on all almost everything touched by this commit, this is purely a sync-to-repository. compiles and runs, but now incompatible with all previous 3.0 session files (probably)
git-svn-id: svn://localhost/ardour2/branches/3.0@5084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-16 02:51:17 +00:00
Paul Davis
0569107ddc more work on the new all-Processor-all-The-Time redesign of Route - LOTS OF BREAKAGE STILL EXPECTED ; change all(?) methods that pass a start/end frame in to use sframes_t not nframes_t
git-svn-id: svn://localhost/ardour2/branches/3.0@5074 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-13 21:34:09 +00:00
David Robillard
7183242b8c The great audio processing overhaul.
The vast majority of Route signal processing is now simply in the list of
processors.  There are definitely regressions here, but there's also
a lot of things fixed.  It's far too much work to let diverge anymore
regardless, so here it is.

The basic model is: A route has a fixed set of input channels (matching
its JACK input ports and diskstream).  The first processor takes this
as input.  The next processor is configured using the first processor's
output as input, and is allowed to choose whatever output it wants
given that input... and so on, and so on.  Finally, the last processor's
requested output is used to set up the panner and create whatever Jack
ports are needed to output the data.

All 'special' internal processors (meter, fader, amp, insert, send) are
currently transparent: they read any input, and return the same set
of channels back (unmodified, except for amp).

User visible changes:
 * LV2 Instrument support (tracks with both MIDI and audio channels)
 * MIDI in/out plugin support
 * Generic plugin replication (for MIDI plugins, MIDI/audio plugins)
 * Movable meter point

Known Bugs:
 * Things seem to get weird on loaded sessions
 * Output delivery is sketchy
 * 2.0 session loading was probably already broken...
   but it's definitely broken now :)

Please test this and file bugs if you have any time...



git-svn-id: svn://localhost/ardour2/branches/3.0@5055 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-07 06:30:50 +00:00
David Robillard
807bc4c3d6 Reconfigure GUI meters when route I/O configuration changes.
git-svn-id: svn://localhost/ardour2/branches/3.0@5037 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04 17:05:55 +00:00
David Robillard
ca10cc82a4 Preliminary MIDI plugin support.
git-svn-id: svn://localhost/ardour2/branches/3.0@5036 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04 15:50:51 +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
9462374e29 Session XML style consistency (tag names are capitalized).
One thing left, this weird "end-marker-is-free" in <Config>.  Is this really a config option?  Anyone?


git-svn-id: svn://localhost/ardour2/branches/3.0@4577 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 03:21:30 +00:00
Carl Hetherington
9a3734a6bd Make DnD copy processors using their XML representations. Remove unused
copy constructors from the Processor hierarchy, and declare them private
to explicitly disallow copy construction.


git-svn-id: svn://localhost/ardour2/branches/3.0@4556 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-14 19:45:30 +00:00