| History log of /src/usr.bin/audio/record/record.c | 
    | Revision |  | Date | Author | Comments | 
| 1.59 |  | 20-Mar-2024 | mrg | match message & conversion function name properly. 
 probably should make this into an array with two members.
 
 | 
| 1.58 |  | 27-Feb-2024 | gson | Clean up lines containing only spaces. 
 | 
| 1.57 |  | 15-Apr-2023 | mlelstv | Add support for recording 24bit wav files. 
 | 
| 1.56 |  | 09-Jan-2022 | mlelstv | branches:  1.56.2; Let user gracefully abort recording with SIGINT.
 
 | 
| 1.55 |  | 01-Jun-2021 | riastradh | audiorecord(1): Handle read(2) return value gracefully. 
 | 
| 1.54 |  | 05-Aug-2015 | mrg | branches:  1.54.8;  1.54.18; rename struct write_info as struct track_info, and the variable name 'wi'
 as 'ti', as this info is useful for reading as well.
 
 | 
| 1.53 |  | 30-Aug-2013 | mrg | move most of the header writing code from record.c into wav.c and sun.c. 
 introduce a struct write_info for communication between front ends and
 backends.
 
 libaudio API is still pretty ugly, and needs to stay local here for now,
 but it is a little more usable for other tools now.
 
 | 
| 1.52 |  | 21-Sep-2011 | christos | branches:  1.52.2;  1.52.8; PR/45384: Henning Petersen: Swapped arguments in lseek
 
 | 
| 1.51 |  | 28-Aug-2011 | joerg | ANSIfy. Add static. Add __dead. 
 | 
| 1.50 |  | 29-Dec-2010 | wiz | Sort usage. 
 | 
| 1.49 |  | 29-Dec-2010 | jmcneill | allow for buffer sizes < 32k 
 | 
| 1.48 |  | 29-Dec-2010 | mrg | add a new "-B buffersize" flag to both audioplay and audiorecord. suggested by jmcneill@.
 
 sort audioplay manual some.
 
 | 
| 1.47 |  | 11-Apr-2009 | lukem | fix -Wsign-compare and other WARNS=4 issues 
 | 
| 1.46 |  | 29-May-2008 | mrg | branches:  1.46.6; remove clause #3 from my license where there are no other
 copyright holders involved.
 
 | 
| 1.45 |  | 15-Dec-2007 | perry | branches:  1.45.4;  1.45.6; convert __attribute__s to applicable cdefs.h macros
 
 | 
| 1.44 |  | 05-Oct-2007 | lukem | Convert to raise_default_signal(3). 
 | 
| 1.43 |  | 11-May-2006 | mrg | branches:  1.43.12; variable signed/unsigned cleanup.
 
 | 
| 1.42 |  | 09-May-2006 | gson | Do not treat all file names of length 1 as meaning standard output. 
 | 
| 1.41 |  | 13-Jul-2005 | mrg | play.c: allow empty files to exit gracefully rather than with an error of "header seems really large".  reported by wiz.
 
 record.c: don't use total_size in the header if is -1 (it's initial value)
 
 | 
| 1.40 |  | 05-Jul-2005 | mrg | move some more processing before opening the audio device.  don't default the encoding to ulaw; default it to what ever the device
 has.  the latter fixes PR#30612.
 
 | 
| 1.39 |  | 05-Jul-2005 | mrg | check that an output file is given before doing any other work. avoids touching the audio device and then printing an error.
 
 | 
| 1.38 |  | 19-Jul-2004 | mycroft | branches:  1.38.2; Convert 8-bit signed linear data to unsigned for .wav files.
 
 | 
| 1.37 |  | 19-Jul-2004 | mycroft | Fix fencepost errors in the conversion functions (making them a bit more like the kernel versions).
 
 | 
| 1.36 |  | 21-Oct-2003 | fvdl | branches:  1.36.2; Don't set an int to NULL.
 
 | 
| 1.35 |  | 07-Aug-2003 | wiz | Sort usage, and move a word. 
 | 
| 1.34 |  | 21-Jul-2003 | mrg | fix a now-wrong comment. 
 | 
| 1.33 |  | 23-Jun-2003 | agc | Add NetBSD RCS Ids. 
 | 
| 1.32 |  | 27-Dec-2002 | mrg | - decode_int(): always use base 10, so that a time of "1:09" works. - decode_time(): 60 seconds in a minute, really.
 both from tsarna@netbsd.org.
 
 - be verbose about the time we are going to record for, if verbose.
 
 | 
| 1.31 |  | 13-Oct-2002 | mrg | if the output file is called *.wav, output a WAV file. 
 | 
| 1.30 |  | 20-Jul-2002 | grant | sweep of errx/warnx, remove unnecessary trailing \n 
 | 
| 1.29 |  | 20-Jul-2002 | mrg | fix an error message. 
 | 
