Up to [local] / src / usr.bin / aucat
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.68, Tue Nov 12 06:47:34 2013 UTC (10 years, 6 months ago) by ratchov
Branch: MAIN
CVS Tags: HEAD
Changes since 1.67: +1 -1 lines
FILE REMOVED
remove bogus legacy server-specific bits that cause confusion
Revision 1.67 / (download) - annotate - [select for diffs], Fri Nov 23 06:40:26 2012 UTC (11 years, 5 months ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE,
OPENBSD_5_4,
OPENBSD_5_3_BASE,
OPENBSD_5_3
Changes since 1.66: +5 -4 lines
Diff to previous 1.66 (colored)
Make the client wait for the first flow control message rather than assuming it can send a full initial data buffer. This requires protocol version bump (but no library version bump).
Revision 1.66 / (download) - annotate - [select for diffs], Fri Nov 2 10:24:58 2012 UTC (11 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.65: +28 -29 lines
Diff to previous 1.65 (colored)
Use dedicated messages for flow control instead of abusing clock tick messages and enable flow control for MIDI. Since this requires protocol version bump, both sndiod and libsndio must be kept up to date to work together.
Revision 1.65 / (download) - annotate - [select for diffs], Sat Oct 27 11:54:27 2012 UTC (11 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.64: +2 -1 lines
Diff to previous 1.64 (colored)
include netinet/in.h to get htons & friends prototypes
Revision 1.64 / (download) - annotate - [select for diffs], Wed Apr 11 21:17:32 2012 UTC (12 years, 1 month ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE,
OPENBSD_5_2
Changes since 1.63: +24 -4 lines
Diff to previous 1.63 (colored)
In the "reply" code path, lock the socket while invoking the write-end code from the read-end code, and don't forget to check if the socket was not destroyed. Fixes very rare random crashes.
Revision 1.63 / (download) - annotate - [select for diffs], Wed Apr 11 06:05:43 2012 UTC (12 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.62: +17 -17 lines
Diff to previous 1.62 (colored)
Use "unsigned int" rather than "unsigned". No object change. suggested by deraadt@
Revision 1.62 / (download) - annotate - [select for diffs], Sun Nov 20 22:54:51 2011 UTC (12 years, 6 months ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE,
OPENBSD_5_1
Changes since 1.61: +16 -23 lines
Diff to previous 1.61 (colored)
Move mmc/mtc and volume control bits from struct aproc to struct dev. Allows volume settings to be saved while the device is kept closed. Besides that, no behabiour changes.
Revision 1.61 / (download) - annotate - [select for diffs], Tue Nov 15 08:05:22 2011 UTC (12 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.60: +12 -2 lines
Diff to previous 1.60 (colored)
Add a "device number" component in sndio(7) device names, allowing a 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.
Revision 1.60 / (download) - annotate - [select for diffs], Fri Jun 3 16:22:34 2011 UTC (12 years, 11 months ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE,
OPENBSD_5_0
Changes since 1.59: +8 -5 lines
Diff to previous 1.59 (colored)
factor tests for f->opt->join flag, no behaviour change
Revision 1.59 / (download) - annotate - [select for diffs], Mon May 2 22:32:29 2011 UTC (13 years ago) by ratchov
Branch: MAIN
Changes since 1.58: +78 -68 lines
Diff to previous 1.58 (colored)
Add missing byter order conversions in message headers. Fixes the case when the server and the client are not of the same endianness. Found by naddy.
Revision 1.58 / (download) - annotate - [select for diffs], Mon May 2 22:20:18 2011 UTC (13 years ago) by ratchov
Branch: MAIN
Changes since 1.57: +2 -2 lines
Diff to previous 1.57 (colored)
fix string containing state names used for debug printf()s, add the missing SOCK_AUTH state
Revision 1.57 / (download) - annotate - [select for diffs], Thu Apr 28 06:19:57 2011 UTC (13 years ago) by ratchov
Branch: MAIN
Changes since 1.56: +47 -26 lines
Diff to previous 1.56 (colored)
Implement a new authentication method allowing aucat and midicat to 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
Revision 1.56 / (download) - annotate - [select for diffs], Sat Apr 16 11:24:18 2011 UTC (13 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.55: +1 -30 lines
Diff to previous 1.55 (colored)
Since aucat supports any parameter combination sio_getcap() doesn't need to query the server for supported parameters. So stop using the AMSG_GETCAP message, and remove it completely from the aucat protocol.
Revision 1.55 / (download) - annotate - [select for diffs], Sat Apr 16 10:52:22 2011 UTC (13 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.54: +50 -66 lines
Diff to previous 1.54 (colored)
Make aucat audio and midi backends share the same code to communicate 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.
Revision 1.54 / (download) - annotate - [select for diffs], Fri Apr 8 13:00:57 2011 UTC (13 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.53: +14 -30 lines
Diff to previous 1.53 (colored)
When a message is read (and processed), always call sock_write(), to send any pending messages resulting from the processing (ACKs, position changes, volume changes). In theory the previous approach didn't ensuire that outgoing messages are not reordered.
Revision 1.53 / (download) - annotate - [select for diffs], Thu Nov 4 17:55:28 2010 UTC (13 years, 6 months ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE,
OPENBSD_4_9
Changes since 1.52: +3 -3 lines
Diff to previous 1.52 (colored)
Replace ``short'' by a new ``adata_t'' typedef corresponding to audio samples and cleanup ADATA_XXX macros. This allows easilly switching to 24 bit fixed point arithmetic by simply redefining the adata_t typedef to int and updating ADATA_XXX macros. No object change.
Revision 1.52 / (download) - annotate - [select for diffs], Thu Oct 21 19:10:52 2010 UTC (13 years, 7 months ago) by ratchov
Branch: MAIN
Changes since 1.51: +6 -4 lines
Diff to previous 1.51 (colored)
fix style and typos in messages and comments
Revision 1.51 / (download) - annotate - [select for diffs], Thu Oct 21 18:57:42 2010 UTC (13 years, 7 months ago) by ratchov
Branch: MAIN
Changes since 1.50: +82 -102 lines
Diff to previous 1.50 (colored)
use MODE_xxx and XRUN_xxx macros everywhere, and zap corresponding AMSG_xxx macros, which in turns simplifies the code
Revision 1.50 / (download) - annotate - [select for diffs], Sat Jun 5 16:00:52 2010 UTC (13 years, 11 months ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE,
OPENBSD_4_8
Changes since 1.49: +10 -23 lines
Diff to previous 1.49 (colored)
don't prime server buffers, because it's ugly and conceptually complicated. Instead, request clients to provide enough samples and start with buffers full.
Revision 1.49 / (download) - annotate - [select for diffs], Sat Jun 5 12:45:48 2010 UTC (13 years, 11 months ago) by ratchov
Branch: MAIN
Changes since 1.48: +29 -8 lines
Diff to previous 1.48 (colored)
Don't send the initial position as a clock tick with a negative delta. Add a new ``initial position'' message which is simpler. No bahaviour change, except effects of the protocol version crank.
Revision 1.48 / (download) - annotate - [select for diffs], Fri Jun 4 06:15:28 2010 UTC (13 years, 11 months ago) by ratchov
Branch: MAIN
Changes since 1.47: +75 -57 lines
Diff to previous 1.47 (colored)
Allow the audio device to be opened only while it's actually used. This is necessary for uaudio devices, for instance to start aucat before the device is plugged. Or to unplug a device whithout having to restart aucat when another device is plugged. This is controlled with the new -a option. Allow multiple audio devices to be used concurently, i.e. multiple ``-f devname'' options to be used; -f options must follow per-device options, which is what we do for other options.
Revision 1.47 / (download) - annotate - [select for diffs], Sat May 8 15:35:45 2010 UTC (14 years ago) by ratchov
Branch: MAIN
Changes since 1.46: +2 -2 lines
Diff to previous 1.46 (colored)
prime play buffers as soon as the device is opened, otherwise a midi client could start it with empty buffers, in turn hurting audio clients.
Revision 1.46 / (download) - annotate - [select for diffs], Sun May 2 11:54:27 2010 UTC (14 years ago) by ratchov
Branch: MAIN
Changes since 1.45: +20 -3 lines
Diff to previous 1.45 (colored)
Clean up device handling code to clarify different initialization phases and different device states. Split initialization in two phases: first global variables are initialized then the audio hardware is opened. Allow devices that don't support full-duplex to work in play-only or record-only mode, even if ``-m play'' or ``-m rec'' are not specified.
Revision 1.45 / (download) - annotate - [select for diffs], Sat Apr 24 06:18:23 2010 UTC (14 years ago) by ratchov
Branch: MAIN
Changes since 1.44: +13 -13 lines
Diff to previous 1.44 (colored)
rename ibuflist/obuflist -> ins/outs to cut long lines from Thomas Pfaff, thanks
Revision 1.44 / (download) - annotate - [select for diffs], Thu Apr 22 17:43:30 2010 UTC (14 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.43: +37 -2 lines
Diff to previous 1.43 (colored)
Allow multiple users to share the same aucat server. If aucat is run by root, it binds a shared address to the socket, cranks the process priority and drops privileges. sio_open(3) will try to connect to the private socket first (if any), then to the shared socket. Only one user may have connections to aucat at a given time. based on discussions with henning, pyr and others ok jacek, deraadt
Revision 1.43 / (download) - annotate - [select for diffs], Wed Apr 21 06:13:07 2010 UTC (14 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.42: +6 -2 lines
Diff to previous 1.42 (colored)
adds the necessary bits to join channels (ex stereo->mono) or expand channels (ex mono->stereo). It's switched on/off with the ``-j'' option, (default is "on").
Revision 1.42 / (download) - annotate - [select for diffs], Tue Apr 6 20:07:01 2010 UTC (14 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.41: +224 -114 lines
Diff to previous 1.41 (colored)
aucat (server): - make the ``-m mode'' option per subdevice, allowing subdevices to be play-only or rec-only even if the server is full-duplex - add ``monitoring'' mode (with ``-m mon''). This is a record-only stream from which played streams can be recorded (kind of ``record what you hear''). - allow MIDI devices to be subscribed to the controlling MIDI port of the server, ie what midicat does (with -f option), but using the -q option. - add flow control to the protocol, and serialize clock ticks (sio_onmove() calls) and data chunks. This should fix certain full-duplex programs, broken with ``magic'' block/buffer size combinations. - enable 3 block latency which is the minimum theoretical. Make -z and -b options correspond to device parameters. - make sio_getcap(3) the same for aucat and sun backends, ie return whatever is supported (``everything'' in the aucat case, since everything is actulally supported). aucat (player): - enable ``-m mode'' option to select between monitoring and recording when ``-o file'' is used. - plug MIDI code to non-server codepath. The MIDI control device is specified with the ``-q device'' option, as in server mode. - impliment lseek()'ing within files (controlled through MIDI). Necessary to use aucat with a MIDI sequencer. midicat (thrubox): - rename ``-f'' flag to ``-q'', so it has the same name as in aucat (-f is still working) ok jakemsr@, tweaks from jmc@
Revision 1.41 / (download) - annotate - [select for diffs], Sat Apr 3 17:59:17 2010 UTC (14 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.40: +113 -223 lines
Diff to previous 1.40 (colored)
backout last change, committed by mistake, sorry...
Revision 1.40 / (download) - annotate - [select for diffs], Sat Apr 3 17:40:33 2010 UTC (14 years, 1 month ago) by ratchov
Branch: MAIN
Changes since 1.39: +224 -114 lines
Diff to previous 1.39 (colored)
doc fixes from jmc
Revision 1.39 / (download) - annotate - [select for diffs], Fri Jan 15 22:17:44 2010 UTC (14 years, 4 months ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE,
OPENBSD_4_7
Changes since 1.38: +16 -13 lines
Diff to previous 1.38 (colored)
*** empty log message ***
Revision 1.38 / (download) - annotate - [select for diffs], Mon Jan 11 13:06:32 2010 UTC (14 years, 4 months ago) by ratchov
Branch: MAIN
Changes since 1.37: +3 -3 lines
Diff to previous 1.37 (colored)
When resuming from suspend, prime play buffers with silence, otherwise the client would underrun by more than its own buffer size, which currently is not allowed (causes the client to deadlock). Set the minimum client buffer size to two blocks. Single block buffers don't work properly yet. with help from jakemsr
Revision 1.37 / (download) - annotate - [select for diffs], Sun Jan 10 21:47:41 2010 UTC (14 years, 4 months ago) by ratchov
Branch: MAIN
Changes since 1.36: +496 -1 lines
Diff to previous 1.36 (colored)
Add traces to help tracking subtle timing bugs often causing underuns and overruns; such bugs are hard to debug with ktrace or a debugger. They are also handy to debug or monitor code using aucat. To enable traces, compile aucat with ``make DEBUG=-DDEBUG'' and use the -d option multiple times. ok jakemsr
Revision 1.36 / (download) - annotate - [select for diffs], Tue Jan 5 10:18:12 2010 UTC (14 years, 4 months ago) by ratchov
Branch: MAIN
Changes since 1.35: +2 -2 lines
Diff to previous 1.35 (colored)
Make the way .wav files are handled closer to the way sockets are handled, which is conceptually simpler. No behaviour changes.
Revision 1.35 / (download) - annotate - [select for diffs], Tue Nov 3 21:31:37 2009 UTC (14 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.34: +35 -8 lines
Diff to previous 1.34 (colored)
Allow any program using aucat to act as MMC slave and MTC master transparently. Multiple audio applications can be started synchronously from external software/hardware supporting the standard Start/Stop/Relocate messages. The server clock is exposed through MTC, allowing non-audio software/hardware to be synchronized to audio applications.
Revision 1.34 / (download) - annotate - [select for diffs], Tue Oct 27 22:41:03 2009 UTC (14 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.33: +17 -6 lines
Diff to previous 1.33 (colored)
slightly cleanup the socket and control bits: - reject bogus clients ignoring flow control during the start phase - don't check if dev_midi is NULL, it can't be NULL anymore - use ``struct ctl_ops'' instead of a simple call-backs - don't try to flush play buffer if it's not attached yet
Revision 1.33 / (download) - annotate - [select for diffs], Thu Oct 22 21:41:30 2009 UTC (14 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.32: +9 -42 lines
Diff to previous 1.32 (colored)
When starting playback, the client tries to write ``bufsz'' frames instead of ``appbufsz'', which violates the flow control mechanism. Fix this longstanding bug by enabling negative values in AMSG_MOVE messages, this way the client is notified when its stream is attached to the mixer, and can update its max transfer limit. Since this fix changes the AMSG_MOVE message format, we crank the protocol version, and thus remove code specific to the old protocol.
Revision 1.32 / (download) - annotate - [select for diffs], Wed Oct 21 05:43:41 2009 UTC (14 years, 7 months ago) by ratchov
Branch: MAIN
Changes since 1.31: +2 -1 lines
Diff to previous 1.31 (colored)
when freeing buffers (i.e. when sio_stop() is called on client side), clear the ``tickpending'' flag to avoid sending ticks corresponding to non existent buffers (which in turn confuses clients). found and analysed by jakemsr@
Revision 1.31 / (download) - annotate - [select for diffs], Sat Oct 10 13:55:37 2009 UTC (14 years, 7 months ago) by ratchov
Branch: MAIN
Changes since 1.30: +5 -5 lines
Diff to previous 1.30 (colored)
don't use a references to the device file to check the current mode
Revision 1.30 / (download) - annotate - [select for diffs], Mon Oct 5 07:05:24 2009 UTC (14 years, 7 months ago) by ratchov
Branch: MAIN
Changes since 1.29: +2 -1 lines
Diff to previous 1.29 (colored)
add -d flag. When started in server mode, if the -d flag is used aucat and midicat don't daemonize and log on stderr.
Revision 1.29 / (download) - annotate - [select for diffs], Sun Sep 27 11:51:20 2009 UTC (14 years, 7 months ago) by ratchov
Branch: MAIN
Changes since 1.28: +7 -119 lines
Diff to previous 1.28 (colored)
remove all debug traces
Revision 1.28 / (download) - annotate - [select for diffs], Fri Aug 28 06:37:06 2009 UTC (14 years, 8 months ago) by ratchov
Branch: MAIN
Changes since 1.27: +7 -1 lines
Diff to previous 1.27 (colored)
add a new AMSG_BYE, sent by the client to requst the server to free resources and drop the connection. This allows the client to ensuire that at any time it's using only one connection, thus only one MIDI control channel.
Revision 1.27 / (download) - annotate - [select for diffs], Thu Aug 27 06:54:23 2009 UTC (14 years, 8 months ago) by ratchov
Branch: MAIN
Changes since 1.26: +2 -4 lines
Diff to previous 1.26 (colored)
don't discard the initial volume change message; now it matters because the initial volume may not be MIDI_MAXCTL
Revision 1.26 / (download) - annotate - [select for diffs], Thu Aug 27 06:31:13 2009 UTC (14 years, 8 months ago) by ratchov
Branch: MAIN
Changes since 1.25: +1 -3 lines
Diff to previous 1.25 (colored)
when an audio program connects to aucat, restore the volume it had the last time. For instance, this fixes the problem of programs reopenning the connection to aucat very often and thus resetting the volume setting all the time.
Revision 1.25 / (download) - annotate - [select for diffs], Wed Aug 26 06:10:15 2009 UTC (14 years, 8 months ago) by ratchov
Branch: MAIN
Changes since 1.24: +25 -8 lines
Diff to previous 1.24 (colored)
don't mess with audio internals from within the midi bits. Instead use a call-back interface. This allows easily sending volume changes feedback to audio applications.
Revision 1.24 / (download) - annotate - [select for diffs], Fri Aug 21 16:48:03 2009 UTC (14 years, 9 months ago) by ratchov
Branch: MAIN
Changes since 1.23: +17 -1 lines
Diff to previous 1.23 (colored)
make aucat(1) expose a MIDI device to control server behaviour in realtime. For now only the playback volume of individual streams can be changed/monitored. To each stream is assigned a MIDI channel; the volume is changed/monitored using the standard controller number 7.
Revision 1.23 / (download) - annotate - [select for diffs], Wed Aug 19 05:54:15 2009 UTC (14 years, 9 months ago) by ratchov
Branch: MAIN
Changes since 1.22: +3 -8 lines
Diff to previous 1.22 (colored)
organize midi code like audio code, no functional change
Revision 1.22 / (download) - annotate - [select for diffs], Mon Aug 17 16:17:46 2009 UTC (14 years, 9 months ago) by ratchov
Branch: MAIN
Changes since 1.21: +3 -3 lines
Diff to previous 1.21 (colored)
allow midicat to take multiple -i and -o options
Revision 1.21 / (download) - annotate - [select for diffs], Mon Aug 17 15:07:49 2009 UTC (14 years, 9 months ago) by ratchov
Branch: MAIN
Changes since 1.20: +3 -7 lines
Diff to previous 1.20 (colored)
if one or more MIDI devices are specified in server mode, subscribe them to the MIDI thru box
Revision 1.20 / (download) - annotate - [select for diffs], Sat Jul 25 10:52:19 2009 UTC (14 years, 9 months ago) by ratchov
Branch: MAIN
Changes since 1.19: +32 -31 lines
Diff to previous 1.19 (colored)
fix comments, remove no longer needed declaration, reorder includes from Thomas Pfaff
Revision 1.19 / (download) - annotate - [select for diffs], Sat Jul 25 08:44:27 2009 UTC (14 years, 9 months ago) by ratchov
Branch: MAIN
Changes since 1.18: +114 -43 lines
Diff to previous 1.18 (colored)
Currently midi capable programs can control midi hardware, but cannot cooperate with other programs. The aim of this change is to allow any program to send midi data to other programs as they were midi hardware. For instance, this change should solve the longstanding problem of using a midi sequencer with software synthesizers. More precisely: - new midicat(1) utility (actually hardlink to aucat(1)). it creates software midi thru boxes, allowing programs to send midi messages to other programs as they were midi(4) hardware. - new midi api in libsndio (see mio_open(3)), to access midi(4) devices and midicat(1) sockets in a uniform way. - new device naming scheme <service>:<unit>[.<option>], common to audio and midi. - new sndio(7) manual describing concepts and naming The current audio device naming still works, but people having scripts or configuration files containing device names could read the sndio(7) man page and slowly start updating device names. discussed with jakemsr@ and deraadt@, help form jmc@
Revision 1.18 / (download) - annotate - [select for diffs], Sat May 16 12:20:31 2009 UTC (15 years ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE,
OPENBSD_4_6
Changes since 1.17: +40 -20 lines
Diff to previous 1.17 (colored)
use the ``hello'' message a to set the device mode, and thus make it mandatory. Old legacy clients setting the mode with sio_setpar() are still working thanks to small hack.
Revision 1.17 / (download) - annotate - [select for diffs], Sat May 16 11:15:26 2009 UTC (15 years ago) by ratchov
Branch: MAIN
Changes since 1.16: +38 -1 lines
Diff to previous 1.16 (colored)
add a new ``hello'' message to aucat protocol useful to work on future aucat extentions. No functional changes.
Revision 1.14.2.1 / (download) - annotate - [select for diffs], Mon Apr 27 20:42:51 2009 UTC (15 years ago) by ratchov
Branch: OPENBSD_4_5
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored) next main 1.15 (colored)
In server mode when in full-duplex mode (the default) aucat(1) will send each synchronization message twice, causing client applications to think that buffer underruns are occuring. Depending on the application, this may cause the sound to stutter. from current, ok deraadt@
Revision 1.16 / (download) - annotate - [select for diffs], Sun Mar 15 10:31:37 2009 UTC (15 years, 2 months ago) by jakemsr
Branch: MAIN
Changes since 1.15: +5 -5 lines
Diff to previous 1.15 (colored)
fix a couple comment typos
Revision 1.15 / (download) - annotate - [select for diffs], Thu Mar 12 07:26:04 2009 UTC (15 years, 2 months ago) by ratchov
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)
in full-duplex, don't send AMSG_MOVE messages twice; instead, send only the record direction one. spotted by jakemsr
Revision 1.14 / (download) - annotate - [select for diffs], Fri Feb 6 08:29:35 2009 UTC (15 years, 3 months ago) by ratchov
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE
Branch point for: OPENBSD_4_5
Changes since 1.13: +25 -19 lines
Diff to previous 1.13 (colored)
simplify the clock tick messages generation code and ensuire that the first clock tick (ie the start tick) is not lost
Revision 1.13 / (download) - annotate - [select for diffs], Wed Feb 4 20:35:14 2009 UTC (15 years, 3 months ago) by ratchov
Branch: MAIN
Changes since 1.12: +3 -1 lines
Diff to previous 1.12 (colored)
if there are too many connections, stop acceping new ones rather than exit()ing with ``too many open files'' fatal error
Revision 1.12 / (download) - annotate - [select for diffs], Fri Jan 23 17:38:15 2009 UTC (15 years, 3 months ago) by ratchov
Branch: MAIN
Changes since 1.11: +11 -11 lines
Diff to previous 1.11 (colored)
spacing + typo fix from Matt Jibson <matt.jibson(at)gmail.com>
Revision 1.11 / (download) - annotate - [select for diffs], Mon Dec 29 17:59:08 2008 UTC (15 years, 4 months ago) by ratchov
Branch: MAIN
Changes since 1.10: +7 -1 lines
Diff to previous 1.10 (colored)
make the code "more correct": add reference counters to aproc structures so we can keep a pointer to the device. Beside some simplifications, this allows to easily handle the situation where the audio device desappears. No change in the behaviour.
Revision 1.10 / (download) - annotate - [select for diffs], Wed Dec 17 07:19:27 2008 UTC (15 years, 5 months ago) by ratchov
Branch: MAIN
Changes since 1.9: +32 -22 lines
Diff to previous 1.9 (colored)
add a writable ``appbufsz'' field to the sa_par structure, containing the program-part of the buffer size, ie the part that is subject to underruns. Useful for apps like cdio(1) that don't have their own rings, or to apps that have a minimum ring size constraint. Setting the ``bufsz'' parameter becomes deprecated. ok jakemsr
Revision 1.9 / (download) - annotate - [select for diffs], Sun Dec 7 17:10:41 2008 UTC (15 years, 5 months ago) by ratchov
Branch: MAIN
Changes since 1.8: +20 -27 lines
Diff to previous 1.8 (colored)
When resampling, don't require the sample frequency to be an integer. This removes the arithmetic constraint between the sample frequency and the block size and all the associated code. Now aucat can work in server mode with any block size. ok jakemsr
Revision 1.8 / (download) - annotate - [select for diffs], Mon Nov 17 07:04:13 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.7: +6 -1 lines
Diff to previous 1.7 (colored)
allow aucat to run as server in play-only and record-only mode, so it can be used on play-only, record-only and half-duplex devices. ok jakemsr
Revision 1.7 / (download) - annotate - [select for diffs], Sun Nov 16 20:44:03 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.6: +6 -6 lines
Diff to previous 1.6 (colored)
allow aucat to listen on multiple sockets. Each socket carries its channel and volume settings allowing multiple configuration to coexist. Mostly useful for envy(4)-like devices, but can be used to force different apps to use different settings.
Revision 1.6 / (download) - annotate - [select for diffs], Sun Nov 16 18:34:56 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.5: +28 -18 lines
Diff to previous 1.5 (colored)
add ``template'' parameters to sockets rather than using device parameters. No functional change.
Revision 1.5 / (download) - annotate - [select for diffs], Sun Nov 16 17:08:32 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.4: +3 -1 lines
Diff to previous 1.4 (colored)
make aucat compile without DEBUG defined (still defined by default)
Revision 1.4 / (download) - annotate - [select for diffs], Sun Nov 16 16:30:22 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.3: +5 -3 lines
Diff to previous 1.3 (colored)
Make clients inherit the volume parameter when the -v option is used in server mode. It gives the maximum volume a client may have. This wastes dynamic range, but allows volume to stay constant when other clients connect or disconnect.
Revision 1.3 / (download) - annotate - [select for diffs], Tue Nov 11 19:21:20 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.2: +40 -2 lines
Diff to previous 1.2 (colored)
expose the volume knob in server mode too
Revision 1.2 / (download) - annotate - [select for diffs], Mon Nov 3 22:25:13 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
Changes since 1.1: +3 -3 lines
Diff to previous 1.1 (colored)
A small optimization: handle most N-channel <-> M-channel conversions inside the mixer and the demultiplexer. This way, aucat will not trigger the heavy conversion code when only channel conversions are required. Cuts ~50% of the CPU usage on envy(4) devices, can improve surround 4.0, 5.1 and 7.1 capable devices. No functionnal change.
Revision 1.1 / (download) - annotate - [select for diffs], Sun Oct 26 08:49:44 2008 UTC (15 years, 6 months ago) by ratchov
Branch: MAIN
add minimal server capability to aucat(1). When started in server mode, it listens on an unix socket and mixes/demultiplexes any number of full-duplex streams, doing necessary format conversions and resampling on the fly. programs can use the new libsa(3) library to play and record audio. The library provides a very simple API to connect to the audio server; if aucat(1) isn't running, it uses the audio(4) driver transparently instead.