--------------------------------------------------------------------------------

rplay 3.1.0 major improvements and changes from rplay 3.1 (BETA3):

* Added SGI Indigo patches from Mike.Hoffmann@mch.sni.de.

* Added a newer version of Raphael's jukebox 1.2 which includes a man page.

* Added patches from Raphael to support DEC 3100's running Ultrix 4.2,
  with cc or gcc-2.4.5.
  These patches do not include audio support, however, a DEC can be used as
  a sound server.

* Added more idle information to the "list connections" display. 

--------------------------------------------------------------------------------

rplay 3.1 (BETA3) major improvements and changes from rplay 3.1 (BETA2):

* RPTP commands "play", "pause", "continue", and "stop" now accept the following
  options (similar to the rplay client):
     -P <int>  Sound priority.
     -N <int>  Number of times to play the sound list.
     -n <int>  Number of times to play each sound.
     -v <int>  Volume.

* Fixed bug which caused sounds to get stuck in the spool when the first RPTP
  server was unavailable. (mgyger@itr.ch)

* Fixed bug which caused sounds to get stuck in the spool when the TCP
  connection was lost during a sound transfer.  (quinet@montefiore.ulg.ac.be)

* The volume of low priority sounds is lowered when higher priority sounds
  are in the sound spool.  Each sound's volume is lowered depending on it's
  priority relative to the highest priority.

* sound_delete now deletes sound files.

* Sounds that are transferred by rplayd are stored in the cache using the name
  that the remote rplayd sends.  (quinet@montefiore.ulg.ac.be)

* Sound cleanup will no longer cleanup sounds that have events associated
  with them.  It took a long time to find this one!  Thanks for your slow
  network connection Raphael.

* Added SOUND_CLEANUP_TIMEOUT to include/conf.h so the cleanup timeout can be
  configured.

* Added a newer version of mailsound to the contrib directory.  The new version
  has a lot of new options.  Thanks Andrew.

* Changed PORTABLE_LONG macro to use (unsigned char *).  (mrh@io.nosc.mil)

* Added more Solaris 2.x suggestions from Kjetil Wiekhorst J{\o}rgensen
  <jorgens@pvv.unit.no>.

* Added 386bsd patches to audio.c from Mike Halderman (mrh@io.nosc.mil).
  The 386bsd patches require the soundblaster driver version 1.5 written by
  Steve Haehnichen (shaehnic@ucsd.edu).

--------------------------------------------------------------------------------

rplay 3.1 (BETA2) major improvements and changes from rplay 3.1 (BETA):

* Fixed bug in rplayd's "put" implementation. (quinet@montefiore.ulg.ac.be)

* Fixed segmentation violation when rplayd had no rplay.servers.
  (quinet@montefiore.ulg.ac.be)

* The rptp client now handles IP addresses correctly and deals with
  connections being closed and timed out much better.

* Corrected many mistakes in the documentation.
  (quinet@montefiore.ulg.ac.be) (mgyger@itr.ch)

* Added '!' (RPTP_TIMEOUT) as an RPTP response type.  

* Added RPTP_ERROR_TIMEOUT to the possible rptp_errno values.

* Fixed server timeout handling in rplayd.

* Fixed a nasty bug in rptp_getline.

* Added the use of the RPLAY_HOST environment variable.  The host defined by
  RPLAY_HOST specifies a default rplay host.  When RPLAY_HOST is not defined
  localhost will be used.  The new rplay library routine
  char *rplay_default_host(void) can be used to obtain the default rplay host.

* Changed the -h option in the rplay client.  -h is now used to specify an
  rplay host.  Now a hostname does not have to be specified.  For example:

     "rplay bogus.au" uses RPLAY_HOST or localhost.

     "rplay -h bozo bogus.au" uses bozo.

* Changed the -h option in the rptp client.  -h is now used to specify an
  rptp host.  Now a hostname does not have to be specified.  For example:

     "rptp" uses RPLAY_HOST or localhost port 55556.

     "rptp -h bozo" uses RPLAY_HOST port 55556.

