summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am38
-rwxr-xr-xbootstrap.sh46
-rw-r--r--configure.ac59
-rw-r--r--src/Makefile9
-rw-r--r--src/Makefile.am13
-rw-r--r--src/ServerInfo.cc9
-rw-r--r--src/paman.cc2
7 files changed, 167 insertions, 9 deletions
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..516f7ce
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,38 @@
+# $Id$
+#
+# This file is part of Polypaudio Manager.
+#
+# Polypaudio Manager 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 Manager 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 Manager; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA.
+
+EXTRA_DIST = bootstrap.sh
+SUBDIRS=src
+
+README:
+ rm -f README
+ $(MAKE) -C doc README
+ cd $(srcdir) && ln -s doc/README README
+
+homepage: all dist
+ test -d $$HOME/homepage/private
+ mkdir -p $$HOME/homepage/private/projects/Polypaudio Manager
+ cp *.tar.gz $$HOME/homepage/private/projects/Polypaudio Manager
+ cp doc/README.html doc/cli.html doc/daemon.html doc/modules.html doc/style.css $$HOME/homepage/private/projects/Polypaudio Manager
+ cp $$HOME/homepage/private/projects/Polypaudio Manager/README.html $$HOME/homepage/private/projects/Polypaudio Manager/index.html
+
+distcleancheck:
+ @:
+
+.PHONY: homepage distcleancheck
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000..62135f7
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+# $Id$
+
+# This file is part of Polypaudio Manager.
+#
+# Polypaudio Manager 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 Manager 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 Manager; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+run_versioned() {
+ local P
+ type -p "$1-$2" &> /dev/null && P="$1-$2" || local P="$1"
+
+ shift 2
+ "$P" "$@"
+}
+
+if [ "x$1" = "xam" ] ; then
+ set -ex
+ run_versioned automake 1.7 -a -c --foreign
+ ./config.status
+else
+ set -ex
+
+ rm -rf autom4te.cache
+ rm -f config.cache
+
+ run_versioned aclocal 1.7
+ autoheader
+ run_versioned automake 1.7 -a -c --foreign
+ autoconf -Wall
+
+ CFLAGS="-g -O0" ./configure --sysconfdir=/etc "$@"
+
+ make clean
+fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..d2fb3bc
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,59 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+# $Id$
+
+# This file is part of Polypaudio Manager.
+#
+# Polypaudio Manager 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 Manager 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 Manager; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+AC_PREREQ(2.57)
+AC_INIT([paman],[0.1],[mzcnzna (at) 0pointer (dot) de])
+AC_CONFIG_SRCDIR([src/paman.cc])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign -Wall])
+
+AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/paman/])
+
+if type -p stow > /dev/null && test -d /usr/local/stow ; then
+ AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
+ ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
+fi
+
+# Checks for programs.
+AC_PROG_CXX
+
+PKG_CHECK_MODULES(GUILIBS, [ gtkmm-2.4 libglademm-2.4 ])
+AC_SUBST(GUILIBS_CFLAGS)
+AC_SUBST(GUILIBS_LIBS)
+
+if test -d ../polypaudio ; then
+ POLYP_CFLAGS='-I$(TOPDIR)/../polypaudio'
+ POLYP_LIBS='-L$(TOPDIR)/../polypaudio/polyp/.libs -lpolyp -lpolyp-mainloop-glib -lpolyp-mainloop-glib -lpolyp-error'
+ echo "*** Found polypaudio in ../polypaudio, using that version ***"
+else
+ PKG_CHECK_MODULES(POLYP, [ polyplib polyplib-mainloop polyplib-mainloop-glib polyplib-error ])
+fi
+
+AC_SUBST(POLYP_LIBS)
+AC_SUBST(POLYP_CFLAGS)
+
+# If using GCC specifiy some additional parameters
+if test "x$GCC" = "xyes" ; then
+ CFLAGS="$CFLAGS -pipe -Wall -W -Wno-unused-parameter"
+fi
+
+AC_CONFIG_FILES([Makefile src/Makefile])
+AC_OUTPUT
diff --git a/src/Makefile b/src/Makefile
deleted file mode 100644
index 8a9cb3a..0000000
--- a/src/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-
-CXXFLAGS=`pkg-config gtkmm-2.4 libglademm-2.4 --cflags` -Wall -W -pipe -O0 -g -Wno-unused -I../polypaudio
-LIBS=`pkg-config gtkmm-2.4 libglademm-2.4 --libs` -L../polypaudio/polyp/.libs -lpolyp -lpolyp-mainloop-glib -lpolyp-error
-
-paman: paman.o MainWindow.o SinkWindow.o SourceWindow.o ServerInfo.o ClientWindow.o ModuleWindow.o
- $(CXX) $^ -o $@ $(LIBS)
-
-clean:
- rm -rf *.o paman
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..3905db3
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,13 @@
+
+bin_PROGRAMS=paman
+
+paman_SOURCES=MainWindow.cc MainWindow.hh \
+ SinkWindow.cc SinkWindow.hh \
+ SourceWindow.cc SourceWindow.hh \
+ ServerInfo.cc ServerInfo.hh \
+ paman.cc paman.hh \
+ ClientWindow.cc ClientWindow.hh \
+ ModuleWindow.cc ModuleWindow.hh
+
+paman_LDADD=$(AM_LDADD) $(GUILIBS_LIBS) $(POLYP_LIBS)
+paman_CXXFLAGS=$(AM_CXXFLAGS) $(GUILIBS_CFLAGS) $(POLYP_CFLAGS)
diff --git a/src/ServerInfo.cc b/src/ServerInfo.cc
index fc7fe4e..8362f75 100644
--- a/src/ServerInfo.cc
+++ b/src/ServerInfo.cc
@@ -159,6 +159,15 @@ void ModuleInfo::showWindow() {
}
}
+extern "C" {
+ static void server_info_callback(struct pa_context *c, const struct pa_server_info *i, void *userdata);
+ static void sink_info_callback(struct pa_context *c, const struct pa_sink_info *i, int is_last, void *userdata);
+ static void source_info_callback(struct pa_context *c, const struct pa_source_info *i, int is_last, void *userdata);
+ static void client_info_callback(struct pa_context *c, const struct pa_client_info *i, int is_last, void *userdata);
+ static void module_info_callback(struct pa_context *c, const struct pa_module_info *i, int is_last, void *userdata);
+ static void subscribe_callback(struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata);
+};
+
static void server_info_callback(struct pa_context *c, const struct pa_server_info *i, void *userdata) {
ServerInfoManager *si = (ServerInfoManager*) userdata;
diff --git a/src/paman.cc b/src/paman.cc
index 0c1741d..4b9b364 100644
--- a/src/paman.cc
+++ b/src/paman.cc
@@ -16,6 +16,8 @@ ServerInfoManager *serverInfoManager = NULL;
struct pa_context *context = NULL;
struct pa_mainloop_api *mainloop_api = NULL;
+extern "C" static void context_state_callback(struct pa_context *c, void *userdata);
+
static void context_state_callback(struct pa_context *c, void *userdata) {
g_assert(c && mainWindow);