1*d07fece6Sratchov /* $OpenBSD: defs.h,v 1.5 2020/02/26 13:53:58 ratchov Exp $ */ 287bc9f6aSratchov /* 387bc9f6aSratchov * Copyright (c) 2008-2012 Alexandre Ratchov <alex@caoua.org> 487bc9f6aSratchov * 587bc9f6aSratchov * Permission to use, copy, modify, and distribute this software for any 687bc9f6aSratchov * purpose with or without fee is hereby granted, provided that the above 787bc9f6aSratchov * copyright notice and this permission notice appear in all copies. 887bc9f6aSratchov * 987bc9f6aSratchov * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1087bc9f6aSratchov * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1187bc9f6aSratchov * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1287bc9f6aSratchov * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1387bc9f6aSratchov * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1487bc9f6aSratchov * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1587bc9f6aSratchov * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1687bc9f6aSratchov */ 1787bc9f6aSratchov #ifndef DEFS_H 1887bc9f6aSratchov #define DEFS_H 1987bc9f6aSratchov 2087bc9f6aSratchov /* 2187bc9f6aSratchov * MIDI buffer size 2287bc9f6aSratchov */ 2387bc9f6aSratchov #define MIDI_BUFSZ 3125 /* 1 second at 31.25kbit/s */ 2487bc9f6aSratchov 2587bc9f6aSratchov /* 2663dcd07aSratchov * units used for MTC clock. Must allow a quarter of frame to be 2763dcd07aSratchov * represented at any of the standard 24, 25, or 30 fps. 2887bc9f6aSratchov */ 2987bc9f6aSratchov #define MTC_SEC 2400 /* 1 second is 2400 ticks */ 3087bc9f6aSratchov 3187bc9f6aSratchov /* 3287bc9f6aSratchov * device or sub-device mode, must be a superset of corresponding SIO_ 3387bc9f6aSratchov * and MIO_ constants 3487bc9f6aSratchov */ 3587bc9f6aSratchov #define MODE_PLAY 0x01 /* allowed to play */ 3687bc9f6aSratchov #define MODE_REC 0x02 /* allowed to rec */ 3787bc9f6aSratchov #define MODE_MIDIOUT 0x04 /* allowed to read midi */ 3887bc9f6aSratchov #define MODE_MIDIIN 0x08 /* allowed to write midi */ 3987bc9f6aSratchov #define MODE_MON 0x10 /* allowed to monitor */ 40*d07fece6Sratchov #define MODE_CTLREAD 0x100 /* allowed to read controls */ 41*d07fece6Sratchov #define MODE_CTLWRITE 0x200 /* allowed to change controls */ 4287bc9f6aSratchov #define MODE_RECMASK (MODE_REC | MODE_MON) 4387bc9f6aSratchov #define MODE_AUDIOMASK (MODE_PLAY | MODE_REC | MODE_MON) 4487bc9f6aSratchov #define MODE_MIDIMASK (MODE_MIDIIN | MODE_MIDIOUT) 45*d07fece6Sratchov #define MODE_CTLMASK (MODE_CTLREAD | MODE_CTLWRITE) 4687bc9f6aSratchov 4787bc9f6aSratchov /* 4887bc9f6aSratchov * underrun/overrun policies, must be the same as SIO_ constants 4987bc9f6aSratchov */ 5087bc9f6aSratchov #define XRUN_IGNORE 0 /* on xrun silently insert/discard samples */ 5187bc9f6aSratchov #define XRUN_SYNC 1 /* catchup to sync to the mix/sub */ 5287bc9f6aSratchov #define XRUN_ERROR 2 /* xruns are errors, eof/hup buffer */ 5387bc9f6aSratchov 5487bc9f6aSratchov /* 5587bc9f6aSratchov * limits 5687bc9f6aSratchov */ 575db31a1aSratchov #define NCHAN_MAX 64 /* max channel in a stream */ 5887bc9f6aSratchov #define RATE_MIN 4000 /* min sample rate */ 5987bc9f6aSratchov #define RATE_MAX 192000 /* max sample rate */ 6087bc9f6aSratchov #define BITS_MIN 1 /* min bits per sample */ 6187bc9f6aSratchov #define BITS_MAX 32 /* max bits per sample */ 6287bc9f6aSratchov 6387bc9f6aSratchov #endif /* !defined(DEFS_H) */ 64