* Removed the -h option from rplayd to be consistent with the other programs.
  -h will still display the usage information in all the programs since
  either an option is required or the option is not valid.

* Added int rplay_default(char *sound) to the rplay library.

* Cleaned up rplayd's memory usage.  Sounds are now unmapped when the audio
  device is closed.

* Fixed a bug in rplayd's event handling routines.  Now sounds that are
  being transferred don't get stuck in the spool.

* Comments were moved in Makefile.config to avoid bugs in some versions of
  make.  (sinster@scintilla.santa-clara.ca.us)

* The mail command used by "make mail" is now defined in Makefile.conf.

* Added more fixes for HP-UX. (mgyger@itr.ch)

* Added int rplay_open_default(void) to the rplay library.

* Added jukebox version 1.2 to the contrib directory.  Thanks again Raphael.

--------------------------------------------------------------------------------

rplay 3.1 (BETA) major improvements and changes from rplay 3.0 PL2:

(This release has many changes so I probably have forgotten some of them.)

* Completely re-organized the rplay source tree.

* Designed and implemented RPTP.  This includes writing the RPTP client and
  adding RPTP support to rplayd.  Please read doc/README.RPTP if you want
  to learn more about RPTP.

* Added the following routines to librplay:

  int rplay_host_volume(char *host, char *sound, int volume)
  int rplay_open_sockaddr_in(struct sockaddr_in *saddr)
  int rplay_ping(char *host)
  int rplay_ping_sockfd(int rplay_fd)
  int rplay_ping_sockaddr_in(struct sockaddr_in *saddr)
  int rptp_open(char *host, int port, char *response, int response_size)
  int rptp_read(int rptp_fd, char *ptr, int nbytes)
  int rptp_write(int rptp_fd, char *ptr, int nbytes)
  int rptp_putline(int rptp_fd, char *fmt, ...)
  int rptp_getline(int rptp_fd, char *buf, int nbytes)
  int rptp_command(int rptp_fd, char *command, char *response,int response_size)
  int rptp_close(int rptp_fd)
  void rptp_perror(char *message)

* Added the RPLAY_PING attribute to the RPLAY protocol.  This attribute is used
  by RPTP to wakeup rplayd since inetd can invoke one program using two ports.

* Now using the GNU General Public License Version 2.

* Add the rplay.servers file which lists the rplay servers that rplayd should
  contact to obtain sound files.

* Implemented the sound cache where rplayd will store sound files it obtains.

* Changed the format of the rplay.hosts file to accept wildcards and access
  permissions.

* Fixed a bug that caused some rplay packets to incorrectly have permission
  denied.

* Changed rplayd to accept sounds which are not in the rplay.conf and are
  available locally.  For example, is /tmp/foo.au is not in the rplay.conf
  it can still be played using 'rplay hostname /tmp/foo.au".

* Changed include/conf.h to '#define AUTH' by default.

* Switched to Darren Senn's hsearch implementation.

* Included Darren Senn's PORTABLE_LONG macro which is useful when examining
  ulaw file headers on multiple architectures.

* Wrote some manual pages which are in the doc directory.

* Updated doc/README.LIBRPLAY to included the new RPTP extensions.

* Added a NEW version of mailsound to the contrib directory.  The new version
  has a lot of new options.  Thanks Andrew.

* Added crossfire to the contrib directory.

* Added HP-UX patches from rkl@csc.liv.ac.uk (Richard Lloyd) and
  Markus Gyger <mgyger@itr.ch>.

* Conversion tables are now used for both ulaw->linear and linear->ulaw.
  The tables were contributed by Markus Gyger <mgyger@itr.ch>.

* Headerless ulaw files can still be played if their filename extension is
  either .au, .u, or .ul as suggested by Markus Gyger <mgyger@itr.ch>.

* Added Solaris 2.x patches from Kjetil Wiekhorst J{\o}rgensen
  <jorgens@pvv.unit.no>.

--------------------------------------------------------------------------------

rplay 3.0 PL2 major improvements and changes from rplay 3.0 PL1:

