speak_freely port from angelos@openbsd.org

This commit is contained in:
marc 1998-09-14 02:48:34 +00:00
parent 65dfc05975
commit 5c8d67c6a0
11 changed files with 508 additions and 0 deletions

View File

@ -0,0 +1,40 @@
# $OpenBSD: Makefile,v 1.1.1.1 1998/09/14 02:48:34 marc Exp $
#
DISTNAME= speak_freely-6.1c
CATEGORIES= mbone audio security
MASTER_SITES= http://www.fourmilab.ch/speakfree/unix/
MAINTAINER= angelos@openbsd.org
LIB_DEPENDS= gsm\\.1\\.0:${PORTSDIR}/audio/gsm
UTILS= sfspeaker sfmike sflwl
DEMNS= sfecho sflwld
DDEMNS= sfvod
SFLIB= ${PREFIX}/lib/speak_freely
MAN1= ${UTILS:S/$/.1/} ${DEMNS:S/$/.1/} ${DDEMNS:S/$/.1/}
do-install:
if [ ! -d ${SFLIB} ]; then \
install -d -o ${BINOWN} -g ${BINGRP} -m 755 ${SFLIB}; \
fi
cd ${WRKSRC}; \
$(INSTALL_DATA) busy.au ring.au ${SFLIB}
cd ${WRKSRC}; \
for p in ${UTILS}; do \
$(INSTALL_PROGRAM) $$p ${PREFIX}/bin; \
$(INSTALL_MAN) $$p.1 ${PREFIX}/man/man1; \
done;
cd ${WRKSRC}; \
for p in ${DEMNS}; do \
$(INSTALL_PROGRAM) $$p ${PREFIX}/sbin; \
$(INSTALL_MAN) $$p.1 ${PREFIX}/man/man1; \
done;
cd ${WRKSRC}; \
for p in ${DDEMNS}; do \
$(INSTALL_SCRIPT) $$p ${PREFIX}/sbin; \
$(INSTALL_MAN) $$p.1 ${PREFIX}/man/man1; \
done;
.include <bsd.port.mk>

View File

@ -0,0 +1 @@
MD5 (speak_freely-6.1c.tar.gz) = 52f42e45bd78ddd069c8ef81d8bc8e83

View File

