diff options
author | David Robillard <d@drobilla.net> | 2009-05-27 19:48:44 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-05-27 19:48:44 +0000 |
commit | aad41d097d9d4e3aff25616f86fa3a77653a10d1 (patch) | |
tree | 8562c9270fad44a01d8011d38ec146af6d46a515 | |
parent | 0c1576d21588ece4e226da04523f36adac3a14c3 (diff) | |
download | ingen-aad41d097d9d4e3aff25616f86fa3a77653a10d1.tar.gz ingen-aad41d097d9d4e3aff25616f86fa3a77653a10d1.tar.bz2 ingen-aad41d097d9d4e3aff25616f86fa3a77653a10d1.zip |
Add methods documentation page.
Clean up OSC documentation pages.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2013 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | doc/reference.doxygen.in | 219 | ||||
-rw-r--r-- | src/client/ClientStore.cpp | 2 | ||||
-rw-r--r-- | src/client/OSCClientReceiver.cpp | 7 | ||||
-rw-r--r-- | src/client/SigClientInterface.hpp | 4 | ||||
-rw-r--r-- | src/client/ThreadedSigClientInterface.hpp | 6 | ||||
-rw-r--r-- | src/engine/ClientBroadcaster.cpp | 3 | ||||
-rw-r--r-- | src/engine/ClientBroadcaster.hpp | 2 | ||||
-rw-r--r-- | src/engine/Event.cpp | 7 | ||||
-rw-r--r-- | src/engine/OSCClientSender.cpp | 150 | ||||
-rw-r--r-- | src/engine/OSCEngineReceiver.cpp | 179 | ||||
-rw-r--r-- | src/engine/events/DeleteEvent.cpp | 6 | ||||
-rw-r--r-- | src/engine/events/DeleteEvent.hpp | 15 | ||||
-rw-r--r-- | src/engine/events/MoveEvent.hpp | 13 | ||||
-rw-r--r-- | src/gui/BreadCrumbBox.cpp | 2 |
14 files changed, 392 insertions, 223 deletions
diff --git a/doc/reference.doxygen.in b/doc/reference.doxygen.in index ce3532e5..76e998b8 100644 --- a/doc/reference.doxygen.in +++ b/doc/reference.doxygen.in @@ -1,4 +1,4 @@ -# Doxyfile 1.5.6 +# Doxyfile 1.5.9 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project @@ -54,11 +54,11 @@ CREATE_SUBDIRS = NO # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, -# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, -# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, -# and Ukrainian. +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English @@ -155,13 +155,6 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. @@ -214,6 +207,17 @@ OPTIMIZE_FOR_FORTRAN = NO OPTIMIZE_OUTPUT_VHDL = NO +# Doxygen selects the parser to use depending on the extension of the files it parses. +# With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this tag. +# The format is ext=language, where ext is a file extension, and language is one of +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and @@ -223,7 +227,7 @@ OPTIMIZE_OUTPUT_VHDL = NO BUILTIN_STL_SUPPORT = YES -# If you use Microsoft's C++/CLI language, you should set this option to YES to +# If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO @@ -268,6 +272,22 @@ SUBGROUPING = YES TYPEDEF_HIDES_STRUCT = NO +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -277,7 +297,7 @@ TYPEDEF_HIDES_STRUCT = NO # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES -EXTRACT_ALL = YES +EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. @@ -395,7 +415,7 @@ SORT_GROUP_NAMES = NO # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. @@ -452,14 +472,15 @@ SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = NO # Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. This will remove the Namespaces entry from the Quick Index +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES @@ -474,6 +495,15 @@ SHOW_NAMESPACES = YES FILE_VERSION_FILTER = +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by +# doxygen. The layout file controls the global structure of the generated output files +# in an output format independent way. The create the layout file that represents +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a +# file name after the option, if omitted DoxygenLayout.xml will be used as the name +# of the layout file. + +LAYOUT_FILE = + #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -618,14 +648,17 @@ IMAGE_PATH = # by executing (via popen()) the command <filter> <input-file>, where <filter> # is the value of the INPUT_FILTER tag, and <input-file> is the name of an # input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. @@ -672,10 +705,11 @@ REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentstion. +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES @@ -764,12 +798,13 @@ HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). -GENERATE_HTMLHELP = NO +HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 @@ -778,7 +813,8 @@ GENERATE_HTMLHELP = NO # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO @@ -796,13 +832,12 @@ DOCSET_FEEDNAME = "Doxygen generated docs" DOCSET_BUNDLE_ID = org.doxygen.Project -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. -HTML_DYNAMIC_SECTIONS = NO +GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You @@ -824,8 +859,8 @@ HHC_LOCATION = GENERATE_CHI = NO -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = @@ -841,6 +876,55 @@ BINARY_TOC = NO TOC_EXPAND = NO +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER +# are set, an additional index file will be generated that can be used as input for +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated +# HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. +# For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see +# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's +# filter section matches. +# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. @@ -852,19 +936,19 @@ DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to FRAME, a side panel will be generated +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values -# for this tag are: HIERARCHIES, which will generate the Groups, Directories, -# and Class Hiererachy pages using a tree view instead of an ordered list; -# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which -# disables this behavior completely. For backwards compatibility with previous -# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE +# for this tag are: HIERARCHIES, which will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list; +# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which +# disables this behavior completely. For backwards compatibility with previous +# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = YES @@ -959,6 +1043,10 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO +# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- @@ -1095,8 +1183,10 @@ GENERATE_PERLMOD = NO PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. @@ -1183,14 +1273,16 @@ SKIP_FUNCTION_MACROS = YES # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: -# TAGFILES = file1 file2 ... +# +# TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... +# +# TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. @@ -1264,6 +1356,11 @@ HAVE_DOT = YES DOT_FONTNAME = FreeSans +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot @@ -1338,13 +1435,13 @@ GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include +# in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif +# generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png @@ -1381,10 +1478,10 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is enabled by default, which results in a transparent -# background. Warning: Depending on the platform used, enabling this option -# may lead to badly anti-aliased labels on the edges of a graph (i.e. they -# become hard to read). +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). DOT_TRANSPARENT = YES @@ -1408,7 +1505,7 @@ GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Options related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp index 3a1acc21..10a5ac9b 100644 --- a/src/client/ClientStore.cpp +++ b/src/client/ClientStore.cpp @@ -43,7 +43,7 @@ ClientStore::ClientStore(SharedPtr<EngineInterface> engine, SharedPtr<SigClientI if (!emitter) return; - emitter->signal_object_destroyed.connect(sigc::mem_fun(this, &ClientStore::del)); + emitter->signal_object_deleted.connect(sigc::mem_fun(this, &ClientStore::del)); emitter->signal_object_moved.connect(sigc::mem_fun(this, &ClientStore::move)); emitter->signal_new_plugin.connect(sigc::mem_fun(this, &ClientStore::new_plugin)); emitter->signal_put.connect(sigc::mem_fun(this, &ClientStore::put)); diff --git a/src/client/OSCClientReceiver.cpp b/src/client/OSCClientReceiver.cpp index 9c94659a..ece3289c 100644 --- a/src/client/OSCClientReceiver.cpp +++ b/src/client/OSCClientReceiver.cpp @@ -143,14 +143,13 @@ OSCClientReceiver::setup_callbacks() lo_server_thread_add_method(_st, "/ingen/ok", "i", response_ok_cb, this); lo_server_thread_add_method(_st, "/ingen/error", "is", response_error_cb, this); lo_server_thread_add_method(_st, "/ingen/plugin", "sss", plugin_cb, this); - lo_server_thread_add_method(_st, "/ingen/new_patch", "si", new_patch_cb, this); - lo_server_thread_add_method(_st, "/ingen/destroyed", "s", destroyed_cb, this); - lo_server_thread_add_method(_st, "/ingen/clear_patch", "s", clear_patch_cb, this); + lo_server_thread_add_method(_st, "/ingen/put", NULL, put_cb, this); lo_server_thread_add_method(_st, "/ingen/move", "ss", move_cb, this); + lo_server_thread_add_method(_st, "/ingen/delete", "s", destroyed_cb, this); + lo_server_thread_add_method(_st, "/ingen/clear_patch", "s", clear_patch_cb, this); lo_server_thread_add_method(_st, "/ingen/new_connection", "ss", connection_cb, this); lo_server_thread_add_method(_st, "/ingen/disconnection", "ss", disconnection_cb, this); lo_server_thread_add_method(_st, "/ingen/new_port", "sisi", new_port_cb, this); - lo_server_thread_add_method(_st, "/ingen/put", NULL, new_port_cb, this); lo_server_thread_add_method(_st, "/ingen/set_variable", NULL, set_variable_cb, this); lo_server_thread_add_method(_st, "/ingen/set_property", NULL, set_property_cb, this); lo_server_thread_add_method(_st, "/ingen/set_port_value", "sf", set_port_value_cb, this); diff --git a/src/client/SigClientInterface.hpp b/src/client/SigClientInterface.hpp index a95336d5..6038ad9e 100644 --- a/src/client/SigClientInterface.hpp +++ b/src/client/SigClientInterface.hpp @@ -56,7 +56,7 @@ public: sigc::signal<void, Raul::Path, Shared::Resource::Properties> signal_put; sigc::signal<void, Raul::Path> signal_clear_patch; sigc::signal<void, Raul::Path, Raul::Path> signal_object_moved; - sigc::signal<void, Raul::Path> signal_object_destroyed; + sigc::signal<void, Raul::Path> signal_object_deleted; sigc::signal<void, Raul::Path, Raul::Path> signal_connection; sigc::signal<void, Raul::Path, Raul::Path> signal_disconnection; sigc::signal<void, Raul::URI, Raul::URI, Raul::Atom> signal_variable_change; @@ -105,7 +105,7 @@ protected: { if (_enabled) signal_connection.emit(src_port_path, dst_port_path); } void del(const Raul::Path& path) - { if (_enabled) signal_object_destroyed.emit(path); } + { if (_enabled) signal_object_deleted.emit(path); } void clear_patch(const Raul::Path& path) { if (_enabled) signal_clear_patch.emit(path); } diff --git a/src/client/ThreadedSigClientInterface.hpp b/src/client/ThreadedSigClientInterface.hpp index f0fa5321..21b92d56 100644 --- a/src/client/ThreadedSigClientInterface.hpp +++ b/src/client/ThreadedSigClientInterface.hpp @@ -55,7 +55,7 @@ public: , put_slot(signal_put.make_slot()) , connection_slot(signal_connection.make_slot()) , clear_patch_slot(signal_clear_patch.make_slot()) - , object_destroyed_slot(signal_object_destroyed.make_slot()) + , object_deleted_slot(signal_object_deleted.make_slot()) , object_moved_slot(signal_object_moved.make_slot()) , disconnection_slot(signal_disconnection.make_slot()) , variable_change_slot(signal_variable_change.make_slot()) @@ -99,7 +99,7 @@ public: { push_sig(sigc::bind(connection_slot, src_port_path, dst_port_path)); } void del(const Raul::Path& path) - { push_sig(sigc::bind(object_destroyed_slot, path)); } + { push_sig(sigc::bind(object_deleted_slot, path)); } void clear_patch(const Raul::Path& path) { push_sig(sigc::bind(clear_patch_slot, path)); } @@ -147,7 +147,7 @@ private: sigc::slot<void, Raul::Path, Shared::Resource::Properties> put_slot; sigc::slot<void, Raul::Path, Raul::Path> connection_slot; sigc::slot<void, Raul::Path> clear_patch_slot; - sigc::slot<void, Raul::Path> object_destroyed_slot; + sigc::slot<void, Raul::Path> object_deleted_slot; sigc::slot<void, Raul::Path, Raul::Path> object_moved_slot; sigc::slot<void, Raul::Path, Raul::Path> disconnection_slot; sigc::slot<void, Raul::URI, Raul::URI, Raul::Atom> variable_change_slot; diff --git a/src/engine/ClientBroadcaster.cpp b/src/engine/ClientBroadcaster.cpp index beb08f22..c0f107de 100644 --- a/src/engine/ClientBroadcaster.cpp +++ b/src/engine/ClientBroadcaster.cpp @@ -132,7 +132,7 @@ ClientBroadcaster::send_plugins(const NodeFactory::Plugins& plugins) void -ClientBroadcaster::send_destroyed(const Path& path) +ClientBroadcaster::send_deleted(const Path& path) { for (Clients::const_iterator i = _clients.begin(); i != _clients.end(); ++i) (*i).second->del(path); @@ -210,6 +210,7 @@ ClientBroadcaster::send_activity(const Path& path) /** Send an object. * + * @param p Object to send * @param recursive If true send all children of object */ void diff --git a/src/engine/ClientBroadcaster.hpp b/src/engine/ClientBroadcaster.hpp index a207b6d7..2aea8eb0 100644 --- a/src/engine/ClientBroadcaster.hpp +++ b/src/engine/ClientBroadcaster.hpp @@ -64,7 +64,7 @@ public: void send_plugins(const NodeFactory::Plugins& plugin_list); void send_object(const GraphObjectImpl* p, bool recursive); - void send_destroyed(const Raul::Path& path); + void send_deleted(const Raul::Path& path); void send_clear_patch(const Raul::Path& patch_path); void send_connection(const SharedPtr<const ConnectionImpl> connection); void send_disconnection(const Raul::Path& src_port_path, const Raul::Path& dst_port_path); diff --git a/src/engine/Event.cpp b/src/engine/Event.cpp index ec21afde..e48d32a2 100644 --- a/src/engine/Event.cpp +++ b/src/engine/Event.cpp @@ -19,6 +19,13 @@ #include "ThreadManager.hpp" #include "ProcessContext.hpp" +/*! \page methods Method Documentation + * + * <p>All changes in Ingen (both engine and client) occur as a result of + * a small set of methods defined in terms of RDF and matching the + * HTTP and WebDAV standards as closely as possible.</p> + */ + namespace Ingen { diff --git a/src/engine/OSCClientSender.cpp b/src/engine/OSCClientSender.cpp index c0a6b85b..594266aa 100644 --- a/src/engine/OSCClientSender.cpp +++ b/src/engine/OSCClientSender.cpp @@ -36,38 +36,16 @@ namespace Ingen { /*! \page client_osc_namespace Client OSC Namespace Documentation * - * <p>NOTE: this comment doesn't really apply any longer.. sort of. - * but maybe it still should.. maybe. so it remains...</p> - * - * <p>These are all the messages sent from the engine to the client. - * Communication takes place over two distinct bands: control band and - * notification band.</p> - * <p>The control band is where clients send commands, and receive a simple - * response, either OK or an error.</p> - * <p>All notifications of engine state (ie new nodes) are sent over the - * notification band <em>which is seperate from the control band</em>. The - * reasoning behind this is that many clients may be connected at the same - * time - a client may receive notifications that are not a direct consequence - * of some message it sent.</p> - * <p>The notification band can be thought of as a stream of events representing - * the changing engine state. For example, It is possible for a client to send - * commands and receive aknowledgements, and not listen to the notification band - * at all; or (in the near future anyway) for a client to use UDP for the control - * band (for speed), and TCP for the notification band (for reliability and - * order guarantees).</p> - * \n\n + * <p>These are the commands the client recognizes. All monitoring of + * changes in the engine happens via these commands.</p> */ /** \page client_osc_namespace - * \n - * <h2>Control Band</h2> - */ - -/** \page client_osc_namespace - * <p> \b /ingen/ok - Respond to a successful user command + * <h2>/ingen/ok</h2> * \arg \b response-id (int) - Request ID this is a response to - * </p> \n \n + * + * Successful response to some command. */ void OSCClientSender::response_ok(int32_t id) @@ -83,10 +61,11 @@ OSCClientSender::response_ok(int32_t id) /** \page client_osc_namespace - * <p> \b /ingen/response - Respond to a user command + * <h2>/ingen/error</h2> * \arg \b response-id (int) - Request ID this is a response to * \arg \b message (string) - Error message (natural language text) - * </p> \n \n + * + * Unsuccessful response to some command. */ void OSCClientSender::response_error(int32_t id, const std::string& msg) @@ -102,16 +81,12 @@ OSCClientSender::response_error(int32_t id, const std::string& msg) /** \page client_osc_namespace - * \n - * <h2>Notification Band</h2> - */ - - -/** \page client_osc_namespace - * <p> \b /ingen/error - Notification that an error has occurred - * \arg \b message (string) - Error message (natural language text) \n\n - * \li This is for notification of errors that aren't a direct response to a - * user command, ie "unexpected" errors.</p> \n \n + * <h2>/ingen/error</h2> + * \arg \b message (string) - Error message (natural language text) + * + * Notification that an error has occurred. + * This is for notification of errors that aren't a direct response to a + * user command, ie "unexpected" errors. */ void OSCClientSender::error(const std::string& msg) @@ -120,6 +95,15 @@ OSCClientSender::error(const std::string& msg) } +/** \page client_osc_namespace + * <h2>/ingen/put</h2> + * \arg \b path (string) - Path of object + * \arg \b predicate + * \arg \b value + * \arg \b ... + * + * PUT a set of properties to a path (see \ref methods). + */ void OSCClientSender::put(const Raul::Path& path, const Shared::Resource::Properties& properties) @@ -129,19 +113,39 @@ OSCClientSender::put(const Raul::Path& path, /** \page client_osc_namespace - * <p> \b /ingen/destroyed - Notification an object has been destroyed - * \arg \b path (string) - Path of object (which no longer exists) </p> \n \n + * <h2>/ingen/move</h2> + * \arg \b old-path (string) - Old path of object + * \arg \b new-path (string) - New path of object + * + * MOVE an object to a new path (see \ref methods). + * The new path will have the same parent as the old path. + */ +void +OSCClientSender::move(const Path& old_path, const Path& new_path) +{ + send("/ingen/move", "ss", old_path.c_str(), new_path.c_str(), LO_ARGS_END); +} + + + +/** \page client_osc_namespace + * <h2>/ingen/delete</h2> + * \arg \b path (string) - Path of object (which no longer exists) + * + * DELETE an object (see \ref methods). */ void OSCClientSender::del(const Path& path) { - send("/ingen/destroyed", "s", path.c_str(), LO_ARGS_END); + send("/ingen/delete", "s", path.c_str(), LO_ARGS_END); } /** \page client_osc_namespace - * <p> \b /ingen/clear_patch - Notification a patch has been cleared (all children destroyed) - * \arg \b path (string) - Path of patch (which is now empty)</p> \n \n + * <h2>/ingen/clear_patch</h2> + * \arg \b path (string) - Path of patch (which is now empty) + * + * Notification a patch has been cleared (all children deleted). */ void OSCClientSender::clear_patch(const Path& patch_path) @@ -151,9 +155,11 @@ OSCClientSender::clear_patch(const Path& patch_path) /** \page client_osc_namespace - * <p> \b /ingen/new_connection - Notification a new connection has been made. + * <h2>/ingen/new_connection</h2> * \arg \b src-path (string) - Path of the source port - * \arg \b dst-path (string) - Path of the destination port</p> \n \n + * \arg \b dst-path (string) - Path of the destination port + * + * Notification a new connection has been made. */ void OSCClientSender::connect(const Path& src_port_path, const Path& dst_port_path) @@ -163,9 +169,11 @@ OSCClientSender::connect(const Path& src_port_path, const Path& dst_port_path) /** \page client_osc_namespace - * <p> \b /ingen/disconnection - Notification a connection has been unmade. + * <h2>/ingen/disconnection</h2> * \arg \b src-path (string) - Path of the source port - * \arg \b dst-path (string) - Path of the destination port</p> \n \n + * \arg \b dst-path (string) - Path of the destination port + * + * Notification a connection has been unmade. */ void OSCClientSender::disconnect(const Path& src_port_path, const Path& dst_port_path) @@ -175,10 +183,12 @@ OSCClientSender::disconnect(const Path& src_port_path, const Path& dst_port_path /** \page client_osc_namespace - * <p> \b /ingen/set_variable - Notification of a variable. + * <h2>/ingen/set_variable</h2> * \arg \b path (string) - Path of the object associated with variable (node, patch, or port) * \arg \b key (string) - * \arg \b value (string)</p> \n \n + * \arg \b value (string) + * , + * Notification of a variable. */ void OSCClientSender::set_variable(const URI& path, const URI& key, const Atom& value) @@ -192,10 +202,12 @@ OSCClientSender::set_variable(const URI& path, const URI& key, const Atom& value /** \page client_osc_namespace - * <p> \b /ingen/set_property - Notification of a property. + * <h2>/ingen/set_property</h2> * \arg \b path (string) - Path of the object associated with property (node, patch, or port) * \arg \b key (string) - * \arg \b value (string)</p> \n \n + * \arg \b value (string) + * + * Notification of a property. */ void OSCClientSender::set_property(const URI& path, const URI& key, const Atom& value) @@ -209,9 +221,11 @@ OSCClientSender::set_property(const URI& path, const URI& key, const Atom& value /** \page client_osc_namespace - * <p> \b /ingen/set_port_value - Notification the value of a port has changed + * <h2>/ingen/set_port_value</h2> * \arg \b path (string) - Path of port - * \arg \b value (any) - New value of port </p> \n \n + * \arg \b value (any) - New value of port + * + * Notification the value of a port has changed. */ void OSCClientSender::set_port_value(const Path& port_path, const Atom& value) @@ -224,10 +238,12 @@ OSCClientSender::set_port_value(const Path& port_path, const Atom& value) /** \page client_osc_namespace - * <p> \b /ingen/set_port_value - Notification the value of a port has changed + * <h2>/ingen/set_port_value</h2> * \arg \b path (string) - Path of port * \arg \b voice (int) - Voice which is set to this value - * \arg \b value (any) - New value of port </p> \n \n + * \arg \b value (any) - New value of port + * + * Notification the value of a port has changed. */ void OSCClientSender::set_voice_value(const Path& port_path, uint32_t voice, const Atom& value) @@ -240,8 +256,10 @@ OSCClientSender::set_voice_value(const Path& port_path, uint32_t voice, const At /** \page client_osc_namespace - * <p> \b /ingen/activity - Notification of "activity" (e.g. port message blinkenlights) - * \arg \b path (string) - Path of object </p> \n \n + * <h2>/ingen/activity</h2> + * \arg \b path (string) - Path of object + * + * Notification of "activity" (e.g. port message blinkenlights). */ void OSCClientSender::activity(const Path& path) @@ -254,11 +272,13 @@ OSCClientSender::activity(const Path& path) /** \page client_osc_namespace - * <p> \b /ingen/plugin - Notification of the existance of a plugin + * <h2>/ingen/plugin</h2> * \arg \b uri (string) - URI of plugin (e.g. http://example.org/filtermatic) * \arg \b type (string) - Type of plugin (e.g. "lv2:Plugin", "ingen:LADSPAPlugin") * \arg \b symbol (string) - Valid symbol for plugin (default symbol for nodes) (e.g. "adsr") * \arg \b name (string) - Descriptive human-readable name of plugin (e.g. "ADSR Envelope") + * + * Notification of the existence of a plugin. */ void OSCClientSender::new_plugin(const URI& uri, @@ -273,16 +293,4 @@ OSCClientSender::new_plugin(const URI& uri, } -/** \page client_osc_namespace - * <p> \b /ingen/move - Notification of an object's renaming - * \arg \b old-path (string) - Old path of object - * \arg \b new-path (string) - New path of object </p> \n \n - */ -void -OSCClientSender::move(const Path& old_path, const Path& new_path) -{ - send("/ingen/move", "ss", old_path.c_str(), new_path.c_str(), LO_ARGS_END); -} - - } // namespace Ingen diff --git a/src/engine/OSCEngineReceiver.cpp b/src/engine/OSCEngineReceiver.cpp index 28509ad7..a5f01c74 100644 --- a/src/engine/OSCEngineReceiver.cpp +++ b/src/engine/OSCEngineReceiver.cpp @@ -44,7 +44,7 @@ namespace Ingen { * * <p>All commands on this page are in the "control band". If a client needs to * know about the state of the engine, it must listen to the "notification band". - * See the "Client OSC Namespace Documentation" for details.</p>\n\n + * See the "Client OSC Namespace Documentation" for details. */ @@ -243,8 +243,10 @@ OSCEngineReceiver::error_cb(int num, const char* msg, const char* path) /** \page engine_osc_namespace - * <p> \b /ingen/ping - Immediately sends a successful response to the given response id. - * \arg \b response-id (integer) </p> \n \n + * <h2>/ingen/ping</h2> + * \arg \b response-id (integer) + * + * Reply to sender immediately with a successful response. */ int OSCEngineReceiver::_ping_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -257,13 +259,13 @@ OSCEngineReceiver::_ping_cb(const char* path, const char* types, lo_arg** argv, /** \page engine_osc_namespace - * <p> \b /ingen/ping_queued - Sends response after going through the event queue. + * <h2>/ingen/ping_queued</h2> * \arg \b response-id (integer) * - * \li See the documentation for /ingen/set_port_value_queued for an explanation of how - * this differs from /ingen/ping. This is useful to send after sending a large cluster of - * events as a sentinel and wait on it's response, to know when the events are all - * finished processing.</p> \n \n + * Reply to sender with a successful response after going through the event queue. + * This is useful for checking if the engine is actually active, or for sending after + * several events as a sentinel and wait on it's response, to know when all previous + * events have finished processing. */ int OSCEngineReceiver::_ping_slow_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -274,12 +276,13 @@ OSCEngineReceiver::_ping_slow_cb(const char* path, const char* types, lo_arg** a /** \page engine_osc_namespace - * <p> \b /ingen/quit - Terminates the engine. + * <h2>/ingen/quit</h2> * \arg \b response-id (integer) * - * \li Note that there is NO order guarantees with this command at all. You could + * Terminate the engine. + * Note that there are NO order guarantees with this command at all. You could * send 10 messages then quit, and the quit reply could come immediately and the - * 10 messages would never get executed. </p> \n \n + * 10 messages would never get executed. */ int OSCEngineReceiver::_quit_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -288,11 +291,14 @@ OSCEngineReceiver::_quit_cb(const char* path, const char* types, lo_arg** argv, return 0; } + /** \page engine_osc_namespace - * <p> \b /ingen/register_client - Registers a new client with the engine - * \arg \b response-id (integer) \n\n - * \li The incoming address will be used for the new registered client. If you - * want to register a different specific address, use the URL version. </p> \n \n + * <h2>/ingen/register_client</h2> + * \arg \b response-id (integer) + * + * Register a new client with the engine. + * The incoming address will be used for the new registered client. If you + * want to register a different specific address, use the URL version. */ int OSCEngineReceiver::_register_client_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -309,8 +315,10 @@ OSCEngineReceiver::_register_client_cb(const char* path, const char* types, lo_a /** \page engine_osc_namespace - * <p> \b /ingen/unregister_client - Unregisters a client - * \arg \b response-id (integer) </p> \n \n + * <h2>/ingen/unregister_client</h2> + * \arg \b response-id (integer) + * + * Unregister a client. */ int OSCEngineReceiver::_unregister_client_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -326,8 +334,10 @@ OSCEngineReceiver::_unregister_client_cb(const char* path, const char* types, lo /** \page engine_osc_namespace - * <p> \b /ingen/load_plugins - Locates all available plugins, making them available for use. - * \arg \b response-id (integer) </p> \n \n + * <h2>/ingen/load_plugins</h2> + * \arg \b response-id (integer) + * + * Locate all available plugins, making them available for use. */ int OSCEngineReceiver::_load_plugins_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -338,11 +348,12 @@ OSCEngineReceiver::_load_plugins_cb(const char* path, const char* types, lo_arg* /** \page engine_osc_namespace - * <p> \b /ingen/activate - Activate the engine (MIDI, audio, everything) - * \arg \b response-id (integer) </p> + * <h2>/ingen/activate</h2> + * \arg \b response-id (integer) * - * \li Note that you <b>must</b> send this message first if you want the engine to do - * anything at all - <em>including respond to your messages!</em> \n \n + * Activate the engine (event processing and all drivers, e.g. audio and MIDI). + * Note that you <b>must</b> send this message first if you want the engine to do + * anything at all - <em>including respond to your messages!</em> */ int OSCEngineReceiver::_engine_activate_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -353,8 +364,10 @@ OSCEngineReceiver::_engine_activate_cb(const char* path, const char* types, lo_a /** \page engine_osc_namespace - * <p> \b /ingen/deactivate - Deactivate the engine completely. - * \arg \b response-id (integer) </p> \n \n + * <h2>/ingen/deactivate</h2> + * \arg \b response-id (integer) + * + * Deactivate the engine. */ int OSCEngineReceiver::_engine_deactivate_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -365,10 +378,12 @@ OSCEngineReceiver::_engine_deactivate_cb(const char* path, const char* types, lo /** \page engine_osc_namespace - * <p> \b /ingen/move - Move (rename) an Object + * <h2>/ingen/move</h2> * \arg \b response-id (integer) * \arg \b old-path - Object's path - * \arg \b new-path - Object's new path </p> \n \n + * \arg \b new-path - Object's new path + * + * Move (rename) an Object. */ int OSCEngineReceiver::_move_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -382,9 +397,11 @@ OSCEngineReceiver::_move_cb(const char* path, const char* types, lo_arg** argv, /** \page engine_osc_namespace - * <p> \b /ingen/clear_patch - Remove all nodes from a patch + * <h2>/ingen/clear_patch</h2> * \arg \b response-id (integer) - * \arg \b patch-path - Patch's path </p> \n \n + * \arg \b patch-path - Patch's path + * + * Remove all nodes from a patch. */ int OSCEngineReceiver::_clear_patch_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -397,9 +414,11 @@ OSCEngineReceiver::_clear_patch_cb(const char* path, const char* types, lo_arg** /** \page engine_osc_namespace - * <p> \b /ingen/del - Delete a graph object + * <h2>/ingen/del</h2> * \arg \b response-id (integer) - * \arg \b path (string) - Full path of the object </p> \n \n + * \arg \b path (string) - Full path of the object + * + * Delete a graph object. */ int OSCEngineReceiver::_del_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -412,10 +431,12 @@ OSCEngineReceiver::_del_cb(const char* path, const char* types, lo_arg** argv, i /** \page engine_osc_namespace - * <p> \b /ingen/connect - Connects two ports (must be in the same patch) + * <h2>/ingen/connect</h2> * \arg \b response-id (integer) * \arg \b src-port-path (string) - Full path of source port - * \arg \b dst-port-path (string) - Full path of destination port </p> \n \n + * \arg \b dst-port-path (string) - Full path of destination port + * + * Connect two ports (which must be in the same patch). */ int OSCEngineReceiver::_connect_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -429,10 +450,12 @@ OSCEngineReceiver::_connect_cb(const char* path, const char* types, lo_arg** arg /** \page engine_osc_namespace - * <p> \b /ingen/disconnect - Disconnects two ports. + * <h2>/ingen/disconnect</h2> * \arg \b response-id (integer) * \arg \b src-port-path (string) - Full path of source port - * \arg \b dst-port-path (string) - Full path of destination port </p> \n \n + * \arg \b dst-port-path (string) - Full path of destination port + * + * Disconnect two ports. */ int OSCEngineReceiver::_disconnect_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -446,10 +469,12 @@ OSCEngineReceiver::_disconnect_cb(const char* path, const char* types, lo_arg** /** \page engine_osc_namespace - * <p> \b /ingen/disconnect_all - Disconnect all connections to/from a node/port. + * <h2>/ingen/disconnect_all</h2> * \arg \b response-id (integer) - * \arg \b patch-path (string) - The (parent) patch in which to disconnect object. </p> \n \n - * \arg \b object-path (string) - Full path of object. </p> \n \n + * \arg \b patch-path (string) - The (parent) patch in which to disconnect object. + * \arg \b object-path (string) - Full path of object. + * + * Disconnect all connections to/from a node/port. */ int OSCEngineReceiver::_disconnect_all_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -463,10 +488,12 @@ OSCEngineReceiver::_disconnect_all_cb(const char* path, const char* types, lo_ar /** \page engine_osc_namespace - * <p> \b /ingen/set_port_value - Sets the value of a port for all voices (as a QueuedEvent) + * <h2>/ingen/set_port_value</h2> * \arg \b response-id (integer) * \arg \b port-path (string) - Name of port - * \arg \b value (float) - Value to set port to.</p> \n \n + * \arg \b value (float) - Value to set port to. + * + * Set the value of a port for all voices. */ int OSCEngineReceiver::_set_port_value_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -511,11 +538,13 @@ OSCEngineReceiver::_set_port_value_cb(const char* path, const char* types, lo_ar /** \page engine_osc_namespace - * <p> \b /ingen/note_on - Triggers a note-on, just as if it came from MIDI + * <h2>/ingen/note_on</h2> * \arg \b response-id (integer) * \arg \b node-path (string) - Patch of Node to trigger (must be a trigger or note node) * \arg \b note-num (int) - MIDI style note number (0-127) - * \arg \b velocity (int) - MIDI style velocity (0-127)</p> \n \n + * \arg \b velocity (int) - MIDI style velocity (0-127) + * + * Trigger a note-on, just as if it came from MIDI. */ int OSCEngineReceiver::_note_on_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -532,10 +561,12 @@ OSCEngineReceiver::_note_on_cb(const char* path, const char* types, lo_arg** arg /** \page engine_osc_namespace - * <p> \b /ingen/note_off - Triggers a note-off, just as if it came from MIDI + * <h2>/ingen/note_off</h2> * \arg \b response-id (integer) * \arg \b node-path (string) - Patch of Node to trigger (must be a trigger or note node) - * \arg \b note-num (int) - MIDI style note number (0-127)</p> \n \n + * \arg \b note-num (int) - MIDI style note number (0-127) + * + * Trigger a note-off, just as if it came from MIDI. */ int OSCEngineReceiver::_note_off_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -551,9 +582,11 @@ OSCEngineReceiver::_note_off_cb(const char* path, const char* types, lo_arg** ar /** \page engine_osc_namespace - * <p> \b /ingen/all_notes_off - Triggers a note-off for all voices, just as if it came from MIDI + * <h2>/ingen/all_notes_off</h2> * \arg \b response-id (integer) - * \arg \b patch-path (string) - Patch of patch to send event to </p> \n \n + * \arg \b patch-path (string) - Patch of patch to send event to + * + * Trigger a note-off for all voices, just as if it came from MIDI. */ int OSCEngineReceiver::_all_notes_off_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -569,14 +602,14 @@ OSCEngineReceiver::_all_notes_off_cb(const char* path, const char* types, lo_arg /** \page engine_osc_namespace - * <p> \b /ingen/midi_learn - Initiate MIDI learn for a given (MIDI Control) Node + * <h2>/ingen/midi_learn</h2> * \arg \b response-id (integer) - * \arg \b node-path (string) - Patch of the Node that should learn the next MIDI event. + * \arg \b node-path (string) - Path of control node. * - * \li This of course will only do anything for MIDI control nodes. The node will learn the next MIDI - * event that arrives at it's MIDI input port - no behind the scenes voodoo happens here. It is planned - * that a plugin specification supporting arbitrary OSC commands for plugins will exist one day, and this - * method will go away completely. </p> \n \n + * Initiate MIDI learn for a given control node. + * The node will learn the next MIDI control event it receives and set + * its outputs accordingly. + * This command does nothing for objects that are not a control internal. */ int OSCEngineReceiver::_midi_learn_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -589,11 +622,13 @@ OSCEngineReceiver::_midi_learn_cb(const char* path, const char* types, lo_arg** /** \page engine_osc_namespace - * <p> \b /ingen/set_variable - Set a variable, associated with a synth-space object (node, etc) + * <h2>/ingen/set_variable</h2> * \arg \b response-id (integer) * \arg \b object-path (string) - Full path of object to associate variable with * \arg \b key (string) - Key (index/predicate/ID) for new variable - * \arg \b value (string) - Value of new variable </p> \n \n + * \arg \b value (string) - Value of new variable + * + * Set a variable, associated with a graph object. */ int OSCEngineReceiver::_variable_set_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -612,11 +647,13 @@ OSCEngineReceiver::_variable_set_cb(const char* path, const char* types, lo_arg* /** \page engine_osc_namespace - * <p> \b /ingen/set_property - Set an (RDF) property, associated with a synth-space object (node, etc) + * <h2>/ingen/set_property</h2> * \arg \b response-id (integer) * \arg \b object-path (string) - Full path of object to associate variable with * \arg \b key (string) - URI/QName for predicate of this property (e.g. "ingen:enabled") - * \arg \b value (string) - Value of property </p> \n \n + * \arg \b value (string) - Value of property + * + * Set a property on a graph object. */ int OSCEngineReceiver::_property_set_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -635,12 +672,12 @@ OSCEngineReceiver::_property_set_cb(const char* path, const char* types, lo_arg* /** \page engine_osc_namespace - * <p> \b /ingen/request_variable - Requests the engine send a piece of variable, associated with a synth-space object (node, etc) + * <h2>/ingen/request_variable</h2> * \arg \b response-id (integer) * \arg \b object-path (string) - Full path of object variable is associated with * \arg \b key (string) - Key (index) for piece of variable * - * \li Reply will be sent to client registered with the source address of this message.</p> \n \n + * Request the value of a variable on a graph object. */ int OSCEngineReceiver::_variable_get_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -654,10 +691,11 @@ OSCEngineReceiver::_variable_get_cb(const char* path, const char* types, lo_arg* /** \page engine_osc_namespace - * <p> \b /ingen/request_plugin - Requests the engine send the value of a port. + * <h2>/ingen/request_plugin</h2> * \arg \b response-id (integer) - * \arg \b port-path (string) - Full path of port to send the value of \n\n - * \li Reply will be sent to client registered with the source address of this message.</p>\n\n + * \arg \b port-path (string) - Full path of port to send the value of + * + * Request the value of a port. */ int OSCEngineReceiver::_request_plugin_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -670,10 +708,11 @@ OSCEngineReceiver::_request_plugin_cb(const char* path, const char* types, lo_ar /** \page engine_osc_namespace - * <p> \b /ingen/request_object - Requests the engine send the value of a port. + * <h2>/ingen/request_object</h2> * \arg \b response-id (integer) * \arg \b port-path (string) - Full path of port to send the value of \n\n - * \li Reply will be sent to client registered with the source address of this message.</p>\n\n + * + * Request all properties of a graph object. */ int OSCEngineReceiver::_request_object_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -686,9 +725,10 @@ OSCEngineReceiver::_request_object_cb(const char* path, const char* types, lo_ar /** \page engine_osc_namespace - * <p> \b /ingen/request_plugins - Requests the engine send a list of all known plugins. - * \arg \b response-id (integer) \n\n - * \li Reply will be sent to client registered with the source address of this message.</p>\n\n + * <h2>/ingen/request_plugins</h2> + * \arg \b response-id (integer) + * + * Request the engine send a list of all known plugins. */ int OSCEngineReceiver::_request_plugins_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) @@ -699,9 +739,10 @@ OSCEngineReceiver::_request_plugins_cb(const char* path, const char* types, lo_a /** \page engine_osc_namespace - * <p> \b /ingen/request_all_objects - Requests the engine send information about \em all objects (patches, nodes, etc) - * \arg \b response-id (integer)\n\n - * \li Reply will be sent to client registered with the source address of this message.</p> \n \n + * <h2>/ingen/request_all_objects</h2> + * \arg \b response-id (integer) + * + * Requests all information about all known objects. */ int OSCEngineReceiver::_request_all_objects_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) diff --git a/src/engine/events/DeleteEvent.cpp b/src/engine/events/DeleteEvent.cpp index 21058546..958a8d42 100644 --- a/src/engine/events/DeleteEvent.cpp +++ b/src/engine/events/DeleteEvent.cpp @@ -88,7 +88,7 @@ DeleteEvent::pre_process() // FIXME: is this called multiple times? _compiled_patch = _node->parent_patch()->compile(); #ifndef NDEBUG - // Be sure node is removed from process order, so it can be destroyed + // Be sure node is removed from process order, so it can be deleted for (size_t i=0; i < _compiled_patch->size(); ++i) { assert(_compiled_patch->at(i).node() != _node.get()); // FIXME: check providers/dependants too @@ -187,7 +187,7 @@ DeleteEvent::post_process() _engine.broadcaster()->bundle_begin(); if (_disconnect_event) _disconnect_event->post_process(); - _engine.broadcaster()->send_destroyed(_path); + _engine.broadcaster()->send_deleted(_path); _engine.broadcaster()->bundle_end(); _engine.maid()->push(_patch_node_listnode); } else if (_patch_port_listnode) { @@ -196,7 +196,7 @@ DeleteEvent::post_process() _engine.broadcaster()->bundle_begin(); if (_disconnect_event) _disconnect_event->post_process(); - _engine.broadcaster()->send_destroyed(_path); + _engine.broadcaster()->send_deleted(_path); _engine.broadcaster()->bundle_end(); _engine.maid()->push(_patch_port_listnode); } else { diff --git a/src/engine/events/DeleteEvent.hpp b/src/engine/events/DeleteEvent.hpp index d0fa43f1..05c47325 100644 --- a/src/engine/events/DeleteEvent.hpp +++ b/src/engine/events/DeleteEvent.hpp @@ -36,10 +36,19 @@ class DriverPort; class DisconnectAllEvent; class CompiledPatch; - -/** Delete a graph object. - * WebDAV method DELETE (RFC4918 S9.6). +/** \page methods + * <h2>DELETE</h2> + * From WebDAV (RFC4918 S9.6). + * + * Calling DELETE on an object will remove that object from the engine + * (i.e. stop executing it) and destroy it. * + * \li All properties of the object are lost + * \li All references to the object are lost (e.g. the parent's reference to + * this child is lost, any connections to the object are removed, etc.) + */ + +/** DELETE a graph object (see \ref methods). * \ingroup engine */ class DeleteEvent : public QueuedEvent diff --git a/src/engine/events/MoveEvent.hpp b/src/engine/events/MoveEvent.hpp index f55d70b1..7b77439f 100644 --- a/src/engine/events/MoveEvent.hpp +++ b/src/engine/events/MoveEvent.hpp @@ -26,10 +26,17 @@ namespace Ingen { class PatchImpl; - -/** Move a graph object to a new path. - * WebDAV method MOVE (RFC4918 S9.9). +/** \page methods + * <h2>MOVE</h2> + * From WebDAV (RFC4918 S9.9). + * + * Calling MOVE on an object removes it from its current location + * and inserts it at a new one in a single operation. * + * MOVE to a path with a different parent is currently not supported. + */ + +/** MOVE a graph object to a new path (see \ref methods). * \ingroup engine */ class MoveEvent : public QueuedEvent diff --git a/src/gui/BreadCrumbBox.cpp b/src/gui/BreadCrumbBox.cpp index 4fab5628..0a48cc47 100644 --- a/src/gui/BreadCrumbBox.cpp +++ b/src/gui/BreadCrumbBox.cpp @@ -32,7 +32,7 @@ BreadCrumbBox::BreadCrumbBox() , _full_path("/") , _enable_signal(true) { - App::instance().client()->signal_object_destroyed.connect( + App::instance().client()->signal_object_deleted.connect( sigc::mem_fun(this, &BreadCrumbBox::object_destroyed)); } |