diff options
Diffstat (limited to 'polyp')
| -rw-r--r-- | polyp/Makefile.am | 9 | ||||
| -rw-r--r-- | polyp/cmdline.c | 11 | ||||
| -rwxr-xr-x | polyp/esdcompat.sh.in | 83 | ||||
| -rw-r--r-- | polyp/main.c | 4 | ||||
| -rwxr-xr-x | polyp/polypaudio.pa | 2 | 
5 files changed, 103 insertions, 6 deletions
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 <<EOF +$VERSION_STRING + +Usage: $0 [options] + +  -v --version  print version information +  -h --help     show this help + +Ignored directives: + +  -tcp          use tcp/ip sockets in addition to unix domain +  -promiscuous  don't require authentication +  -d DEVICE     force esd to use sound device DEVICE +  -b            run server in 8 bit sound mode +  -r RATE       run server at sample rate of RATE +  -as SECS      free audio device after SECS of inactivity +  -unix         use unix domain sockets instead of tcp/ip +  -public       make tcp/ip access public (other than localhost) +  -terminate    terminate esd daemone after last client exits +  -nobeeps      disable startup beeps +  -trust        start esd even if use of /tmp/.esd can be insecure +  -port PORT   listen for connections at PORT (only for tcp/ip) +  -bind ADDRESS binds to ADDRESS (only for tcp/ip) +EOF +            exit 0 +            ;; +         +        -unix|-b|-public|-terminate|-nobeeps|-trust|-tcp|-promiscuous)   +            # Ignore these commands +            ;;  + +        -d|-r|-as|-port|-bind) +            # Ignore these commands and their arguments +            shift +            ;; + +        *) +            fail "Unknown command: $1" +            ;; +    esac + +    shift +done + +exec "@ESDCOMPAT_BINARY@" -r diff --git a/polyp/main.c b/polyp/main.c index 526bf744..e41a106f 100644 --- a/polyp/main.c +++ b/polyp/main.c @@ -145,8 +145,8 @@ int main(int argc, char *argv[]) {      r = lt_dlinit();      assert(r == 0); -#ifdef DLSEARCHDIR -    lt_dladdsearchdir(DLSEARCHDIR); +#ifdef PA_DLSEARCHDIR +    lt_dladdsearchdir(PA_DLSEARCHDIR);  #endif      mainloop = pa_mainloop_new(); diff --git a/polyp/polypaudio.pa b/polyp/polypaudio.pa index 8c5157a1..0c69893a 100755 --- a/polyp/polypaudio.pa +++ b/polyp/polypaudio.pa @@ -1,4 +1,4 @@ -#!./polypaudio -rF  +#!./polypaudio -rnF   #  # This file is part of polypaudio.  | 
