summaryrefslogtreecommitdiff
path: root/usr.bin/aucat
AgeCommit message (Collapse)Author
2009-10-12sort flags in description.Igor Sobrado
2009-10-10don't use a references to the device file to check the current modeAlexandre Ratchov
2009-10-10make dev_done() common to audio and MIDI, and drop dev_thrudone()Alexandre Ratchov
2009-10-10use dev_done() for loopback devices too and remove dev_loopdone()Alexandre Ratchov
2009-10-10We don't need independent file reader and writer anymore. So,Alexandre Ratchov
destroy reader when writer terminates and destroy writer when reader terminates. This simplifies a lot the way we drain audio devices and will help simplifying other parts.
2009-10-09Make abuf structure smaller:Alexandre Ratchov
- put aproc-specific parameters into unions since they are never used together - remove constant ``data'' pointer always pointing the end of the abuf structure
2009-10-06prevent aproc structures to be deleted twice. Doesn't change anythingAlexandre Ratchov
for now but will be used in future code.
2009-10-05add -d flag. When started in server mode, if the -d flag isAlexandre Ratchov
used aucat and midicat don't daemonize and log on stderr.
2009-09-27remove all debug tracesAlexandre Ratchov
2009-09-19if pipe_read() returns 0 we are at EOF and the structure describingJacob Meuser
the pipe will be free()d, so don't try to access the structure. ok ratchov
2009-09-19if the device is dying, don't try to stop it, otherwise this wouldAlexandre Ratchov
trigger the code to free() it, which will try to stop it, and so on
2009-09-19tag the device as stopped even if sio_stop() failed (ie. deviceAlexandre Ratchov
is disconnected). This way, when it's ``file'' structure is free()'d, we don't try to stop it again.
2009-08-29accept ``common'' messages (including system explusive) on theAlexandre Ratchov
control MIDI port.
2009-08-28add a new AMSG_BYE, sent by the client to requst the server toAlexandre Ratchov
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.
2009-08-28top device before closing it. It's necessary to ensure that if weAlexandre Ratchov
are using another instance of aucat as device, the server closes the connection before we open a new one.
2009-08-27don't discard the initial volume change message; now it mattersAlexandre Ratchov
because the initial volume may not be MIDI_MAXCTL
2009-08-27when an audio program connects to aucat, restore the volume itAlexandre Ratchov
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.
2009-08-26when allocating the midi channel for the volume control of a newAlexandre Ratchov
client, pick the oldest unused channel rather than the first found. This way new clients don't reuse channels of recently used applications, thus improving a lot the client<->channel affinity.
2009-08-26oops, forgot to update usage();Jason McIntyre
2009-08-26don't mess with audio internals from within the midi bits. InsteadAlexandre Ratchov
use a call-back interface. This allows easily sending volume changes feedback to audio applications.
2009-08-25sub-devices exposed by aucat and sockets it's listening on areAlexandre Ratchov
no longer the same. Rephrase ``audio(4) device or aucat(1) socket'' as ``sndio(7) audio device''. suggested by oga@, tweaks from jmc@
2009-08-23Make aucat remember the control channel number a client is using. When theAlexandre Ratchov
client connects again later, assign the same channel to it. This way applications always get the same fader on MIDI control surfaces.
2009-08-21tweak previous;Jason McIntyre
2009-08-21make aucat(1) expose a MIDI device to control server behaviour inAlexandre Ratchov
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.
2009-08-19don't try to process -o arguments using the input file list, fixesAlexandre Ratchov
midicat crashing sometimes when -o is used
2009-08-19organize midi code like audio code, no functional changeAlexandre Ratchov
2009-08-17allow midicat to take multiple -i and -o optionsAlexandre Ratchov
2009-08-17if one or more MIDI devices are specified in server mode, subscribeAlexandre Ratchov
them to the MIDI thru box
2009-07-25sio_open returns a pointer so the < 0 comparison is wrongAlexandre Ratchov
from Thomas Pfaff, thanks
2009-07-25fix comments, remove no longer needed declaration, reorder includesAlexandre Ratchov
from Thomas Pfaff
2009-07-25Currently midi capable programs can control midi hardware, butAlexandre Ratchov
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@
2009-07-19missing va_end in abuf_dprn. ok ratchov@Martynas Venckus
2009-06-04don't trust the compiler to generate warnings we care about,Jonathan Gray
remove -Werror. ok ratchov@
2009-05-16use the ``hello'' message a to set the device mode, and thus makeAlexandre Ratchov
it mandatory. Old legacy clients setting the mode with sio_setpar() are still working thanks to small hack.
2009-05-16add a new ``hello'' message to aucat protocol useful to work onAlexandre Ratchov
future aucat extentions. No functional changes.
2009-05-09clarify what happens if no device is specified and/or noAlexandre Ratchov
sockets are specified, with help from jmc@
2009-04-27make -v option apply also to implicit default socketAlexandre Ratchov
2009-04-22move support for ulaw/alaw encoding in .wav files from legacy modeAlexandre Ratchov
to normal mode. ok jakemsr@
2009-04-11- make legacy mode use sio_open(3) (sndio) APIJacob Meuser
- parse .au headers in legacy mode - support playback of ulaw and alaw encoded .au and .wav files in legacy mode ok ratchov
2009-04-10avoid Xr to self;Jason McIntyre
2009-04-10Explain the AUDIODEVICE env. variable similarly to how sio_open(3) does.Alexandre Ratchov
discussed with jmc@
2009-03-17- rename the arg to -b "nframes" and sync usage()Jason McIntyre
- grammar fix for the server section from Thomas Pfaff ok ratchov
2009-03-17DESCRIPTION should also note aucat's ability to act as a serverAlexandre Ratchov
from jmc@
2009-03-15fix a couple comment typosJacob Meuser
2009-03-12in full-duplex, don't send AMSG_MOVE messages twice; instead,Alexandre Ratchov
send only the record direction one. spotted by jakemsr
2009-02-27say that aucat can act as audio server in the NAME sectionAlexandre Ratchov
ok jmc
2009-02-13style and typos fixes from Thomas PfaffAlexandre Ratchov
2009-02-06simplify the clock tick messages generation code and ensuire thatAlexandre Ratchov
the first clock tick (ie the start tick) is not lost
2009-02-06move error messages reported to user into main()Alexandre Ratchov
2009-02-04if there are too many connections, stop acceping new ones ratherAlexandre Ratchov
than exit()ing with ``too many open files'' fatal error