@ -0,0 +1,191 @@
*** Makefile.orig Mon Jul 21 17:06:21 1997
--- Makefile Wed Sep 24 02:36:37 1997
***************
*** 32,40 ****
# THREADS, you can also remove the "-lpthread" library specification
# from the LFLAGS line, which may cause an error if the system does
# not include the POSIX threads library.
! CC = cc -fsingle # for Sun Compiler
! CCFLAGS = -DSolaris -DTHREADS
! LFLAGS = -lcurses -lsocket -lnsl -lm -lpthread
# FreeBSD 2.2 courtesy of Andrey A. Chernov
#
--- 32,40 ----
# THREADS, you can also remove the "-lpthread" library specification
# from the LFLAGS line, which may cause an error if the system does
# not include the POSIX threads library.
! #CC = cc -fsingle # for Sun Compiler
! #CCFLAGS = -DSolaris -DTHREADS
! #LFLAGS = -lcurses -lsocket -lnsl -lm -lpthread
# FreeBSD 2.2 courtesy of Andrey A. Chernov
#
***************
*** 46,53 ****
# Depending on how your driver handles non-blocking I/O,
# you may also have to add -DAUDIO_BLOCKING to the
# CCFLAGS line.
! #CCFLAGS = -DM_LITTLE_ENDIAN
! #LFLAGS = -lcurses -ltermcap -lcompat -lm
# ** Linux users please note: many Linux audio drivers are
# half-duplex, even through your sound card may actually
--- 46,54 ----
# Depending on how your driver handles non-blocking I/O,
# you may also have to add -DAUDIO_BLOCKING to the
# CCFLAGS line.
! PREFIX=/usr/local
! CCFLAGS = -DM_LITTLE_ENDIAN
! LFLAGS = -L${PREFIX}/lib -lcurses -ltermcap -lcompat -lm -lossaudio
# ** Linux users please note: many Linux audio drivers are
# half-duplex, even through your sound card may actually
***************
*** 78,87 ****
# Where Perl is located on your system. This is used to make
# a directly-executable version of sfvod.
! PERL = /usr/local/bin/perl
# If your audio hardware is half duplex, uncomment the next line
! #DUPLEX = -DHALF_DUPLEX
# If your getdomainname() does not return the DNS domainname, define:
#DOMAIN=-DMYDOMAIN=\"somedomain.net\"
--- 79,88 ----
# Where Perl is located on your system. This is used to make
# a directly-executable version of sfvod.
! PERL = /usr/bin/perl
# If your audio hardware is half duplex, uncomment the next line
! DUPLEX = -DHALF_DUPLEX
# If your getdomainname() does not return the DNS domainname, define:
#DOMAIN=-DMYDOMAIN=\"somedomain.net\"
***************
*** 108,118 ****
CARGS = -DInternet_Port=$(INTERNET_PORT)
#DEBUG = -g -DHEXDUMP
! DEBUG = -O
# Compiler flags
! CFLAGS = $(DEBUG) -Iadpcm -Ilpc -Igsm/inc -Imd5 -Iidea -Ilibdes $(CARGS) $(DUPLEX) $(CCFLAGS) $(DOMAIN)
PROGRAMS = sfspeaker sfmike sflwld sflwl sfecho sfvod
--- 109,127 ----
CARGS = -DInternet_Port=$(INTERNET_PORT)
#DEBUG = -g -DHEXDUMP
! #DEBUG = -O
!
! .if exists(/usr/lib/libdes.a)
! LDES=-ldes
! IDES=
! .else
! LDES=libdes/libdes.a
! IDES=-Ilibdes
! .endif
# Compiler flags
! CFLAGS += $(DEBUG) -Iadpcm -Ilpc -Iidea $(IDES) -I/usr/include -I${PREFIX}/include $(CARGS) $(DUPLEX) $(CCFLAGS) $(DOMAIN)
PROGRAMS = sfspeaker sfmike sflwld sflwl sfecho sfvod
***************
*** 120,132 ****
SPKROBJS = speaker.o codecs.o deskey.o g711.o rate.o rtpacket.o soundbyte.o ulaw.o usleep.o vatpkt.o vox.o hp_audio.o
! sfspeaker: $(SPKROBJS) adpcmlib.o lpclib.o lpc10lib.o gsmlib.o deslib.o md5lib.o idealib.o libdes.o xdsub.o
! $(CC) $(SPKROBJS) adpcm/adpcm-u.o des/des.o md5/md5.o idea/idea.o lpc10/liblpc10.a gsm/lib/libgsm.a lpc/lpc.o xdsub.o libdes/libdes.a $(LFLAGS) -o sfspeaker
MIKEOBJS = mike.o codecs.o deskey.o g711.o rate.o rtpacket.o soundbyte.o ulaw.o usleep.o vatpkt.o xdsub.o hp_audio.o
! sfmike: $(MIKEOBJS) adpcmlib.o lpclib.o lpc10lib.o gsmlib.o deslib.o md5lib.o idealib.o libdes.o
! $(CC) $(MIKEOBJS) adpcm/adpcm-u.o des/des.o md5/md5.o idea/idea.o -lm lpc10/liblpc10.a gsm/lib/libgsm.a lpc/lpc.o libdes/libdes.a $(LFLAGS) -o sfmike
LWLDOBJS = lwld.o xdsub.o
--- 129,141 ----
SPKROBJS = speaker.o codecs.o deskey.o g711.o rate.o rtpacket.o soundbyte.o ulaw.o usleep.o vatpkt.o vox.o hp_audio.o
! sfspeaker: $(SPKROBJS) adpcmlib.o lpclib.o lpc10lib.o deslib.o idealib.o libdes.o xdsub.o
! $(CC) $(SPKROBJS) adpcm/adpcm-u.o des/des.o idea/idea.o lpc10/liblpc10.a -lgsm -lossaudio lpc/lpc.o xdsub.o $(LDES) $(LFLAGS) -o sfspeaker
MIKEOBJS = mike.o codecs.o deskey.o g711.o rate.o rtpacket.o soundbyte.o ulaw.o usleep.o vatpkt.o xdsub.o hp_audio.o
! sfmike: $(MIKEOBJS) adpcmlib.o lpclib.o lpc10lib.o deslib.o idealib.o libdes.o
! $(CC) $(MIKEOBJS) adpcm/adpcm-u.o des/des.o idea/idea.o -lm lpc10/liblpc10.a -lgsm -lossaudio lpc/lpc.o $(LDES) $(LFLAGS) -o sfmike
LWLDOBJS = lwld.o xdsub.o
***************
*** 140,147 ****
ECHOOBJS = echo.o codecs.o g711.o rtpacket.o ulaw.o xdsub.o
! sfecho: $(ECHOOBJS) md5lib.o
! $(CC) $(ECHOOBJS) md5/md5.o adpcm/adpcm-u.o lpc/lpc.o $(LFLAGS) -o sfecho
sfvod: sfvod.pl
echo \#\! $(PERL) >sfvod
--- 149,156 ----
ECHOOBJS = echo.o codecs.o g711.o rtpacket.o ulaw.o xdsub.o
! sfecho: $(ECHOOBJS)
! $(CC) $(ECHOOBJS) adpcm/adpcm-u.o lpc/lpc.o $(LFLAGS) -o sfecho
sfvod: sfvod.pl
echo \#\! $(PERL) >sfvod
***************
*** 157,167 ****
chmod 755 sfvod
adpcmlib.o:
! ( echo "Building ADPCM library."; cd adpcm ; make CC="$(CC)" )
echo "ADPCM" >adpcmlib.o
libdes.o:
( echo "Building LIBDES library."; cd libdes ; make -f Makefile.sf CC="$(CC) $(CCFLAGS) $(DEBUG)" )
echo "LIBDES" >libdes.o
lpclib.o:
--- 166,178 ----
chmod 755 sfvod
adpcmlib.o:
! ( echo "Building ADPCM library."; cd adpcm ; make CC="$(CC) $(CCFLAGS)" )
echo "ADPCM" >adpcmlib.o
libdes.o:
+ .if !exists(/usr/lib/libdes.a)
( echo "Building LIBDES library."; cd libdes ; make -f Makefile.sf CC="$(CC) $(CCFLAGS) $(DEBUG)" )
+ .endif
echo "LIBDES" >libdes.o
lpclib.o:
***************
*** 185,191 ****
echo "MD5" >md5lib.o
idealib.o:
! ( echo "Building IDEA library."; cd idea ; make CC="$(CC)" )
echo "IDEA" >idealib.o
codecs.o: codecs.c speakfree.h
--- 196,202 ----
echo "MD5" >md5lib.o
idealib.o:
! ( echo "Building IDEA library."; cd idea ; make CC="$(CC) $(CCFLAGS)" )
echo "IDEA" >idealib.o
codecs.o: codecs.c speakfree.h

