Version 0.1, 2.4.1997: - the first released version 5.4.1997: - audio sync added before changing parameters Version 0.2, 9.4.1997: - it was useless to start producer as a thread; it was made that way just for historical reasons. only consumer is threaded now. this may result as more robust behaviour. - there are min and max sizes for block now. i'm not sure yet what size for a block and the audio buffer would be good. needs more research. - fill_buffer function. fills the audio buffer before use. Version 0.2.1, 15.4.1997: - signal() seems to be a bad idea in a threaded application like this. causes kernel oops in the sound driver function audio_write (sometimes). let's have faith on the kernel and remove it. Version 0.2.2, 17.4.1997 morning: - the last block was written from very wrong point. - block counting added. this makes stream ending simpler and (hopefully) more robust. - first lines for handling underflow (buffer empty) situation. Version 0.3, 17.4.1997 afternoon: - underflow handling should work now. - function buffer_usage added. returns buffer usage in percents. nowhere used yet. - minimum block size increased to 16k. Version 0.3.1, 19.4.1997: - GNU style options. - option -v (or --version) added. - buffer usage option -u (or --usage) added. Version 0.4, 2.5.1997: - support for RIFF/WAVE (WAV) and Sun audio (AU) files. - swap endianness flag -x (or --swap) added. - verbose mode flag -V (or --verbose) added. - force raw flag -r (or --raw) added. WAV- or AU-file headers are ignored if this flag is set. Version 0.4.1, 3.5.1997: - sun header gives odd aligned starting point for sample. temporary fix. - read_big_endian_long returned wrong value if sampling rate was 44100. this caused tplay not to work with that speed when playing sun audio or wav file. fixed now. Version 0.4.2, 7.5.1997: - read_big_endian_long and similar functions: parameter's type was char* and that was a bug. changed to byte* (unsigned char *). conversion should also be saner now. - force playing -f (or --force) flag added. this makes tplay to ignore sound driver's results when changing parameters. Version 0.4.3, 12.5.1997: - binary is statically linked to LinuxThreads version 0.6 now. - print sun header comment if verbose is requested. - sun audio file's data stream starting pointer is read and set from the header. - to avoid rounding errors when playing 16bit and/or stereo (au or wav) sample, data section is moved now to the beginning of buffer before playing. Version 0.5, 23.10.1997: - set_audio_parameters() partly rewritten and changes to open_audio(). - in some WAV-files, data-portion is not started with 'data'-magic but 'INFO' instead. some players don't even check that so tplay prints just a warning message now if neither of these magics exists. Version 0.5.1, 25.10.1997: - printing of buffer usage changed from producer to consumer. this makes this silly feature a bit more informative as it is still active after the producer has stopped. underflow situation (when the big buffer needs to be refilled) is also possible to show now. Version 0.5.2, 9.5.1998: - Jerko Golubovic kindly modified the code to support those soundcards that may result slightly different sampling rate than requested. he also provided RPM of tplay. - added -D (or --device=DEVICE) flag for setting audio device to be used. - added feature to -B (or --buffer-size=SIZE) flag. buffer size can be given in seconds now, too. Version 0.5.3, 11.5.1998: - rewrite of playing routine to support multiple sound samples from command line. Version 0.5.4, 19.5.1998: - added -l (or --loop) flag to support looping sound samples. - sun port. Version 0.5.5, 24.5.1998: - added environment variable TPLAYDEV, which sets the audio device to be used. decoding of command line options is moved from main() to another function.