Commit Graph

193 Commits

Author SHA1 Message Date
jdolecek c8469e9019 need getle16() for ext.sub_tag too
PR bin/52762 by Yosuke Sugahara
2017-11-25 17:18:15 +00:00
nat cf3b979950 Renane ioctl AUDIO_SETPROC to AUDIO_SETCHAN.
Add an ioctl to return channel number (AUDIO_GETCHAN). This can be used
on audio/sound/audioctl devices.

Return EIO in read/write/ioctl/poll/stat if fp has been closed or is
invalid.

Update audio.4, audioio.h and audioctl(1) to reflect these changes.
2017-03-21 07:04:29 +00:00
nat f835d36292 Audio now uses fdclone, there is no longer a limitation of one audio
instance per process.  Virtual channels are placed in a queue, so there is
no longer a compile time limit of VAUDIOCHANS.

A new sysctl has been added to control multiple user access.
Mixer labels on virtual channels are now prefixed by vchan.

audiobell.c and audioctl have been updated to reflect these changes.

Use of fdclone was posted to tech-kern@ and improvements made.
Multiuser access control changes and the use of a queue were suggessted by
pgoyette@
2017-02-10 19:31:42 +00:00
nat 82924a36bf The audio sub-system now supports the following features as
posted to tech-kern:

    * Simultaneous playback and mixing of multiple streams
    * Playback streams can be of different encoding, frequency, precision
      and number of channels
    * Simultaneous recording to different formats
    * One audio device per process
    * Sysctls to set the common format frequency, precision and channels
    * Independent mixer controls for recording/playback per stream
    * Utilizes little cpu time for multiple streams / good performance
    * Compatible with existing programs that use OSS/NetBSD audio
    * Changes to audioctl(1) to allow specifying process id for corresponding
      audio device
2016-12-08 10:28:44 +00:00
mrg a0e3e3912d rename struct write_info as struct track_info, and the variable name 'wi'
as 'ti', as this info is useful for reading as well.
2015-08-05 06:54:39 +00:00
mrg 3a70beec89 separate the 3 functions midirecord uses from libaudio.a into its own
file and link it directly, instead of having an (implicit) dependancy
on usr.bin/audio/common being built before usr.bin/midirecord is linked.
2015-06-21 06:06:01 +00:00
mrg 9dd3b8ae69 add a decode_uint() function. 2014-12-30 01:22:09 +00:00
riastradh 6cb10275d0 Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
christos 6e28978d84 fix unused variable warnings 2013-10-18 20:47:06 +00:00
mrg 0c2e06460b 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.
2013-08-30 20:57:26 +00:00
wiz a5684d07dd Use Mt for email addresses. 2013-07-20 21:39:55 +00:00
christos 48adc0d0fe PR/45384: Henning Petersen: Swapped arguments in lseek 2011-09-21 14:32:14 +00:00
jmcneill a123dfbe30 recognize AUDIO_ENCODING_AC3 2011-09-06 22:41:53 +00:00
joerg c36a7298be ANSIfy. Add static. Add __dead. 2011-08-28 01:17:47 +00:00
wiz 90bb351524 Sort usage. 2010-12-29 18:49:41 +00:00
wiz 7072bc9c3f Use better reference after sorting in -f description. 2010-12-29 18:48:56 +00:00
wiz 29bd138c93 Sort usage. 2010-12-29 18:48:40 +00:00
wiz 825164c33e Sort some more. 2010-12-29 18:46:48 +00:00
jmcneill 94f6c5770b allow for buffer sizes < 32k 2010-12-29 14:38:54 +00:00
mrg ebcfca8be3 add a new "-B buffersize" flag to both audioplay and audiorecord.
suggested by jmcneill@.