View File

@ -0,0 +1,15 @@
*** lpc/lpc.c.bak Tue Apr 23 14:33:25 1996
--- lpc/lpc.c Fri Oct 25 17:43:12 1996
***************
*** 8,15 ****
--- 8,17 ----
#if defined(Solaris) || defined(HEWLETT_PACKARD) || defined(__FreeBSD__)
#include <stdlib.h>
+ #ifndef __FreeBSD__
#define random lrand48
#define bcopy(a, b, n) memmove(b, a, n)
+ #endif
#endif
#define MAXWINDOW 1000 /* Max analysis window length */

View File

@ -0,0 +1,14 @@
*** mike.c.orig Tue Apr 23 14:45:52 1996
--- mike.c Fri Oct 25 19:11:15 1996
***************
*** 687,692 ****
--- 687,695 ----
(sb->buffer.buffer_len > 16)) {
pktlen += sizeof(sb->sendinghost);
}
+ /* must stay in network order for debugging output */
+ sb->compression = htonl(sb->compression);
+ sb->buffer.buffer_len = htonl(sb->buffer.buffer_len);
}
}
}

View File

@ -0,0 +1,74 @@
*** adpcm/Makefile.bak Fri Sep 1 14:58:19 1995
--- adpcm/Makefile Fri Oct 25 18:55:46 1996
***************
*** 1,7 ****
#
# Makefile for adpcm and test programs
# -------------------
! CFLAGS=-O -I..
# May need this on a sun:
#CFLAGS=-O -I/usr/demo/SOUND
--- 1,7 ----
#
# Makefile for adpcm and test programs
# -------------------
! CFLAGS+=-I..
# May need this on a sun:
#CFLAGS=-O -I/usr/demo/SOUND
*** des/Makefile.bak Thu Nov 2 22:38:58 1995
--- des/Makefile Fri Oct 25 18:55:46 1996
***************
*** 1,4 ****
! CFLAGS=-O
all: des.o
--- 1,4 ----
! #CFLAGS=-O
all: des.o
*** idea/Makefile.bak Wed Aug 2 22:39:19 1995
--- idea/Makefile Fri Oct 25 18:55:46 1996
***************
*** 6,13 ****
# Compiler flags
! CC = cc
! CFLAGS = -O
all: idea.o
--- 6,13 ----
# Compiler flags
! #CC = cc
! #CFLAGS = -O
all: idea.o
*** libdes/Makefile.bak Wed Apr 17 23:49:33 1996
--- libdes/Makefile Fri Oct 25 18:55:46 1996
***************
*** 30,37 ****
OPTS= $(OPTS0) $(OPTS1) $(OPTS2)
! CC=cc
! CFLAGS= -O $(OPTS) $(CFLAG)
#CC=gcc
#CFLAGS= -O3 -fomit-frame-pointer $(OPTS) $(CFLAG)
--- 30,37 ----
OPTS= $(OPTS0) $(OPTS1) $(OPTS2)
! #CC=cc
! CFLAGS+= $(OPTS) $(CFLAG)
#CC=gcc
#CFLAGS= -O3 -fomit-frame-pointer $(OPTS) $(CFLAG)

