From 6bce9e50915d730caa3bd2b60c513fe9915e4b83 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 18 Aug 2022 00:04:37 -0400 Subject: Switch to meson build system --- src/ColorContext.cpp | 2 +- src/FilePath.cpp | 10 +- src/client/meson.build | 50 + src/client/wscript | 24 - src/gui/GraphBox.cpp | 7 +- src/gui/MessagesWindow.cpp | 3 +- src/gui/NodeModule.cpp | 3 +- src/gui/Port.cpp | 3 +- src/gui/WindowFactory.cpp | 4 +- src/gui/ingen_gui.ui | 3049 -------------------------------------------- src/gui/ingen_gui.ui.in | 3049 ++++++++++++++++++++++++++++++++++++++++++++ src/gui/meson.build | 163 +++ src/gui/wscript | 127 -- src/include/ingen_config.h | 216 ++++ src/ingen/ingen.cpp | 4 +- src/meson.build | 65 + src/runtime_paths.cpp | 6 +- src/server/Buffer.cpp | 3 +- src/server/Engine.cpp | 4 +- src/server/JackDriver.cpp | 8 +- src/server/meson.build | 135 ++ src/server/wscript | 106 -- src/wscript | 47 - 23 files changed, 3710 insertions(+), 3378 deletions(-) create mode 100644 src/client/meson.build delete mode 100644 src/client/wscript delete mode 100644 src/gui/ingen_gui.ui create mode 100644 src/gui/ingen_gui.ui.in create mode 100644 src/gui/meson.build delete mode 100644 src/gui/wscript create mode 100644 src/include/ingen_config.h create mode 100644 src/meson.build create mode 100644 src/server/meson.build delete mode 100644 src/server/wscript delete mode 100644 src/wscript (limited to 'src') diff --git a/src/ColorContext.cpp b/src/ColorContext.cpp index ac797518..827395f2 100644 --- a/src/ColorContext.cpp +++ b/src/ColorContext.cpp @@ -17,7 +17,7 @@ #include "ingen/ColorContext.hpp" #include "ingen_config.h" -#ifdef HAVE_ISATTY +#if USE_ISATTY # include #else inline int isatty(int fd) { return 0; } diff --git a/src/FilePath.cpp b/src/FilePath.cpp index d16c133c..f8da196e 100644 --- a/src/FilePath.cpp +++ b/src/FilePath.cpp @@ -26,7 +26,7 @@ template static bool is_sep(const Char chr) { -#ifdef USE_WINDOWS_FILE_PATHS +#if USE_WINDOWS_FILE_PATHS return chr == L'/' || chr == preferred_separator; #else return chr == '/'; @@ -98,7 +98,7 @@ FilePath::operator+=(boost::basic_string_view sv) FilePath FilePath::root_name() { -#ifdef USE_WINDOWS_FILE_PATHS +#if USE_WINDOWS_FILE_PATHS if (_str.length() >= 2 && _str[0] >= 'A' && _str[0] <= 'Z' && _str[1] == ':') { return FilePath(_str.substr(0, 2)); @@ -111,7 +111,7 @@ FilePath::root_name() FilePath FilePath::root_directory() const { -#ifdef USE_WINDOWS_FILE_PATHS +#if USE_WINDOWS_FILE_PATHS const auto name = root_name().string(); return name.empty() ? Path() : Path(name + preferred_separator); #endif @@ -122,7 +122,7 @@ FilePath::root_directory() const FilePath FilePath::root_path() const { -#ifdef USE_WINDOWS_FILE_PATHS +#if USE_WINDOWS_FILE_PATHS const auto name = root_name(); return name.empty() ? FilePath() : name / root_directory(); #endif @@ -180,7 +180,7 @@ FilePath::extension() const bool FilePath::is_absolute() const { -#ifdef USE_WINDOWS_FILE_PATHS +#if USE_WINDOWS_FILE_PATHS return !root_name().empty(); #else return !root_directory().empty(); diff --git a/src/client/meson.build b/src/client/meson.build new file mode 100644 index 00000000..b77211d2 --- /dev/null +++ b/src/client/meson.build @@ -0,0 +1,50 @@ +# Copyright 2022 David Robillard +# SPDX-License-Identifier: CC0-1.0 OR GPL-3.0-or-later + +################ +# Dependencies # +################ + +sigcpp_dep = dependency('sigc++-2.0', include_type: 'system') + +########## +# Module # +########## + +client_sources = files( + 'BlockModel.cpp', + 'ClientStore.cpp', + 'GraphModel.cpp', + 'ObjectModel.cpp', + 'PluginModel.cpp', + 'PluginUI.cpp', + 'PortModel.cpp', + 'ingen_client.cpp', +) + +client_dependencies = [ + boost_dep, + ingen_dep, + lilv_dep, + lv2_dep, + raul_dep, + sigcpp_dep, + suil_dep, +] + +libingen_client = shared_library( + 'ingen_client', + client_sources, + cpp_args: cpp_suppressions + platform_defines + ['-DINGEN_CLIENT_INTERNAL'], + dependencies: client_dependencies, + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: ingen_include_dirs, + install: true, + install_dir: ingen_module_dir, +) + +ingen_client_dep = declare_dependency( + dependencies: client_dependencies, + link_with: libingen_client, +) diff --git a/src/client/wscript b/src/client/wscript deleted file mode 100644 index d63fb56c..00000000 --- a/src/client/wscript +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python - - -def build(bld): - obj = bld(features = 'cxx cxxshlib', - cflags = ['-fvisibility=hidden'], - includes = ['../../', '../../include'], - export_includes = ['../../include'], - name = 'libingen_client', - target = 'ingen_client', - install_path = '${LIBDIR}', - use = 'libingen', - uselib = 'GLIBMM LV2 LILV SUIL RAUL SERD SORD SIGCPP') - - obj.source = ''' - BlockModel.cpp - ClientStore.cpp - GraphModel.cpp - ObjectModel.cpp - PluginModel.cpp - PluginUI.cpp - PortModel.cpp - ingen_client.cpp - ''' diff --git a/src/gui/GraphBox.cpp b/src/gui/GraphBox.cpp index f994d47c..ee3013b1 100644 --- a/src/gui/GraphBox.cpp +++ b/src/gui/GraphBox.cpp @@ -27,6 +27,7 @@ #include "ThreadedLoader.hpp" #include "WidgetFactory.hpp" #include "WindowFactory.hpp" +#include "ingen_config.h" #include "ganv/canvas.h" #include "ingen/Atom.hpp" @@ -87,8 +88,8 @@ #include #include -#ifdef HAVE_WEBKIT -#include +#if USE_WEBKIT +# include #endif #include @@ -449,7 +450,7 @@ GraphBox::set_documentation(const std::string& doc, bool html) _doc_scrolledwindow->hide(); return; } -#ifdef HAVE_WEBKIT +#if USE_WEBKIT WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); webkit_web_view_load_html_string(view, doc.c_str(), ""); Gtk::Widget* widget = Gtk::manage(Glib::wrap(GTK_WIDGET(view))); diff --git a/src/gui/MessagesWindow.cpp b/src/gui/MessagesWindow.cpp index 2e0fdb61..9127ad61 100644 --- a/src/gui/MessagesWindow.cpp +++ b/src/gui/MessagesWindow.cpp @@ -18,6 +18,7 @@ #include "App.hpp" #include "Window.hpp" +#include "ingen_config.h" #include "ingen/URIs.hpp" #include "lv2/urid/urid.h" @@ -102,7 +103,7 @@ MessagesWindow::log(LV2_URID type, const char* fmt, va_list args) { std::lock_guard lock(_mutex); -#ifdef HAVE_VASPRINTF +#if USE_VASPRINTF char* buf = nullptr; const int len = vasprintf(&buf, fmt, args); #else diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp index fe111572..1dbd1cd9 100644 --- a/src/gui/NodeModule.cpp +++ b/src/gui/NodeModule.cpp @@ -25,6 +25,7 @@ #include "SubgraphModule.hpp" #include "WidgetFactory.hpp" #include "WindowFactory.hpp" +#include "ingen_config.h" #include "ganv/Port.hpp" #include "ingen/Atom.hpp" @@ -531,7 +532,7 @@ NodeModule::on_selected(gboolean selected) if (selected && win->documentation_is_visible()) { std::string doc; bool html = false; -#ifdef HAVE_WEBKIT +#if USE_WEBKIT html = true; #endif if (block()->plugin_model()) { diff --git a/src/gui/Port.cpp b/src/gui/Port.cpp index 65b415e3..87cb3ef1 100644 --- a/src/gui/Port.cpp +++ b/src/gui/Port.cpp @@ -24,6 +24,7 @@ #include "Style.hpp" #include "WidgetFactory.hpp" #include "WindowFactory.hpp" +#include "ingen_config.h" #include "rgba.hpp" #include "ingen/Atom.hpp" @@ -551,7 +552,7 @@ Port::on_selected(gboolean b) GraphWindow* win = _app.window_factory()->parent_graph_window(block); if (win && win->documentation_is_visible() && block->plugin_model()) { bool html = false; -#ifdef HAVE_WEBKIT +#if USE_WEBKIT html = true; #endif const std::string& doc = block->plugin_model()->port_documentation( diff --git a/src/gui/WindowFactory.cpp b/src/gui/WindowFactory.cpp index 153fb4f6..ae396b61 100644 --- a/src/gui/WindowFactory.cpp +++ b/src/gui/WindowFactory.cpp @@ -14,8 +14,11 @@ along with Ingen. If not, see . */ +#include "WindowFactory.hpp" + #include "App.hpp" #include "GraphBox.hpp" +#include "GraphView.hpp" #include "GraphWindow.hpp" #include "LoadGraphWindow.hpp" #include "LoadPluginWindow.hpp" @@ -23,7 +26,6 @@ #include "PropertiesWindow.hpp" #include "RenameWindow.hpp" #include "WidgetFactory.hpp" -#include "WindowFactory.hpp" #include "ingen/Log.hpp" #include "ingen/client/BlockModel.hpp" diff --git a/src/gui/ingen_gui.ui b/src/gui/ingen_gui.ui deleted file mode 100644 index 9e751064..00000000 --- a/src/gui/ingen_gui.ui +++ /dev/null @@ -1,3049 +0,0 @@ - - - - - - False - True - normal - Ingen - @INGEN_VERSION@ - Copyright 2005-2015 David Robillard <http://drobilla.net> - http://drobilla.net/software/ingen - Licensed under the GNU Affero GPL, Version 3 or later. - -See COPYING file included with this distribution, or http://www.gnu.org/licenses/agpl.txt for more information - David Robillard <d@drobilla.net> - translator-credits - Usability / UI Design: - Thorsten Wilms - True - - - False - - - False - - - False - True - end - 0 - - - - - - - True - False - - - True - False - _Edit - True - True - - - - - True - False - - - - - _Input - True - False - True - False - - - False - - - True - False - _Audio - True - - - - - - True - False - C_V - True - - - - - - True - False - _Control - True - - - - - - True - False - _Event - True - - - - - - - - - - _Output - True - False - True - False - - - False - - - True - False - _Audio - True - - - - - - True - False - C_V - True - - - - - - True - False - _Control - True - - - - - - True - False - _Event - True - - - - - - - - - - _Find Plugin... - True - False - True - False - - - - - - _Load Graph... - True - False - True - False - - - - - - _New Graph... - True - False - True - False - - - - - - True - False - - - - - P_roperties... - True - False - True - False - - - - - - False - 8 - Configuration - Ingen - - - True - False - 6 - - - True - False - 2 - 2 - - - True - False - <b>Graph Search Path: </b> - True - - - GTK_FILL - - - - - - True - True - False - False - True - True - - - 1 - 2 - - - - - - True - False - <i>Example: /foo/bar:/home/user/graphs</i> - True - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - - True - False - 0 - - - 1 - 2 - GTK_FILL - - - - - - True - False - 0 - - - - - True - False - 6 - end - - - gtk-save - True - True - False - True - - - False - False - 0 - - - - - gtk-cancel - True - True - False - True - - - False - False - 1 - - - - - gtk-ok - True - True - False - True - - - False - False - 2 - - - - - False - True - 1 - - - - - - - False - 6 - Engine - Ingen - False - dialog - - - True - False - 6 - - - True - False - end - - - gtk-quit - True - True - True - False - True - - - False - False - 0 - - - - - gtk-disconnect - True - False - True - True - False - True - - - False - False - 1 - - - - - gtk-connect - True - True - True - True - False - True - - - False - False - 2 - - - - - False - False - end - 0 - - - - - True - False - - - True - False - - - True - False - 12 - gtk-disconnect - 3 - - - False - True - 0 - - - - - True - False - 5 - True - - - True - False - 0.10000000149 - - - False - False - 0 - - - - - True - False - 0 - Not connected - - - False - True - 1 - - - - - True - True - 1 - - - - - True - False - 0 - - - - - True - False - - - False - True - 4 - 1 - - - - - True - False - 3 - 2 - 8 - - - True - False - - - True - False - True - False - False - True - True - 1 - True - - - False - False - 0 - - - - - 1 - 2 - 1 - 2 - GTK_FILL - 8 - - - - - True - False - - - True - True - True - 28 - unix:///tmp/ingen.sock - False - False - True - True - - - True - True - 0 - - - - - 1 - 2 - GTK_FILL - GTK_FILL - 8 - - - - - _Connect to engine at: - True - True - False - True - True - - - GTK_FILL - - - - - - _Launch separate engine on port: - True - True - False - True - True - connect_server_radiobutton - - - 1 - 2 - GTK_FILL - - - - - - Start local _JACK engine - True - True - False - True - True - connect_server_radiobutton - - - 2 - 3 - GTK_FILL - - - - - - True - False - 0 - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - - True - True - 2 - - - - - True - False - - - False - True - 3 - - - - - True - False - 6 - start - - - D_eactivate - True - False - True - True - True - - - False - False - 0 - - - - - _Activate - True - False - True - True - True - - - False - False - 1 - - - - - True - True - 6 - 4 - - - - - False - True - 2 - - - - - - connect_quit_button - connect_disconnect_button - connect_connect_button - - - - 320 - 340 - False - 8 - Graphs - Ingen - - - True - True - 3 - in - - - True - True - True - - - - - - - False - Ingen - 776 - 480 - - - True - False - - - True - False - - - True - False - _File - True - - - False - - - _Import... - True - False - True - False - - - - - - - True - False - - - - - gtk-save - True - False - True - True - - - - - - - Save _As... - True - False - True - False - - - - - - - _Export Image... - True - False - True - False - - - - - - - True - False - - - - - gtk-close - True - False - True - True - - - - - - - gtk-quit - True - False - True - True - - - - - - - - - - - True - False - _Edit - True - - - False - - - gtk-undo - True - False - True - True - - - - - - - gtk-redo - True - False - True - True - - - - - - - True - False - - - - - gtk-cut - True - False - False - True - True - - - - - - gtk-copy - True - False - True - True - - - - - - - gtk-paste - True - False - False - True - True - - - - - - - gtk-delete - True - False - True - True - - - - - - - gtk-select-all - True - False - True - True - - - - - - - True - False - - - - - Arrange - True - False - True - False - - - - - - True - False - - - - - C_ontrols... - True - False - True - False - - - - - - - gtk-properties - True - False - True - True - - - - - - - - - - - True - False - _View - True - - - False - - - True - False - Update control ports as values change. - Animate Signa_ls - True - - - - - - True - False - Sprung Layou_t - True - - - - - - True - False - - - - - True - False - _Human names - True - True - - - - - - True - False - Port _Names - True - True - - - - - - True - False - _Documentation Pane - True - - - - - - True - False - _Status Bar - True - True - - - - - - True - False - - - - - gtk-zoom-in - True - False - True - True - - - - - - gtk-zoom-out - True - False - True - True - - - - - - gtk-zoom-100 - True - False - True - True - - - - - - gtk-zoom-fit - True - False - True - True - - - - - - True - False - - - - - True - False - _Increase Font Size - True - - - - - - True - False - _Decrease Font Size - True - - - - - - True - False - _Normal Font Size - True - - - - - - True - False - - - - - _Parent - True - False - True - True - - - - - - - gtk-refresh - True - False - True - True - - - - - - - gtk-fullscreen - True - False - True - True - - - - - - - - - - - True - False - _Windows - True - - - - False - - - _Engine - True - False - True - False - - - - - - - _Graph Tree - True - False - True - False - - - - - - - _Messages - True - False - True - False - - - - - - - - - - - True - False - _Help - True - - - - False - - - Right-click the canvas to add objects - True - False - True - False - - - - - True - False - - - - - gtk-about - True - False - True - True - - - - - - - - - - False - False - 0 - - - - - True - False - - - True - False - - - - - - True - False - - - - - False - in - - - - - - False - True - - - - - True - True - 1 - - - - - True - False - 2 - - - False - True - 2 - - - - - - - False - Load Graph - Ingen - center-on-parent - dialog - - - False - 24 - - - True - False - end - - - gtk-cancel - True - True - True - False - True - - - False - False - 0 - - - - - gtk-open - True - True - True - True - False - True - - - False - False - 1 - - - - - False - True - end - 0 - - - - - True - False - 0 - 0 - - - True - False - 3 - 3 - 12 - 12 - - - True - False - 0 - Polyphony: - True - - - 1 - 2 - GTK_FILL - - - - - - Load from _File - True - True - False - True - True - True - load_graph_poly_voices_radio - - - 2 - 3 - 1 - 2 - GTK_FILL - - - - - - True - False - 0 - Ports: - True - - - 2 - 3 - GTK_FILL - - - - - _Insert new ports - True - True - False - True - True - True - load_graph_merge_ports_radio - - - 2 - 3 - 2 - 3 - GTK_FILL - - - - - _Merge with existing ports - True - True - False - True - True - True - True - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - True - False - 6 - - - _Voices: - True - True - False - True - True - True - True - - - False - False - 0 - - - - - True - True - - False - False - True - True - 1 - - - False - True - 1 - - - - - 1 - 2 - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - False - 0 - _Symbol: - True - True - load_graph_symbol_entry - - - GTK_FILL - - - - - - True - True - - True - False - False - True - True - - - 1 - 3 - GTK_FILL - - - - - - - False - False - 2 - - - - - - load_graph_cancel_button - load_graph_ok_button - - - - False - 8 - Load Plugin - Ingen - center-on-parent - True - dialog - - - True - False - 1 - - - True - True - 2 - - - True - True - 2 - True - True - - - - - True - True - 0 - - - - - True - False - 3 - 3 - 12 - - - True - False - 1 - Node _Symbol: - True - True - load_plugin_name_entry - - - 2 - 3 - GTK_FILL - - - - - - True - False - - - 1 - 2 - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - False - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - False - - - 2 - 3 - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - False - - - True - True - False - False - True - True - - - True - True - 0 - - - - - _Polyphonic - True - True - False - True - True - True - - - False - False - 8 - 1 - - - - - 1 - 2 - 2 - 3 - GTK_FILL - 6 - - - - - True - True - True - gtk-clear - False - False - True - True - - - 1 - 3 - GTK_FILL - - - - - True - False - - - GTK_FILL - - - - - - True - False - 4 - - - gtk-close - True - True - True - True - - - False - False - 0 - - - - - gtk-add - True - True - True - True - - - False - False - 1 - - - - - 2 - 3 - 2 - 3 - GTK_FILL - GTK_FILL - - - - - False - False - 1 - - - - - - - 400 - 180 - False - 8 - Messages - Ingen - - - True - False - 6 - - - True - True - in - - - True - True - 1 - 1 - False - word - 5 - 5 - False - False - - - - - True - True - 0 - - - - - True - False - 6 - end - - - gtk-clear - True - False - True - True - False - True - - - False - False - 0 - - - - - gtk-close - True - True - False - True - - - False - False - 1 - - - - - False - True - 1 - - - - - - - 320 - False - 8 - Create Subgraph - Ingen - False - center-on-parent - dialog - - - True - False - - - True - False - 2 - 2 - - - True - False - 0 - _Symbol: - True - new_subgraph_name_entry - - - GTK_FILL - GTK_EXPAND - 5 - - - - - True - False - 0 - _Polyphony: - True - new_subgraph_polyphony_spinbutton - - - 1 - 2 - GTK_FILL - GTK_EXPAND - 5 - - - - - True - True - - True - False - False - True - True - 1 - - - 1 - 2 - 1 - 2 - GTK_FILL - - 4 - - - - - True - True - - True - False - False - True - True - - - 1 - 2 - - 4 - - - - - True - True - 0 - - - - - True - False - True - - - False - False - 1 - - - - - True - False - 4 - end - - - gtk-cancel - True - True - True - True - - - False - False - 0 - - - - - gtk-ok - True - True - True - True - True - True - - - False - False - 1 - - - - - True - True - 2 - - - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - Show GUI... - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - - - - - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Embed GUI - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Enabled - True - - - - - Randomi_ze - False - True - False - - - - - False - Set Value as Mi_nimum - True - - - - - False - Set Value as Ma_ximum - True - - - - - False - Re_set Range - True - - - - - False - _Expose - True - - - - - True - False - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - P_olyphonic - True - - - - - True - False - _Learn - True - - - - - True - False - _Unlearn - True - - - - - Dis_connect - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - False - - - - - gtk-delete - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - True - - - - - _Rename... - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - False - - - - - _Properties... - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - False - - - - - False - - - gtk-properties - True - False - True - True - - - - - - False - 8 - Port Properties - Ingen - False - mouse - - - True - False - 8 - - - True - False - end - - - gtk-cancel - True - True - True - False - True - - - False - False - 0 - - - - - gtk-ok - True - True - True - True - False - True - - - False - False - 1 - - - - - False - True - end - 0 - - - - - True - False - 2 - 2 - 2 - 4 - - - True - True - False - False - True - True - 1 - 5 - True - - - 1 - 2 - - - - - - True - True - False - False - True - True - 1 - 5 - True - - - 1 - 2 - 1 - 2 - - - - - - True - False - 0 - Minimum Value: - - - GTK_FILL - - - - - - True - False - 0 - Maximum Value: - - - 1 - 2 - GTK_FILL - - - - - - True - True - 2 - - - - - - - False - 12 - center-on-parent - - - True - False - 12 - - - True - True - automatic - automatic - - - True - False - queue - none - - - True - False - 3 - 12 - 6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - 0 - - - - - True - False - 6 - - - True - False - - - False - True - 0 - - - - - True - False - - - True - True - 1 - - - - - gtk-add - True - False - True - True - True - - - False - True - 2 - - - - - False - True - 1 - - - - - True - False - 6 - end - - - gtk-cancel - True - True - True - True - True - - - False - False - 0 - - - - - gtk-apply - True - True - True - True - - - False - False - 1 - - - - - gtk-ok - True - True - True - True - True - True - - - False - False - 2 - - - - - False - True - end - 1 - - - - - - - 250 - False - Rename - center-on-parent - True - dialog - - - True - False - 5 - - - True - False - 2 - 2 - 8 - - - True - False - _Symbol: - True - rename_symbol_entry - - - GTK_FILL - - - - - True - True - - True - False - False - True - True - - - 1 - 2 - 1 - 2 - - - - - True - False - _Label: - True - rename_label_entry - - - 1 - 2 - GTK_FILL - - - - - True - True - True - - True - False - False - True - True - - - 1 - 2 - - - - - True - True - 0 - - - - - True - False - - - True - True - 12 - 1 - - - - - True - False - 8 - end - - - gtk-cancel - True - True - True - True - True - - - False - False - 0 - - - - - gtk-ok - True - True - True - True - False - True - - - False - False - 1 - - - - - False - True - 2 - - - - - - - False - Warehouse - Ingen - - - True - False - 6 - 12 - 12 - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - 0 - 4 - <b>Name</b> - True - True - - - False - False - 0 - - - - - True - False - 1 - 0 - 1 - 1 - 4 - - - True - False - - - - - True - True - 1 - - - - - True - True - False - True - - - False - True - 2 - - - - - False - False - 0 - - - - - 4 - 5 - 8 - - - - - True - False - - - True - False - 0 - - - True - True - never - - - True - False - none - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - - - - - True - True - 0 - - - - - - - True - False - - - True - False - - - True - False - icons - 1 - - - True - False - - - - - - False - - - - - True - True - 0 - - - - - True - False - icons - False - 1 - - - True - False - True - gtk-execute - True - - - False - True - - - - - True - False - - - True - False - 4 - gtk-copy - - - - - False - - - - - True - False - - - True - True - False - False - True - True - 1 - True - - - - - False - - - - - False - True - 1 - - - - - False - False - 0 - - - - - True - False - True - True - GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK - 1 - in - - - - - - True - True - 1 - - - - - 2 - 3 - GTK_FILL - - - - - True - False - - - 1 - 2 - GTK_FILL - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - 0 - 1 - 4 - <b>Name</b> - True - True - - - False - False - 0 - - - - - True - False - 1 - 0 - 1 - 1 - 4 - - - True - False - - - - - True - True - 1 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 12 - False - False - True - True - 4 - True - - - False - True - 2 - - - - - False - False - 0 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 63 - False - - - False - True - 1 - - - - - 3 - 4 - 8 - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - 0 - 4 - <b>Name</b> - True - True - - - False - False - 0 - - - - - True - True - - False - False - False - True - True - - - True - True - 1 - - - - - False - False - 0 - - - - - 5 - 6 - 8 - - - - - - diff --git a/src/gui/ingen_gui.ui.in b/src/gui/ingen_gui.ui.in new file mode 100644 index 00000000..9e751064 --- /dev/null +++ b/src/gui/ingen_gui.ui.in @@ -0,0 +1,3049 @@ + + + + + + False + True + normal + Ingen + @INGEN_VERSION@ + Copyright 2005-2015 David Robillard <http://drobilla.net> + http://drobilla.net/software/ingen + Licensed under the GNU Affero GPL, Version 3 or later. + +See COPYING file included with this distribution, or http://www.gnu.org/licenses/agpl.txt for more information + David Robillard <d@drobilla.net> + translator-credits + Usability / UI Design: + Thorsten Wilms + True + + + False + + + False + + + False + True + end + 0 + + + + + + + True + False + + + True + False + _Edit + True + True + + + + + True + False + + + + + _Input + True + False + True + False + + + False + + + True + False + _Audio + True + + + + + + True + False + C_V + True + + + + + + True + False + _Control + True + + + + + + True + False + _Event + True + + + + + + + + + + _Output + True + False + True + False + + + False + + + True + False + _Audio + True + + + + + + True + False + C_V + True + + + + + + True + False + _Control + True + + + + + + True + False + _Event + True + + + + + + + + + + _Find Plugin... + True + False + True + False + + + + + + _Load Graph... + True + False + True + False + + + + + + _New Graph... + True + False + True + False + + + + + + True + False + + + + + P_roperties... + True + False + True + False + + + + + + False + 8 + Configuration - Ingen + + + True + False + 6 + + + True + False + 2 + 2 + + + True + False + <b>Graph Search Path: </b> + True + + + GTK_FILL + + + + + + True + True + False + False + True + True + + + 1 + 2 + + + + + + True + False + <i>Example: /foo/bar:/home/user/graphs</i> + True + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + True + False + 0 + + + 1 + 2 + GTK_FILL + + + + + + True + False + 0 + + + + + True + False + 6 + end + + + gtk-save + True + True + False + True + + + False + False + 0 + + + + + gtk-cancel + True + True + False + True + + + False + False + 1 + + + + + gtk-ok + True + True + False + True + + + False + False + 2 + + + + + False + True + 1 + + + + + + + False + 6 + Engine - Ingen + False + dialog + + + True + False + 6 + + + True + False + end + + + gtk-quit + True + True + True + False + True + + + False + False + 0 + + + + + gtk-disconnect + True + False + True + True + False + True + + + False + False + 1 + + + + + gtk-connect + True + True + True + True + False + True + + + False + False + 2 + + + + + False + False + end + 0 + + + + + True + False + + + True + False + + + True + False + 12 + gtk-disconnect + 3 + + + False + True + 0 + + + + + True + False + 5 + True + + + True + False + 0.10000000149 + + + False + False + 0 + + + + + True + False + 0 + Not connected + + + False + True + 1 + + + + + True + True + 1 + + + + + True + False + 0 + + + + + True + False + + + False + True + 4 + 1 + + + + + True + False + 3 + 2 + 8 + + + True + False + + + True + False + True + False + False + True + True + 1 + True + + + False + False + 0 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + 8 + + + + + True + False + + + True + True + True + 28 + unix:///tmp/ingen.sock + False + False + True + True + + + True + True + 0 + + + + + 1 + 2 + GTK_FILL + GTK_FILL + 8 + + + + + _Connect to engine at: + True + True + False + True + True + + + GTK_FILL + + + + + + _Launch separate engine on port: + True + True + False + True + True + connect_server_radiobutton + + + 1 + 2 + GTK_FILL + + + + + + Start local _JACK engine + True + True + False + True + True + connect_server_radiobutton + + + 2 + 3 + GTK_FILL + + + + + + True + False + 0 + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + True + 2 + + + + + True + False + + + False + True + 3 + + + + + True + False + 6 + start + + + D_eactivate + True + False + True + True + True + + + False + False + 0 + + + + + _Activate + True + False + True + True + True + + + False + False + 1 + + + + + True + True + 6 + 4 + + + + + False + True + 2 + + + + + + connect_quit_button + connect_disconnect_button + connect_connect_button + + + + 320 + 340 + False + 8 + Graphs - Ingen + + + True + True + 3 + in + + + True + True + True + + + + + + + False + Ingen + 776 + 480 + + + True + False + + + True + False + + + True + False + _File + True + + + False + + + _Import... + True + False + True + False + + + + + + + True + False + + + + + gtk-save + True + False + True + True + + + + + + + Save _As... + True + False + True + False + + + + + + + _Export Image... + True + False + True + False + + + + + + + True + False + + + + + gtk-close + True + False + True + True + + + + + + + gtk-quit + True + False + True + True + + + + + + + + + + + True + False + _Edit + True + + + False + + + gtk-undo + True + False + True + True + + + + + + + gtk-redo + True + False + True + True + + + + + + + True + False + + + + + gtk-cut + True + False + False + True + True + + + + + + gtk-copy + True + False + True + True + + + + + + + gtk-paste + True + False + False + True + True + + + + + + + gtk-delete + True + False + True + True + + + + + + + gtk-select-all + True + False + True + True + + + + + + + True + False + + + + + Arrange + True + False + True + False + + + + + + True + False + + + + + C_ontrols... + True + False + True + False + + + + + + + gtk-properties + True + False + True + True + + + + + + + + + + + True + False + _View + True + + + False + + + True + False + Update control ports as values change. + Animate Signa_ls + True + + + + + + True + False + Sprung Layou_t + True + + + + + + True + False + + + + + True + False + _Human names + True + True + + + + + + True + False + Port _Names + True + True + + + + + + True + False + _Documentation Pane + True + + + + + + True + False + _Status Bar + True + True + + + + + + True + False + + + + + gtk-zoom-in + True + False + True + True + + + + + + gtk-zoom-out + True + False + True + True + + + + + + gtk-zoom-100 + True + False + True + True + + + + + + gtk-zoom-fit + True + False + True + True + + + + + + True + False + + + + + True + False + _Increase Font Size + True + + + + + + True + False + _Decrease Font Size + True + + + + + + True + False + _Normal Font Size + True + + + + + + True + False + + + + + _Parent + True + False + True + True + + + + + + + gtk-refresh + True + False + True + True + + + + + + + gtk-fullscreen + True + False + True + True + + + + + + + + + + + True + False + _Windows + True + + + + False + + + _Engine + True + False + True + False + + + + + + + _Graph Tree + True + False + True + False + + + + + + + _Messages + True + False + True + False + + + + + + + + + + + True + False + _Help + True + + + + False + + + Right-click the canvas to add objects + True + False + True + False + + + + + True + False + + + + + gtk-about + True + False + True + True + + + + + + + + + + False + False + 0 + + + + + True + False + + + True + False + + + + + + True + False + + + + + False + in + + + + + + False + True + + + + + True + True + 1 + + + + + True + False + 2 + + + False + True + 2 + + + + + + + False + Load Graph - Ingen + center-on-parent + dialog + + + False + 24 + + + True + False + end + + + gtk-cancel + True + True + True + False + True + + + False + False + 0 + + + + + gtk-open + True + True + True + True + False + True + + + False + False + 1 + + + + + False + True + end + 0 + + + + + True + False + 0 + 0 + + + True + False + 3 + 3 + 12 + 12 + + + True + False + 0 + Polyphony: + True + + + 1 + 2 + GTK_FILL + + + + + + Load from _File + True + True + False + True + True + True + load_graph_poly_voices_radio + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + False + 0 + Ports: + True + + + 2 + 3 + GTK_FILL + + + + + _Insert new ports + True + True + False + True + True + True + load_graph_merge_ports_radio + + + 2 + 3 + 2 + 3 + GTK_FILL + + + + + _Merge with existing ports + True + True + False + True + True + True + True + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + True + False + 6 + + + _Voices: + True + True + False + True + True + True + True + + + False + False + 0 + + + + + True + True + + False + False + True + True + 1 + + + False + True + 1 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + False + 0 + _Symbol: + True + True + load_graph_symbol_entry + + + GTK_FILL + + + + + + True + True + + True + False + False + True + True + + + 1 + 3 + GTK_FILL + + + + + + + False + False + 2 + + + + + + load_graph_cancel_button + load_graph_ok_button + + + + False + 8 + Load Plugin - Ingen + center-on-parent + True + dialog + + + True + False + 1 + + + True + True + 2 + + + True + True + 2 + True + True + + + + + True + True + 0 + + + + + True + False + 3 + 3 + 12 + + + True + False + 1 + Node _Symbol: + True + True + load_plugin_name_entry + + + 2 + 3 + GTK_FILL + + + + + + True + False + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + False + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + False + + + 2 + 3 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + False + + + True + True + False + False + True + True + + + True + True + 0 + + + + + _Polyphonic + True + True + False + True + True + True + + + False + False + 8 + 1 + + + + + 1 + 2 + 2 + 3 + GTK_FILL + 6 + + + + + True + True + True + gtk-clear + False + False + True + True + + + 1 + 3 + GTK_FILL + + + + + True + False + + + GTK_FILL + + + + + + True + False + 4 + + + gtk-close + True + True + True + True + + + False + False + 0 + + + + + gtk-add + True + True + True + True + + + False + False + 1 + + + + + 2 + 3 + 2 + 3 + GTK_FILL + GTK_FILL + + + + + False + False + 1 + + + + + + + 400 + 180 + False + 8 + Messages - Ingen + + + True + False + 6 + + + True + True + in + + + True + True + 1 + 1 + False + word + 5 + 5 + False + False + + + + + True + True + 0 + + + + + True + False + 6 + end + + + gtk-clear + True + False + True + True + False + True + + + False + False + 0 + + + + + gtk-close + True + True + False + True + + + False + False + 1 + + + + + False + True + 1 + + + + + + + 320 + False + 8 + Create Subgraph - Ingen + False + center-on-parent + dialog + + + True + False + + + True + False + 2 + 2 + + + True + False + 0 + _Symbol: + True + new_subgraph_name_entry + + + GTK_FILL + GTK_EXPAND + 5 + + + + + True + False + 0 + _Polyphony: + True + new_subgraph_polyphony_spinbutton + + + 1 + 2 + GTK_FILL + GTK_EXPAND + 5 + + + + + True + True + + True + False + False + True + True + 1 + + + 1 + 2 + 1 + 2 + GTK_FILL + + 4 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + + 4 + + + + + True + True + 0 + + + + + True + False + True + + + False + False + 1 + + + + + True + False + 4 + end + + + gtk-cancel + True + True + True + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + True + True + True + + + False + False + 1 + + + + + True + True + 2 + + + + + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + Show GUI... + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + + + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Embed GUI + + + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Enabled + True + + + + + Randomi_ze + False + True + False + + + + + False + Set Value as Mi_nimum + True + + + + + False + Set Value as Ma_ximum + True + + + + + False + Re_set Range + True + + + + + False + _Expose + True + + + + + True + False + + + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + P_olyphonic + True + + + + + True + False + _Learn + True + + + + + True + False + _Unlearn + True + + + + + Dis_connect + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + False + + + + + gtk-delete + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + True + + + + + _Rename... + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + False + + + + + _Properties... + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + False + + + + + False + + + gtk-properties + True + False + True + True + + + + + + False + 8 + Port Properties - Ingen + False + mouse + + + True + False + 8 + + + True + False + end + + + gtk-cancel + True + True + True + False + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + True + False + True + + + False + False + 1 + + + + + False + True + end + 0 + + + + + True + False + 2 + 2 + 2 + 4 + + + True + True + False + False + True + True + 1 + 5 + True + + + 1 + 2 + + + + + + True + True + False + False + True + True + 1 + 5 + True + + + 1 + 2 + 1 + 2 + + + + + + True + False + 0 + Minimum Value: + + + GTK_FILL + + + + + + True + False + 0 + Maximum Value: + + + 1 + 2 + GTK_FILL + + + + + + True + True + 2 + + + + + + + False + 12 + center-on-parent + + + True + False + 12 + + + True + True + automatic + automatic + + + True + False + queue + none + + + True + False + 3 + 12 + 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + 0 + + + + + True + False + 6 + + + True + False + + + False + True + 0 + + + + + True + False + + + True + True + 1 + + + + + gtk-add + True + False + True + True + True + + + False + True + 2 + + + + + False + True + 1 + + + + + True + False + 6 + end + + + gtk-cancel + True + True + True + True + True + + + False + False + 0 + + + + + gtk-apply + True + True + True + True + + + False + False + 1 + + + + + gtk-ok + True + True + True + True + True + True + + + False + False + 2 + + + + + False + True + end + 1 + + + + + + + 250 + False + Rename + center-on-parent + True + dialog + + + True + False + 5 + + + True + False + 2 + 2 + 8 + + + True + False + _Symbol: + True + rename_symbol_entry + + + GTK_FILL + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 1 + 2 + + + + + True + False + _Label: + True + rename_label_entry + + + 1 + 2 + GTK_FILL + + + + + True + True + True + + True + False + False + True + True + + + 1 + 2 + + + + + True + True + 0 + + + + + True + False + + + True + True + 12 + 1 + + + + + True + False + 8 + end + + + gtk-cancel + True + True + True + True + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + True + False + True + + + False + False + 1 + + + + + False + True + 2 + + + + + + + False + Warehouse - Ingen + + + True + False + 6 + 12 + 12 + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + 0 + 4 + <b>Name</b> + True + True + + + False + False + 0 + + + + + True + False + 1 + 0 + 1 + 1 + 4 + + + True + False + + + + + True + True + 1 + + + + + True + True + False + True + + + False + True + 2 + + + + + False + False + 0 + + + + + 4 + 5 + 8 + + + + + True + False + + + True + False + 0 + + + True + True + never + + + True + False + none + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + + + + + + + True + True + 0 + + + + + + + True + False + + + True + False + + + True + False + icons + 1 + + + True + False + + + + + + False + + + + + True + True + 0 + + + + + True + False + icons + False + 1 + + + True + False + True + gtk-execute + True + + + False + True + + + + + True + False + + + True + False + 4 + gtk-copy + + + + + False + + + + + True + False + + + True + True + False + False + True + True + 1 + True + + + + + False + + + + + False + True + 1 + + + + + False + False + 0 + + + + + True + False + True + True + GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK + 1 + in + + + + + + True + True + 1 + + + + + 2 + 3 + GTK_FILL + + + + + True + False + + + 1 + 2 + GTK_FILL + + + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + 0 + 1 + 4 + <b>Name</b> + True + True + + + False + False + 0 + + + + + True + False + 1 + 0 + 1 + 1 + 4 + + + True + False + + + + + True + True + 1 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + False + False + True + True + 4 + True + + + False + True + 2 + + + + + False + False + 0 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 63 + False + + + False + True + 1 + + + + + 3 + 4 + 8 + + + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + 0 + 4 + <b>Name</b> + True + True + + + False + False + 0 + + + + + True + True + + False + False + False + True + True + + + True + True + 1 + + + + + False + False + 0 + + + + + 5 + 6 + 8 + + + + + + diff --git a/src/gui/meson.build b/src/gui/meson.build new file mode 100644 index 00000000..64192b28 --- /dev/null +++ b/src/gui/meson.build @@ -0,0 +1,163 @@ +# Copyright 2022 David Robillard +# SPDX-License-Identifier: CC0-1.0 OR GPL-3.0-or-later + +################ +# Dependencies # +################ + +gui_defines = platform_defines + +glibmm_dep = dependency('glibmm-2.4', + version: '>= 2.14.0', + include_type: 'system', + required: get_option('gui')) + +gthread_dep = dependency('gthread-2.0', + version: '>= 2.14.0', + include_type: 'system', + required: get_option('gui')) + +gtkmm_dep = dependency('gtkmm-2.4', + version: '>= 2.14.0', + include_type: 'system', + required: get_option('gui')) + +ganv_dep = dependency('ganv-1', + version: '>= 1.5.2', + fallback: ['ganv', 'ganv_dep'], + required: get_option('gui')) + +webkit_dep = dependency('webkit-1.0', + version: '>= 1.4.0', + include_type: 'system', + required: false) + +build_gui = (glibmm_dep.found() and + gthread_dep.found() and + gtkmm_dep.found() and + ganv_dep.found()) + +if webkit_dep.found() + gui_defines += ['-DHAVE_WEBKIT=1'] +else + gui_defines += ['-DHAVE_WEBKIT=0'] +endif + +########## +# Module # +########## + +if build_gui + gui_sources = files( + 'App.cpp', + 'Arc.cpp', + 'BreadCrumbs.cpp', + 'ConnectWindow.cpp', + 'GraphBox.cpp', + 'GraphCanvas.cpp', + 'GraphPortModule.cpp', + 'GraphTreeWindow.cpp', + 'GraphView.cpp', + 'GraphWindow.cpp', + 'LoadGraphWindow.cpp', + 'LoadPluginWindow.cpp', + 'MessagesWindow.cpp', + 'NewSubgraphWindow.cpp', + 'NodeMenu.cpp', + 'NodeModule.cpp', + 'ObjectMenu.cpp', + 'PluginMenu.cpp', + 'Port.cpp', + 'PortMenu.cpp', + 'PropertiesWindow.cpp', + 'RDFS.cpp', + 'RenameWindow.cpp', + 'Style.cpp', + 'SubgraphModule.cpp', + 'ThreadedLoader.cpp', + 'URIEntry.cpp', + 'WidgetFactory.cpp', + 'WindowFactory.cpp', + 'ingen_gui.cpp', + ) + + gui_dependencies = [ + boost_dep, + ganv_dep, + glibmm_dep, + gthread_dep, + gtkmm_dep, + ingen_client_dep, + ingen_dep, + lilv_dep, + raul_dep, + sigcpp_dep, + suil_dep, + thread_dep, + webkit_dep, + ] + + gui_suppressions = [] + if cpp.get_id() == 'clang' + gui_suppressions += [ + '-Wno-reserved-identifier', # Ganv + ] + endif + + gui_suppressions = cpp.get_supported_arguments(gui_suppressions) + gui_suppressions += cpp_suppressions + + gui_args = gui_suppressions + gui_defines + ['-DINGEN_GUI_INTERNAL'] + + libingen_gui = shared_library( + 'ingen_gui', + gui_sources, + cpp_args: gui_args, + dependencies: gui_dependencies, + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: ingen_include_dirs, + install: true, + install_dir: ingen_module_dir, + ) + + ingen_gui_dep = declare_dependency( + dependencies: gui_dependencies, + link_with: libingen_gui, + ) + + ########## + # LV2 UI # + ########## + + ingen_gui_lv2 = shared_library( + 'ingen_gui_lv2', + files('ingen_gui_lv2.cpp'), + cpp_args: gui_args, + dependencies: [ingen_gui_dep], + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: ingen_include_dirs, + install: true, + install_dir: lv2dir / 'ingen.lv2', + ) + + ############### + # Shared Data # + ############### + + config = configuration_data() + config.set('INGEN_VERSION', meson.project_version()) + + configure_file(configuration: config, + input: files('ingen_gui.ui.in'), + output: 'ingen_gui.ui', + install: true, + install_dir: ingen_data_dir) + + configure_file(copy: true, + input: files('ingen_style.rc'), + output: '@PLAINNAME@', + install: true, + install_dir: ingen_data_dir) +endif diff --git a/src/gui/wscript b/src/gui/wscript deleted file mode 100644 index f2471933..00000000 --- a/src/gui/wscript +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python - -import waflib.Utils as Utils -import waflib.Options as Options - - -def options(ctx): - opt = ctx.configuration_options() - opt.add_option('--light-theme', action='store_true', dest='light_theme', - help='use light coloured theme') - - -def configure(conf): - conf.check_pkg('glibmm-2.4 >= 2.14.0', - uselib_store='GLIBMM', - system=True, - mandatory=False) - conf.check_pkg('gthread-2.0 >= 2.14.0', - uselib_store='GTHREAD', - system=True, - mandatory=False) - conf.check_pkg('gtkmm-2.4 >= 2.14.0', - uselib_store='GTKMM', - system=True, - mandatory=False) - conf.check_pkg('ganv-1 >= 1.5.4', - uselib_store='GANV', - mandatory=False) - if not Options.options.no_webkit: - conf.check_pkg('webkit-1.0 >= 1.4.0', - uselib_store='WEBKIT', - system=True, - mandatory=False) - - if conf.env.HAVE_GANV and conf.env.HAVE_GTKMM: - conf.env.INGEN_BUILD_GUI = 1 - - if Options.options.light_theme: - conf.define('INGEN_USE_LIGHT_THEME', 1) - - -def build(bld): - obj = bld(features = 'cxx cxxshlib', - cflags = ['-fvisibility=hidden'], - export_includes = ['../../include'], - includes = ['../../', '../../include'], - name = 'libingen_gui', - target = 'ingen_gui', - install_path = '${LIBDIR}', - use = 'libingen libingen_client', - uselib = ''' - GANV - GLADEMM - GLIBMM - GNOMECANVAS - GTKMM - LILV - LV2 - RAUL - SIGCPP - SERD - SORD - SRATOM - SOUP - SUIL - WEBKIT - ''') - - obj.source = ''' - App.cpp - Arc.cpp - BreadCrumbs.cpp - ConnectWindow.cpp - GraphBox.cpp - GraphCanvas.cpp - GraphPortModule.cpp - GraphTreeWindow.cpp - GraphView.cpp - GraphWindow.cpp - LoadGraphWindow.cpp - LoadPluginWindow.cpp - MessagesWindow.cpp - NewSubgraphWindow.cpp - NodeMenu.cpp - NodeModule.cpp - ObjectMenu.cpp - PluginMenu.cpp - Port.cpp - PortMenu.cpp - PropertiesWindow.cpp - RDFS.cpp - RenameWindow.cpp - Style.cpp - SubgraphModule.cpp - ThreadedLoader.cpp - URIEntry.cpp - WidgetFactory.cpp - WindowFactory.cpp - ingen_gui.cpp - ''' - - # XML UI definition - bld(features = 'subst', - source = 'ingen_gui.ui', - target = '../../ingen_gui.ui', - install_path = '${DATADIR}/ingen', - chmod = Utils.O755, - INGEN_VERSION = bld.env.INGEN_VERSION) - - # Gtk style - bld(features = 'subst', - is_copy = True, - source = 'ingen_style.rc', - target = '../../ingen_style.rc', - install_path = '${DATADIR}/ingen', - chmod = Utils.O755) - - # LV2 UI - obj = bld(features = 'cxx cxxshlib', - cflags = ['-fvisibility=hidden'], - source = 'ingen_gui_lv2.cpp', - includes = ['.', '../../', '../../include'], - name = 'ingen_gui_lv2', - target = 'ingen_gui_lv2', - install_path = '${LV2DIR}/ingen.lv2/', - use = 'libingen libingen_gui', - uselib = 'LV2 SERD SORD SRATOM LILV RAUL GLIBMM GTKMM') diff --git a/src/include/ingen_config.h b/src/include/ingen_config.h new file mode 100644 index 00000000..6d5f36e0 --- /dev/null +++ b/src/include/ingen_config.h @@ -0,0 +1,216 @@ +// Copyright 2021-2022 David Robillard +// SPDX-License-Identifier: ISC + +/* + Configuration header that defines reasonable defaults at compile time. + + This allows compile-time configuration from the command line, while still + allowing the source to be built "as-is" without any configuration. The idea + is to support an advanced build system with configuration checks, while still + allowing the code to be simply "thrown at a compiler" with features + determined from the compiler or system headers. Everything can be + overridden, so it should never be necessary to edit this file to build + successfully. + + To ensure that all configure checks are performed, the build system can + define INGEN_NO_DEFAULT_CONFIG to disable defaults. In this case, it must + define all HAVE_FEATURE symbols below to 1 or 0 to enable or disable + features. Any missing definitions will generate a compiler warning. + + To ensure that this header is always included properly, all code that uses + configuration variables includes this header and checks their value with #if + (not #ifdef). Variables like USE_FEATURE are internal and should never be + defined on the command line. +*/ + +#ifndef INGEN_CONFIG_H +#define INGEN_CONFIG_H + +// Define version unconditionally so a warning will catch a mismatch +#define INGEN_VERSION "0.5.1" + +#if !defined(INGEN_NO_DEFAULT_CONFIG) + +// We need unistd.h to check _POSIX_VERSION +# ifndef INGEN_NO_POSIX +# ifdef __has_include +# if __has_include() +# include +# endif +# elif defined(__unix__) +# include +# endif +# endif + +// POSIX.1-2001: fileno() +# ifndef HAVE_FILENO +# if defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L +# define HAVE_FILENO 1 +# else +# define HAVE_FILENO 0 +# endif +# endif + +// POSIX.1-2001: isatty() +# ifndef HAVE_ISATTY +# if defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L +# define HAVE_ISATTY 1 +# else +# define HAVE_ISATTY 0 +# endif +# endif + +// POSIX.1-2001: posix_memalign() +# ifndef HAVE_POSIX_MEMALIGN +# if defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L +# define HAVE_POSIX_MEMALIGN 1 +# else +# define HAVE_POSIX_MEMALIGN 0 +# endif +# endif + +// BSD and GNU: vasprintf() +# ifndef HAVE_VASPRINTF +# if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) +# define HAVE_VASPRINTF 1 +# else +# define HAVE_VASPRINTF 0 +# endif +# endif + +// JACK +# ifndef HAVE_JACK +# ifdef __has_include +# if __has_include("jack/jack.h") +# define HAVE_JACK 1 +# else +# define HAVE_JACK 0 +# endif +# else +# define HAVE_JACK 0 +# endif +# endif + +// JACK metadata API +# ifndef HAVE_JACK_METADATA +# ifdef __has_include +# if __has_include("jack/metadata.h") +# define HAVE_JACK_METADATA 1 +# else +# define HAVE_JACK_METADATA 0 +# endif +# else +# define HAVE_JACK_METADATA 0 +# endif +# endif + +// JACK jack_port_rename() function +# ifndef HAVE_JACK_PORT_RENAME +# define HAVE_JACK_PORT_RENAME HAVE_JACK +# endif + +// BSD sockets +# ifndef HAVE_SOCKET +# ifdef __has_include +# if __has_include("sys/socket.h") +# define HAVE_SOCKET 1 +# else +# define HAVE_SOCKET 0 +# endif +# else +# define HAVE_SOCKET 0 +# endif +# endif + +// Webkit +# ifndef HAVE_WEBKIT +# ifdef __has_include +# if __has_include() +# define HAVE_WEBKIT 1 +# else +# define HAVE_WEBKIT 0 +# endif +# else +# define HAVE_WEBKIT 0 +# endif +# endif + +// Installation directories +# ifndef INGEN_DATA_DIR +# define INGEN_DATA_DIR "/usr/local/share/ingen" +# endif +# ifndef INGEN_MODULE_DIR +# define INGEN_MODULE_DIR "/usr/local/lib/ingen" +# endif +# ifndef INGEN_BUNDLE_DIR +# define INGEN_BUNDLE_DIR "/usr/local/lib/lv2/ingen.lv2" +# endif + +#endif // !defined(INGEN_NO_DEFAULT_CONFIG) + +/* + Make corresponding USE_FEATURE defines based on the HAVE_FEATURE defines from + above or the command line. The code checks for these using #if (not #ifdef), + so there will be an undefined warning if it checks for an unknown feature, + and this header is always required by any code that checks for features, even + if the build system defines them all. +*/ + +#if defined(HAVE_FILENO) +# define USE_FILENO HAVE_FILENO +#else +# define USE_FILENO 0 +#endif + +#if defined(HAVE_ISATTY) +# define USE_ISATTY HAVE_ISATTY +#else +# define USE_ISATTY 0 +#endif + +#if defined(HAVE_POSIX_MEMALIGN) +# define USE_POSIX_MEMALIGN HAVE_POSIX_MEMALIGN +#else +# define USE_POSIX_MEMALIGN 0 +#endif + +#if defined(HAVE_SOCKET) +# define USE_SOCKET HAVE_SOCKET +#else +# define USE_SOCKET 0 +#endif + +#if defined(HAVE_VASPRINTF) +# define USE_VASPRINTF HAVE_VASPRINTF +#else +# define USE_VASPRINTF 0 +#endif + +#if defined(HAVE_WEBKIT) +# define USE_WEBKIT HAVE_WEBKIT +#else +# define USE_WEBKIT 0 +#endif + +#if defined(HAVE_JACK_METADATA) +# define USE_JACK_METADATA HAVE_JACK_METADATA +#else +# define USE_JACK_METADATA 0 +#endif + +#if defined(HAVE_JACK_PORT_TYPE_GET_BUFFER_SIZE) +# define USE_JACK_PORT_TYPE_GET_BUFFER_SIZE \ + HAVE_JACK_PORT_TYPE_GET_BUFFER_SIZE +#else +# define USE_JACK_PORT_TYPE_GET_BUFFER_SIZE 0 +#endif + +#if defined(HAVE_JACK_PORT_RENAME) +# define USE_JACK_PORT_RENAME HAVE_JACK_PORT_RENAME +#else +# define USE_JACK_PORT_RENAME 0 +#endif + +#define INGEN_BUNDLED 0 + +#endif // INGEN_CONFIG_H diff --git a/src/ingen/ingen.cpp b/src/ingen/ingen.cpp index c7c3ef74..68ac2d7b 100644 --- a/src/ingen/ingen.cpp +++ b/src/ingen/ingen.cpp @@ -31,7 +31,7 @@ #include "raul/Symbol.hpp" #include "serd/serd.h" -#ifdef HAVE_SOCKET +#if USE_SOCKET #include "ingen/client/SocketClient.hpp" #endif @@ -134,7 +134,7 @@ run(int argc, char** argv) world->engine()->listen(); } -#ifdef HAVE_SOCKET +#if USE_SOCKET client::SocketClient::register_factories(*world); #endif diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 00000000..25dc2fae --- /dev/null +++ b/src/meson.build @@ -0,0 +1,65 @@ +# Copyright 2022 David Robillard +# SPDX-License-Identifier: CC0-1.0 OR GPL-3.0-or-later + +sources = files( + 'AtomReader.cpp', + 'AtomWriter.cpp', + 'ClashAvoider.cpp', + 'ColorContext.cpp', + 'Configuration.cpp', + 'FilePath.cpp', + 'Forge.cpp', + 'LV2Features.cpp', + 'Library.cpp', + 'Log.cpp', + 'Parser.cpp', + 'Resource.cpp', + 'Serialiser.cpp', + 'Store.cpp', + 'StreamWriter.cpp', + 'TurtleWriter.cpp', + 'URI.cpp', + 'URIMap.cpp', + 'URIs.cpp', + 'World.cpp', + 'runtime_paths.cpp' +) + +if have_socket + sources += files('SocketReader.cpp', 'SocketWriter.cpp') +endif + +ingen_deps = [ + boost_dep, + lilv_dep, + lv2_dep, + raul_dep, + serd_dep, + sord_dep, + sratom_dep, + thread_dep, +] + +ingen_include_dirs = include_directories('../include', 'include') + +libingen = shared_library( + 'ingen' + library_suffix, + sources, + cpp_args: cpp_suppressions + platform_defines, + dependencies: ingen_deps, + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: ingen_include_dirs, + install: true, + version: meson.project_version(), +) + +ingen_dep = declare_dependency( + dependencies: ingen_deps, + include_directories: include_directories('../include'), + link_with: libingen, +) + +subdir('server') +subdir('client') +subdir('gui') diff --git a/src/runtime_paths.cpp b/src/runtime_paths.cpp index 38eb681f..b5723e94 100644 --- a/src/runtime_paths.cpp +++ b/src/runtime_paths.cpp @@ -70,7 +70,7 @@ set_bundle_path_from_code(void (*function)()) Dl_info dli; dladdr(reinterpret_cast(function), &dli); -#ifdef BUNDLE +#if INGEN_BUNDLED char bin_loc[PATH_MAX]; realpath(dli.dli_fname, bin_loc); #else @@ -117,7 +117,7 @@ data_file_path(const std::string& name) std::vector ingen_module_dirs() { -#ifdef BUNDLE +#if INGEN_BUNDLED const FilePath default_dir = FilePath(bundle_path) / INGEN_MODULE_DIR; #else const FilePath default_dir = INGEN_MODULE_DIR; @@ -186,7 +186,7 @@ data_dirs() std::vector paths = system_data_dirs(); const FilePath user_dir = user_data_dir(); -#ifdef BUNDLE +#if INGEN_BUNDLED paths.insert(paths.begin(), bundle_path / INGEN_DATA_DIR); #endif diff --git a/src/server/Buffer.cpp b/src/server/Buffer.cpp index deb167d9..7e14c354 100644 --- a/src/server/Buffer.cpp +++ b/src/server/Buffer.cpp @@ -19,6 +19,7 @@ #include "BufferFactory.hpp" #include "Engine.hpp" #include "RunContext.hpp" +#include "ingen_config.h" #include "ingen/Atom.hpp" #include "ingen/Log.hpp" @@ -432,7 +433,7 @@ Buffer::update_value_buffer(SampleCount offset) void* Buffer::aligned_alloc(size_t size) { -#ifdef HAVE_POSIX_MEMALIGN +#if USE_POSIX_MEMALIGN void* buf = nullptr; if (!posix_memalign(static_cast(&buf), 16, size)) { memset(buf, 0, size); diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp index b48b291f..5817bf6b 100644 --- a/src/server/Engine.cpp +++ b/src/server/Engine.cpp @@ -39,7 +39,7 @@ #include "events/CreateGraph.hpp" #include "ingen_config.h" -#ifdef HAVE_SOCKET +#if USE_SOCKET #include "SocketListener.hpp" #endif @@ -187,7 +187,7 @@ Engine::~Engine() void Engine::listen() { -#ifdef HAVE_SOCKET +#if USE_SOCKET _listener = std::make_unique(*this); #endif } diff --git a/src/server/JackDriver.cpp b/src/server/JackDriver.cpp index f03689cb..69b84fb3 100644 --- a/src/server/JackDriver.cpp +++ b/src/server/JackDriver.cpp @@ -44,7 +44,7 @@ #include #include -#ifdef HAVE_JACK_METADATA +#if USE_JACK_METADATA #include "jackey.h" #include #endif @@ -271,7 +271,7 @@ JackDriver::rename_port(const raul::Path& old_path, { EnginePort* eport = get_port(old_path); if (eport) { -#ifdef HAVE_JACK_PORT_RENAME +#if USE_JACK_PORT_RENAME jack_port_rename(_client, static_cast(eport->handle()), new_path.substr(1).c_str()); @@ -287,7 +287,7 @@ JackDriver::port_property(const raul::Path& path, const URI& uri, const Atom& value) { -#ifdef HAVE_JACK_METADATA +#if USE_JACK_METADATA EnginePort* eport = get_port(path); if (eport) { const auto* const jport = @@ -303,7 +303,7 @@ JackDriver::port_property_internal(const jack_port_t* jport, const URI& uri, const Atom& value) { -#ifdef HAVE_JACK_METADATA +#if USE_JACK_METADATA if (uri == _engine.world().uris().lv2_name) { jack_set_property(_client, jack_port_uuid(jport), JACK_METADATA_PRETTY_NAME, value.ptr(), "text/plain"); diff --git a/src/server/meson.build b/src/server/meson.build new file mode 100644 index 00000000..b25bc084 --- /dev/null +++ b/src/server/meson.build @@ -0,0 +1,135 @@ +# Copyright 2022 David Robillard +# SPDX-License-Identifier: CC0-1.0 OR GPL-3.0-or-later + +########## +# Module # +########## + +server_sources = files( + 'ArcImpl.cpp', + 'BlockFactory.cpp', + 'BlockImpl.cpp', + 'Broadcaster.cpp', + 'Buffer.cpp', + 'BufferFactory.cpp', + 'ClientUpdate.cpp', + 'CompiledGraph.cpp', + 'ControlBindings.cpp', + 'DuplexPort.cpp', + 'Engine.cpp', + 'EventWriter.cpp', + 'GraphImpl.cpp', + 'InputPort.cpp', + 'InternalBlock.cpp', + 'InternalPlugin.cpp', + 'LV2Block.cpp', + 'LV2Plugin.cpp', + 'NodeImpl.cpp', + 'PortImpl.cpp', + 'PostProcessor.cpp', + 'PreProcessor.cpp', + 'RunContext.cpp', + 'SocketListener.cpp', + 'Task.cpp', + 'UndoStack.cpp', + 'Worker.cpp', + 'events/Connect.cpp', + 'events/Copy.cpp', + 'events/CreateBlock.cpp', + 'events/CreateGraph.cpp', + 'events/CreatePort.cpp', + 'events/Delete.cpp', + 'events/Delta.cpp', + 'events/Disconnect.cpp', + 'events/DisconnectAll.cpp', + 'events/Get.cpp', + 'events/Mark.cpp', + 'events/Move.cpp', + 'events/SetPortValue.cpp', + 'events/Undo.cpp', + 'ingen_engine.cpp', + 'internals/BlockDelay.cpp', + 'internals/Controller.cpp', + 'internals/Note.cpp', + 'internals/Time.cpp', + 'internals/Trigger.cpp', + 'mix.cpp', +) + +server_dependencies = [ + boost_dep, + ingen_dep, + lilv_dep, + raul_dep, + serd_dep, + sord_dep, + sratom_dep, + thread_dep, +] + +server_include_dirs = include_directories( + '.', + '../../include', + '../include', +) + +libingen_server = shared_library( + 'ingen_server', + server_sources, + cpp_args: cpp_suppressions + platform_defines + ['-DINGEN_SERVER_INTERNAL'], + dependencies: server_dependencies, + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: server_include_dirs, + install: true, + install_dir: ingen_module_dir, +) + +ingen_server_dep = declare_dependency( + dependencies: server_dependencies, + link_with: libingen_server, +) + +########### +# Drivers # +########### + +if jack_dep.found() + shared_module( + 'ingen_jack', + files('JackDriver.cpp', 'ingen_jack.cpp'), + cpp_args: cpp_suppressions + platform_defines, + dependencies: [ingen_server_dep, jack_dep], + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: ingen_include_dirs, + install: true, + install_dir: ingen_module_dir, + ) +endif + +if portaudio_dep.found() + shared_module( + 'ingen_portaudio', + files('PortAudioDriver.cpp', 'ingen_portaudio.cpp'), + cpp_args: cpp_suppressions + platform_defines, + dependencies: [ingen_server_dep, portaudio_dep], + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: ingen_include_dirs, + install: true, + install_dir: ingen_module_dir, + ) +endif + +shared_module( + 'ingen_lv2', + files('ingen_lv2.cpp'), + cpp_args: cpp_suppressions + platform_defines, + dependencies: [ingen_server_dep, lv2_dep], + gnu_symbol_visibility: 'hidden', + implicit_include_directories: false, + include_directories: ingen_include_dirs, + install: true, + install_dir: lv2dir / 'ingen.lv2', +) diff --git a/src/server/wscript b/src/server/wscript deleted file mode 100644 index 5fdf4583..00000000 --- a/src/server/wscript +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python - - -def build(bld): - core_source = ''' - ArcImpl.cpp - BlockFactory.cpp - BlockImpl.cpp - Broadcaster.cpp - Buffer.cpp - BufferFactory.cpp - CompiledGraph.cpp - ClientUpdate.cpp - ControlBindings.cpp - DuplexPort.cpp - Engine.cpp - EventWriter.cpp - GraphImpl.cpp - InputPort.cpp - InternalBlock.cpp - InternalPlugin.cpp - LV2Block.cpp - LV2Plugin.cpp - NodeImpl.cpp - PortImpl.cpp - PostProcessor.cpp - PreProcessor.cpp - RunContext.cpp - SocketListener.cpp - Task.cpp - UndoStack.cpp - Worker.cpp - events/Connect.cpp - events/Copy.cpp - events/CreateBlock.cpp - events/CreateGraph.cpp - events/CreatePort.cpp - events/Delete.cpp - events/Delta.cpp - events/Disconnect.cpp - events/DisconnectAll.cpp - events/Get.cpp - events/Mark.cpp - events/Move.cpp - events/SetPortValue.cpp - events/Undo.cpp - ingen_engine.cpp - internals/BlockDelay.cpp - internals/Controller.cpp - internals/Note.cpp - internals/Time.cpp - internals/Trigger.cpp - mix.cpp - ''' - - core_libs = 'LV2 LILV RAUL SERD SORD SRATOM' - - bld(features = 'cxx cxxshlib', - source = core_source, - export_includes = ['../../include'], - includes = ['.', '../..', '../../include'], - name = 'libingen_server', - target = 'ingen_server', - install_path = '${LIBDIR}', - use = 'libingen libingen_socket', - uselib = core_libs, - cxxflags = bld.env.PTHREAD_CFLAGS + bld.env.INGEN_TEST_CXXFLAGS, - linkflags = bld.env.PTHREAD_LINKFLAGS + bld.env.INGEN_TEST_LINKFLAGS) - - if bld.env.HAVE_JACK: - bld(features = 'cxx cxxshlib', - source = 'JackDriver.cpp ingen_jack.cpp', - includes = ['.', '../../', '../../include'], - name = 'libingen_jack', - target = 'ingen_jack', - install_path = '${LIBDIR}', - use = 'libingen_server', - uselib = core_libs + ' JACK', - cxxflags = ['-fvisibility=hidden'] + bld.env.PTHREAD_CFLAGS, - linkflags = bld.env.PTHREAD_LINKFLAGS) - - if bld.env.HAVE_PORTAUDIO: - bld(features = 'cxx cxxshlib', - source = 'PortAudioDriver.cpp ingen_portaudio.cpp', - includes = ['.', '../../', '../../include'], - name = 'libingen_portaudio', - target = 'ingen_portaudio', - install_path = '${LIBDIR}', - use = 'libingen_server', - uselib = core_libs + ' PORTAUDIO', - cxxflags = ['-fvisibility=hidden'] + bld.env.PTHREAD_CFLAGS, - linkflags = bld.env.PTHREAD_LINKFLAGS) - - # Ingen LV2 wrapper - if bld.env.INGEN_BUILD_LV2: - bld(features = 'cxx cxxshlib', - source = ' ingen_lv2.cpp ', - cflags = ['-fvisibility=hidden'], - includes = ['../../', '../../include'], - name = 'libingen_lv2', - target = 'ingen_lv2', - install_path = '${LV2DIR}/ingen.lv2/', - use = 'libingen libingen_server', - uselib = core_libs, - cxxflags = ['-fvisibility=hidden'] + bld.env.PTHREAD_CFLAGS, - linkflags = bld.env.PTHREAD_LINKFLAGS) diff --git a/src/wscript b/src/wscript deleted file mode 100644 index a2f576da..00000000 --- a/src/wscript +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python - - -def build(bld): - sources = [ - 'AtomReader.cpp', - 'AtomWriter.cpp', - 'ClashAvoider.cpp', - 'ColorContext.cpp', - 'Configuration.cpp', - 'FilePath.cpp', - 'Forge.cpp', - 'LV2Features.cpp', - 'Library.cpp', - 'Log.cpp', - 'Parser.cpp', - 'Resource.cpp', - 'Serialiser.cpp', - 'Store.cpp', - 'StreamWriter.cpp', - 'TurtleWriter.cpp', - 'URI.cpp', - 'URIMap.cpp', - 'URIs.cpp', - 'World.cpp', - 'runtime_paths.cpp' - ] - if bld.is_defined('HAVE_SOCKET'): - sources += ['SocketReader.cpp', 'SocketWriter.cpp'] - - lib = [] - if bld.is_defined('HAVE_LIBDL'): - lib += ['dl'] - - bld(features = 'cxx cxxshlib', - source = sources, - export_includes = ['../include'], - includes = ['.', '..', '../include'], - name = 'libingen', - target = 'ingen-%s' % bld.env.INGEN_MAJOR_VERSION, - vnum = bld.env.INGEN_VERSION, - install_path = '${LIBDIR}', - lib = lib, - uselib = 'LV2 LILV RAUL SERD SORD SRATOM', - cxxflags = (['-fvisibility=hidden'] + - bld.env.PTHREAD_CFLAGS + bld.env.INGEN_TEST_CXXFLAGS), - linkflags = bld.env.PTHREAD_LINKFLAGS + bld.env.INGEN_TEST_LINKFLAGS) -- cgit v1.2.1