summaryrefslogtreecommitdiffstats
path: root/src/progs/patch_loader
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-05-04 03:59:38 +0000
committerDavid Robillard <d@drobilla.net>2007-05-04 03:59:38 +0000
commita96166710faf2447ed10194d1829db5564b0dff9 (patch)
tree4eb792fcceee17f188566fc6e6bee11e5a8c4336 /src/progs/patch_loader
parentcf14d321e8f084f742b03e09c086d5ef30297492 (diff)
downloadingen-a96166710faf2447ed10194d1829db5564b0dff9.tar.gz
ingen-a96166710faf2447ed10194d1829db5564b0dff9.tar.bz2
ingen-a96166710faf2447ed10194d1829db5564b0dff9.zip
Made engine, serialisation, client library, and GUI all dynamically loaded modules.
Combined all executables into a single "ingen" program which can do everything. git-svn-id: http://svn.drobilla.net/lad/ingen@493 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/progs/patch_loader')
-rw-r--r--src/progs/patch_loader/Makefile.am13
-rw-r--r--src/progs/patch_loader/README5
-rw-r--r--src/progs/patch_loader/cmdline.c163
-rw-r--r--src/progs/patch_loader/cmdline.ggo7
-rw-r--r--src/progs/patch_loader/cmdline.h47
-rw-r--r--src/progs/patch_loader/new_patch_loader.cpp76
-rw-r--r--src/progs/patch_loader/patch_loader.cpp110
7 files changed, 0 insertions, 421 deletions
diff --git a/src/progs/patch_loader/Makefile.am b/src/progs/patch_loader/Makefile.am
deleted file mode 100644
index f16cc495..00000000
--- a/src/progs/patch_loader/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-EXTRA_DIST = README
-
-ingen_load_CXXFLAGS = -I$(top_srcdir)/src/libs -I$(top_srcdir)/src/common @LSIGCPP_CFLAGS@ @RAUL_CFLAGS@ @GLIBMM_CFLAGS@ @RASQAL_CFLAGS@ -DINGEN_MODULE_DIR=\"$(libdir)/ingen\"
-ingen_load_LDADD = ../../libs/client/libingen_client.la ../../libs/module/libingen_module.la @RAUL_LIBS@ @LSIGCPP_LIBS@ @GLIBMM_LIBS@ @RASQAL_LIBS@
-
-bin_PROGRAMS = ingen_load
-
-#ingen_load_DEPENDENCIES = ../../libs/client/libingen_client.la
-
-ingen_load_SOURCES = \
- patch_loader.cpp \
- cmdline.h \
- cmdline.c
diff --git a/src/progs/patch_loader/README b/src/progs/patch_loader/README
deleted file mode 100644
index 9f3b6f4b..00000000
--- a/src/progs/patch_loader/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a stand-alone patch loader for Om. It has no user interface, it
-just launches, loads the patch(es) passed as a parameter, and exits.
-
-Useful for loading patches from scripts, other apps, etc. or just using
-Om patches without loading the GUI.
diff --git a/src/progs/patch_loader/cmdline.c b/src/progs/patch_loader/cmdline.c
deleted file mode 100644
index 0606cb7b..00000000
--- a/src/progs/patch_loader/cmdline.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- File autogenerated by gengetopt version 2.10
- generated with the following command:
- gengetopt -u
-
- The developers of gengetopt consider the fixed text that goes in all
- gengetopt output files to be in the public domain:
- we make no copyright claims on it.
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* If we use autoconf. */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "getopt.h"
-
-#include "cmdline.h"
-
-void
-cmdline_parser_print_version (void)
-{
- printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n"
- "Usage: %s [OPTIONS]... [FILES]...\n", CMDLINE_PARSER_PACKAGE);
- printf(" -h --help Print help and exit\n");
- printf(" -V --version Print version and exit\n");
- printf(" -uSTRING --engine-url=STRING Om engine URL to connect to\n");
- printf(" -pINT --client-port=INT Client port to listen on\n");
-}
-
-
-static char *gengetopt_strdup (const char *s);
-
-/* gengetopt_strdup() */
-/* strdup.c replacement of strdup, which is not standard */
-char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0 ;
- args_info->version_given = 0 ;
- args_info->engine_url_given = 0 ;
- args_info->client_port_given = 0 ;
-#define clear_args() { \
- args_info->engine_url_arg = NULL; \
-}
-
- clear_args();
-
- args_info->inputs = NULL;
- args_info->inputs_num = 0;
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- char *stop_char;
-
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "engine-url", 1, NULL, 'u' },
- { "client-port", 1, NULL, 'p' },
- { NULL, 0, NULL, 0 }
- };
-
- stop_char = 0;
- c = getopt_long (argc, argv, "hVu:p:", long_options, &option_index);
-
- if (c == -1) break; /* Exit from `while (1)' loop. */
-
- switch (c)
- {
- case 'h': /* Print help and exit. */
- clear_args ();
- cmdline_parser_print_help ();
- exit (EXIT_SUCCESS);
-
- case 'V': /* Print version and exit. */
- clear_args ();
- cmdline_parser_print_version ();
- exit (EXIT_SUCCESS);
-
- case 'u': /* Om engine URL to connect to. */
- if (args_info->engine_url_given)
- {
- fprintf (stderr, "%s: `--engine-url' (`-u') option given more than once\n", CMDLINE_PARSER_PACKAGE);
- clear_args ();
- exit (EXIT_FAILURE);
- }
- args_info->engine_url_given = 1;
- args_info->engine_url_arg = gengetopt_strdup (optarg);
- break;
-
- case 'p': /* Client port to listen on. */
- if (args_info->client_port_given)
- {
- fprintf (stderr, "%s: `--client-port' (`-p') option given more than once\n", CMDLINE_PARSER_PACKAGE);
- clear_args ();
- exit (EXIT_FAILURE);
- }
- args_info->client_port_given = 1;
- args_info->client_port_arg = strtol (optarg,&stop_char,0);
- break;
-
-
- case 0: /* Long option with no short option */
-
- case '?': /* Invalid option. */
- /* `getopt_long' already printed an error message. */
- exit (EXIT_FAILURE);
-
- default: /* bug: option not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", CMDLINE_PARSER_PACKAGE, c);
- abort ();
- } /* switch */
- } /* while */
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
- if (optind < argc)
- {
- int i = 0 ;
-
- args_info->inputs_num = argc - optind ;
- args_info->inputs =
- (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind++]) ;
- }
-
- return 0;
-}
diff --git a/src/progs/patch_loader/cmdline.ggo b/src/progs/patch_loader/cmdline.ggo
deleted file mode 100644
index 5acd6737..00000000
--- a/src/progs/patch_loader/cmdline.ggo
+++ /dev/null
@@ -1,7 +0,0 @@
-# Process this file with gengetopt -u to generate the necessary code (in cmdline.h, cmdline.c)
-
-package "om_patch_loader - A command line patch loading client for Om"
-
-option "engine-url" u "Om engine URL to connect to" string no
-option "client-port" p "Client port to listen on" int no
-
diff --git a/src/progs/patch_loader/cmdline.h b/src/progs/patch_loader/cmdline.h
deleted file mode 100644
index b417c664..00000000
--- a/src/progs/patch_loader/cmdline.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* cmdline.h */
-
-/* File autogenerated by gengetopt version 2.10 */
-
-#ifndef CMDLINE_H
-#define CMDLINE_H
-
-/* If we use autoconf. */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#ifndef CMDLINE_PARSER_PACKAGE
-#define CMDLINE_PARSER_PACKAGE "om_patch_loader - A command line patch loading client for the Om realtime modular synthesizer"
-#endif
-
-#ifndef CMDLINE_PARSER_VERSION
-#define CMDLINE_PARSER_VERSION VERSION
-#endif
-
-struct gengetopt_args_info
-{
- char * engine_url_arg; /* Om engine URL to connect to. */
- int client_port_arg; /* Client port to listen on. */
-
- int help_given ; /* Whether help was given. */
- int version_given ; /* Whether version was given. */
- int engine_url_given ; /* Whether engine-url was given. */
- int client_port_given ; /* Whether client-port was given. */
-
- char **inputs ; /* unamed options */
- unsigned inputs_num ; /* unamed options number */
-} ;
-
-int cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info);
-
-void cmdline_parser_print_help(void);
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* CMDLINE_H */
diff --git a/src/progs/patch_loader/new_patch_loader.cpp b/src/progs/patch_loader/new_patch_loader.cpp
deleted file mode 100644
index cee48827..00000000
--- a/src/progs/patch_loader/new_patch_loader.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 Dave Robillard <http://drobilla.net>
- *
- * Ingen is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option) any later
- * version.
- *
- * Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <iostream>
-#include <unistd.h>
-#include <raul/Path.h>
-#include "cmdline.h" // generated by gengetopt
-#include "OSCEngineInterface.h"
-#include "PatchLibrarian.h"
-
-using std::cout; using std::cerr; using std::endl;
-
-using namespace Ingen::Client;
-
-
-int
-main(int argc, char** argv)
-{
- const char* engine_url = NULL;
- int client_port = 0;
-
- /* Parse command line options */
- gengetopt_args_info args_info;
- if (cmdline_parser (argc, argv, &args_info) != 0)
- return 1;
-
- if (args_info.engine_url_given) {
- engine_url = args_info.engine_url_arg;
- } else {
- cout << "[Main] No engine URL specified. Attempting to use osc.udp://localhost:16180" << endl;
- engine_url = "osc.udp://localhost:16180";
- }
-
- if (args_info.client_port_given)
- client_port = args_info.client_port_arg;
- else
- client_port = 0; // will choose a free port automatically
-
- OSCEngineInterface engine(engine_url);
-
- /* Connect to engine */
- if (!engine.attach()) {
- cerr << "Unable to connect to engine" << endl;
- return 1;
- }
-
- engine.activate();
- engine.register_client();
-
- /*int id = engine.get_next_request_id();
- engine.set_wait_response_id(id);
- engine.load_plugins(id);
- engine.wait_for_response();
- */
- engine.load_plugins();
-
- // Load patches
- for (uint i=0; i < args_info.inputs_num; ++i)
- PatchLibrarian::load_patch(&engine, args_info.inputs[i]);
-
- return 0;
-}
diff --git a/src/progs/patch_loader/patch_loader.cpp b/src/progs/patch_loader/patch_loader.cpp
deleted file mode 100644
index 57bba0e0..00000000
--- a/src/progs/patch_loader/patch_loader.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 Dave Robillard <http://drobilla.net>
- *
- * Ingen is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option) any later
- * version.
- *
- * Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <iostream>
-#include <unistd.h>
-#include <glibmm/module.h>
-#include <raul/Path.h>
-#include <raul/RDFWorld.h>
-#include "client/OSCEngineSender.h"
-#include "client/PatchModel.h"
-#include "module/Module.h"
-#include "serialisation/serialisation.h"
-#include "serialisation/Loader.h"
-#include "cmdline.h" // generated by gengetopt
-
-using namespace std;
-using namespace Ingen::Client;
-using namespace Ingen::Serialisation;
-
-
-int main(int argc, char** argv)
-{
- const char* engine_url = NULL;
- int client_port = 0;
-
- /* **** Parse command line options **** */
-
- gengetopt_args_info args_info;
- if (cmdline_parser (argc, argv, &args_info) != 0)
- return 1;
-
- if (args_info.engine_url_given) {
- engine_url = args_info.engine_url_arg;
- } else {
- cout << "[Main] No engine URL specified. Attempting to use osc.udp://localhost:16180" << endl;
- engine_url = "osc.udp://localhost:16180";
- }
-
- if (args_info.client_port_given)
- client_port = args_info.client_port_arg;
-
-
- /* **** Mr. Spock.. Engage **** */
-
- Raul::RDF::World rdf_world;
- rdf_world.add_prefix("xsd", "http://www.w3.org/2001/XMLSchema#");
- rdf_world.add_prefix("ingen", "http://drobilla.net/ns/ingen#");
- rdf_world.add_prefix("ingenuity", "http://drobilla.net/ns/ingenuity#");
- rdf_world.add_prefix("lv2", "http://lv2plug.in/ontology#");
- rdf_world.add_prefix("rdfs", "http://www.w3.org/2000/01/rdf-schema#");
- rdf_world.add_prefix("doap", "http://usefulinc.com/ns/doap#");
-
- SharedPtr<OSCEngineSender> engine(new OSCEngineSender(engine_url));
-
- /* Connect to engine */
- engine->attach(-1, client_port);
- engine->activate();
- //engine->register_client(NULL); // FIXME
-
- //int id = engine->get_next_request_id();
- //engine->set_wait_response_id(id);
- //engine->load_plugins(id);
- //engine->wait_for_response();
- /* FIXME: Make this work like this:
- * engine->load_plugins();
- * engine->wait_for_response();
- */
-
- SharedPtr<Glib::Module> module = Ingen::Shared::load_module("ingen_serialisation");
-
- if (!module) {
- cerr << "Unable to load ingen_serialisation module, exiting." << endl;
- return -1;
- }
-
- Loader* (*new_loader)() = NULL;
-
- bool found = module->get_symbol("new_loader", (void*&)new_loader);
-
- if (!found) {
- cerr << "Unable to find module entry point, exiting." << endl;
- return -1;
- }
-
- SharedPtr<Loader> loader(new_loader());
-
- // Load patches
- for (uint i=0; i < args_info.inputs_num; ++i) {
- cerr << "FIXME: load patch under root" << endl;
- cerr << "Load " << args_info.inputs[i] << endl;
- loader->load(engine, &rdf_world,
- string("file:") + args_info.inputs[i], Path("/"), "");
- }
-
- return 0;
-}