ref: 7f4adf3dde5a16f802d503408456edd63d6bf07f
parent: f903855ad3e8e8e67e5b60c3e58bfe92678a8ac4
author: cbagwell <cbagwell>
date: Mon Sep 11 11:55:17 EDT 2000
Fixing problem were we were not setting "seekable" correctly for output files.
--- a/rec
+++ /dev/null
@@ -1,138 +1,0 @@
-#!/bin/sh
-# Shell script to record sound files from unix style sound devices.
-# Should auto detect most supported systems and record the file for you.
-#
-# Originally developed by Chris Bagwell (cbagwell@sprynet.com)
-#
-# Change History:
-#
-# June 1, 1998 - Chris Bagwell (cbagwell@sprynet.com)
-# Kjetil Torgrim Homme <kjetilho@ifi.uio.no> sent in a neat patch to
-# attempt an educated guess on how to rec sound on sun hardware.
-# There is probably a better way to do it in the actual software though.
-#
-# Use the parsed out volume flag to have sox change the volume. Yes, its
-# better to use the audio devices hardware mixer to adjust volume but some
-# way is better then no way. Its still parsed seperately so people may
-# optionally pass the parameter to a mixer.
-#
-# September 7, 1998 - Chris Bagwell (cbagwell@sprynet.com)
-#
-# Updated usage checking a little more so that only one filename can
-# be given.
-#
-# January 9, 1999 - Chris Bagwell (cbagwell@sprynet.com)
-#
-# Quoted $filename so that files with spaces in their names can
-# be given.
-# Arnim Rupp patch file to work with multiple sound devices via
-# command line option.
-#
-
-# Set up path so that it can find Sox if user's path doesn't already
-# include it.
-PATH=$PATH:/usr/local/bin
-export PATH
-
-help()
-{
- echo "rec v1.5 - front end to Sox"
- echo ""
- echo "Usage: rec [ fopts ] outfile [effects]"
- echo
- echo "fopts: -c channels -d device -h -r rate -t type -v volume -s/-u/-U/-A -b/-w/-l/-f/-d/-D -x"
- echo
- echo "effects: avg/band/chorus/copy/cut/deemph/echo/echos/flanger/highp/lowp/map/mask/phaser/pick/polyphase/rate/resample/reverb/reverse/split/stat/vibro"
- echo ""
- echo "See sox man page for more info on required effects options."
-}
-
-if [ "$1" = "" ] ; then
- help; exit 1;
-fi
-
-while [ $# -ne 0 ] # loop over arguments
-do case $1 in
- avg|band|chorus|copy|cut|echo|echos|flanger|highp|lowp|map|mask|phaser|pick|pred|rate|resample|reverb|reverse|split|stat|vibro)
- effects="$@"
- break
- ;;
- -c)
- shift
- fopts="$fopts -c $1"
- ;;
- -d)
- shift
- device="$1"
- ;;
- -h)
- help;
- exit 1;
- ;;
- -r)
- shift
- fopts="$fopts -r $1"
- ;;
- -t)
- shift
- fopts="$fopts -t $1"
- ;;
- -v)
- shift
- volume="-v $1"
- ;;
- -)
- filename="-"
- ;;
- -*)
- fopts="$fopts $1"
- ;;
- *)
- if [ "$filename" = "" ]; then
- filename="$1"
- else
- echo "Filename already give. Ingoring extra name: $1"
- fi
- ;;
- esac
- shift
-done
-
-arch=`uname -s`
-
-echo "Send break (control-c) to end recording"
-
-if [ "$arch" = "SunOS" ]; then
-
- if [ "$device" = "" ]; then
- device="/dev/audio"
- fi
-
- case `arch -k` in
- sun4|sun4c|sun4d)
- # Use below for older Sun audio hardware
- sox $volume -t sunau -U -c 1 $device $fopts "$filename" $effects
- ;;
-
- *)
- # Use below for newer Sun audio hardware that supports stereo linear
- sox $volume -t sunau -w -s $device $fopts "$filename" $effects
- ;;
-
- esac
-
-else
- if [ "$arch" = "Linux" ]; then
-
- if [ "$device" = "" ]; then
- device="/dev/dsp"
- fi
-
-# Possible way to set volume
-# if [ "$volume" != "" ] ; then
-# mixer $volume
-# fi
-
- sox $volume -t ossdsp $device $fopts "$filename" $effects
- fi
-fi
--- a/src/sox.c
+++ b/src/sox.c
@@ -473,7 +473,7 @@
#if defined(DUMB_FILESYSTEM)
outformat.seekable = 0;
#else
- outformat.seekable = (filetype(fileno(informat.fp)) == S_IFREG);
+ outformat.seekable = (filetype(fileno(outformat.fp)) == S_IFREG);
#endif
st_copyformat(&informat, &outformat);