summaryrefslogtreecommitdiffstats
path: root/lib/libsndio (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Make the "default" string a valid device name that has the same effectratchov2012-05-235-15/+29
| | | | | as NULL has. This will (hopefully) simplify ports where the user passes the device string.
* The default device is selected with sndiod(1) or the AUDIODEVICEratchov2012-05-111-2/+2
| | | | | environment variable, so stop using the /dev/audio symlink which can't be used by sndiod(1) anyway
* Use "unsigned int" rather than "unsigned". No object change.ratchov2012-04-119-89/+96
| | | | suggested by deraadt@
* Correct the spelling of "transferred" and "transferring"guenther2012-02-241-2/+2
| | | | from Tobias Ulmer (tobiasu at tmux.org); ok jmc@, krw@
* formatting errors, found using freebsd's "igor";jmc2011-12-241-3/+3
|
* mention sndiod rather than aucat when talking about the serverratchov2011-12-093-35/+35
|
* Add a "device number" component in sndio(7) device names, allowing aratchov2011-11-1513-160/+218
| | | | | | | | | | | | | | | | single aucat instance to handle all audio and MIDI services. Since this partially breaks compatibility, this is a opportunitiy to fix few other design mistakes (eg ':' being used by inet6, type name vs api name confusion, etc..). This leads to the following names: type[@hostname][,unit]/devnum[.option] The device number is the minor device number for direct hardware access (ie the 'N' in /dev/audioN). For aucat, this is the occurence number of the -f (or -M) option. There's a compatibility hook to keep old names working if only one aucat server is running.
* Don't attempt to send data not available for sending yet. Analysedratchov2011-10-221-7/+9
| | | | and fixed by Remco <remco at d-compu.dyndns.org>, thanks!
* some minor tweaks concerning midicat removal; ok ratchovjmc2011-10-181-4/+4
|
* Remove midicat since aucat can now be used instead of midicatratchov2011-10-1710-102/+57
| | | | | | | | | with almost the same syntax (roughly an extra -M option). Thru boxes are created with aucat, and corresponding MIDI port names have the "aucat" prefix instead of "midithru". The old device name will still work some time for backward compatibility. ok deraadt
* restart connect(2) if it returns EINTRratchov2011-10-051-1/+4
|
* some tweaks, from Tim van der Molenjmc2011-10-041-5/+5
|
* one midicat server can export multiple midithru portsratchov2011-06-031-3/+7
|
* don't forget to send the initial clock tickratchov2011-06-031-1/+5
|
* in sio_psleep(), use an array of SIO_MAXNFDS pollfd strucures ratherratchov2011-05-092-6/+10
| | | | than a single one. No behaviour change
* use an array of backends and iterate on it, instead of inliningratchov2011-05-061-15/+22
| | | | calls to sio_<backend>_open(). No behaviour change
* remove almost two years old hack to support legacy audio/midiratchov2011-05-062-25/+8
| | | | device names
* determine the default device in backend code instead of the commonratchov2011-05-033-10/+9
| | | | | code. This is simpler as long as not all backends use the same default.
* Add missing byter order conversions in message headers. Fixes the caseratchov2011-05-022-41/+47
| | | | | when the server and the client are not of the same endianness. Found by naddy.
* set the TCP_NODELAY option for TCP connectionsratchov2011-05-021-2/+9
|
* Implement a new authentication method allowing aucat and midicat toratchov2011-04-283-8/+200
| | | | | | | | | | | | | | | | | | | work over TCP, for instance, to expose the sound card of one machine with other machines of the network. The first client generates a 128-bit random number (aka the session cookie), saves it in $HOME/.aucat_cookie and sends it to the server. Successive clients load the cookie from $HOME/.aucat_cookie and send it to the server but the server accepts only clients whose cookie matches the session cookie. When all clients are gone, the session is over, and another cookie could start a new session, and so on. TCP is enabled on the server with the new -L option, and on the client side hostnames are specified with a new optional component in the device name. hints from damien, dlg and deraadt, tweaks from jmc
* move amsg.h containing protocol defs from aucat side to libsndio side.ratchov2011-04-272-3/+110
| | | | requested by deraadt
* slightly cleanup by separating socket-specific code fromratchov2011-04-184-37/+46
| | | | protocol specific code. No behaviour change
* remove aucat(1) and midicat(1) socket paths from the FILES sections.ratchov2011-04-161-9/+3
| | | | | Besides being wrong, they are part of sndio internals and don't need to be exposed in such a high level man page.
* for unix domain socket addresses use AUCAT_PATH and MIDICAT_PATHratchov2011-04-162-5/+5
| | | | macros instead of hardcoded strings. No object change
* Since aucat supports any parameter combination sio_getcap() doesn'tratchov2011-04-161-15/+1
| | | | | need to query the server for supported parameters. So stop using the AMSG_GETCAP message, and remove it completely from the aucat protocol.
* Make aucat audio and midi backends share the same code to communicateratchov2011-04-1615-606/+627
| | | | | | with the server. As we're at it use the same protocol for midi and audio. Now, both audio and midi code use the same SNDIO_DEBUG environment variable to turn on/off DPRINTF's.
* Use mio_<backend>_ prefix for private midi-related functions and putratchov2011-04-125-91/+87
| | | | | them in files named mio_<backend>.c No behaviour change.
* Clean up function naming: use sio_<backend>_ prefix for privateratchov2011-04-085-219/+233
| | | | | audio-related functions and put them in files named sio_<backend>.c No behaviour changes.
* tweak previous;jmc2010-11-061-2/+3
|
* make sio_onvol(3) return a integer exposing whether a volume knobratchov2010-11-064-148/+27
| | | | | is available for the stream. As we're at it, remove macros and functions that are neither used nor documented.
* add forgotten ``static''ratchov2010-10-231-2/+2
|
* use MODE_xxx and XRUN_xxx macros everywhere, and zap correspondingratchov2010-10-212-12/+4
| | | | AMSG_xxx macros, which in turns simplifies the code
* don't try to get the current stream postion when the device is stopped,ratchov2010-09-171-9/+9
| | | | | and don't generate clock ticks (ie don't invoke the sio_onmove(3) call-back).
* polish the code: remove few unused #includes, add missing ones,ratchov2010-08-201-2/+5
| | | | fix NULL vs 0, etc. No behaviour change.
* If audio interrupts are missed (as this happens on some MP systemsratchov2010-08-061-18/+22
| | | | | | | | | | | | | | | now), play and record directons may be out of sync, and since the play direction is used as clock source, we may end up with data ariving _before_ the time it was recorded. This breaks the sndio ``device model'' and most full-duplex apps relying on it, starting with aucat in its default mode. Workaround this by using the direction that's ahead as clock source, ensuring that recorded data never arrives before the clock tick it was recorded. This prevents apps from crashing but won't fix stuttering caused by missed interrupts. ok deraadt@
* remove unnecessary ``return 0'' statements,ratchov2010-07-213-6/+3
| | | | from Remco <remco at d-compu.dyndns.org>, thanks!
* add two new members to structs audio_encoding and audio_prinfo.jakemsr2010-07-151-7/+7
| | | | | | | | | | for both structs, the new members are 'bps' and 'msb', which describe the number of bytes per sample and data alignment in the sample, respectively. drivers must properly set these fields in the 'query_encoding', 'set_parameters' and 'get_default_params' hardware interface methods. discussed with ratchov, deraadt
* Handle all streams the same way because there's no actualratchov2010-07-061-4/+18
| | | | | | | | | | | | difference between audio files and client connections. Clean up the way command line options are handled and clarify this in the manual page: stream parameters (-Ccehjmrtvx) must precede stream definitions (-ios) and per-device parameters (-abz) and stream definitions (-ios) must precede device definitions (-f). Since there's no ``server'' and ``non-server'' modes anymore, make the -l option just detach the process. ok and help from jakemsr and jmc
* don't prime server buffers, because it's ugly and conceptuallyratchov2010-06-051-4/+6
| | | | | complicated. Instead, request clients to provide enough samples and start with buffers full.
* don't send clock ticks while buffers are being primedratchov2010-06-051-5/+8
|
* Don't send the initial position as a clock tick with a negative delta.ratchov2010-06-051-9/+12
| | | | | Add a new ``initial position'' message which is simpler. No bahaviour change, except effects of the protocol version crank.
* complete any pending message when the device is stoppedratchov2010-05-251-11/+16
|
* drop samples or insert silence in sun_revents(). Otherwise, inratchov2010-05-251-18/+54
| | | | | | | full-duplex, we may detect a xrun in the play direction and discard the clock tick, this would cause sio_revents() to return POLLIN without the clock being advanced, causing apps relying on the clock for flow control to enter a busy loop.
* if the sample rate the hardware will use is different than thejakemsr2010-05-091-4/+20
| | | | | | | | requested sample rate, scale the block/buffer sizes so the block/ buffer sizes the hardware will use are the same amount of *time* as the requested block/buffer sizes. ok ratchov@
* in sun_start(), don't pause the device in play mode, since it'sratchov2010-04-291-11/+1
| | | | | already paused (by either sio_open or sio_stop) from Alexandr Shadchin, thanks!
* once sio_start() has been called, stream parameters cannot bejakemsr2010-04-261-2/+9
| | | | | | changed until after sio_stop() is called ok ratchov@, jmc@
* If setting close-on-exec flag fails (can this happen?), the wrongratchov2010-04-251-12/+8
| | | | | descriptor is closed. Fix from Alexandr Shadchin, together with various simplifications.
* Fix the way sio_getcap() probes rates of audio(4) devices.ratchov2010-04-251-11/+16
| | | | | From Alexandr Shadchin <alexandr.shadchin at gmail.com> Good catch!
* when probing for a encoding/channels/rate combination, ensure thatratchov2010-04-251-19/+15
| | | | | | | play parameters are set only if playback is enabled, and record parameters are set only if recording is enabled. Fixes sun_getcap() on devices whose play and record parameters are not independent.