sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[SM-Commit] GIT changes to master grimoire by Thomas Orgis (1cb7b11ea3baf9aff4eba07acc649d5bd9b0004a)
- From: Thomas Orgis <scm AT mail.sourcemage.org>
- To: sm-commit AT lists.ibiblio.org
- Subject: [SM-Commit] GIT changes to master grimoire by Thomas Orgis (1cb7b11ea3baf9aff4eba07acc649d5bd9b0004a)
- Date: Sun, 3 Sep 2006 20:43:43 -0500
GIT changes to master grimoire by Thomas Orgis <sobukus AT sourcemage.org>:
ChangeLog | 4 +
accounts | 1
audio-players/dermixd/BUILD | 16 ++++
audio-players/dermixd/CONFIGURE | 5 +
audio-players/dermixd/DEPENDS | 6 +
audio-players/dermixd/DETAILS | 21 +++++
audio-players/dermixd/HISTORY | 4 +
audio-players/dermixd/INSTALL | 30 +++++++
audio-players/dermixd/dermixd-1.1.0-beta2.frontend.patch | 41 ++++++++++
audio-players/dermixd/dermixd-1.1.0-beta2.tar.bz2.sig |binary
audio-players/dermixd/init.d/dermixd | 59
+++++++++++++++
audio-players/dermixd/init.d/dermixd.conf | 56
++++++++++++++
smgl/init.d/DETAILS | 2
smgl/init.d/HISTORY | 3
14 files changed, 247 insertions(+), 1 deletion(-)
New commits:
commit b303fdc22e378b528d6d336e09844b9913e157e8
Author: Thomas Orgis <sobukus AT sourcemage.org>
Commit: Thomas Orgis <sobukus AT sourcemage.org>
new spell dermixd plus musicdaemon account
commit 285e2024c765964cabf3ce49d41e78bcba36af99
Author: Thomas Orgis <sobukus AT sourcemage.org>
Commit: Thomas Orgis <sobukus AT sourcemage.org>
bumping patchlevel for init.d
diff --git a/ChangeLog b/ChangeLog
index ff30c4b..63ff70a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2006-09-04 Thomas Orgis <sobukus AT sourcemage.org>
+ * audio-players/dermixd: new spell, audio mixing daemon
+ * accounts: added musicdaemon as generic music daemon account
+
2006-09-03 Juuso Alasuutari <iuso AT sourcemage.org>
* audio-creation/hexter: New spell, Yamaha DX7 modeler DSSI soft
synth.
diff --git a/accounts b/accounts
index b203d06..72144ba 100755
--- a/accounts
+++ b/accounts
@@ -59,3 +59,4 @@ nagcmd:150:150
boinc:152:152
pascal:153:153
wnn:154:154
+musicdaemon:155:29
diff --git a/audio-players/dermixd/BUILD b/audio-players/dermixd/BUILD
new file mode 100755
index 0000000..5a4b0d0
--- /dev/null
+++ b/audio-players/dermixd/BUILD
@@ -0,0 +1,16 @@
+#no autotools yet... constructing the build
+# choice: gnu, gnu-oss, gnu-alsa
+patch -Np1 < ${SCRIPT_DIRECTORY}/dermixd-1.1.0-beta2.frontend.patch &&
+sedit 's/-pedantic-errors//' Makefile &&
+if list_find "$OPTS" --enable-alsa
+then
+ if [[ "$DMD_OSS" == y ]]
+ then
+ DMD_BUILD=gnu
+ else
+ DMD_BUILD=gnu-alsa
+ fi
+else
+ DMD_BUILD=gnu-oss
+fi &&
+make $DMD_BUILD
diff --git a/audio-players/dermixd/CONFIGURE b/audio-players/dermixd/CONFIGURE
new file mode 100755
index 0000000..3b272c6
--- /dev/null
+++ b/audio-players/dermixd/CONFIGURE
@@ -0,0 +1,5 @@
+config_query DMD_OSS "include OSS support (it is forced without ALSA!)" y
+# I would like to make that depend on yes to init script
+# ...and even opt to mod the default config accordingly!
+config_query DMD_USER \
+"create musicdaemon user (init script per default uses it)" y
diff --git a/audio-players/dermixd/DEPENDS b/audio-players/dermixd/DEPENDS
new file mode 100755
index 0000000..54db98f
--- /dev/null
+++ b/audio-players/dermixd/DEPENDS
@@ -0,0 +1,6 @@
+depends g++ &&
+optional_depends alsa-lib --enable-alsa --disable-alsa "ALSA output" &&
+optional_depends perl --enable-perl --disable-perl "install PERL frontend" &&
+optional_depends mpg123 "" "" "for mpeg input -- \
+need control interface of -thor version or >= 0.60! \
+(you can install mpg123 later without rebuilding)"
diff --git a/audio-players/dermixd/DETAILS b/audio-players/dermixd/DETAILS
new file mode 100755
index 0000000..06d23eb
--- /dev/null
+++ b/audio-players/dermixd/DETAILS
@@ -0,0 +1,21 @@
+ SPELL=dermixd
+ VERSION=1.1.0-beta2
+ SOURCE=$SPELL-$VERSION.tar.bz2
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
+ SOURCE_URL[0]=http://thomas.orgis.org/$SPELL/$SOURCE
+ SOURCE_GPG=thomas.orgis.gpg:${SOURCE}.sig
+ WEB_SITE=http://thomas.orgis.org/dermixd
+ ENTERED=20060904
+ LICENSE[0]="GPL"
+ BUILD_API=2
+ SHORT="DerMixD is a multithreading audio playback/mixing daemon."
+cat << EOF
+DerMixD takes an arbitrary number of input channels and creates an arbitrary
+number of mixes on an arbitrary number of output channels (i.e. audio device
+on host machine).
+It is controlled via simple commands on TCP socket (you can talk to it with
+telnet) that are scriptable in a timed manner.
+Most important input class is MPEG audio files/streams via (recent)
+mpg123 (there is a sine generator for fun and raw audio input) and on the
+output side there's OSS and ALSA as well as raw and text (tab-separated
value).
+EOF
diff --git a/audio-players/dermixd/HISTORY b/audio-players/dermixd/HISTORY
new file mode 100644
index 0000000..2305883
--- /dev/null
+++ b/audio-players/dermixd/HISTORY
@@ -0,0 +1,4 @@
+2006-09-04 Thomas Orgis <sobukus AT sourcemage.org>
+ * BUILD, CONFIGURE, DEPENDS, dermixd-1.1.0-beta2.frontend.patch
+ dermixd-1.1.0-beta2.tar.bz2.sig, DETAILS, HISTORY,
+ init.d/dermixd init.d/dermixd.conf, INSTALL: created
diff --git a/audio-players/dermixd/INSTALL b/audio-players/dermixd/INSTALL
new file mode 100755
index 0000000..2df00bd
--- /dev/null
+++ b/audio-players/dermixd/INSTALL
@@ -0,0 +1,30 @@
+if [[ "$DMD_USER" == "y" ]]
+then
+ create_group audio &&
+ create_account musicdaemon
+# in future modify default config?
+# cp ${SCRIPT_DIRECTORY}/dermixd.conf .
+else
+ create_account nobody
+# sed 's/USER=dermixd/USER=nobody/' \
+# ${SCRIPT_DIRECTORY}/dermixd.conf > dermixd.conf
+fi &&
+
+
+BINDIR=${INSTALL_ROOT}/usr/bin &&
+DOCDIR=${INSTALL_ROOT}/usr/share/doc/dermixd &&
+install -v -d ${BINDIR} &&
+install -v -d ${DOCDIR} &&
+install -v dermixd ${BINDIR} &&
+install -v README BUGS TODO LICENSE CHANGES ${DOCDIR} &&
+if list_find "$OPTS" --enable-perl
+then
+ PERLDIR=${INSTALL_ROOT}/usr/lib/dermixd &&
+ install -v -d ${PERLDIR} &&
+ install -v frontend/simple_player ${BINDIR}/dermixd-play &&
+ install -v frontend/dermixd-control ${BINDIR}/dermixd-control &&
+ install -v frontend/shuffle ${BINDIR}/shuffle &&
+ install -v frontend/Param.pm ${PERLDIR} &&
+ install -v -d ${PERLDIR}/DerMixD &&
+ install -v frontend/DerMixD/{Base,Control}.pm ${PERLDIR}/DerMixD
+fi
diff --git a/audio-players/dermixd/dermixd-1.1.0-beta2.frontend.patch
b/audio-players/dermixd/dermixd-1.1.0-beta2.frontend.patch
new file mode 100644
index 0000000..c343c07
--- /dev/null
+++ b/audio-players/dermixd/dermixd-1.1.0-beta2.frontend.patch
@@ -0,0 +1,41 @@
+diff -ruN dermixd-1.1.0-beta2.orig/frontend/dermixd-control
dermixd-1.1.0-beta2/frontend/dermixd-control
+--- dermixd-1.1.0-beta2.orig/frontend/dermixd-control 2006-09-04
02:42:01.000000000 +0200
++++ dermixd-1.1.0-beta2/frontend/dermixd-control 2006-09-04
02:43:40.000000000 +0200
+@@ -10,6 +10,7 @@
+ use FindBin qw($Bin);
+ use lib $Bin.'/../lib/perl';
+ use lib $Bin.'/../lib/thorma/perl'; #we may operate withing ThOrMA
++use lib $Bin.'/../lib/dermixd'; #for standalone DerMixD install
+
+ use Socket;
+ use Param;
+@@ -18,7 +19,8 @@
+ my $param = &Param::Parse
+ (
+ { 'init', "Simple script for sending mixplayd a command... \n Usage:
$0 [options] command+arg\nThe script tries to be smart at start/seek/pause
commands when no channel is given..." }
+- ,'remote','localhost','R','the (remote) server where mixplayd is
running on'
++ ,'remote','localhost','R','the (remote) server where dermixd is
running on'
++ ,'port','8888','p','the port to use'
+ ,'verbose',0,'v','be more verbose about the server communication'
+ ,'silent',0,'s','do not even give a note on success'
+ ,'stay',0,'S','stay connected after commands have been issued (makes
sense for scripting)'
+@@ -33,7 +35,7 @@
+ #Thus, returned undef on error... that was somehow not consistent with my
different perl versions (5.6 vs 5.8)
+ #so, now checking manually if there is a connection online
+
+-my $pal = new
DerMixD::Control({'remote',$param->{remote},'debug',$param->{verbose},'echo',$param->{echo}});
++my $pal = new
DerMixD::Control({'port',$param->{port},'remote',$param->{remote},'debug',$param->{verbose},'echo',$param->{echo}});
+ unless($pal->{online}){die "Not online ($!)\n";}
+
+ local(*DAT);
+diff -ruN dermixd-1.1.0-beta2.orig/frontend/simple_player
dermixd-1.1.0-beta2/frontend/simple_player
+--- dermixd-1.1.0-beta2.orig/frontend/simple_player 2006-09-04
02:42:01.000000000 +0200
++++ dermixd-1.1.0-beta2/frontend/simple_player 2006-09-04 02:43:40.000000000
+0200
+@@ -11,6 +11,7 @@
+ use lib $Bin.'/../lib/perl';
+ use lib $Bin.'/../lib/thorma/perl'; #we may operate withing ThOrMA
+ use lib $Bin; #for stand-alone package
++use lib $Bin.'/../lib/dermixd'; #for standalone DerMixD install
+
+ #use Param;
+ use DerMixD::Control;
diff --git a/audio-players/dermixd/dermixd-1.1.0-beta2.tar.bz2.sig
b/audio-players/dermixd/dermixd-1.1.0-beta2.tar.bz2.sig
new file mode 100644
index 0000000..3065dbc
Binary files /dev/null and
b/audio-players/dermixd/dermixd-1.1.0-beta2.tar.bz2.sig differ
diff --git a/audio-players/dermixd/init.d/dermixd
b/audio-players/dermixd/init.d/dermixd
new file mode 100644
index 0000000..ff4c329
--- /dev/null
+++ b/audio-players/dermixd/init.d/dermixd
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+PROGRAM=/usr/bin/dermixd
+RUNLEVEL=3
+
+CONTROL=/usr/bin/dermixd-control
+#some defaults...
+PORT=8888
+BUFFER=2048
+AUDIO_RATE=44100
+CHANNELS=2
+DEBUG_OUT=
+DEFAULT_OUTPUT=
+DEFAULT_OUTFILE=
+MPG123_DECODER=/usr/bin/mpg123
+MPG123_PREBUFFER=4
+MPG123_ZEROSCAN=yes
+MPG123_ZEROLEVEL=100
+INITIAL_SETUP=yes
+OUTPUT_STOPPED=yes
+NICE=-5
+#be on the safe side
+USER=nobody
+REMOTE=no
+
+. /etc/init.d/smgl_init
+. /etc/sysconfig/dermixd
+
+start()
+{
+ echo "starting DerMixD..."
+ COMMAND="$PROGRAM port='$PORT' buffer='$BUFFER'
audio_rate='$AUDIO_RATE' channels='$CHANNELS'
mpg123_input.decoder='$MPG123_DECODER'
mpg123_input.prebuffer='$MPG123_PREBUFFER'
mpg123_input.zeroscan='$MPG123_ZEROSCAN'"
+ if ! test -z "$DEBUG_OUT"; then COMMAND="$COMMAND
output='$DEBUG_OUT'"; fi
+ if [[ "$REMOTE" == "yes" ]]; then COMMAND="$COMMAND -r"; fi
+ if [[ "$INITIAL_SETUP" == "yes" ]]
+ then
+ if ! test -z "$DEFAULT_OUTPUT"; then COMMAND="$COMMAND
default_output='$DEBUG_OUT'"; fi
+ if ! test -z "$DEFAULT_OUTFILE"; then COMMAND="$COMMAND
output_outfile='$DEBUG_OUT'"; fi
+ else
+ COMMAND="$COMMAND -n"
+ fi
+ nice -n $NICE su -s /bin/bash -c "${COMMAND}" ${USER} &&
+ if [[ "$INITIAL_SETUP" == "yes" ]] && [[ "$OUTPUT_STOPPED" == "yes" ]]
+ then
+ $CONTROL outstop 0
+ fi
+}
+
+stop()
+{
+ echo "stopping daemon politely"
+ $CONTROL --port=${PORT} shutdown
+}
+
+status()
+{
+ echo "status:"
+ $CONTROL --port=${PORT} fullstat
+}
diff --git a/audio-players/dermixd/init.d/dermixd.conf
b/audio-players/dermixd/init.d/dermixd.conf
new file mode 100644
index 0000000..28501ac
--- /dev/null
+++ b/audio-players/dermixd/init.d/dermixd.conf
@@ -0,0 +1,56 @@
+# configuration for dermixd init script
+
+# user to start daemon as
+# This user should be able to open audio hardware and read your music files,
+# but not more! Anyone can send commands per TCP!
+USER=musicdaemon
+
+# port to bind to
+PORT=8888
+
+# allow non-local connections? yes/no
+# Trust your network if enabling that!
+REMOTE=no
+
+# mixing and output buffer size in samples
+BUFFER=2048
+
+# mixing and output samplerate (inputs of different rate are converted)
+AUDIO_RATE=44100
+
+# number of mixing/output channels (1 or 2)
+CHANNELS=2
+
+# nice value to change process priority... you want continuous audio, don't
you?
+NICE=-5
+
+# configuration of the mpeg input
+
+# path to mpg123 decoder binary
+MPG123_DECODER=/usr/bin/mpg123
+
+# skip zero level at beginning and end of tracks to get gapless output?
yes/no
+MPG123_ZEROSCAN=yes
+
+# size of mpg123 prebuffer relative to mixer buffer (needed for zeroscan)
+MPG123_PREBUFFER=4
+
+# less that that is zero
+# (talking 16 bit audio, that means we have a range of 0 to 32767)
+MPG123_ZEROLEVEL=100
+
+# do create an initial setup of two input channels and one output channel?
yes/no
+INITIAL_SETUP=yes
+
+# default output device and file (resource) to use
+# leaving blank uses builtin default
+DEFAULT_OUTPUT=
+DEFAULT_OUTFILE=
+
+# stop the initially created output so that audio device is not blocked?
yes/no
+# (in case your audio device doesn't support being opened multiple times)
+OUTPUT_STOPPED=yes
+
+# a file to send all stuff to that dermixd may print out
+# (normally directly to /dev/null ;-)
+#DEBUG_OUT=
diff --git a/smgl/init.d/DETAILS b/smgl/init.d/DETAILS
index 98397ce..8346b0c 100755
--- a/smgl/init.d/DETAILS
+++ b/smgl/init.d/DETAILS
@@ -1,7 +1,7 @@
SPELL=init.d
VERSION=2.2.0
LICENSE[0]=GPL
- PATCHLEVEL=10
+ PATCHLEVEL=11
BUILD_API=2
KEYWORDS="smgl"
ENTERED=20030505
diff --git a/smgl/init.d/HISTORY b/smgl/init.d/HISTORY
index 234ba19..49b7131 100644
--- a/smgl/init.d/HISTORY
+++ b/smgl/init.d/HISTORY
@@ -1,3 +1,6 @@
+2006-09-04 Thomas Orgis <sobukus AT sourcemage.org>
+ * DETAILS: increased PATCHLEVEL for the last changes
+
2006-09-03 Thomas Orgis <sobukus AT sourcemage.org>
* CONFIGURE, FINAL, INSTALL, PRE_BUILD: several fixes accoring
to bug #12964, namely:
- [SM-Commit] GIT changes to master grimoire by Thomas Orgis (1cb7b11ea3baf9aff4eba07acc649d5bd9b0004a), Thomas Orgis, 09/03/2006
Archive powered by MHonArc 2.6.24.