summaryrefslogtreecommitdiff
path: root/usr.bin/aucat/dev.h
diff options
context:
space:
mode:
authorAlexandre Ratchov <ratchov@cvs.openbsd.org>2010-04-06 20:07:02 +0000
committerAlexandre Ratchov <ratchov@cvs.openbsd.org>2010-04-06 20:07:02 +0000
commit2f0029d887ad28970097e28bce6373cc22d35c2d (patch)
tree895e5e0cfc9d6210ff01a77b70088a93fb1c410b /usr.bin/aucat/dev.h
parent82289922c532d67b5593b04881bc3e2fd0002e3f (diff)
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@
Diffstat (limited to 'usr.bin/aucat/dev.h')
-rw-r--r--usr.bin/aucat/dev.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/usr.bin/aucat/dev.h b/usr.bin/aucat/dev.h
index 2f3195d701c..777894ac1d3 100644
--- a/usr.bin/aucat/dev.h
+++ b/usr.bin/aucat/dev.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dev.h,v 1.19 2010/04/03 17:59:17 ratchov Exp $ */
+/* $OpenBSD: dev.h,v 1.20 2010/04/06 20:07:01 ratchov Exp $ */
/*
* Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org>
*
@@ -21,25 +21,33 @@ struct aproc;
struct aparams;
struct abuf;
+#define DEV_INIT 0
+#define DEV_START 1
+#define DEV_RUN 2
+#define DEV_STOP 3
+
+extern unsigned dev_pstate;
extern unsigned dev_bufsz, dev_round, dev_rate;
extern struct aparams dev_ipar, dev_opar;
-extern struct aproc *dev_mix, *dev_sub, *dev_midi;
+extern struct aproc *dev_mix, *dev_sub, *dev_midi, *dev_submon, *dev_mon;
void dev_thruinit(void);
int dev_thruadd(char *, int, int);
void dev_midiattach(struct abuf *, struct abuf *);
unsigned dev_roundof(unsigned);
void dev_loopinit(struct aparams *, struct aparams *, unsigned);
-int dev_init(char *, struct aparams *, struct aparams *, unsigned, unsigned);
+int dev_init(char *, unsigned,
+ struct aparams *, struct aparams *, unsigned, unsigned);
void dev_start(void);
void dev_stop(void);
void dev_run(int);
void dev_done(void);
-int dev_getep(struct abuf **, struct abuf **);
-void dev_sync(struct abuf *, struct abuf *);
+int dev_getep(unsigned, struct abuf **, struct abuf **);
+void dev_sync(unsigned, struct abuf *, struct abuf *);
+unsigned dev_getmode(void);
int dev_getpos(void);
-void dev_attach(char *,
- struct abuf *, struct aparams *, unsigned,
+void dev_attach(char *, unsigned,
+ struct abuf *, struct aparams *,
struct abuf *, struct aparams *, unsigned, int);
void dev_setvol(struct abuf *, int);
void dev_clear(void);