From a64fa2a9220000e2ebd281289ae2ee56e8f76227 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Tue, 22 Apr 2008 20:51:19 +0100 Subject: [PATCH] Network play support for scripts/setup. Organization: Straylight/Edgeware From: Richard Kettlewell --- CHANGES | 3 +- README.streams | 4 ++- scripts/setup.in | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index fa3a144..b4c0a22 100644 --- a/CHANGES +++ b/CHANGES @@ -26,7 +26,8 @@ remote_userman to 'yes'. ** Miscellaneous -scripts/setup now honors command line options. +scripts/setup now honors command line options, and can set up network +play as well as the local default sound device. * Changes up to version 3.0.2 diff --git a/README.streams b/README.streams index 8fbe6c7..24756d0 100644 --- a/README.streams +++ b/README.streams @@ -5,7 +5,7 @@ get called 'streams'. * RTP Streaming -DisOrder is capable to transmitting RTP streams over a suitable network. +DisOrder is capable of transmitting RTP streams over a suitable network. ** Server Setup @@ -32,6 +32,8 @@ instance: (The destination can also be a unicast address but that's not a tested configuration.) +scripts/setup now knows how to do basic setup for network play. + ** Playing The Stream To play, use the disorder-playrtp client. If the destination address was a diff --git a/scripts/setup.in b/scripts/setup.in index e89ddb4..3bc0b45 100755 --- a/scripts/setup.in +++ b/scripts/setup.in @@ -27,6 +27,7 @@ while [ $# -gt 0 ]; do case "$opt" in -h | --help ) cat <&2 "ERROR: unknown option '$opt'" exit 1 @@ -169,6 +191,52 @@ if [ -z "$port" ]; then done fi +if [ -z "$play" ]; then + while :; do + echo + echo "How do you want to play sound? Enter 'local' to use a local sound" + echo "device or 'network' to multicast sound across your network." + read -r play + case $play in + 'local' | network ) + break + ;; + * ) + echo "Enter 'local' or 'network'" + continue + ;; + esac + done +fi + +if [ "x$play" = xnetwork ]; then + if [ -z "$mcast_address" ]; then + echo + echo "Enter destination address for network transmission" + echo "(e.g. a multicast address)" + read -r mcast_address + fi + if [ -z "$mcast_port" ]; then + while :; do + echo + echo "Enter destination port for network transmission" + read -r mcast_port + case $mcast_port in + none ) + break + ;; + [^0-9] ) + echo "'$mcast_port' is not a valid port number" + continue + ;; + * ) + break + ;; + esac + done + fi +fi + if [ -z "$smtp_server" ]; then echo echo "What host should DisOrder use as an SMTP server?" @@ -215,6 +283,9 @@ fi echo " SMTP Server: $smtp_server" echo " Sender address: $mail_sender" echo " Online registration: $register" +if [ $play = network ]; then + echo " Send sound to: $mcast_address port $mcast_port" +fi echo "Is this OK? (Enter 'y' or 'n')" read -r ok @@ -241,6 +312,9 @@ echo "user $user" >> pkgconfdir/config.new if [ $port != none ]; then echo "listen 0.0.0.0 $port" >> pkgconfdir/config.new fi +if [ $play = network ]; then + echo "broadcast $mcast_address $mcast_port" >> pkgconfdir/config.new +fi echo "smtp_server $smtp_server" >> pkgconfdir/config.new echo "mail_sender $mail_sender" >> pkgconfdir/config.new -- [mdw]