| 1.28 |  | 21-Mar-2002 | uwe | _PATH_SOUND0 should be opened O_RDONLY (obvious pasto). 
 | 
| 1.27 |  | 10-Feb-2002 | mrg | - add a AUDIO_FORMAT_DEFAULT.  use it.  don't change functionity. 
 - fix the function selection in sunau conversions.
 
 - be more verbose when given -V.  (hi lennart! :)
 
 | 
| 1.26 |  | 10-Feb-2002 | mrg | apply the same fix as the previous to WAV output creation. 
 | 
| 1.25 |  | 10-Feb-2002 | mrg | convert the host (non _LE or _BE) encodings we can, as well.  fixes part of PR#12809...
 
 | 
| 1.24 |  | 05-Feb-2002 | augustss | Test for default device in a portable way.  Thanks to Michael Ericsson for spotting the problem.
 
 | 
| 1.23 |  | 02-Feb-2002 | jdolecek | Retire -C, do all the ioctls on same audio device we do i/o 
 | 
| 1.22 |  | 31-Jan-2002 | augustss | Use _PATH_SOUND etc, all fall back to _PATH_SOUND0 (etc.) if that fails. 
 | 
| 1.21 |  | 15-Jan-2002 | mrg | - WARNS=3 (from ross@netbsd.org) - fix a bug in WAV conversions
 
 | 
| 1.20 |  | 15-Jan-2002 | mrg | WAV seems to be signed only; convert unsigned samples. 
 | 
| 1.19 |  | 15-Jan-2002 | mrg | for sun output files, if we have unsigned or little endian data, convert it to signed big endian data.  pull in a modified copy of the kernels'
 auconv.[ch] to help with this (and remove some home grown code that did
 some of the same things.)
 
 | 
| 1.18 |  | 15-Jan-2002 | mrg | - add signed linear support to audiorecord's WAV support. - swap big endian samples for WAV.
 - update audioplay(1) and audiorecord(1) audio driver xrefs.
 
 XXX fix support for unsigned linear samples -- it seems they need
 to be converted to signed for WAV???
 
 | 
| 1.17 |  | 15-Jan-2002 | mrg | - add rudimentary "wav" recording support: don't think it copes with big-endian systems properly yet -- need to add RIFX support or swap
 samples while writing.  more on this coming soon.
 
 - new "-F <format>" option for audiorecord.  supported values of <format>
 are "sun", "wav" and "none", plus a few aliases.
 
 - split sun & wav support out into their own files.
 
 - don't assume that WAV header elements are properly aligned for the
 type of data they hold.
 
 XXX: still need to clean up libaudio interfaces a lot.
 
 | 
| 1.16 |  | 07-Jun-2001 | mrg | only warn about not writing the sun header once. PR#12809 
 | 
| 1.15 |  | 02-May-2001 | minoura | X68k built-in voice synthesizer supports 4bit ADPCM. 
 | 
| 1.14 |  | 19-Feb-2001 | cgd | convert to use getprogname() 
 | 
| 1.13 |  | 05-Feb-2001 | christos | fix nested extern 
 | 
| 1.12 |  | 22-Dec-2000 | mrg | de-__P()-ify 
 | 
| 1.11 |  | 13-Dec-2000 | mrg | libaudio: - rename audio_get_sun_encoding() to audio_sun_to_encoding()
 - add audio_encoding_to_sun()
 play.c:
 - adapt
 record.c:
 - convert NetBSD encoding to sun encoding if possible, otherwise don't
 output a header at all.
 fixes PR#10380 from Michael Eriksson <eramore@era-t.ericsson.se>.
 
 | 
| 1.10 |  | 02-Feb-2000 | dmcmahill | branches:  1.10.4; When no -e flag is used to specify the encoding, default to "ulaw".  This
 fixes PR bin/9329.  Thanks to Wolfgang Rupprecht (wolfgang@wsrcc.com)
 for filing the PR and identifying the bug.  This change is slightly different
 than the one provided in the PR.
 
 Also, document the default encoding in the manpage.
 
 This default is consistent with the default for audiorecord under solaris.
 
 | 
| 1.9 |  | 08-Nov-1999 | kleink | When we have to print usage instructions, don't indicate success in the exit status.
 
 | 
| 1.8 |  | 27-Sep-1999 | mrg | run forever if no -t is specified, from dan mcmahill 
 | 
| 1.7 |  | 23-Sep-1999 | dmcmahill | branches:  1.7.2; fix -t option
 
 | 
| 1.6 |  | 13-Jul-1999 | kleink | If not specified on the command line, attempt to fall back to the environment variables AUDIODEVICE (for -d) and AUDIOCTLDEVICE (for -C, already used in
 audioctl(1)) before falling back to _PATH_* constants.
 
 | 
