Paul Davis
ae837b49ed
semantically more correct ordering of previous commit
2017-06-10 12:04:27 -04:00
Paul Davis
0f20819c86
linker-agnostic version of recent commit to get ControlProtocol selection state set correctly
2017-06-10 11:53:37 -04:00
Paul Davis
d0307e10c9
set first selected stripable for control protocols before they are instantiated
2017-06-09 17:55:11 -04:00
Paul Davis
b23d7d9170
change ControlProtocolManager protocol mutex into a RW lock.
...
Probably not gaining much in terms of contention, but there's really no reason to be using a mutex
2017-05-12 20:09:40 +01:00
Paul Davis
7021d02782
don't actually use a method from libardourcp inside libardour; use a PBD::Signal to avoid linker issues
2017-05-12 17:49:09 +01:00
Paul Davis
eb3f50e15c
change the way ControlProtocols (control surfaces) are notified and handle 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-05-12 14:51:39 +01:00
Robin Gareus
44cec18516
Retain state of disabled ctrl-surfaces
2017-04-21 04:08:08 +02:00
Robin Gareus
661d258687
Fix adeadlock (or rather NDEADLCK)
...
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-21 04:08:05 +02:00
Robin Gareus
7d5b7d538e
Notify GUI when tearing down ctrl-surfaces
2017-04-21 02:53:51 +02:00
Robin Gareus
c8aa78af07
Prefer boolean over literal
2017-04-19 12:51:11 +02:00
Tim Mayberry
9f43d94d07
Use XMLNode::get/set_property API in ARDOUR::ControlProtocolManager
2017-04-19 09:36:50 +10:00
Paul Davis
8fb8e1bbde
make ControlProtocolManager actually handle control protocols that fail to activate
2016-11-03 20:24:09 +00:00
Paul Davis
6946bdc083
send a slightly more useful message if a control protocol's probe() method fails
2016-09-27 14:59:31 -05:00
Paul Davis
4991bf5a1a
push2: working bidirectional communication, some transport control/display (LED only); some scrolling
2016-09-27 14:59:29 -05:00
Robin Gareus
eec294a97e
the endless quest to plug memory leaks -- episode 378
2016-07-25 17:16:32 +02:00
Paul Davis
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
Paul Davis
17ace643e4
OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)
2016-05-04 23:09:45 -04:00
Paul Davis
b5ed8495fb
remove debug output
2016-01-01 06:58:56 -05:00
Paul Davis
b390d8c8a6
possible extra housekeeping for control protocol modules.
...
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-30 04:11:14 -05:00
Paul Davis
2c6d92ec96
safer housekeeping for control protocol descriptors
2015-12-30 03:51:00 -05:00
Robin Gareus
75021abfd6
some good practice.
2015-12-30 00:45:24 +01:00
Robin Gareus
d58f68ae97
fix control surface discovery crash:
...
On OSX unloading a module deletes all references to it and
the descriptor becomes invalid.
2015-12-30 00:41:33 +01:00
Paul Davis
6a8b8c8523
add check for descriptor when deciding whether to register a control surface request buffer factory
2015-12-29 05:20:50 -05:00
Paul Davis
0d9efc1148
redesign cross-thread registration/signalling system
...
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-12-28 10:14:17 -05:00
Robin Gareus
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0
globally remove all trailing whitespace from ardour code base.
...
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Paul Davis
3bc7f863ca
explicitly drop control surface protocols before disconnecting from engine.
...
This is not bomb/thread proof yet, because it still requires at least one process callback to function
2015-10-02 22:08:14 -04:00
Tim Mayberry
8d0cba3384
Use PBD::find_files_matching_pattern instead of other variations
2014-06-25 12:40:10 -04:00
John Emmas
0daae2ec91
When finding the control surface DLLs (MSVC built), make sure we only find ones that match our build target
2014-03-21 14:54:21 +00:00
John Emmas
75c55b0aa0
Transfer 'control_protocol_search_path()' into 'libs/ardour/search_paths.cc'
2014-03-10 16:24:05 +00:00
Paul Davis
3020b224fa
Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there
2014-01-10 16:07:57 -05:00
Paul Davis
0cf8b9d3ea
new ControlProtocolManager API, and proper handling of view/model changes in the RC options (prefs) editor
2013-12-21 15:31:28 -05:00
Tim Mayberry
8ddd12a60d
Rename SearchPath class Searchpath
...
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-09-06 14:31:11 +10:00
Paul Davis
83ed3d7dcc
Use glibmm for modules instead of dlfch.h
2013-07-11 13:58:48 -04:00
Paul Davis
2037b95347
a bit more debug tracing for control protocols
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13849 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-16 02:25:13 +00:00
Paul Davis
397729eb18
fix continuing SNAFUs with ::set_state() for control protocols and the 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
2013-01-06 14:39:27 +00:00
Paul Davis
cff8a65db2
forward part the backend part of the generic MIDI control fixes from mb2/a2
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13297 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-17 14:36:40 +00:00
Paul Davis
3cd8138a41
convert from Glib:: to Glib::Threads for all thread-related API
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +00:00
Tim Mayberry
105caf23da
Use std::string instead of PBD::sys::path in pbd/search_path.h, 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-06-23 05:06:54 +00: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
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
Paul Davis
1d75f753d8
don't load symlinks when trying to discover control protocol shared objects
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12257 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-12 14:12:23 +00:00
Paul Davis
365658e734
fix up overly-persistent active state for control surfaces
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-08 16:25:13 +00:00
Paul Davis
834f94c60a
fix initialization of control protocols so that brand new sessions get 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-26 16:18:03 +00:00
Paul Davis
2bae75fa0b
MCP: dynamic ipMIDI ports, more default key bindings, various minor fixes
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12092 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-25 21:21:36 +00:00
Paul Davis
82c867bf2a
MCP: a fistful of improvements. probably best to just try it and see what it 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
2012-04-22 02:15:24 +00:00
Paul Davis
47d0b88830
change several startup messages to be triggered only by -D (debug) options
...
git-svn-id: svn://localhost/ardour2/branches/3.0@10281 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-22 13:30:11 +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
09c0014790
No-op; coding style.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@9474 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-04 15:00:30 +00:00
Carl Hetherington
173354c847
Fix a few tiny memory leaks.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@8244 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-11 02:34:44 +00:00