summaryrefslogtreecommitdiff
path: root/libs/ardour/control_protocol_manager.cc
AgeCommit message (Collapse)Author
2017-08-06Remove some debug outputRobin Gareus
2017-08-03Fix crash when cleaning up w/o destroying sessionRobin Gareus
- Control-protocols may transmit data during cleanup (e.g. reset surface), and need the Audio-engine to do so. - destroying the ControlProtocolManager w/o the Session calling ::drop_protocols(), lead to a double free.
2017-06-10semantically more correct ordering of previous commitPaul Davis
2017-06-10linker-agnostic version of recent commit to get ControlProtocol selection ↵Paul Davis
state set correctly
2017-06-09set first selected stripable for control protocols before they are instantiatedPaul Davis
2017-05-12change ControlProtocolManager protocol mutex into a RW lock.Paul Davis
Probably not gaining much in terms of contention, but there's really no reason to be using a mutex
2017-05-12don't actually use a method from libardourcp inside libardour; use a ↵Paul Davis
PBD::Signal to avoid linker issues
2017-05-12change the way ControlProtocols (control surfaces) are notified and handle ↵Paul Davis
Stripable selection changes The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal. The CP Manager calls the ControlProtocol static method to set up static data structures holding selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-04-21Retain state of disabled ctrl-surfacesRobin Gareus
2017-04-21Fix adeadlock (or rather NDEADLCK)Robin Gareus
ControlProtocolManager::set_state() already takes the protocols_lock. However effectively this is a NO-OP. During ::set_state no CPI should be instantiated and ControlProtocolManager::teardown() returns early.
2017-04-21Notify GUI when tearing down ctrl-surfacesRobin Gareus
2017-04-19Prefer boolean over literalRobin Gareus
2017-04-19Use XMLNode::get/set_property API in ARDOUR::ControlProtocolManagerTim Mayberry
2016-11-03make ControlProtocolManager actually handle control protocols that fail to ↵Paul Davis
activate
2016-09-27send a slightly more useful message if a control protocol's probe() method failsPaul Davis
2016-09-27push2: working bidirectional communication, some transport control/display ↵Paul Davis
(LED only); some scrolling
2016-07-25the endless quest to plug memory leaks -- episode 378Robin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-01-01remove debug outputPaul Davis
2015-12-30possible extra housekeeping for control protocol modules.Paul Davis
Currently this code isn't reached because we never call ControlProtocolManager::teardown() on inactive protocols. But at some point it might be appropriate to unload modules (.so/.dll/.dylib) even if the protocol was never instantiated
2015-12-30safer housekeeping for control protocol descriptorsPaul Davis
2015-12-30some good practice.Robin Gareus
2015-12-30fix control surface discovery crash:Robin Gareus
On OSX unloading a module deletes all references to it and the descriptor becomes invalid.
2015-12-29add check for descriptor when deciding whether to register a control surface ↵Paul Davis
request buffer factory
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-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
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
2014-06-25Use PBD::find_files_matching_pattern instead of other variationsTim Mayberry
2014-03-21When finding the control surface DLLs (MSVC built), make sure we only find ↵John Emmas
ones that match our build target
2014-03-10Transfer 'control_protocol_search_path()' into 'libs/ardour/search_paths.cc'John Emmas
2014-01-10Merge windows+cc branch into cairocanvas branch. Not finished, need to now ↵Paul Davis
merge windows branch to get changes from there
2013-12-21new ControlProtocolManager API, and proper handling of view/model changes in ↵Paul Davis
the RC options (prefs) editor
2013-09-06Rename SearchPath class SearchpathTim Mayberry
Windows headers define SearchPath which means we have to undefine it where necessary. This is a pain and can be tricksy, so I feel renaming the class slightly is the easiest solution.
2013-07-11Use glibmm for modules instead of dlfch.hPaul Davis
2013-01-16a bit more debug tracing for control protocolsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13849 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-06fix continuing SNAFUs with ::set_state() for control protocols and the ↵Paul Davis
parent/child/grandchild relationship for the XML nodes. this corrects problems with MackieControl git-svn-id: svn://localhost/ardour2/branches/3.0@13794 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-06-23Use std::string instead of PBD::sys::path in pbd/search_path.h, ↵Tim Mayberry
pbd/file_utils.h and ardour/session_dir.h git-svn-id: svn://localhost/ardour2/branches/3.0@12829 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
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-18major rationalization of use of search paths. ardour now has just 4 ↵Paul Davis
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-12don't load symlinks when trying to discover control protocol shared objectsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12257 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-08fix up overly-persistent active state for control surfacesPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26fix initialization of control protocols so that brand new sessions get ↵Paul Davis
working control protocols if the user's ardour.rc file indicates to do so; fix MCP bank scrolling git-svn-id: svn://localhost/ardour2/branches/3.0@12096 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-25MCP: dynamic ipMIDI ports, more default key bindings, various minor fixesPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12092 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
2011-10-22change several startup messages to be triggered only by -D (debug) optionsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@10281 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01Fix broken whitespace. I'd apologize for the compile times if it was my ↵David Robillard
fault :D git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf