From ee91cb6c9ded44d7f3ddb23b681df49fe5c8146b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 1 Sep 2004 17:36:46 +0000 Subject: add esd compatible startup script add default configuration script git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@172 fefdeb5f-60dc-0310-8127-8f9354f1896f --- configure.ac | 5 +++- doc/todo | 2 +- polyp/Makefile.am | 9 ++++-- polyp/cmdline.c | 11 ++++++- polyp/esdcompat.sh.in | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ polyp/main.c | 4 +-- polyp/polypaudio.pa | 2 +- 7 files changed, 108 insertions(+), 8 deletions(-) create mode 100755 polyp/esdcompat.sh.in diff --git a/configure.ac b/configure.ac index 7aa6c5d4..2c470435 100644 --- a/configure.ac +++ b/configure.ac @@ -115,5 +115,8 @@ AM_CONDITIONAL([USE_LYNX], [test "x$lynx" = xyes]) AM_CONDITIONAL(BUILD_LIBPOLYPCORE, false) -AC_CONFIG_FILES([Makefile polyp/Makefile polyplib.pc polyplib-simple.pc polyplib-mainloop.pc polyplib-error.pc polyplib-glib-mainloop.pc polyplib-glib12-mainloop.pc doc/Makefile doc/README.html doc/cli.html doc/daemon.html doc/modules.html doxygen/Makefile doxygen/doxygen.conf polyp/polyplib-version.h]) +ESDCOMPAT_BINARY=$(bindir)/polypaudio +AC_SUBST(ESDCOMPAT_BINARY) + +AC_CONFIG_FILES([Makefile polyp/Makefile polyplib.pc polyplib-simple.pc polyplib-mainloop.pc polyplib-error.pc polyplib-glib-mainloop.pc polyplib-glib12-mainloop.pc doc/Makefile doc/README.html doc/cli.html doc/daemon.html doc/modules.html doxygen/Makefile doxygen/doxygen.conf polyp/polyplib-version.h polyp/esdcompat.sh]) AC_OUTPUT diff --git a/doc/todo b/doc/todo index 8ad59f1b..e9c82562 100644 --- a/doc/todo +++ b/doc/todo @@ -12,8 +12,8 @@ - daemon autostart - cleanup tagstruct and modargs (add s32, pa_volume_t, pa_usec_t) - remove all gcc warnings -- esd compatible startup script or personality - add total sample cache size to stat +- make fragments settings runtime configurable ** later *** - xmlrpc/http diff --git a/polyp/Makefile.am b/polyp/Makefile.am index cd369657..7d6d9bb3 100644 --- a/polyp/Makefile.am +++ b/polyp/Makefile.am @@ -17,17 +17,22 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. +polypincludedir=$(includedir)/polyp +polypconfdir=$(sysconfdir)/polyp + AM_CFLAGS=-D_GNU_SOURCE -I$(top_srcdir) $(PTHREAD_CFLAGS) -#AM_CFLAGS+= -DDLSEARCHDIR=\"$(pkglibdir)\" +#AM_CFLAGS+= -DPA_DLSEARCHDIR=\"$(pkglibdir)\" +AM_CFLAGS+= -DPA_DEFAULT_CONFIG_FILE=\"$(polypconfdir)/polypaudio.pa\" AM_LDADD=$(PTHREAD_LIBS) -lm AM_LIBADD=$(PTHREAD_LIBS) -lm -polypincludedir=$(includedir)/polyp EXTRA_DIST = polypaudio.pa depmod.py bin_PROGRAMS = polypaudio pacat pactl noinst_PROGRAMS = mainloop-test mainloop-test-glib mainloop-test-glib12 pacat-simple parec-simple +polypconf_DATA=polypaudio.pa + BUILT_SOURCES=polyplib-version.h polypinclude_HEADERS=polyplib.h \ diff --git a/polyp/cmdline.c b/polyp/cmdline.c index 9935e7b6..6538b930 100644 --- a/polyp/cmdline.c +++ b/polyp/cmdline.c @@ -48,6 +48,7 @@ void pa_cmdline_help(const char *argv0) { " -L MODULE Load the specified plugin module with the specified argument\n" " -F FILE Run the specified script\n" " -C Open a command line on the running TTY\n" + " -n Don't load configuration file ("PA_DEFAULT_CONFIG_FILE")\n" " -D Daemonize after loading the modules\n" " -f Dont quit when the startup fails\n" " -v Verbose startup\n" @@ -59,6 +60,7 @@ struct pa_cmdline* pa_cmdline_parse(int argc, char * const argv []) { char c; struct pa_cmdline *cmdline = NULL; struct pa_strbuf *buf = NULL; + int no_default_config_file = 0; assert(argc && argv); cmdline = pa_xmalloc(sizeof(struct pa_cmdline)); @@ -68,7 +70,7 @@ struct pa_cmdline* pa_cmdline_parse(int argc, char * const argv []) { buf = pa_strbuf_new(); assert(buf); - while ((c = getopt(argc, argv, "L:F:CDhfvrRV")) != -1) { + while ((c = getopt(argc, argv, "L:F:CDhfvrRVn")) != -1) { switch (c) { case 'L': pa_strbuf_printf(buf, "load %s\n", optarg); @@ -100,12 +102,19 @@ struct pa_cmdline* pa_cmdline_parse(int argc, char * const argv []) { case 'V': cmdline->version = 1; break; + case 'n': + no_default_config_file =1; + break; default: goto fail; } } + if (!no_default_config_file) + pa_strbuf_puts(buf, ".include "PA_DEFAULT_CONFIG_FILE"\n"); + + cmdline->cli_commands = pa_strbuf_tostring_free(buf); return cmdline; diff --git a/polyp/esdcompat.sh.in b/polyp/esdcompat.sh.in new file mode 100755 index 00000000..1033930e --- /dev/null +++ b/polyp/esdcompat.sh.in @@ -0,0 +1,83 @@ +#!/bin/sh + +# $Id$ +# +# This file is part of polypaudio. +# +# polypaudio 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. +# +# polypaudio 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 more details. +# +# You should have received a copy of the GNU General Public License +# along with polypaudio; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +VERSION_STRING="@PACKAGE_NAME@ esd wrapper @PACKAGE_VERSION@" + +fail() { + echo "$1" > /dev/stderr + exit 1 +} + +for N in $(seq $#) ; do + + case "$1" in + + -v|--version) + echo "$VERSION_STRING" + exit 0 + ;; + + -h|--help) + cat <