View File

@ -0,0 +1,135 @@
*** soundbyte.c.orig Wed Mar 5 15:04:49 1997
--- soundbyte.c Wed Sep 9 19:21:21 1998
***************
*** 15,21 ****
--- 15,23 ----
#ifdef Solaris
#include <sys/filio.h>
#else
+ #ifndef __FreeBSD__
#include <sys/dir.h>
+ #endif
#include <sys/file.h>
#endif
***************
*** 33,38 ****
--- 35,42 ----
#else /* FreeBSD / Linux */
#ifdef LINUX
#include <linux/soundcard.h>
+ #elif __OpenBSD__
+ #include <soundcard.h>
#else
#include <machine/soundcard.h>
#endif
***************
*** 72,77 ****
--- 76,83 ----
static unsigned char *playbuf= NULL; /* Current play pointer */
static int squelch = 0; /* Squelch value */
+ void soundplayvol();
+
/* Convert local gain into device parameters */
static unsigned scale_gain(g)
***************
*** 96,101 ****
--- 102,112 ----
}
#endif
+ #ifndef sun
+ #ifdef HALF_DUPLEX
+ static int oldvol = -1;
+ #endif
+ #endif
/* SOUNDINIT -- Open the sound peripheral and initialise for
access. Return TRUE if successful, FALSE
***************
*** 145,150 ****
--- 156,176 ----
}
ioctl(Audio_fd, AUDIO_SETINFO, &Audio_info);
#endif
+ #ifndef sun
+ #ifdef HALF_DUPLEX
+ if (iomode == O_RDONLY) {
+ if (oldvol == -1)
+ oldvol = soundgetvol();
+ soundplayvol(0);
+ } else if ( iomode == O_WRONLY
+ && oldvol != -1
+ ) {
+ if (soundgetvol() == 0)
+ soundplayvol(oldvol);
+ oldvol = -1;
+ }
+ #endif
+ #endif
return TRUE;
}
if (errno != EINTR) {
***************
*** 160,165 ****
--- 186,200 ----
void soundterm()
{
if (audiof >= 0) {
+ #ifndef sun
+ #ifdef HALF_DUPLEX
+ if (oldvol != -1) {
+ if (soundgetvol() == 0)
+ soundplayvol(oldvol);
+ oldvol = -1;
+ }
+ #endif
+ #endif
if (close(audiof) < 0) {
perror("closing audio device");
}
***************
*** 210,219 ****
arg = (value << 8) | value;
! if (ioctl(Audio_fd, MIXER_WRITE(SOUND_MIXER_PCM), &arg) < 0)
! perror("SOUND_MIXER_PCM");
#endif
}
/* SOUNDRECGAIN -- Set recording gain from 0 (minimum) to 100 (maximum). */
--- 245,274 ----
arg = (value << 8) | value;
! if (ioctl(Audio_fd, SOUND_MIXER_WRITE_PCM, &arg) < 0)
! perror("SOUND_MIXER_WRITE_PCM");
#endif
}
+
+ #ifndef sun
+ #ifdef HALF_DUPLEX
+
+ /* SOUNDGETVOL -- Get current playback volume. */
+
+ int soundgetvol()
+ {
+ int arg, v1, v2;
+
+ if (ioctl(Audio_fd, SOUND_MIXER_READ_PCM, &arg) < 0) {
+ perror("SOUND_MIXER_READ_PCM");
+ return -1;
+ }
+ v1 = arg & 0xFF;
+ v2 = (arg >> 8) & 0xFF;
+ return (v1 > v2) ? v1 : v2;
+ }
+ #endif
+ #endif
/* SOUNDRECGAIN -- Set recording gain from 0 (minimum) to 100 (maximum). */