sort audioplay manual some.
2010-12-29 13:09:03 +00:00
joerg 757c7f4987 Reorder sections to canonical order. 2010-05-15 00:08:31 +00:00
mrg 983926d7bf note that -t can take [.dddddd]. sort -q.
from dhgutteridge@sympatico.ca in PR#36928.
2009-07-02 04:45:27 +00:00
mrg 95c070cab9 - add extended WAVE header support
- attempt to play a bunch more WAV files
2009-06-18 02:37:27 +00:00
lukem c1ceae17f0 Enable WARNS=4 by default for usr.bin, except for:
awk  bdes  checknr  compile_et  error  gss  hxtool  kgetcred  kinit
	klist  ldd  less  lex  locale  login  m4  man  menuc  mk_cmds
	mklocale  msgc  openssl  rpcgen  rpcinfo  sdiff  spell  ssh
	string2key  telnet  tn3270  verify_krb5_conf  xlint
2009-04-14 22:15:16 +00:00
lukem 31582cc99b fix -Wsign-compare and other WARNS=4 issues 2009-04-11 10:43:09 +00:00
mrg c2b95373bf remove clause #3 from my license where there are no other
copyright holders involved.
2008-05-29 14:51:25 +00:00
lukem 66176dfdff Rename MKPRIVATELIB to LIBISPRIVATE, to make it clearer that this is
a variable that is used by in-tree Makefiles to control behaviour.
(MKsomevar variables are generally intended to be controlled by the end-user)
2008-05-03 14:48:30 +00:00
martin 11a6dbe728 Convert TNF licenses to new 2 clause variant 2008-04-30 13:10:46 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
perry 8b0f9554ff convert __attribute__s to applicable cdefs.h macros 2007-12-15 19:44:37 +00:00
lukem 5d427989ff Convert to raise_default_signal(3). 2007-10-05 07:27:41 +00:00
christos afb23e8f50 use c99 initializer. 2006-10-22 16:12:20 +00:00
christos f3d3c4b618 missing initializers. 2006-10-22 16:11:34 +00:00
christos d257792f4a Coverity CID 3187: Fix memory leak 2006-05-23 01:07:16 +00:00
gson 9aca5a13df Recording to standard output is specified by a file name of -,
not by omitting the file name.
2006-05-15 02:21:37 +00:00
mrg bc3f0566af variable signed/unsigned cleanup. 2006-05-11 01:19:10 +00:00
gson dcf9144a8a Do not treat all file names of length 1 as meaning standard output. 2006-05-09 15:55:44 +00:00
perry f2bc845517 __inline__ -> inline 2005-12-24 21:44:28 +00:00
mrg a3d57ef1bd 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)
2005-07-13 10:57:11 +00:00
mrg 8ce77e5534 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.
2005-07-05 22:01:42 +00:00
mrg 906f130f1a check that an output file is given before doing any other work.
avoids touching the audio device and then printing an error.
2005-07-05 21:05:50 +00:00
lukem 658ed3362c appease gcc -Wuninitialized 2005-06-02 01:35:57 +00:00
dsl 8383dcf78c Add (unsigned char) cast to ctype functions 2004-10-30 16:57:27 +00:00
mycroft 26fc0dfe09 Convert 8-bit signed linear data to unsigned for .wav files. 2004-07-19 19:27:59 +00:00
mycroft 680669cd36 Fix fencepost errors in the conversion functions (making them a bit more like
the kernel versions).
2004-07-19 19:15:05 +00:00
wiz b9c239be76 Add -q to SYNOPSIS. From Kouichirou Hiratsuka in PR 26193. 2004-07-09 11:36:33 +00:00
wiz 7f968efdc2 There is no -m option -- remove it from the usage.
From Kouichirou Hiratsuka in PR 26192.
2004-07-09 11:34:16 +00:00
drochner e87f74fd64 put the __packed__ attribute close to the struct definition
(to appease gcc-3.4), and use the compiler-independant __packed
form for consistency
2004-07-01 20:56:34 +00:00
lukem b817247988 Use MKPRIVATELIB=yes instead of providing an empty libinstall:: target and
setting NOLINT, NOPIC, NOPROFILE (etc)
2004-05-23 02:24:50 +00:00
mrg b1da97fd23 apply the patch from PR#24127: make audio_wav_parse_hdr() take u_int *
parameters for encoding, precision, sample rate and channels.
2004-01-21 11:55:07 +00:00