Return to defs.h CVS log | Up to [local] / src / usr.bin / sndiod |
File: [local] / src / usr.bin / sndiod / defs.h (download)
Revision 1.5, Wed Feb 26 13:53:58 2020 UTC (4 years, 3 months ago) by ratchov
Add API to control audio device parameters exposed by sndiod. The API exposes controls of modern audio hardware and sndiod software volume knobs in a uniform way. Hardware knobs are exposed through sndiod. Multiple programs may use the controls at the same time without the need to continuously scan the controls. For now sndiod exposes only its own controls and the master output and input volumes of the underlying hardware (if any), i.e. those typically exposed by acpi volume keys. ok deraadt |
/* $OpenBSD: defs.h,v 1.5 2020/02/26 13:53:58 ratchov Exp $ */ /* * Copyright (c) 2008-2012 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. */ #ifndef DEFS_H #define DEFS_H /* * MIDI buffer size */ #define MIDI_BUFSZ 3125 /* 1 second at 31.25kbit/s */ /* * units used for MTC clock. Must allow a quarter of frame to be * represented at any of the standard 24, 25, or 30 fps. */ #define MTC_SEC 2400 /* 1 second is 2400 ticks */ /* * device or sub-device mode, must be a superset of corresponding SIO_ * and MIO_ constants */ #define MODE_PLAY 0x01 /* allowed to play */ #define MODE_REC 0x02 /* allowed to rec */ #define MODE_MIDIOUT 0x04 /* allowed to read midi */ #define MODE_MIDIIN 0x08 /* allowed to write midi */ #define MODE_MON 0x10 /* allowed to monitor */ #define MODE_CTLREAD 0x100 /* allowed to read controls */ #define MODE_CTLWRITE 0x200 /* allowed to change controls */ #define MODE_RECMASK (MODE_REC | MODE_MON) #define MODE_AUDIOMASK (MODE_PLAY | MODE_REC | MODE_MON) #define MODE_MIDIMASK (MODE_MIDIIN | MODE_MIDIOUT) #define MODE_CTLMASK (MODE_CTLREAD | MODE_CTLWRITE) /* * underrun/overrun policies, must be the same as SIO_ constants */ #define XRUN_IGNORE 0 /* on xrun silently insert/discard samples */ #define XRUN_SYNC 1 /* catchup to sync to the mix/sub */ #define XRUN_ERROR 2 /* xruns are errors, eof/hup buffer */ /* * limits */ #define NCHAN_MAX 64 /* max channel in a stream */ #define RATE_MIN 4000 /* min sample rate */ #define RATE_MAX 192000 /* max sample rate */ #define BITS_MIN 1 /* min bits per sample */ #define BITS_MAX 32 /* max bits per sample */ #endif /* !defined(DEFS_H) */