summaryrefslogtreecommitdiffstats
path: root/src/progs/server
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/server
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/server')
-rw-r--r--src/progs/server/Makefile.am44
-rw-r--r--src/progs/server/cmdline.c355
-rw-r--r--src/progs/server/cmdline.ggo7
-rw-r--r--src/progs/server/cmdline.h69
-rwxr-xr-xsrc/progs/server/ingen_dev3
-rw-r--r--src/progs/server/main.cpp180
6 files changed, 0 insertions, 658 deletions
diff --git a/src/progs/server/Makefile.am b/src/progs/server/Makefile.am
deleted file mode 100644
index ab384494..00000000
--- a/src/progs/server/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-AM_CXXFLAGS = @RAUL_CFLAGS@ @JACK_CFLAGS@ @LOSC_CFLAGS@ @ALSA_CFLAGS@ @LASH_CFLAGS@ @SLV2_CFLAGS@ -I$(top_srcdir)/src/common -I$(top_srcdir)/src/libs -DINGEN_MODULE_DIR=\"$(libdir)/ingen\"
-
-MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = ingen_dev
-
-#
-# Stand-alone engine
-#
-if BUILD_SERVER
-
-bin_PROGRAMS = ingen
-ingen_LDADD = @RAUL_LIBS@ @JACK_LIBS@ @LOSC_LIBS@ @ALSA_LIBS@ @LASH_LIBS@ @SLV2_LIBS@ -lrt ../../libs/module/libingen_module.la
-ingen_DEPENDENCIES = ../../libs/module/libingen_module.la
-
-ingen_SOURCES = \
- main.cpp \
- cmdline.h \
- cmdline.c
-
-endif # BUILD_SERVER
-
-
-##
-## Jack internal client
-##
-#if BUILD_IN_PROCESS_ENGINE
-#
-#
-## FIXME: broken
-#
-#
-## FIXME: Figure out how to get this properly
-#omdir = $(prefix)/lib/jack
-#
-#om_la_CFLAGS = -fPIC
-#om_LTLIBRARIES = om.la
-#om_la_LDFLAGS = -module -avoid-version @JACK_LIBS@ @LOSC_LIBS@ @ALSA_LIBS@ @LASH_LIBS@ @SLV2_LIBS@
-#om_la_SOURCES = OmInProcess.cpp
-#
-#endif # BUILD_IN_PROCESS_ENGINE
-
-
-
-
diff --git a/src/progs/server/cmdline.c b/src/progs/server/cmdline.c
deleted file mode 100644
index 1e97e1ef..00000000
--- a/src/progs/server/cmdline.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- File autogenerated by gengetopt version 2.19.1
- 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.
-*/
-
-/* If we use autoconf. */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "getopt.h"
-
-#include "cmdline.h"
-
-const char *gengetopt_args_info_purpose = "";
-
-const char *gengetopt_args_info_usage = "Usage: Om - An OSC controlled realtime modular synthesizer [OPTIONS]... \n [FILES]...";
-
-const char *gengetopt_args_info_description = "";
-
-const char *gengetopt_args_info_help[] = {
- " -h, --help Print help and exit",
- " -V, --version Print version and exit",
- " -p, --port=STRING OSC port to listen on (default=`16180')",
- " -i, --in-jackd Run engine as in-process JACK client (default=off)",
- 0
-};
-
-static
-void clear_given (struct gengetopt_args_info *args_info);
-static
-void clear_args (struct gengetopt_args_info *args_info);
-
-static int
-cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error);
-
-
-static char *
-gengetopt_strdup (const char *s);
-
-static
-void clear_given (struct gengetopt_args_info *args_info)
-{
- args_info->help_given = 0 ;
- args_info->version_given = 0 ;
- args_info->port_given = 0 ;
- args_info->in_jackd_given = 0 ;
-}
-
-static
-void clear_args (struct gengetopt_args_info *args_info)
-{
- args_info->port_arg = gengetopt_strdup ("16180");
- args_info->port_orig = NULL;
- args_info->in_jackd_flag = 0;
-
-}
-
-static
-void init_args_info(struct gengetopt_args_info *args_info)
-{
- args_info->help_help = gengetopt_args_info_help[0] ;
- args_info->version_help = gengetopt_args_info_help[1] ;
- args_info->port_help = gengetopt_args_info_help[2] ;
- args_info->in_jackd_help = gengetopt_args_info_help[3] ;
-
-}
-
-void
-cmdline_parser_print_version (void)
-{
- printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- int i = 0;
- cmdline_parser_print_version ();
-
- if (strlen(gengetopt_args_info_purpose) > 0)
- printf("\n%s\n", gengetopt_args_info_purpose);
-
- printf("\n%s\n\n", gengetopt_args_info_usage);
-
- if (strlen(gengetopt_args_info_description) > 0)
- printf("%s\n", gengetopt_args_info_description);
-
- while (gengetopt_args_info_help[i])
- printf("%s\n", gengetopt_args_info_help[i++]);
-}
-
-void
-cmdline_parser_init (struct gengetopt_args_info *args_info)
-{
- clear_given (args_info);
- clear_args (args_info);
- init_args_info (args_info);
-
- args_info->inputs = NULL;
- args_info->inputs_num = 0;
-}
-
-static void
-cmdline_parser_release (struct gengetopt_args_info *args_info)
-{
-
- unsigned int i;
- if (args_info->port_arg)
- {
- free (args_info->port_arg); /* free previous argument */
- args_info->port_arg = 0;
- }
- if (args_info->port_orig)
- {
- free (args_info->port_orig); /* free previous argument */
- args_info->port_orig = 0;
- }
-
- for (i = 0; i < args_info->inputs_num; ++i)
- free (args_info->inputs [i]);
-
- if (args_info->inputs_num)
- free (args_info->inputs);
-
- clear_given (args_info);
-}
-
-int
-cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
-{
- FILE *outfile;
- int i = 0;
-
- outfile = fopen(filename, "w");
-
- if (!outfile)
- {
- fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
- return EXIT_FAILURE;
- }
-
- if (args_info->help_given) {
- fprintf(outfile, "%s\n", "help");
- }
- if (args_info->version_given) {
- fprintf(outfile, "%s\n", "version");
- }
- if (args_info->port_given) {
- if (args_info->port_orig) {
- fprintf(outfile, "%s=\"%s\"\n", "port", args_info->port_orig);
- } else {
- fprintf(outfile, "%s\n", "port");
- }
- }
- if (args_info->in_jackd_given) {
- fprintf(outfile, "%s\n", "in-jackd");
- }
-
- fclose (outfile);
-
- i = EXIT_SUCCESS;
- return i;
-}
-
-void
-cmdline_parser_free (struct gengetopt_args_info *args_info)
-{
- cmdline_parser_release (args_info);
-}
-
-
-/* gengetopt_strdup() */
-/* strdup.c replacement of strdup, which is not standard */
-char *
-gengetopt_strdup (const char *s)
-{
- char *result = NULL;
- if (!s)
- return result;
-
- 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)
-{
- return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
-}
-
-int
-cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
-{
- int result;
-
- result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
-
- if (result == EXIT_FAILURE)
- {
- cmdline_parser_free (args_info);
- exit (EXIT_FAILURE);
- }
-
- return result;
-}
-
-int
-cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
-{
- return EXIT_SUCCESS;
-}
-
-int
-cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error)
-{
- int c; /* Character of the parsed option. */
-
- int error = 0;
- struct gengetopt_args_info local_args_info;
-
- if (initialize)
- cmdline_parser_init (args_info);
-
- cmdline_parser_init (&local_args_info);
-
- optarg = 0;
- optind = 0;
- 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' },
- { "port", 1, NULL, 'p' },
- { "in-jackd", 0, NULL, 'i' },
- { NULL, 0, NULL, 0 }
- };
-
- stop_char = 0;
- c = getopt_long (argc, argv, "hVp:i", long_options, &option_index);
-
- if (c == -1) break; /* Exit from `while (1)' loop. */
-
- switch (c)
- {
- case 'h': /* Print help and exit. */
- cmdline_parser_print_help ();
- cmdline_parser_free (&local_args_info);
- exit (EXIT_SUCCESS);
-
- case 'V': /* Print version and exit. */
- cmdline_parser_print_version ();
- cmdline_parser_free (&local_args_info);
- exit (EXIT_SUCCESS);
-
- case 'p': /* OSC port to listen on. */
- if (local_args_info.port_given)
- {
- fprintf (stderr, "%s: `--port' (`-p') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
- goto failure;
- }
- if (args_info->port_given && ! override)
- continue;
- local_args_info.port_given = 1;
- args_info->port_given = 1;
- if (args_info->port_arg)
- free (args_info->port_arg); /* free previous string */
- args_info->port_arg = gengetopt_strdup (optarg);
- if (args_info->port_orig)
- free (args_info->port_orig); /* free previous string */
- args_info->port_orig = gengetopt_strdup (optarg);
- break;
-
- case 'i': /* Run engine as in-process JACK client. */
- if (local_args_info.in_jackd_given)
- {
- fprintf (stderr, "%s: `--in-jackd' (`-i') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
- goto failure;
- }
- if (args_info->in_jackd_given && ! override)
- continue;
- local_args_info.in_jackd_given = 1;
- args_info->in_jackd_given = 1;
- args_info->in_jackd_flag = !(args_info->in_jackd_flag);
- break;
-
-
- case 0: /* Long option with no short option */
- case '?': /* Invalid option. */
- /* `getopt_long' already printed an error message. */
- goto failure;
-
- default: /* bug: option not considered. */
- fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
- abort ();
- } /* switch */
- } /* while */
-
-
-
-
- cmdline_parser_release (&local_args_info);
-
- if ( error )
- return (EXIT_FAILURE);
-
- if (optind < argc)
- {
- int i = 0 ;
- int found_prog_name = 0;
- /* whether program name, i.e., argv[0], is in the remaining args
- (this may happen with some implementations of getopt,
- but surely not with the one included by gengetopt) */
-
- i = optind;
- while (i < argc)
- if (argv[i++] == argv[0]) {
- found_prog_name = 1;
- break;
- }
- i = 0;
-
- args_info->inputs_num = argc - optind - found_prog_name;
- args_info->inputs =
- (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- if (argv[optind++] != argv[0])
- args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ;
- }
-
- return 0;
-
-failure:
-
- cmdline_parser_release (&local_args_info);
- return (EXIT_FAILURE);
-}
diff --git a/src/progs/server/cmdline.ggo b/src/progs/server/cmdline.ggo
deleted file mode 100644
index 9635a8f5..00000000
--- a/src/progs/server/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 - An OSC controlled realtime modular synthesizer"
-
-option "port" p "OSC port to listen on" string default="16180" no
-option "in-jackd" i "Run engine as in-process JACK client" flag off
-
diff --git a/src/progs/server/cmdline.h b/src/progs/server/cmdline.h
deleted file mode 100644
index 5253162c..00000000
--- a/src/progs/server/cmdline.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* cmdline.h */
-
-/* File autogenerated by gengetopt version 2.19.1 */
-
-#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 - An OSC controlled realtime modular synthesizer"
-#endif
-
-#ifndef CMDLINE_PARSER_VERSION
-#define CMDLINE_PARSER_VERSION VERSION
-#endif
-
-struct gengetopt_args_info
-{
- const char *help_help; /* Print help and exit help description. */
- const char *version_help; /* Print version and exit help description. */
- char * port_arg; /* OSC port to listen on (default='16180'). */
- char * port_orig; /* OSC port to listen on original value given at command line. */
- const char *port_help; /* OSC port to listen on help description. */
- int in_jackd_flag; /* Run engine as in-process JACK client (default=off). */
- const char *in_jackd_help; /* Run engine as in-process JACK client help description. */
-
- int help_given ; /* Whether help was given. */
- int version_given ; /* Whether version was given. */
- int port_given ; /* Whether port was given. */
- int in_jackd_given ; /* Whether in-jackd was given. */
-
- char **inputs ; /* unamed options */
- unsigned inputs_num ; /* unamed options number */
-} ;
-
-extern const char *gengetopt_args_info_purpose;
-extern const char *gengetopt_args_info_usage;
-extern const char *gengetopt_args_info_help[];
-
-int cmdline_parser (int argc, char * const *argv,
- struct gengetopt_args_info *args_info);
-int cmdline_parser2 (int argc, char * const *argv,
- struct gengetopt_args_info *args_info,
- int override, int initialize, int check_required);
-int cmdline_parser_file_save(const char *filename,
- struct gengetopt_args_info *args_info);
-
-void cmdline_parser_print_help(void);
-void cmdline_parser_print_version(void);
-
-void cmdline_parser_init (struct gengetopt_args_info *args_info);
-void cmdline_parser_free (struct gengetopt_args_info *args_info);
-
-int cmdline_parser_required (struct gengetopt_args_info *args_info,
- const char *prog_name);
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* CMDLINE_H */
diff --git a/src/progs/server/ingen_dev b/src/progs/server/ingen_dev
deleted file mode 100755
index bd8857f7..00000000
--- a/src/progs/server/ingen_dev
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env sh
-
-INGEN_MODULE_PATH=../../libs/engine/.libs ./ingen
diff --git a/src/progs/server/main.cpp b/src/progs/server/main.cpp
deleted file mode 100644
index e92b635f..00000000
--- a/src/progs/server/main.cpp
+++ /dev/null
@@ -1,180 +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 <cstddef>
-#include <signal.h>
-#include "config.h"
-#include "module/Module.h"
-#include "engine/util.h"
-#include "engine/Engine.h"
-#include "engine/EventSource.h"
-#ifdef HAVE_LASH
-#include "engine/LashDriver.h"
-#endif
-#ifdef BUILD_IN_PROCESS_ENGINE
-#include <jack/jack.h>
-#include <jack/intclient.h>
-#endif
-#include "cmdline.h"
-
-using std::cout; using std::endl; using std::cerr;
-using namespace Ingen;
-
-SharedPtr<Engine> engine;
-
-
-void
-catch_int(int)
-{
- signal(SIGINT, catch_int);
- signal(SIGTERM, catch_int);
-
- std::cout << "[Main] Ingen interrupted." << std::endl;
- engine->quit();
-}
-
-
-#ifdef BUILD_IN_PROCESS_ENGINE
-
-jack_client_t* jack_client;
-jack_intclient_t jack_intclient;
-
-
-void
-unload_in_process_engine(int)
-{
- jack_status_t status;
- int ret = EXIT_SUCCESS;
-
- cout << "Unloading...";
- status = jack_internal_client_unload(jack_client, jack_intclient);
- if (status & JackFailure) {
- cout << "failed" << endl;
- ret = EXIT_FAILURE;
- } else {
- cout << "done" << endl;
- }
- jack_client_close(jack_client);
- exit(ret);
-}
-
-
-int
-load_in_process_engine(const char* port)
-{
- int ret = EXIT_SUCCESS;
-
- jack_status_t status;
-
- if ((jack_client = jack_client_open("om_load", JackNoStartServer,
- &status)) != NULL) {
- jack_intclient =
- jack_internal_client_load(jack_client, "Ingen",
- (jack_options_t)(JackLoadName|JackLoadInit),
- &status, "om", port);
- if (status == 0) {
- cout << "Engine loaded" << endl;
- signal(SIGINT, unload_in_process_engine);
- signal(SIGTERM, unload_in_process_engine);
-
- while (1) {
- sleep(1);
- }
- } else if (status & JackFailure) {
- cerr << "Could not load om.so" << endl;
- ret = EXIT_FAILURE;
- }
-
- jack_client_close(jack_client);
- } else {
- cerr << "jack_client_open failed" << endl;
- ret = EXIT_FAILURE;
- }
-}
-
-#endif // BUILD_IN_PROCESS_ENGINE
-
-
-int
-main(int argc, char** argv)
-{
-#ifdef HAVE_LASH
- lash_args_t* lash_args = lash_extract_args(&argc, &argv);
-#endif
-
- int ret = EXIT_SUCCESS;
-
- /* Parse command line options */
- gengetopt_args_info args_info;
- if (cmdline_parser (argc, argv, &args_info) != 0)
- return EXIT_FAILURE;
-
-
- if (args_info.in_jackd_flag) {
-#ifdef BUILD_IN_PROCESS_ENGINE
- ret = load_in_process_engine(args_info.port_arg);
-#else
- cerr << "In-process Jack client support not enabled in this build." << endl;
- ret = EXIT_FAILURE;
-#endif
- } else {
- signal(SIGINT, catch_int);
- signal(SIGTERM, catch_int);
-
- set_denormal_flags();
-
- SharedPtr<Glib::Module> module = Ingen::Shared::load_module("ingen_engine");
-
- if (!module) {
- cerr << "Aborting. If you are running from the source tree, run ingen_dev." << endl;
- return -1;
- }
-
- Engine* (*new_engine)() = NULL;
-
- bool found = module->get_symbol("new_engine", (void*&)new_engine);
-
- if (!found) {
- cerr << "Unable to find module entry point, exiting." << endl;
- return -1;
- }
-
- SharedPtr<Engine> engine(new_engine());
-
- engine->start_jack_driver();
- engine->start_osc_driver(args_info.port_arg);
-
- engine->activate();
-
-#ifdef HAVE_LASH
- lash_driver = new LashDriver(engine, lash_args);
-#endif
-
- engine->main();
-
- engine->event_source()->deactivate();
-
-#ifdef HAVE_LASH
- delete lash_driver;
-#endif
-
- }
-
- return ret;
-}
-