View File

@ -0,0 +1,15 @@
*** speakfree.h.orig Wed Sep 9 19:19:40 1998
--- speakfree.h Wed Sep 9 19:20:01 1998
***************
*** 18,23 ****
--- 18,27 ----
#define BSD_like
#endif
+ #ifdef __OpenBSD__
+ #define BSD_like
+ #endif
+
#ifdef sgi
#define _BSD_SIGNALS
#endif

View File

@ -0,0 +1 @@
Voice Communication Over Data Networks.

View File

@ -0,0 +1,8 @@
Speak Freely allows users of a variety of Unix and Unix-
like workstations equipped with audio hardware connected
by a network to converse, using the audio input and output
facilities of the workstation to digitise and later recon-
struct the sound and the network to relay sound packets.
Optional compression is provided, allowing conversations
over relatively low-bandwidth Internet links as well as
local area networks.

View File

@ -0,0 +1,14 @@
bin/sfspeaker
bin/sfmike
bin/sflwl
sbin/sfecho
sbin/sflwld
sbin/sfvod
lib/speak_freely/ring.au
lib/speak_freely/busy.au
man/man1/sfecho.1
man/man1/sflwl.1
man/man1/sflwld.1
man/man1/sfmike.1
man/man1/sfspeaker.1
man/man1/sfvod.1