* Use strchr and strrchr instead of index and rindex.

* Added -r (random pick) option to the rplay client.

* Added RPLAY_RANDOM_SOUND attribute which will pick a sound randomly from
  a sound list.  See README.LIBRPLAY for an example.

* Added jukebox to the contrib directory.  See contrib/jukebox1.1/README for
  more details.  (Thanks quinet@montefiore.ulg.ac.be)

* Changed rplayd to handle filenames with spaces correctly.

* Fixed librplay.c and rplayd.c prototypes to support non ANSI C compilers.
  (Thanks infmx!cheetah!dranney@uunet.UU.NET)

* Added the following to the rplay library to make playing sounds even easier:
  (See README.LIBRPLAY for more information)

  int rplay_open_display(void);
  int rplay_display(char *sound);
  int rplay_local(char *sound);
  int rplay_host(char *host, char *sound);
  int rplay_sound(int rplay_fd, char *sound);

--------------------------------------------------------------------------------

rplay 3.0 PL1 major improvements and changes from rplay 3.0:

* Changed conf.h to '#undef AUTH' (host authentication).

* Changed rplay_set to strdup() sound filenames.

* Added -n (count), -N (list count), and -P (priority) options to the rplay
  client.

* Added RPLAY_PRIORITY attribute.  Priorities range from 0 to 255 (0 being
  the lowest priority).  Sounds with higher priorities will replace lower
  priority sounds when the sound spool is full.

* Sounds can be referenced using complete pathnames.  This helps to avoid
  problems when different sound files have the same name.

* Sound filename extensions are now optional.  If extensions are used they
  are enforced.

* Added RPLAY_LIST_COUNT attribute.  The sound list will be played count
  number of times.

* Added RPLAY_COUNT attribute.  Each sound in a sound list will be played
  count number of times.

* Fixed select's usage of timeval struct.  (sinster@scintilla.santa-clara.ca.us)

* Cleaned up the code a little.  Added better ANSI C support and put in
  a little more documentation.

* Fixed some spelling mistakes.

* Removed -V option from the rplay client.

--------------------------------------------------------------------------------

rplay 3.0 major improvements and changes from rplay 2.0:

* rplayd is no longer based on Sun's lwp library.  This will make rplay
  portable to machines other than SPARCstations.  Hopefully soon rplay will
  work with BSDI, Linux, and maybe 386bsd.  Only 8 bit ulaw audio files are 
  currently supported.

* The rplay library has been rewritten and is now much more flexible for rplay
  additions.  This new library is not compatible with the rplay2.0 library,
  what I mean is that old rplay programs will not compile.
  See WARNING and README.LIBRPLAY for conversion help.  

* A more flexible rplay protocol is used.  The rplay2.0 protocol can still 
  be supported.  See conf.h.

* Host authentication can be used to allow only certain machines access to
  play sounds.  See conf.h and INSTALL.

* Compile time option to use mmap or malloc and read to load sound files.
  See conf.h.

* inetd support can be disabled with a command line option

* rplayd timeouts can be changed or disabled with command line options

* rplayd has many other options, run rplay -h to see them.

* rplayd speed enhancements

--------------------------------------------------------------------------------

rplay 2.0 major improvements and changes from rplay 1.2:

* Sounds are no longer indexed by id, the sound names are now used.

* Sounds can be played, paused, continued, and stopped.

* Each sound can have a volume associated with it.  A volume is
  a number between 0 and 255 and it is relative to the actual volume
  of the audio device.

* Sequences of sounds are supported.  This is useful for playing
  sentences or sounds that need to be played sequentially.

* mmap is now used to read sounds.  This increases performance
  and saves a lot of memory.  Thanks to stripes@pix.com for this
  suggestion.

* Broadcasting sounds.  To use this just use a broadcast address
  instead of a hostname.  For example, I use:
  rplay 130.191.255.255 burp.au
  to play burp.au on all our machines running rplayd on our subnet.

* The Sun audio stuff is no longer used.  Thanks to libst.c and 
  libst.h from Sound Tools.  See these files for more information.

