diff options
-rw-r--r-- | lib/libsndio/amsg.h | 4 | ||||
-rw-r--r-- | lib/libsndio/aucat.c | 24 | ||||
-rw-r--r-- | lib/libsndio/aucat.h | 2 | ||||
-rw-r--r-- | lib/libsndio/mio.c | 6 | ||||
-rw-r--r-- | lib/libsndio/mio_aucat.c | 20 | ||||
-rw-r--r-- | lib/libsndio/mio_open.3 | 24 | ||||
-rw-r--r-- | lib/libsndio/mio_priv.h | 3 | ||||
-rw-r--r-- | lib/libsndio/sio_aucat.c | 4 | ||||
-rw-r--r-- | lib/libsndio/sio_open.3 | 10 | ||||
-rw-r--r-- | lib/libsndio/sndio.7 | 62 | ||||
-rw-r--r-- | usr.bin/aucat/Makefile | 5 | ||||
-rw-r--r-- | usr.bin/aucat/aucat.1 | 10 | ||||
-rw-r--r-- | usr.bin/aucat/aucat.c | 25 | ||||
-rw-r--r-- | usr.bin/aucat/midicat.1 | 215 |
14 files changed, 69 insertions, 345 deletions
diff --git a/lib/libsndio/amsg.h b/lib/libsndio/amsg.h index d6370a2628f..2cf7dd04e4b 100644 --- a/lib/libsndio/amsg.h +++ b/lib/libsndio/amsg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: amsg.h,v 1.2 2011/04/28 06:19:57 ratchov Exp $ */ +/* $OpenBSD: amsg.h,v 1.3 2011/10/17 21:09:11 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> * @@ -24,8 +24,6 @@ */ #define AUCAT_PATH "aucat" #define AUCAT_PORT 11025 -#define MIDICAT_PATH "midicat" -#define MIDICAT_PORT 11041 #define DEFAULT_OPT "default" /* diff --git a/lib/libsndio/aucat.c b/lib/libsndio/aucat.c index 6936a912ac6..7c563ea8ddb 100644 --- a/lib/libsndio/aucat.c +++ b/lib/libsndio/aucat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aucat.c,v 1.50 2011/10/05 16:15:43 ratchov Exp $ */ +/* $OpenBSD: aucat.c,v 1.51 2011/10/17 21:09:11 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> * @@ -280,7 +280,7 @@ bad_gen: } int -aucat_connect_tcp(struct aucat *hdl, char *host, char *unit, int isaudio) +aucat_connect_tcp(struct aucat *hdl, char *host, char *unit) { int s, error, opt; struct addrinfo *ailist, *ai, aihints; @@ -291,11 +291,7 @@ aucat_connect_tcp(struct aucat *hdl, char *host, char *unit, int isaudio) DPRINTF("%s: bad unit number\n", unit); return 0; } - if (isaudio) - port += AUCAT_PORT; - else - port += MIDICAT_PORT; - snprintf(serv, sizeof(serv), "%u", port); + snprintf(serv, sizeof(serv), "%u", port + AUCAT_PORT); memset(&aihints, 0, sizeof(struct addrinfo)); aihints.ai_socktype = SOCK_STREAM; aihints.ai_protocol = IPPROTO_TCP; @@ -336,18 +332,16 @@ aucat_connect_tcp(struct aucat *hdl, char *host, char *unit, int isaudio) } int -aucat_connect_un(struct aucat *hdl, char *unit, int isaudio) +aucat_connect_un(struct aucat *hdl, char *unit) { struct sockaddr_un ca; socklen_t len = sizeof(struct sockaddr_un); - char *sock; uid_t uid; int s; uid = geteuid(); - sock = isaudio ? AUCAT_PATH : MIDICAT_PATH; snprintf(ca.sun_path, sizeof(ca.sun_path), - "/tmp/aucat-%u/%s%s", uid, sock, unit); + "/tmp/aucat-%u/%s%s", uid, AUCAT_PATH, unit); ca.sun_family = AF_UNIX; s = socket(AF_UNIX, SOCK_STREAM, 0); if (s < 0) @@ -358,7 +352,7 @@ aucat_connect_un(struct aucat *hdl, char *unit, int isaudio) DPERROR(ca.sun_path); /* try shared server */ snprintf(ca.sun_path, sizeof(ca.sun_path), - "/tmp/aucat/%s%s", sock, unit); + "/tmp/aucat/%s%s", AUCAT_PATH, unit); while (connect(s, (struct sockaddr *)&ca, len) < 0) { if (errno == EINTR) continue; @@ -373,7 +367,7 @@ aucat_connect_un(struct aucat *hdl, char *unit, int isaudio) } int -aucat_open(struct aucat *hdl, const char *str, unsigned mode, int isaudio) +aucat_open(struct aucat *hdl, const char *str, unsigned mode) { extern char *__progname; int eof, hashost; @@ -409,10 +403,10 @@ aucat_open(struct aucat *hdl, const char *str, unsigned mode, int isaudio) } DPRINTF("aucat_init: trying %s -> %s.%s\n", str, unit, opt); if (hashost) { - if (!aucat_connect_tcp(hdl, host, unit, isaudio)) + if (!aucat_connect_tcp(hdl, host, unit)) return 0; } else { - if (!aucat_connect_un(hdl, unit, isaudio)) + if (!aucat_connect_un(hdl, unit)) return 0; } if (fcntl(hdl->fd, F_SETFD, FD_CLOEXEC) < 0) { diff --git a/lib/libsndio/aucat.h b/lib/libsndio/aucat.h index ab180303592..6598d70aadb 100644 --- a/lib/libsndio/aucat.h +++ b/lib/libsndio/aucat.h @@ -20,7 +20,7 @@ int aucat_rmsg(struct aucat *, int *); int aucat_wmsg(struct aucat *, int *); size_t aucat_rdata(struct aucat *, void *, size_t, int *); size_t aucat_wdata(struct aucat *, const void *, size_t, unsigned, int *); -int aucat_open(struct aucat *, const char *, unsigned, int); +int aucat_open(struct aucat *, const char *, unsigned); void aucat_close(struct aucat *, int); int aucat_pollfd(struct aucat *, struct pollfd *, int); int aucat_revents(struct aucat *, struct pollfd *); diff --git a/lib/libsndio/mio.c b/lib/libsndio/mio.c index 397d713346c..55631863df3 100644 --- a/lib/libsndio/mio.c +++ b/lib/libsndio/mio.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mio.c,v 1.11 2011/05/06 07:30:20 ratchov Exp $ */ +/* $OpenBSD: mio.c,v 1.12 2011/10/17 21:09:11 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> * @@ -49,7 +49,7 @@ mio_open(const char *str, unsigned mode, int nbio) if (str == NULL && !issetugid()) str = getenv("MIDIDEVICE"); if (str == NULL) { - hdl = mio_midithru_open("0", mode, nbio); + hdl = mio_aucat_open("0", mode, nbio); if (hdl != NULL) return hdl; return mio_rmidi_open("0", mode, nbio); @@ -62,7 +62,7 @@ mio_open(const char *str, unsigned mode, int nbio) len = sep - str; if (len == (sizeof(prefix_midithru) - 1) && memcmp(str, prefix_midithru, len) == 0) - return mio_midithru_open(sep + 1, mode, nbio); + return mio_aucat_open(sep + 1, mode, nbio); if (len == (sizeof(prefix_aucat) - 1) && memcmp(str, prefix_aucat, len) == 0) return mio_aucat_open(sep + 1, mode, nbio); diff --git a/lib/libsndio/mio_aucat.c b/lib/libsndio/mio_aucat.c index bccc94b7ffd..5c2e55450fe 100644 --- a/lib/libsndio/mio_aucat.c +++ b/lib/libsndio/mio_aucat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mio_aucat.c,v 1.4 2011/04/18 23:57:35 ratchov Exp $ */ +/* $OpenBSD: mio_aucat.c,v 1.5 2011/10/17 21:09:11 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> * @@ -51,15 +51,15 @@ static struct mio_ops mio_aucat_ops = { mio_aucat_revents, }; -static struct mio_hdl * -mio_xxx_open(const char *str, unsigned mode, int nbio, int isaudio) +struct mio_hdl * +mio_aucat_open(const char *str, unsigned mode, int nbio) { struct mio_aucat_hdl *hdl; hdl = malloc(sizeof(struct mio_aucat_hdl)); if (hdl == NULL) return NULL; - if (!aucat_open(&hdl->aucat, str, mode, isaudio)) + if (!aucat_open(&hdl->aucat, str, mode)) goto bad; mio_create(&hdl->mio, &mio_aucat_ops, mode, nbio); if (!aucat_setfl(&hdl->aucat, nbio, &hdl->mio.eof)) @@ -70,18 +70,6 @@ bad: return NULL; } -struct mio_hdl * -mio_midithru_open(const char *str, unsigned mode, int nbio) -{ - return mio_xxx_open(str, mode, nbio, 0); -} - -struct mio_hdl * -mio_aucat_open(const char *str, unsigned mode, int nbio) -{ - return mio_xxx_open(str, mode, nbio, 1); -} - static void mio_aucat_close(struct mio_hdl *sh) { diff --git a/lib/libsndio/mio_open.3 b/lib/libsndio/mio_open.3 index 76f5b03f2e6..030fabe2027 100644 --- a/lib/libsndio/mio_open.3 +++ b/lib/libsndio/mio_open.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: mio_open.3,v 1.4 2011/04/16 10:52:22 ratchov Exp $ +.\" $OpenBSD: mio_open.3,v 1.5 2011/10/17 21:09:11 ratchov Exp $ .\" .\" Copyright (c) 2007 Alexandre Ratchov <alex@caoua.org> .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: April 16 2011 $ +.Dd $Mdocdate: October 17 2011 $ .Dt MIO_OPEN 3 .Os .Sh NAME @@ -51,8 +51,8 @@ The library allows user processes to access .Xr midi 4 hardware and -.Xr midicat 1 -MIDI thru boxes in a uniform way. +.Xr aucat 1 +MIDI thru boxes and control ports in a uniform way. .Ss Opening and closing an MIDI stream First the application must call the .Fn mio_open @@ -63,10 +63,10 @@ argument of most other functions. The .Fn mio_open function tries to connect to the -.Xr midicat 1 -software MIDI thru box or to use the +.Xr aucat 1 +MIDI thru box or to use the .Xr midi 4 -hardware device. +hardware port. The .Ar name parameter gives the device string discussed in @@ -232,22 +232,22 @@ and .Fn mio_write functions return the number of bytes transferred. .Sh ENVIRONMENT -.Bl -tag -width "MIO_DEBUGXXX" -compact +.Bl -tag -width "SNDIO_DEBUGXXX" -compact .It Ev SNDIO_DEBUG The debug level: may be a value between 0 and 2. .El .Sh FILES -.Bl -tag -width "/tmp/aucat-<uid>/midithru0" -compact -.It Pa /tmp/aucat-<uid>/midithru0 +.Bl -tag -width "/tmp/aucat-<uid>/aucat0" -compact +.It Pa /tmp/aucat-<uid>/aucat0 Default path to -.Xr midicat 1 +.Xr aucat 1 socket to connect to. .It Pa /dev/rmidiX .Xr midi 4 devices. .El .Sh SEE ALSO -.Xr midicat 1 , +.Xr aucat 1 , .Xr midi 4 , .Xr sndio 7 diff --git a/lib/libsndio/mio_priv.h b/lib/libsndio/mio_priv.h index 51ef244bc1d..dd22ca80bce 100644 --- a/lib/libsndio/mio_priv.h +++ b/lib/libsndio/mio_priv.h @@ -1,4 +1,4 @@ -/* $OpenBSD: mio_priv.h,v 1.6 2011/04/16 10:52:22 ratchov Exp $ */ +/* $OpenBSD: mio_priv.h,v 1.7 2011/10/17 21:09:11 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> * @@ -42,7 +42,6 @@ struct mio_ops { }; struct mio_hdl *mio_rmidi_open(const char *, unsigned, int); -struct mio_hdl *mio_midithru_open(const char *, unsigned, int); struct mio_hdl *mio_aucat_open(const char *, unsigned, int); void mio_create(struct mio_hdl *, struct mio_ops *, unsigned, int); void mio_destroy(struct mio_hdl *); diff --git a/lib/libsndio/sio_aucat.c b/lib/libsndio/sio_aucat.c index a3f9472993d..2fbdea23492 100644 --- a/lib/libsndio/sio_aucat.c +++ b/lib/libsndio/sio_aucat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sio_aucat.c,v 1.7 2011/06/03 18:09:25 ratchov Exp $ */ +/* $OpenBSD: sio_aucat.c,v 1.8 2011/10/17 21:09:11 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> * @@ -156,7 +156,7 @@ sio_aucat_open(const char *str, unsigned mode, int nbio) hdl = malloc(sizeof(struct sio_aucat_hdl)); if (hdl == NULL) return NULL; - if (!aucat_open(&hdl->aucat, str, mode, 1)) { + if (!aucat_open(&hdl->aucat, str, mode)) { free(hdl); return NULL; } diff --git a/lib/libsndio/sio_open.3 b/lib/libsndio/sio_open.3 index a6a96ce4c8b..d02d07e0fdb 100644 --- a/lib/libsndio/sio_open.3 +++ b/lib/libsndio/sio_open.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sio_open.3,v 1.28 2011/10/04 20:58:27 jmc Exp $ +.\" $OpenBSD: sio_open.3,v 1.29 2011/10/17 21:09:11 ratchov Exp $ .\" .\" Copyright (c) 2007 Alexandre Ratchov <alex@caoua.org> .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: October 4 2011 $ +.Dd $Mdocdate: October 17 2011 $ .Dt SIO_OPEN 3 .Os .Sh NAME @@ -722,7 +722,7 @@ and .Fn sio_write functions return the number of bytes transferred. .Sh ENVIRONMENT -.Bl -tag -width "AUDIODEVICEXXX" -compact +.Bl -tag -width "SNDIO_DEBUGXXX" -compact .It Ev AUDIODEVICE Device to use if .Fn sio_open @@ -734,8 +734,8 @@ The debug level: may be a value between 0 and 2. .El .Sh FILES -.Bl -tag -width "/tmp/aucat-<uid>/softaudio0" -compact -.It Pa /tmp/aucat-<uid>/softaudio0 +.Bl -tag -width "/tmp/aucat-<uid>/aucat0" -compact +.It Pa /tmp/aucat-<uid>/aucat0 Default path to .Xr aucat 1 socket to connect to. diff --git a/lib/libsndio/sndio.7 b/lib/libsndio/sndio.7 index 39132a66c95..81dbb3ad23d 100644 --- a/lib/libsndio/sndio.7 +++ b/lib/libsndio/sndio.7 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sndio.7,v 1.5 2011/06/03 18:57:51 ratchov Exp $ +.\" $OpenBSD: sndio.7,v 1.6 2011/10/17 21:09:11 ratchov Exp $ .\" .\" Copyright (c) 2007 Alexandre Ratchov <alex@caoua.org> .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: June 3 2011 $ +.Dd $Mdocdate: October 17 2011 $ .Dt SNDIO 7 .Os .Sh NAME @@ -25,9 +25,7 @@ The .Nm sndio audio and MIDI system provides access to audio and MIDI hardware and to services provided by -.Xr aucat 1 -and -.Xr midicat 1 , +.Xr aucat 1 , summarized below. .Pp Hardware @@ -59,27 +57,25 @@ Software MIDI thru boxes allow one application to send MIDI data to other applications connected to the thru box (for instance a software sequencer can send events to multiple software synthesizers). There's no hardware involved: thru boxes are created by -.Xr midicat 1 . +.Xr aucat 1 . .Pp Additionally, .Xr aucat 1 -exposes a MIDI device used to control and monitor audio streams +exposes a MIDI port used to control and monitor audio streams in real time using MIDI. .Sh DEVICE NAMES From the user's perspective every audio interface, MIDI port, .Xr aucat 1 -or -.Xr midicat 1 service has a name of the form: .Bd -literal -offset center type:[hostname/]unit[.option] .Ed .Pp This information is used by audio and MIDI applications to determine -how to access the audio or MIDI device or service. +how to access the audio device or MIDI port. .Bl -tag -width "option" .It Pa type -The type of the audio or MIDI device. +The type of the audio device or MIDI port. Possible values for audio devices are .Pa aucat and @@ -89,31 +85,24 @@ corresponding to sockets and hardware .Xr audio 4 devices. -Possible values for MIDI devices are -.Pa midithru , -.Pa rmidi , -and +Possible values for MIDI ports are .Pa aucat +and +.Pa rmidi corresponding to -.Xr midicat 1 -software MIDI thru boxes, hardware -.Xr midi 4 -ports and .Xr aucat 1 -control through MIDI respectively. +software MIDI thru boxes or control ports and hardware +.Xr midi 4 +ports respectively. .It Pa hostname The hostname where the remote .Xr aucat 1 -or -.Xr midicat 1 server to connect to is running. .It Pa unit -For hardware audio or MIDI devices, this corresponds to +For hardware audio or MIDI ports, this corresponds to the character device minor number. -For audio or MIDI devices created with +For audio devices or MIDI ports created with .Xr aucat 1 -or -.Xr midicat 1 it corresponds to the server .Em unit number, typically 0. @@ -121,13 +110,9 @@ number, typically 0. Corresponds to the profile string registered using the .Fl s option of -.Xr aucat 1 -or -.Xr midicat 1 . +.Xr aucat 1 . Only meaningful for .Pa aucat -and -.Pa midithru device types. .El .Pp @@ -148,19 +133,13 @@ device registered with .Fl s Fa rear . .It Pa rmidi:5 Hardware MIDI port number 5. -.It Pa midithru:0 -First software MIDI thru box created with -.Xr midicat 1 . .It Pa aucat:0 -MIDI port controlling the first -.Xr aucat 1 -audio server. +First software MIDI thru box or control port created with +.Xr aucat 1 . .El .Sh AUTHENTICATION If a shared .Xr aucat 1 -or -.Xr midicat 1 server is running, for privacy reasons only one user may have connections to it at a given time (though the same user could have multiple connections to it). @@ -179,9 +158,7 @@ can connect to the server using the same cookie. .It AUCAT_COOKIE Path to file containing the session cookie to be used when connecting to -.Xr aucat -or -.Xr midicat . +.Xr aucat . .It Ev AUDIODEVICE Audio device to use if the application provides no device chooser. @@ -201,7 +178,6 @@ MIDI ports. .El .Sh SEE ALSO .Xr aucat 1 , -.Xr midicat 1 , .Xr mio_open 3 , .Xr sio_open 3 , .Xr audio 4 , diff --git a/usr.bin/aucat/Makefile b/usr.bin/aucat/Makefile index ee125d29e39..173caf72f13 100644 --- a/usr.bin/aucat/Makefile +++ b/usr.bin/aucat/Makefile @@ -1,10 +1,9 @@ -# $OpenBSD: Makefile,v 1.15 2011/04/27 21:20:36 ratchov Exp $ +# $OpenBSD: Makefile,v 1.16 2011/10/17 21:09:11 ratchov Exp $ PROG= aucat SRCS= aucat.c abuf.c aparams.c aproc.c dev.c midi.c file.c headers.c \ siofile.c miofile.c sock.c pipe.c listen.c opt.c wav.c dbg.c -MAN= aucat.1 midicat.1 -LINKS= ${BINDIR}/aucat ${BINDIR}/midicat +MAN= aucat.1 CFLAGS+= -Wall -Wstrict-prototypes -Wundef -DDEBUG -I${.CURDIR}/../../lib/libsndio LDADD+= -lsndio .include <bsd.prog.mk> diff --git a/usr.bin/aucat/aucat.1 b/usr.bin/aucat/aucat.1 index 9d4d35d965f..aaac47ecd00 100644 --- a/usr.bin/aucat/aucat.1 +++ b/usr.bin/aucat/aucat.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: aucat.1,v 1.88 2011/10/12 12:16:10 jmc Exp $ +.\" $OpenBSD: aucat.1,v 1.89 2011/10/17 21:09:11 ratchov Exp $ .\" .\" Copyright (c) 2006 Alexandre Ratchov <alex@caoua.org> .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: October 12 2011 $ +.Dd $Mdocdate: October 17 2011 $ .Dt AUCAT 1 .Os .Sh NAME @@ -590,10 +590,10 @@ For instance, the following command will play a file on the .Va aucat:0.mmc audio device, and give full control to MIDI software or hardware connected to the -.Va midithru:0 -MIDI device: +.Va aucat:0.thru +MIDI port: .Bd -literal -offset indent -$ aucat -f aucat:0.mmc -t slave -q midithru:0 -i file.wav +$ aucat -f aucat:0.mmc -t slave -q aucat:0.thru -i file.wav .Ed .Pp At this stage, diff --git a/usr.bin/aucat/aucat.c b/usr.bin/aucat/aucat.c index 80d1a581881..6264bc784aa 100644 --- a/usr.bin/aucat/aucat.c +++ b/usr.bin/aucat/aucat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aucat.c,v 1.121 2011/10/12 12:16:10 jmc Exp $ */ +/* $OpenBSD: aucat.c,v 1.122 2011/10/17 21:09:11 ratchov Exp $ */ /* * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> * @@ -56,7 +56,6 @@ #define SNDIO_PRIO (-20) #define PROG_AUCAT "aucat" -#define PROG_MIDICAT "midicat" /* * sample rate if no ``-r'' is used @@ -84,10 +83,6 @@ char aucat_usage[] = "usage: " PROG_AUCAT " [-dlMn] [-a flag] [-b nframes] " "[-q port] [-r rate] [-s name] [-t mode] [-U unit] [-v volume]\n\t" "[-w flag] [-x policy] [-z nframes]\n"; -char midicat_usage[] = "usage: " PROG_MIDICAT " [-dlM] [-a flag] " - "[-i file] [-L addr] [-o file] [-q port]\n\t" - "[-s name] [-U unit]\n"; - /* * SIGINT handler, it raises the quit flag. If the flag is already set, * that means that the last SIGINT was not handled, because the process @@ -367,8 +362,8 @@ mkopt(char *path, struct dev *d, struct aparams *rpar, struct aparams *ppar, int main(int argc, char **argv) { - char *prog, *un_path, *optstr, *usagestr; - int c, background, unit, server, tcp_port, active; + char *prog, *optstr, *usagestr; + int c, background, unit, server, active; char base[PATH_MAX], path[PATH_MAX]; unsigned mode, hdr, xrun, rate, join, mmc, vol; unsigned hold, autovol, bufsz, round; @@ -409,21 +404,11 @@ main(int argc, char **argv) mode = MODE_MIDIMASK | MODE_PLAY | MODE_REC; optstr = "a:b:c:C:de:f:h:i:j:lL:m:Mno:q:r:s:t:U:v:w:x:z:t:j:z:"; usagestr = aucat_usage; - un_path = AUCAT_PATH; - tcp_port = AUCAT_PORT; - } else if (strcmp(prog, PROG_MIDICAT) == 0) { - mode = MODE_MIDIMASK | MODE_THRU; - optstr = "a:di:lL:Mo:q:s:U:"; - usagestr = midicat_usage; - un_path = MIDICAT_PATH; - tcp_port = MIDICAT_PORT; - mkdev("midithru", MODE_THRU, 0, 0, 1, 0); } else { fprintf(stderr, "%s: can't determine program to run\n", prog); return 1; } - while ((c = getopt(argc, argv, optstr)) != -1) { switch (c) { case 'd': @@ -441,7 +426,7 @@ main(int argc, char **argv) server = 1; break; case 'L': - listen_new_tcp(optarg, tcp_port + unit); + listen_new_tcp(optarg, AUCAT_PORT + unit); server = 1; break; case 'm': @@ -567,7 +552,7 @@ main(int argc, char **argv) } if (server) { getbasepath(base, sizeof(base)); - snprintf(path, PATH_MAX, "%s/%s%u", base, un_path, unit); + snprintf(path, PATH_MAX, "%s/%s%u", base, AUCAT_PATH, unit); listen_new_un(path); if (geteuid() == 0) privdrop(); diff --git a/usr.bin/aucat/midicat.1 b/usr.bin/aucat/midicat.1 deleted file mode 100644 index 348d0a2831f..00000000000 --- a/usr.bin/aucat/midicat.1 +++ /dev/null @@ -1,215 +0,0 @@ -.\" $OpenBSD: midicat.1,v 1.19 2011/10/12 12:16:10 jmc Exp $ -.\" -.\" Copyright (c) 2006 Alexandre Ratchov <alex@caoua.org> -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd $Mdocdate: October 12 2011 $ -.Dt MIDICAT 1 -.Os -.Sh NAME -.Nm midicat -.Nd MIDI server and manipulation tool -.Sh SYNOPSIS -.Nm midicat -.Op Fl dlM -.Op Fl a Ar flag -.Op Fl i Ar file -.Op Fl L Ar addr -.Op Fl o Ar file -.Op Fl q Ar port -.Op Fl s Ar name -.Op Fl U Ar unit -.Sh DESCRIPTION -The -.Nm -utility can merge any number of MIDI inputs and broadcast the result -to any number of MIDI outputs, similarly to a hardware MIDI thru box. -MIDI streams are typically MIDI ports or plain files containing raw MIDI -data. -.Pp -The -.Nm -utility can also act as a MIDI server in which case MIDI streams -correspond to client connections. -The server capability -allows any MIDI-capable application to send MIDI messages to -MIDI hardware or to another application in a uniform way. -.Pp -The options are as follows: -.Bl -tag -width Ds -.It Fl a Ar flag -Control whether -.Nm -opens MIDI ports connected to the thru box only when needed -or keeps them open all the time. -If the flag is -.Va on -then MIDI ports are kept open all the time, ensuring no other program can -steal any of them. -If the flag is -.Va off , -then they are automatically closed, allowing other programs to have direct -access to MIDI ports, or the corresponding hardware to be disconnected. -The default is -.Va on . -.It Fl d -Increase log verbosity. -.Nm -logs on -.Em stderr -until it daemonizes. -.It Fl i Ar file -Read data to send from this file. -If the option argument is -.Sq - -then standard input will be used. -.It Fl L Ar addr -Specify a local network address to listen on in server mode. -.Nm -will listen on TCP port 11041+n, where n is the unit number -specified with -.Fl U . -Without this option, -.Nm -listens on the -.Ux Ns -domain -socket only, and is not reachable from any network. -If the option argument is -.Sq - -then -.Nm -will accept connections from any address. -.It Fl M -Create a MIDI thru box. -It merges any number of MIDI inputs and broadcasts the result -to any number of MIDI outputs, similarly to a hardware MIDI thru box. -Any MIDI ports -.Pq Fl q -or MIDI files -.Pq Fl io -specified after this option will be subscribed to this thru box. -If sub-devices are exposed -.Pq Fl s -they behave like software MIDI ports, -allowing any MIDI-capable application to send MIDI messages to -MIDI hardware or to another application in a uniform way. -.It Fl l -Detach and become a daemon. -.It Fl s Ar name -Expose a MIDI thru box to which MIDI programs -can connect. -The given -.Ar name -corresponds to the -.Dq option -part of the -.Xr sndio 7 -device name string. -.It Fl o Ar file -Write received data into this file. -If the option argument is -.Sq - -then standard output will be used. -.It Fl q Ar port -Send and receive data from this -.Xr sndio 7 -MIDI port. -.It Fl U Ar unit -Unit number to use when running in server mode. -Each -.Nm -server instance has a unique unit number, -used in -.Xr sndio 7 -device names. -The default is 0. -The unit number must be set before any server-specific -options are used -.Pq Fl Ls . -.El -.Pp -If files -.Pq Fl io -are specified but no ports -.Pq Fl q -are specified, the default -.Xr sndio 7 -port is used. -If no streams -.Pq Fl ioq -are specified, server mode is assumed and a thru box is created -as if -.Fl s Ar default -was used as the last argument. -.Pp -Generally MIDI applications are real-time. -To reduce jitter, especially on busy machines, -the server can be started by the super-user, -in which case it will run with higher priority. -Any user will still be able to connect to it, -but for privacy reasons only one user may have connections to -it at a given time. -.Pp -If -.Nm -is sent -.Dv SIGHUP , -.Dv SIGINT -or -.Dv SIGTERM , -then processing terminates. -.Sh EXAMPLES -The following dumps MIDI data received from the default port: -.Bd -literal -offset indent -$ midicat -o - | hexdump -e '1/1 "%x"' -.Ed -.Pp -The following sends raw MIDI data to the -.Pa rmidi:5 -port: -.Bd -literal -offset indent -$ midicat -i sysexfile -q rmidi:5 -.Ed -.Pp -The following connects -.Pa rmidi:5 -and -.Pa rmidi:6 -ports: -.Bd -literal -offset indent -$ midicat -q rmidi:5 -q rmidi:6 -.Ed -.Pp -The following creates a MIDI thru box and daemonizes, -allowing MIDI programs to send data to each other instead of -using hardware MIDI ports: -.Bd -literal -offset indent -$ midicat -l -.Ed -.Pp -The following creates a MIDI thru box and subscribes the -.Pa rmidi:5 -port, allowing multiple MIDI programs to use the port -simultaneously: -.Bd -literal -offset indent -$ midicat -q rmidi:5 -.Ed -.Sh SEE ALSO -.Xr aucat 1 , -.Xr midi 4 , -.Xr sndio 7 -.Sh BUGS -The ability to merge multiple inputs is provided to allow multiple -applications producing MIDI data to keep their connection open while -idling; it does not replace a fully featured MIDI merger. |