| 1.5 |  | 19-Jun-1999 | itohy | Fix -C behavior. 
 | 
| 1.4 |  | 27-Mar-1999 | mrg | branches:  1.4.2; expand usage message to reality.
 
 | 
| 1.3 |  | 27-Mar-1999 | mrg | make recording precision/encoding setting sane. 
 | 
| 1.2 |  | 26-Mar-1999 | mrg | add missing copyrights. 
 | 
| 1.1 |  | 26-Mar-1999 | mrg | add audiorecord and audioplay tools.  audioplay does .au and .wav files.  audiorecord makes .au files only.  uses parts of audioctl.. 
 | 
| 1.4.2.5 |  | 02-Feb-2000 | he | Pull up revision 1.10 (requested by dmcmahill): When no `-e' flag is used to specify an encoding, default to
 "ulaw".  Fixes PR#9329.  Also document the default.
 
 | 
| 1.4.2.4 |  | 11-Nov-1999 | he | Pull up revision 1.9 (requested by kleink): Do not indicate success in the exit status if usage instructions
 had to be printed.
 
 | 
| 1.4.2.3 |  | 22-Oct-1999 | he | Pull up revision 1.6 (requested by dmcmahill): If not specified on the command line, attempt to fall back
 to the environment variables AUDIODEVICE (for -d) and
 AUDIOCTLDEVICE (for -C) before falling back to _PATH_* constants.
 
 | 
| 1.4.2.2 |  | 27-Sep-1999 | cgd | pull up revs 1.7-1.8 from trunk (requested by mrg): Fix audiorecord(1)'s "-t" option so that it actually works.
 
 | 
| 1.4.2.1 |  | 23-Jun-1999 | perry | pullup 1.4->1.5 (jtk) 
 | 
| 1.7.2.1 |  | 27-Dec-1999 | wrstuden | Pull up to last week's -current. 
 | 
| 1.10.4.1 |  | 29-Jan-2002 | he | Pull up revisions 1.11-1.13,1.15-1.21 (via patch, requested by mrg): Bring in several fixes and enhancements to these tools:
 o fix stdin audioplay
 o add WAV support to audiorecord
 o allows any host to output any endian sample
 o don't output a bogus header
 o fix a bug in audiorecord -t
 o many manual page fixes
 o exit immediately on signals
 
 | 
| 1.36.2.2 |  | 23-Jul-2004 | tron | branches:  1.36.2.2.2; Pull up revision 1.38 (requested by mycroft in ticket #690):
 Convert 8-bit signed linear data to unsigned for .wav files.
 
 | 
| 1.36.2.1 |  | 23-Jul-2004 | tron | Pull up revision 1.37 (requested by mycroft in ticket #690): Fix fencepost errors in the conversion functions (making them a bit more like
 the kernel versions).
 
 | 
| 1.36.2.2.2.1 |  | 18-Jul-2005 | riz | Pull up revisions 1.39-1.41 (requested by mrg in ticket #5498): 1.39:
 check that an output file is given before doing any other work.
 avoids touching the audio device and then printing an error.
 
 1.40:
 move some more processing before opening the audio device.  don't
 default the encoding to ulaw; default it to what ever the device
 has.  the latter fixes PR#30612.
 
 1.41:
 play.c: allow empty files to exit gracefully rather than with an error
 of "header seems really large".  reported by wiz.
 
 record.c: don't use total_size in the header if is -1 (it's initial value)
 
 | 
| 1.38.2.1 |  | 19-Jul-2005 | riz | Pull up revisions 1.39-1.41 (requested by mrg in ticket #597): 1.39:
 check that an output file is given before doing any other work.
 avoids touching the audio device and then printing an error.
 
 1.40:
 move some more processing before opening the audio device.  don't
 default the encoding to ulaw; default it to what ever the device
 has.  the latter fixes PR#30612.
 
 1.41:
 play.c: allow empty files to exit gracefully rather than with an error
 of "header seems really large".  reported by wiz.
 record.c: don't use total_size in the header if is -1 (it's initial value)
 
 | 
| 1.43.12.2 |  | 09-Jan-2008 | matt | sync with HEAD 
 | 
| 1.43.12.1 |  | 06-Nov-2007 | matt | sync with HEAD 
 | 
| 1.45.6.1 |  | 23-Jun-2008 | wrstuden | Sync w/ -current. 34 merge conflicts to follow. 
 | 
| 1.45.4.1 |  | 04-Jun-2008 | yamt | sync with head 
 | 
| 1.46.6.1 |  | 13-May-2009 | jym | Sync with HEAD. 
 Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 
 | 
| 1.52.8.1 |  | 20-Aug-2014 | tls | Rebase to HEAD as of a few days ago. 
 | 
| 1.52.2.1 |  | 22-May-2014 | yamt | sync with head. 
 for a reference, the tree before this commit was tagged
 as yamt-pagecache-tag8.
 
 this commit was splitted into small chunks to avoid
 a limitation of cvs.  ("Protocol error: too many arguments")
 
 | 
| 1.54.18.2 |  | 23-Aug-2024 | martin | Pull up following revision(s) (requested by mrg in ticket #1874): 
 usr.bin/audio/common/wav.c: revision 1.23
 usr.bin/audio/record/record.c: revision 1.59
 
 fix some sizeof() confusion.
 
 using "const char search[4]" as a function parameter means that
 "search" is actually a pointer type so "sizeof search" returns
 8 on 64-bit platforms.  i mis-read this and used "sizeof *search"
 which is always 1, noted by rillig.
 
 instead of trying to avoid writing "4" twice, put it in a define
 and use that in various places instead.  annoying.
 match message & conversion function name properly.
 
 probably should make this into an array with two members.
 
 | 
| 1.54.18.1 |  | 12-Mar-2024 | martin | Pull up the following revisions, requested by mrg in ticket #1818: 
 usr.bin/audio/common/auconv.h                   up to 1.6
 usr.bin/audio/common/audio.c                    up to 1.27
 usr.bin/audio/common/decode.c                   up to 1.2
 usr.bin/audio/common/libaudio.h                 up to 1.22
 usr.bin/audio/common/sun.c                      up to 1.11
 usr.bin/audio/common/wav.c                      up to 1.22
 usr.bin/audio/ctl/audioctl.1                    up to 1.25
 usr.bin/audio/play/audioplay.1                  up to 1.34
 usr.bin/audio/play/play.c                       up to 1.64
 usr.bin/audio/record/audiorecord.1              up to 1.45
 usr.bin/audio/record/record.c                   up to 1.58
 
 - support for playing 32-bit and 64-bit IEEE FP .wav files
 - support for recording 24 bit .wav files
 - read-overflow fixes for .wav files, and other fixes for the
 wav parser
 - audioplay gains -n flag (no play, like make -n)
 - audioctl manual spruced up
 - audiorecord manual gained useful examples
 
 | 
| 1.54.8.1 |  | 12-Mar-2024 | martin | Pull up the following revisions, requested by mrg in ticket #1948: 
 usr.bin/audio/common/auconv.h                   up to 1.6
 usr.bin/audio/common/audio.c                    up to 1.27
 usr.bin/audio/common/decode.c                   up to 1.2
 usr.bin/audio/common/libaudio.h                 up to 1.22
 usr.bin/audio/common/sun.c                      up to 1.11
 usr.bin/audio/common/wav.c                      up to 1.22
 usr.bin/audio/play/audioplay.1                  up to 1.34
 usr.bin/audio/play/play.c                       up to 1.64
 usr.bin/audio/record/audiorecord.1              up to 1.45
 usr.bin/audio/record/record.c                   up to 1.58
 
 - support for playing 32-bit and 64-bit IEEE FP .wav files
 - support for recording 24 bit .wav files
 - read-overflow fixes for .wav files, and other fixes for the
 wav parser
 - audioplay gains -n flag (no play, like make -n)
 - audiorecord manual gained useful examples
 
 | 
| 1.56.2.2 |  | 23-Aug-2024 | martin | Pull up following revision(s) (requested by mrg in ticket #797): 
 usr.bin/audio/common/wav.c: revision 1.23
 usr.bin/audio/record/record.c: revision 1.59
 
 fix some sizeof() confusion.
 
 using "const char search[4]" as a function parameter means that
 "search" is actually a pointer type so "sizeof search" returns
 8 on 64-bit platforms.  i mis-read this and used "sizeof *search"
 which is always 1, noted by rillig.
 
 instead of trying to avoid writing "4" twice, put it in a define
 and use that in various places instead.  annoying.
 match message & conversion function name properly.
 
 probably should make this into an array with two members.
 
 | 
| 1.56.2.1 |  | 12-Mar-2024 | martin | Pull up the following revisions, requested by mrg in ticket #634: 
 usr.bin/audio/common/auconv.h                   up to 1.6
 usr.bin/audio/common/audio.c                    up to 1.27
 usr.bin/audio/common/decode.c                   up to 1.2
 usr.bin/audio/common/libaudio.h                 up to 1.22
 usr.bin/audio/common/sun.c                      up to 1.11
 usr.bin/audio/common/wav.c                      up to 1.22
 usr.bin/audio/play/audioplay.1                  up to 1.34
 usr.bin/audio/play/play.c                       up to 1.64
 usr.bin/audio/record/audiorecord.1              up to 1.45
 usr.bin/audio/record/record.c                   up to 1.58
 
 - support for recording 24 bit .wav files
 - read-overflow fixes for .wav files, and other fixes for the
 wav parser
 - audioplay gains -n flag (no play, like make -n)
 
 |