summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/control_protocol_manager.h
AgeCommit message (Collapse)Author
2016-11-03make ControlProtocolManager actually handle control protocols that fail to ↵Paul Davis
activate
2016-07-25the endless quest to plug memory leaks -- episode 378Robin Gareus
2015-12-28redesign cross-thread registration/signalling systemPaul Davis
This new design will work even when threads that need to receive messages from RT threads are created *after* the RT threads. The existing design would fail because the RT thread(s) would never be known the later created threads, and so signals emitted by the RT thread and causing call_slot() in the receiver would end up being enqueued using a lock-protected list. The new design ensures that communication always uses a lock-free FIFO instead
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-02explicitly drop control surface protocols before disconnecting from engine.Paul Davis
This is not bomb/thread proof yet, because it still requires at least one process callback to function
2013-12-27merge exportvis branch into cairocanvas, to reduce the number of "floating" ↵Paul Davis
branches. Still need to add API export/visibility macros for the canvas library.
2013-12-21new ControlProtocolManager API, and proper handling of view/model changes in ↵Paul Davis
the RC options (prefs) editor
2013-10-17add export visibility macros across libardourPaul Davis
2012-10-17second half of forward-port of recent a2/mb control protocol changes, this ↵Paul Davis
time enabling the GUI to track protocol-active changes git-svn-id: svn://localhost/ardour2/branches/3.0@13303 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17forward part the backend part of the generic MIDI control fixes from mb2/a2Paul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13297 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Compile cleanly with clang.David Robillard
To compile Ardour with LLVM/clang, do the usual thing but set the CXX and CC environment variables, e.g.: CC=/usr/bin/clang CXX=/usr/bin/clang++ ./waf configure build git-svn-id: svn://localhost/ardour2/branches/3.0@12418 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22MCP: a fistful of improvements. probably best to just try it and see what it ↵Paul Davis
broken. KNOWN: pressing vpots without a bank/channel shift will crash ardour git-svn-id: svn://localhost/ardour2/branches/3.0@12053 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-23Fix various code quality issues found by cppcheck (e.g. uninitialized ↵David Robillard
members, larger than necessary variable scope, memory leaks, etc). git-svn-id: svn://localhost/ardour2/branches/3.0@6710 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17switch to using boost::signals2 instead of sigc++, at least for libardour. ↵Paul Davis
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-10-15rework Stateful::set_state() patch to avoid default version argumentPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@5787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15Part 1 of loading 2.X sessions; some things work, some things don't, hacks ↵Carl Hetherington
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-14Strip trailing whitespace and fix other whitespace errors (e.g. space/tab ↵David Robillard
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-12Set up the ControlProtocolManager singleton in a slightly more robust way.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@5768 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-25*** NEW CODING POLICY ***David Robillard
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
2008-06-02rollback to 3428, before the mysterious removal of libs/* at 3431/3432Paul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02remove empty sigc++2 directoryDoug McLain
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-27Replace code for finding ControlProtocols/Surface plugins with a portable ↵Tim Mayberry
equivalent. Remove Session::control_protocol_path and the supporting non-portable Session::suffixed_search_path from Session. Add ARDOUR::control_protocol_search_path which is used in place of Session::control_protocol_path Replace ARDOUR::get_system_module_path with ARDOUR::system_module_directory which is used by ARDOUR::control_protocol_search_path Export ARDOUR_SURFACES_PATH in gtk2_ardour/ardev_common.sh which is returned by ARDOUR::control_protocol_search_path if defined. This means the control surfaces in the libs/surfaces/* directories can now be used without installing them. Add pbd/file_utils.h/cc containing functions for finding files matching a certain pattern Update documentation in SearchPath and add another constructor that takes a sys::path git-svn-id: svn://localhost/ardour2/trunk@2049 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-17Move Stateful class declared in pbd/stateful.h into the PBD namespaceTim Mayberry
git-svn-id: svn://localhost/ardour2/trunk@2011 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-04-26Merged changes from trunk 1699:1751 into 2.1-stagingPaul Davis
git-svn-id: svn://localhost/ardour2/branches/2.1-staging@1752 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-10-13session export starts from session start marker; add tooltips for rude solo ↵Paul Davis
+ audition; start work on control protocol feedback control (unfinished but compiles and runs git-svn-id: svn://localhost/ardour2/trunk@985 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-10-05Generic MIDI control now saves+restores its state; PBD::ID now requires a ↵Paul Davis
buffer size for its print() method git-svn-id: svn://localhost/ardour2/trunk@949 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-10modification to make generic MIDI actually work againPaul Davis
git-svn-id: svn://localhost/ardour2/trunk@673 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-07id_t becomes a fully-fledged object, UUID's used for IDs, generic MIDI now ↵Paul Davis
owns bindings, MIDI binding concept removed from libardour itself in favor of generic Controllables git-svn-id: svn://localhost/ardour2/trunk@669 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-07Merged timbyr's win32 branch. -r 547:566.Taybin Rutkin
git-svn-id: svn://localhost/ardour2/trunk@567 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-19allow for mandatory control protocols, plus some ongoing work on automation ↵Paul Davis
control point selection (unfinished) git-svn-id: svn://localhost/trunk/ardour2@516 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-24a) completely refactor abstract UI codePaul Davis
b) single-thread Tranzport implementation c) implement BasicUI to share functionality across multiple controllers d) various minor fixes here and there git-svn-id: svn://localhost/trunk/ardour2@468 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-10a) moved metering and meter falloff code into libardourPaul Davis
b) added initial "big meter" mode for tranzport c) fixed some lock issues in ARDOUR::IO objects d) generic_midi control surface module now compiles and loads git-svn-id: svn://localhost/trunk/ardour2@450 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-05add new control protocol related filesPaul Davis
git-svn-id: svn://localhost/trunk/ardour2@443 d708f5d6-7413-0410-9779-e7cbd77b26cf