diff options
Diffstat (limited to 'alsa-lib/include')
52 files changed, 0 insertions, 12984 deletions
diff --git a/alsa-lib/include/Makefile.am b/alsa-lib/include/Makefile.am deleted file mode 100644 index a291503..0000000 --- a/alsa-lib/include/Makefile.am +++ /dev/null @@ -1,90 +0,0 @@ -SUBDIRS = sound - -sysincludedir = ${includedir}/sys -alsaincludedir = ${includedir}/alsa - -alsainclude_HEADERS = asoundlib.h asoundef.h \ - version.h global.h input.h output.h error.h \ - conf.h control.h iatomic.h - -if BUILD_CTL_PLUGIN_EXT -alsainclude_HEADERS += control_external.h -endif - -if BUILD_PCM -alsainclude_HEADERS += pcm.h pcm_old.h timer.h -if BUILD_PCM_PLUGIN -alsainclude_HEADERS += pcm_plugin.h -endif -if BUILD_PCM_PLUGIN_RATE -alsainclude_HEADERS += pcm_rate.h -endif -if BUILD_PCM_PLUGIN_EXTPLUG -alsainclude_HEADERS += pcm_external.h pcm_extplug.h -endif -if BUILD_PCM_PLUGIN_IOPLUG -if !BUILD_PCM_PLUGIN_EXTPLUG -alsainclude_HEADERS += pcm_external.h -endif -alsainclude_HEADERS += pcm_ioplug.h -endif -endif - -if BUILD_RAWMIDI -alsainclude_HEADERS += rawmidi.h -endif - -if BUILD_HWDEP -alsainclude_HEADERS += hwdep.h -endif - -if BUILD_MIXER -alsainclude_HEADERS += mixer.h mixer_abst.h -endif - -if BUILD_SEQ -alsainclude_HEADERS += seq_event.h seq.h seqmid.h seq_midi_event.h -endif - -if BUILD_ALISP -alsainclude_HEADERS += alisp.h -endif - -noinst_HEADERS = alsa sys.h search.h list.h aserver.h local.h alsa-symbols.h \ - asoundlib-head.h asoundlib-tail.h - -DISTCLEANFILES = stamp-vh version.h alsa asoundlib.h - -alsa: - ln -s $(top_srcdir)/include alsa - -version.h: stamp-vh alsa - @: - -stamp-vh: $(top_builddir)/configure.in - @echo "/*" > ver.tmp - @echo " * version.h" >> ver.tmp - @echo " */" >> ver.tmp - @echo "" >> ver.tmp - @echo "#define SND_LIB_MAJOR $(SND_LIB_MAJOR) /**< major number of library version */" >> ver.tmp - @echo "#define SND_LIB_MINOR $(SND_LIB_MINOR) /**< minor number of library version */" >> ver.tmp - @echo "#define SND_LIB_SUBMINOR $(SND_LIB_SUBMINOR) /**< subminor number of library version */" >> ver.tmp - @echo "#define SND_LIB_EXTRAVER $(SND_LIB_EXTRAVER) /**< extra version number, used mainly for betas */" >> ver.tmp - @echo "/** library version */" >> ver.tmp - @echo "#define SND_LIB_VERSION ((SND_LIB_MAJOR<<16)|\\" >> ver.tmp - @echo " (SND_LIB_MINOR<<8)|\\" >> ver.tmp - @echo " SND_LIB_SUBMINOR)" >> ver.tmp - @echo "/** library version (string) */" >> ver.tmp - @echo "#define SND_LIB_VERSION_STR \"$(SND_LIB_VERSION)\"" >> ver.tmp - @echo >> ver.tmp - @cmp -s version.h ver.tmp \ - || (echo "Updating version.h"; \ - cp ver.tmp version.h; \ - echo timestamp > stamp-vh) - -@rm -f ver.tmp - -INCLUDES=-I$(top_srcdir)/include - -install-data-hook: - test -d $(DESTDIR)$(sysincludedir) || mkdir -p $(DESTDIR)$(sysincludedir) - $(INSTALL_DATA) $(srcdir)/sys.h $(DESTDIR)$(sysincludedir)/asoundlib.h diff --git a/alsa-lib/include/Makefile.in b/alsa-lib/include/Makefile.in deleted file mode 100644 index bf081c6..0000000 --- a/alsa-lib/include/Makefile.in +++ /dev/null @@ -1,690 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@BUILD_CTL_PLUGIN_EXT_TRUE@am__append_1 = control_external.h -@BUILD_PCM_TRUE@am__append_2 = pcm.h pcm_old.h timer.h -@BUILD_PCM_PLUGIN_TRUE@@BUILD_PCM_TRUE@am__append_3 = pcm_plugin.h -@BUILD_PCM_PLUGIN_RATE_TRUE@@BUILD_PCM_TRUE@am__append_4 = pcm_rate.h -@BUILD_PCM_PLUGIN_EXTPLUG_TRUE@@BUILD_PCM_TRUE@am__append_5 = pcm_external.h pcm_extplug.h -@BUILD_PCM_PLUGIN_EXTPLUG_FALSE@@BUILD_PCM_PLUGIN_IOPLUG_TRUE@@BUILD_PCM_TRUE@am__append_6 = pcm_external.h -@BUILD_PCM_PLUGIN_IOPLUG_TRUE@@BUILD_PCM_TRUE@am__append_7 = pcm_ioplug.h -@BUILD_RAWMIDI_TRUE@am__append_8 = rawmidi.h -@BUILD_HWDEP_TRUE@am__append_9 = hwdep.h -@BUILD_MIXER_TRUE@am__append_10 = mixer.h mixer_abst.h -@BUILD_SEQ_TRUE@am__append_11 = seq_event.h seq.h seqmid.h seq_midi_event.h -@BUILD_ALISP_TRUE@am__append_12 = alisp.h -subdir = include -DIST_COMMON = $(am__alsainclude_HEADERS_DIST) $(noinst_HEADERS) \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -am__alsainclude_HEADERS_DIST = asoundlib.h asoundef.h version.h \ - global.h input.h output.h error.h conf.h control.h iatomic.h \ - control_external.h pcm.h pcm_old.h timer.h pcm_plugin.h \ - pcm_rate.h pcm_external.h pcm_extplug.h pcm_ioplug.h rawmidi.h \ - hwdep.h mixer.h mixer_abst.h seq_event.h seq.h seqmid.h \ - seq_midi_event.h alisp.h -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(alsaincludedir)" -alsaincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(alsainclude_HEADERS) $(noinst_HEADERS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALSA_CONFIG_DIR = @ALSA_CONFIG_DIR@ -ALSA_DEPLIBS = @ALSA_DEPLIBS@ -ALSA_HSEARCH_R_FALSE = @ALSA_HSEARCH_R_FALSE@ -ALSA_HSEARCH_R_TRUE = @ALSA_HSEARCH_R_TRUE@ -ALSA_PLUGIN_DIR = @ALSA_PLUGIN_DIR@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_ALISP_FALSE = @BUILD_ALISP_FALSE@ -BUILD_ALISP_TRUE = @BUILD_ALISP_TRUE@ -BUILD_CTL_PLUGIN_EXT_FALSE = @BUILD_CTL_PLUGIN_EXT_FALSE@ -BUILD_CTL_PLUGIN_EXT_TRUE = @BUILD_CTL_PLUGIN_EXT_TRUE@ -BUILD_CTL_PLUGIN_FALSE = @BUILD_CTL_PLUGIN_FALSE@ -BUILD_CTL_PLUGIN_SHM_FALSE = @BUILD_CTL_PLUGIN_SHM_FALSE@ -BUILD_CTL_PLUGIN_SHM_TRUE = @BUILD_CTL_PLUGIN_SHM_TRUE@ -BUILD_CTL_PLUGIN_TRUE = @BUILD_CTL_PLUGIN_TRUE@ -BUILD_HWDEP_FALSE = @BUILD_HWDEP_FALSE@ -BUILD_HWDEP_TRUE = @BUILD_HWDEP_TRUE@ -BUILD_MIXER_FALSE = @BUILD_MIXER_FALSE@ -BUILD_MIXER_TRUE = @BUILD_MIXER_TRUE@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -BUILD_PCM_FALSE = @BUILD_PCM_FALSE@ -BUILD_PCM_PLUGIN_ADPCM_FALSE = @BUILD_PCM_PLUGIN_ADPCM_FALSE@ -BUILD_PCM_PLUGIN_ADPCM_TRUE = @BUILD_PCM_PLUGIN_ADPCM_TRUE@ -BUILD_PCM_PLUGIN_ALAW_FALSE = @BUILD_PCM_PLUGIN_ALAW_FALSE@ -BUILD_PCM_PLUGIN_ALAW_TRUE = @BUILD_PCM_PLUGIN_ALAW_TRUE@ -BUILD_PCM_PLUGIN_ASYM_FALSE = @BUILD_PCM_PLUGIN_ASYM_FALSE@ -BUILD_PCM_PLUGIN_ASYM_TRUE = @BUILD_PCM_PLUGIN_ASYM_TRUE@ -BUILD_PCM_PLUGIN_COPY_FALSE = @BUILD_PCM_PLUGIN_COPY_FALSE@ -BUILD_PCM_PLUGIN_COPY_TRUE = @BUILD_PCM_PLUGIN_COPY_TRUE@ -BUILD_PCM_PLUGIN_DMIX_FALSE = @BUILD_PCM_PLUGIN_DMIX_FALSE@ -BUILD_PCM_PLUGIN_DMIX_TRUE = @BUILD_PCM_PLUGIN_DMIX_TRUE@ -BUILD_PCM_PLUGIN_DSHARE_FALSE = @BUILD_PCM_PLUGIN_DSHARE_FALSE@ -BUILD_PCM_PLUGIN_DSHARE_TRUE = @BUILD_PCM_PLUGIN_DSHARE_TRUE@ -BUILD_PCM_PLUGIN_DSNOOP_FALSE = @BUILD_PCM_PLUGIN_DSNOOP_FALSE@ -BUILD_PCM_PLUGIN_DSNOOP_TRUE = @BUILD_PCM_PLUGIN_DSNOOP_TRUE@ -BUILD_PCM_PLUGIN_EMPTY_FALSE = @BUILD_PCM_PLUGIN_EMPTY_FALSE@ -BUILD_PCM_PLUGIN_EMPTY_TRUE = @BUILD_PCM_PLUGIN_EMPTY_TRUE@ -BUILD_PCM_PLUGIN_EXTPLUG_FALSE = @BUILD_PCM_PLUGIN_EXTPLUG_FALSE@ -BUILD_PCM_PLUGIN_EXTPLUG_TRUE = @BUILD_PCM_PLUGIN_EXTPLUG_TRUE@ -BUILD_PCM_PLUGIN_FALSE = @BUILD_PCM_PLUGIN_FALSE@ -BUILD_PCM_PLUGIN_FILE_FALSE = @BUILD_PCM_PLUGIN_FILE_FALSE@ -BUILD_PCM_PLUGIN_FILE_TRUE = @BUILD_PCM_PLUGIN_FILE_TRUE@ -BUILD_PCM_PLUGIN_HOOKS_FALSE = @BUILD_PCM_PLUGIN_HOOKS_FALSE@ -BUILD_PCM_PLUGIN_HOOKS_TRUE = @BUILD_PCM_PLUGIN_HOOKS_TRUE@ -BUILD_PCM_PLUGIN_IEC958_FALSE = @BUILD_PCM_PLUGIN_IEC958_FALSE@ -BUILD_PCM_PLUGIN_IEC958_TRUE = @BUILD_PCM_PLUGIN_IEC958_TRUE@ -BUILD_PCM_PLUGIN_IOPLUG_FALSE = @BUILD_PCM_PLUGIN_IOPLUG_FALSE@ -BUILD_PCM_PLUGIN_IOPLUG_TRUE = @BUILD_PCM_PLUGIN_IOPLUG_TRUE@ -BUILD_PCM_PLUGIN_LADSPA_FALSE = @BUILD_PCM_PLUGIN_LADSPA_FALSE@ -BUILD_PCM_PLUGIN_LADSPA_TRUE = @BUILD_PCM_PLUGIN_LADSPA_TRUE@ -BUILD_PCM_PLUGIN_LFLOAT_FALSE = @BUILD_PCM_PLUGIN_LFLOAT_FALSE@ -BUILD_PCM_PLUGIN_LFLOAT_TRUE = @BUILD_PCM_PLUGIN_LFLOAT_TRUE@ -BUILD_PCM_PLUGIN_LINEAR_FALSE = @BUILD_PCM_PLUGIN_LINEAR_FALSE@ -BUILD_PCM_PLUGIN_LINEAR_TRUE = @BUILD_PCM_PLUGIN_LINEAR_TRUE@ -BUILD_PCM_PLUGIN_METER_FALSE = @BUILD_PCM_PLUGIN_METER_FALSE@ -BUILD_PCM_PLUGIN_METER_TRUE = @BUILD_PCM_PLUGIN_METER_TRUE@ -BUILD_PCM_PLUGIN_MMAP_EMUL_FALSE = @BUILD_PCM_PLUGIN_MMAP_EMUL_FALSE@ -BUILD_PCM_PLUGIN_MMAP_EMUL_TRUE = @BUILD_PCM_PLUGIN_MMAP_EMUL_TRUE@ -BUILD_PCM_PLUGIN_MULAW_FALSE = @BUILD_PCM_PLUGIN_MULAW_FALSE@ -BUILD_PCM_PLUGIN_MULAW_TRUE = @BUILD_PCM_PLUGIN_MULAW_TRUE@ -BUILD_PCM_PLUGIN_MULTI_FALSE = @BUILD_PCM_PLUGIN_MULTI_FALSE@ -BUILD_PCM_PLUGIN_MULTI_TRUE = @BUILD_PCM_PLUGIN_MULTI_TRUE@ -BUILD_PCM_PLUGIN_NULL_FALSE = @BUILD_PCM_PLUGIN_NULL_FALSE@ -BUILD_PCM_PLUGIN_NULL_TRUE = @BUILD_PCM_PLUGIN_NULL_TRUE@ -BUILD_PCM_PLUGIN_PLUG_FALSE = @BUILD_PCM_PLUGIN_PLUG_FALSE@ -BUILD_PCM_PLUGIN_PLUG_TRUE = @BUILD_PCM_PLUGIN_PLUG_TRUE@ -BUILD_PCM_PLUGIN_RATE_FALSE = @BUILD_PCM_PLUGIN_RATE_FALSE@ -BUILD_PCM_PLUGIN_RATE_TRUE = @BUILD_PCM_PLUGIN_RATE_TRUE@ -BUILD_PCM_PLUGIN_ROUTE_FALSE = @BUILD_PCM_PLUGIN_ROUTE_FALSE@ -BUILD_PCM_PLUGIN_ROUTE_TRUE = @BUILD_PCM_PLUGIN_ROUTE_TRUE@ -BUILD_PCM_PLUGIN_SHARE_FALSE = @BUILD_PCM_PLUGIN_SHARE_FALSE@ -BUILD_PCM_PLUGIN_SHARE_TRUE = @BUILD_PCM_PLUGIN_SHARE_TRUE@ -BUILD_PCM_PLUGIN_SHM_FALSE = @BUILD_PCM_PLUGIN_SHM_FALSE@ -BUILD_PCM_PLUGIN_SHM_TRUE = @BUILD_PCM_PLUGIN_SHM_TRUE@ -BUILD_PCM_PLUGIN_SOFTVOL_FALSE = @BUILD_PCM_PLUGIN_SOFTVOL_FALSE@ -BUILD_PCM_PLUGIN_SOFTVOL_TRUE = @BUILD_PCM_PLUGIN_SOFTVOL_TRUE@ -BUILD_PCM_PLUGIN_TRUE = @BUILD_PCM_PLUGIN_TRUE@ -BUILD_PCM_TRUE = @BUILD_PCM_TRUE@ -BUILD_PYTHON_FALSE = @BUILD_PYTHON_FALSE@ -BUILD_PYTHON_TRUE = @BUILD_PYTHON_TRUE@ -BUILD_RAWMIDI_FALSE = @BUILD_RAWMIDI_FALSE@ -BUILD_RAWMIDI_TRUE = @BUILD_RAWMIDI_TRUE@ -BUILD_SEQ_FALSE = @BUILD_SEQ_FALSE@ -BUILD_SEQ_TRUE = @BUILD_SEQ_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_M4_FALSE = @INSTALL_M4_FALSE@ -INSTALL_M4_TRUE = @INSTALL_M4_TRUE@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -KEEP_OLD_SYMBOLS_FALSE = @KEEP_OLD_SYMBOLS_FALSE@ -KEEP_OLD_SYMBOLS_TRUE = @KEEP_OLD_SYMBOLS_TRUE@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_VERSION_INFO = @LIBTOOL_VERSION_INFO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_INCLUDES = @PYTHON_INCLUDES@ -PYTHON_LIBS = @PYTHON_LIBS@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SND_LIB_EXTRAVER = @SND_LIB_EXTRAVER@ -SND_LIB_MAJOR = @SND_LIB_MAJOR@ -SND_LIB_MINOR = @SND_LIB_MINOR@ -SND_LIB_SUBMINOR = @SND_LIB_SUBMINOR@ -SND_LIB_VERSION = @SND_LIB_VERSION@ -STRIP = @STRIP@ -SYMBOLIC_FUNCTIONS_FALSE = @SYMBOLIC_FUNCTIONS_FALSE@ -SYMBOLIC_FUNCTIONS_TRUE = @SYMBOLIC_FUNCTIONS_TRUE@ -SYMBOL_PREFIX = @SYMBOL_PREFIX@ -VERSION = @VERSION@ -VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@ -VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -SUBDIRS = sound -sysincludedir = ${includedir}/sys -alsaincludedir = ${includedir}/alsa -alsainclude_HEADERS = asoundlib.h asoundef.h version.h global.h \ - input.h output.h error.h conf.h control.h iatomic.h \ - $(am__append_1) $(am__append_2) $(am__append_3) \ - $(am__append_4) $(am__append_5) $(am__append_6) \ - $(am__append_7) $(am__append_8) $(am__append_9) \ - $(am__append_10) $(am__append_11) $(am__append_12) -noinst_HEADERS = alsa sys.h search.h list.h aserver.h local.h alsa-symbols.h \ - asoundlib-head.h asoundlib-tail.h - -DISTCLEANFILES = stamp-vh version.h alsa asoundlib.h -INCLUDES = -I$(top_srcdir)/include -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ - else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status include/config.h -$(srcdir)/config.h.in: $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -install-alsaincludeHEADERS: $(alsainclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(alsaincludedir)" || $(mkdir_p) "$(DESTDIR)$(alsaincludedir)" - @list='$(alsainclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(alsaincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(alsaincludedir)/$$f'"; \ - $(alsaincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(alsaincludedir)/$$f"; \ - done - -uninstall-alsaincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(alsainclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(alsaincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(alsaincludedir)/$$f"; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(HEADERS) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(alsaincludedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr \ - distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-alsaincludeHEADERS - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-data-hook - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-alsaincludeHEADERS uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-recursive distclean-tags distdir \ - dvi dvi-am html html-am info info-am install \ - install-alsaincludeHEADERS install-am install-data \ - install-data-am install-data-hook install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-alsaincludeHEADERS \ - uninstall-am uninstall-info-am - - -alsa: - ln -s $(top_srcdir)/include alsa - -version.h: stamp-vh alsa - @: - -stamp-vh: $(top_builddir)/configure.in - @echo "/*" > ver.tmp - @echo " * version.h" >> ver.tmp - @echo " */" >> ver.tmp - @echo "" >> ver.tmp - @echo "#define SND_LIB_MAJOR $(SND_LIB_MAJOR) /**< major number of library version */" >> ver.tmp - @echo "#define SND_LIB_MINOR $(SND_LIB_MINOR) /**< minor number of library version */" >> ver.tmp - @echo "#define SND_LIB_SUBMINOR $(SND_LIB_SUBMINOR) /**< subminor number of library version */" >> ver.tmp - @echo "#define SND_LIB_EXTRAVER $(SND_LIB_EXTRAVER) /**< extra version number, used mainly for betas */" >> ver.tmp - @echo "/** library version */" >> ver.tmp - @echo "#define SND_LIB_VERSION ((SND_LIB_MAJOR<<16)|\\" >> ver.tmp - @echo " (SND_LIB_MINOR<<8)|\\" >> ver.tmp - @echo " SND_LIB_SUBMINOR)" >> ver.tmp - @echo "/** library version (string) */" >> ver.tmp - @echo "#define SND_LIB_VERSION_STR \"$(SND_LIB_VERSION)\"" >> ver.tmp - @echo >> ver.tmp - @cmp -s version.h ver.tmp \ - || (echo "Updating version.h"; \ - cp ver.tmp version.h; \ - echo timestamp > stamp-vh) - -@rm -f ver.tmp - -install-data-hook: - test -d $(DESTDIR)$(sysincludedir) || mkdir -p $(DESTDIR)$(sysincludedir) - $(INSTALL_DATA) $(srcdir)/sys.h $(DESTDIR)$(sysincludedir)/asoundlib.h -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/alsa-lib/include/alisp.h b/alsa-lib/include/alisp.h deleted file mode 100644 index 407ed64..0000000 --- a/alsa-lib/include/alisp.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * ALSA lisp implementation - * Copyright (c) 2003 by Jaroslav Kysela <perex@perex.cz> - * - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -struct alisp_cfg { - int verbose: 1, - warning: 1, - debug: 1; - snd_input_t *in; /* program code */ - snd_output_t *out; /* program output */ - snd_output_t *eout; /* error output */ - snd_output_t *vout; /* verbose output */ - snd_output_t *wout; /* warning output */ - snd_output_t *dout; /* debug output */ -}; - -struct alisp_instance; -struct alisp_object; -struct alisp_seq_iterator; - -struct alisp_cfg *alsa_lisp_default_cfg(snd_input_t *input); -void alsa_lisp_default_cfg_free(struct alisp_cfg *cfg); -int alsa_lisp(struct alisp_cfg *cfg, struct alisp_instance **instance); -void alsa_lisp_free(struct alisp_instance *instance); -int alsa_lisp_function(struct alisp_instance *instance, struct alisp_seq_iterator **result, - const char *id, const char *args, ...) -#ifndef DOC_HIDDEN - __attribute__ ((format (printf, 4, 5))) -#endif - ; -void alsa_lisp_result_free(struct alisp_instance *instance, - struct alisp_seq_iterator *result); -int alsa_lisp_seq_first(struct alisp_instance *instance, const char *id, - struct alisp_seq_iterator **seq); -int alsa_lisp_seq_next(struct alisp_seq_iterator **seq); -int alsa_lisp_seq_count(struct alisp_seq_iterator *seq); -int alsa_lisp_seq_integer(struct alisp_seq_iterator *seq, long *val); -int alsa_lisp_seq_pointer(struct alisp_seq_iterator *seq, const char *ptr_id, void **ptr); diff --git a/alsa-lib/include/alsa b/alsa-lib/include/alsa deleted file mode 120000 index 945c9b4..0000000 --- a/alsa-lib/include/alsa +++ /dev/null @@ -1 +0,0 @@ -.
\ No newline at end of file diff --git a/alsa-lib/include/alsa-symbols.h b/alsa-lib/include/alsa-symbols.h deleted file mode 100644 index 51cb982..0000000 --- a/alsa-lib/include/alsa-symbols.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * ALSA lib - dynamic symbol versions - * Copyright (c) 2002 by Jaroslav Kysela <perex@perex.cz> - * - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_SYMBOLS_H -#define __ALSA_SYMBOLS_H - -#if defined(PIC) && defined(VERSIONED_SYMBOLS) /* might be also configurable */ -#define USE_VERSIONED_SYMBOLS -#endif - -#define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post -#define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name) - -#ifdef __powerpc64__ -# define symbol_version(real, name, version) \ - __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version); \ - __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@" #version) -# define default_symbol_version(real, name, version) \ - __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version); \ - __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@@" #version) -#else -# define symbol_version(real, name, version) \ - __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version) -# define default_symbol_version(real, name, version) \ - __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version) -#endif - -#ifdef USE_VERSIONED_SYMBOLS -#define use_symbol_version(real, name, version) \ - symbol_version(real, name, version) -#define use_default_symbol_version(real, name, version) \ - default_symbol_version(real, name, version) -#else -#define use_symbol_version(real, name, version) /* nothing */ -#ifdef __powerpc64__ -#define use_default_symbol_version(real, name, version) \ - __asm__ (".weak " ASM_NAME(#name)); \ - __asm__ (".weak ." ASM_NAME(#name)); \ - __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real)); \ - __asm__ (".set ." ASM_NAME(#name) ",." ASM_NAME(#real)) -#else -#if defined(__alpha__) || defined(__mips__) -#define use_default_symbol_version(real, name, version) \ - __asm__ (".weak " ASM_NAME(#name)); \ - __asm__ (ASM_NAME(#name) " = " ASM_NAME(#real)) -#else -#define use_default_symbol_version(real, name, version) \ - __asm__ (".weak " ASM_NAME(#name)); \ - __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real)) -#endif -#endif -#endif - -#endif /* __ALSA_SYMBOLS_H */ diff --git a/alsa-lib/include/aserver.h b/alsa-lib/include/aserver.h deleted file mode 100644 index 2586832..0000000 --- a/alsa-lib/include/aserver.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * ALSA client/server header file - * Copyright (c) 2000 by Abramo Bagnara <abramo@alsa-project.org> - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include <netdb.h> -#include "../src/pcm/pcm_local.h" -#include "../src/control/control_local.h" - -int snd_receive_fd(int sock, void *data, size_t len, int *fd); -int snd_is_local(struct hostent *hent); - -typedef enum _snd_dev_type { - SND_DEV_TYPE_PCM, - SND_DEV_TYPE_CONTROL, - SND_DEV_TYPE_RAWMIDI, - SND_DEV_TYPE_TIMER, - SND_DEV_TYPE_HWDEP, - SND_DEV_TYPE_SEQ, -} snd_dev_type_t; - -typedef enum _snd_transport_type { - SND_TRANSPORT_TYPE_SHM, - SND_TRANSPORT_TYPE_TCP, -} snd_transport_type_t; - -#define SND_PCM_IOCTL_HWSYNC _IO ('A', 0x22) -#define SND_PCM_IOCTL_STATE _IO ('A', 0xf1) -#define SND_PCM_IOCTL_MMAP _IO ('A', 0xf2) -#define SND_PCM_IOCTL_MUNMAP _IO ('A', 0xf3) -#define SND_PCM_IOCTL_MMAP_COMMIT _IO ('A', 0xf4) -#define SND_PCM_IOCTL_AVAIL_UPDATE _IO ('A', 0xf5) -#define SND_PCM_IOCTL_ASYNC _IO ('A', 0xf6) -#define SND_PCM_IOCTL_CLOSE _IO ('A', 0xf7) -#define SND_PCM_IOCTL_POLL_DESCRIPTOR _IO ('A', 0xf8) -#define SND_PCM_IOCTL_HW_PTR_FD _IO ('A', 0xf9) -#define SND_PCM_IOCTL_APPL_PTR_FD _IO ('A', 0xfa) -#define SND_PCM_IOCTL_FORWARD _IO ('A', 0xfb) - -typedef struct { - snd_pcm_uframes_t ptr; - int use_mmap; - off_t offset; /* for mmap */ - int changed; -} snd_pcm_shm_rbptr_t; - -typedef struct { - long result; - int cmd; - snd_pcm_shm_rbptr_t hw; - snd_pcm_shm_rbptr_t appl; - union { - struct { - int sig; - pid_t pid; - } async; - snd_pcm_info_t info; - snd_pcm_hw_params_t hw_refine; - snd_pcm_hw_params_t hw_params; - snd_pcm_sw_params_t sw_params; - snd_pcm_status_t status; - struct { - snd_pcm_uframes_t frames; - } avail; - struct { - snd_pcm_sframes_t frames; - } delay; - struct { - int enable; - } pause; - snd_pcm_channel_info_t channel_info; - struct { - snd_pcm_uframes_t frames; - } rewind; - struct { - snd_pcm_uframes_t frames; - } forward; - struct { - int fd; - } link; - struct { - snd_pcm_uframes_t offset; - snd_pcm_uframes_t frames; - } mmap_commit; - struct { - char use_mmap; - int shmid; - off_t offset; - } rbptr; - } u; - char data[0]; -} snd_pcm_shm_ctrl_t; - -#define PCM_SHM_SIZE sizeof(snd_pcm_shm_ctrl_t) - -#define SND_CTL_IOCTL_READ _IOR('U', 0xf1, snd_ctl_event_t) -#define SND_CTL_IOCTL_CLOSE _IO ('U', 0xf2) -#define SND_CTL_IOCTL_POLL_DESCRIPTOR _IO ('U', 0xf3) -#define SND_CTL_IOCTL_ASYNC _IO ('U', 0xf4) - -typedef struct { - int result; - int cmd; - union { - struct { - int sig; - pid_t pid; - } async; - int device; - int subscribe_events; - snd_ctl_card_info_t card_info; - snd_ctl_elem_list_t element_list; - snd_ctl_elem_info_t element_info; - snd_ctl_elem_value_t element_read; - snd_ctl_elem_value_t element_write; - snd_ctl_elem_id_t element_lock; - snd_ctl_elem_id_t element_unlock; - snd_hwdep_info_t hwdep_info; - snd_pcm_info_t pcm_info; - int pcm_prefer_subdevice; - snd_rawmidi_info_t rawmidi_info; - int rawmidi_prefer_subdevice; - unsigned int power_state; - snd_ctl_event_t read; - } u; - char data[0]; -} snd_ctl_shm_ctrl_t; - -#define CTL_SHM_SIZE 65536 -#define CTL_SHM_DATA_MAXLEN (CTL_SHM_SIZE - offsetof(snd_ctl_shm_ctrl_t, data)) - -typedef struct { - unsigned char dev_type; - unsigned char transport_type; - unsigned char stream; - unsigned char mode; - unsigned char namelen; - char name[0]; -} snd_client_open_request_t; - -typedef struct { - long result; - int cookie; -} snd_client_open_answer_t; - diff --git a/alsa-lib/include/asoundef.h b/alsa-lib/include/asoundef.h deleted file mode 100644 index c6c4eec..0000000 --- a/alsa-lib/include/asoundef.h +++ /dev/null @@ -1,310 +0,0 @@ -/** - * \file include/asoundef.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Definitions of constants for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_ASOUNDEF_H -#define __ALSA_ASOUNDEF_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Digital_Audio_Interface Constants for Digital Audio Interfaces - * AES/IEC958 channel status bits. - * \{ - */ - -#define IEC958_AES0_PROFESSIONAL (1<<0) /**< 0 = consumer, 1 = professional */ -#define IEC958_AES0_NONAUDIO (1<<1) /**< 0 = audio, 1 = non-audio */ -#define IEC958_AES0_PRO_EMPHASIS (7<<2) /**< mask - emphasis */ -#define IEC958_AES0_PRO_EMPHASIS_NOTID (0<<2) /**< emphasis not indicated */ -#define IEC958_AES0_PRO_EMPHASIS_NONE (1<<2) /**< no emphasis */ -#define IEC958_AES0_PRO_EMPHASIS_5015 (3<<2) /**< 50/15us emphasis */ -#define IEC958_AES0_PRO_EMPHASIS_CCITT (7<<2) /**< CCITT J.17 emphasis */ -#define IEC958_AES0_PRO_FREQ_UNLOCKED (1<<5) /**< source sample frequency: 0 = locked, 1 = unlocked */ -#define IEC958_AES0_PRO_FS (3<<6) /**< mask - sample frequency */ -#define IEC958_AES0_PRO_FS_NOTID (0<<6) /**< fs not indicated */ -#define IEC958_AES0_PRO_FS_44100 (1<<6) /**< 44.1kHz */ -#define IEC958_AES0_PRO_FS_48000 (2<<6) /**< 48kHz */ -#define IEC958_AES0_PRO_FS_32000 (3<<6) /**< 32kHz */ -#define IEC958_AES0_CON_NOT_COPYRIGHT (1<<2) /**< 0 = copyright, 1 = not copyright */ -#define IEC958_AES0_CON_EMPHASIS (7<<3) /**< mask - emphasis */ -#define IEC958_AES0_CON_EMPHASIS_NONE (0<<3) /**< no emphasis */ -#define IEC958_AES0_CON_EMPHASIS_5015 (1<<3) /**< 50/15us emphasis */ -#define IEC958_AES0_CON_MODE (3<<6) /**< mask - mode */ -#define IEC958_AES1_PRO_MODE (15<<0) /**< mask - channel mode */ -#define IEC958_AES1_PRO_MODE_NOTID (0<<0) /**< mode not indicated */ -#define IEC958_AES1_PRO_MODE_STEREOPHONIC (2<<0) /**< stereophonic - ch A is left */ -#define IEC958_AES1_PRO_MODE_SINGLE (4<<0) /**< single channel */ -#define IEC958_AES1_PRO_MODE_TWO (8<<0) /**< two channels */ -#define IEC958_AES1_PRO_MODE_PRIMARY (12<<0) /**< primary/secondary */ -#define IEC958_AES1_PRO_MODE_BYTE3 (15<<0) /**< vector to byte 3 */ -#define IEC958_AES1_PRO_USERBITS (15<<4) /**< mask - user bits */ -#define IEC958_AES1_PRO_USERBITS_NOTID (0<<4) /**< user bits not indicated */ -#define IEC958_AES1_PRO_USERBITS_192 (8<<4) /**< 192-bit structure */ -#define IEC958_AES1_PRO_USERBITS_UDEF (12<<4) /**< user defined application */ -#define IEC958_AES1_CON_CATEGORY 0x7f /**< consumer category */ -#define IEC958_AES1_CON_GENERAL 0x00 /**< general category */ -#define IEC958_AES1_CON_LASEROPT_MASK 0x07 /**< Laser-optical mask */ -#define IEC958_AES1_CON_LASEROPT_ID 0x01 /**< Laser-optical ID */ -#define IEC958_AES1_CON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x00) /**< IEC958 CD compatible device */ -#define IEC958_AES1_CON_NON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x08) /**< non-IEC958 CD compatible device */ -#define IEC958_AES1_CON_MINI_DISC (IEC958_AES1_CON_LASEROPT_ID|0x48) /**< Mini-Disc device */ -#define IEC958_AES1_CON_DVD (IEC958_AES1_CON_LASEROPT_ID|0x18) /**< DVD device */ -#define IEC958_AES1_CON_LASTEROPT_OTHER (IEC958_AES1_CON_LASEROPT_ID|0x78) /**< Other laser-optical product */ -#define IEC958_AES1_CON_DIGDIGCONV_MASK 0x07 /**< digital<->digital converter mask */ -#define IEC958_AES1_CON_DIGDIGCONV_ID 0x02 /**< digital<->digital converter id */ -#define IEC958_AES1_CON_PCM_CODER (IEC958_AES1_CON_DIGDIGCONV_ID|0x00) /**< PCM coder */ -#define IEC958_AES1_CON_MIXER (IEC958_AES1_CON_DIGDIGCONV_ID|0x10) /**< Digital signal mixer */ -#define IEC958_AES1_CON_RATE_CONVERTER (IEC958_AES1_CON_DIGDIGCONV_ID|0x18) /**< Rate converter */ -#define IEC958_AES1_CON_SAMPLER (IEC958_AES1_CON_DIGDIGCONV_ID|0x20) /**< PCM sampler */ -#define IEC958_AES1_CON_DSP (IEC958_AES1_CON_DIGDIGCONV_ID|0x28) /**< Digital sound processor */ -#define IEC958_AES1_CON_DIGDIGCONV_OTHER (IEC958_AES1_CON_DIGDIGCONV_ID|0x78) /**< Other digital<->digital product */ -#define IEC958_AES1_CON_MAGNETIC_MASK 0x07 /**< Magnetic device mask */ -#define IEC958_AES1_CON_MAGNETIC_ID 0x03 /**< Magnetic device ID */ -#define IEC958_AES1_CON_DAT (IEC958_AES1_CON_MAGNETIC_ID|0x00) /**< Digital Audio Tape */ -#define IEC958_AES1_CON_VCR (IEC958_AES1_CON_MAGNETIC_ID|0x08) /**< Video recorder */ -#define IEC958_AES1_CON_DCC (IEC958_AES1_CON_MAGNETIC_ID|0x40) /**< Digital compact cassette */ -#define IEC958_AES1_CON_MAGNETIC_DISC (IEC958_AES1_CON_MAGNETIC_ID|0x18) /**< Magnetic disc digital audio device */ -#define IEC958_AES1_CON_MAGNETIC_OTHER (IEC958_AES1_CON_MAGNETIC_ID|0x78) /**< Other magnetic device */ -#define IEC958_AES1_CON_BROADCAST1_MASK 0x07 /**< Broadcast mask */ -#define IEC958_AES1_CON_BROADCAST1_ID 0x04 /**< Broadcast ID */ -#define IEC958_AES1_CON_DAB_JAPAN (IEC958_AES1_CON_BROADCAST1_ID|0x00) /**< Digital audio broadcast (Japan) */ -#define IEC958_AES1_CON_DAB_EUROPE (IEC958_AES1_CON_BROADCAST1_ID|0x08) /**< Digital audio broadcast (Europe) */ -#define IEC958_AES1_CON_DAB_USA (IEC958_AES1_CON_BROADCAST1_ID|0x60) /**< Digital audio broadcast (USA) */ -#define IEC958_AES1_CON_SOFTWARE (IEC958_AES1_CON_BROADCAST1_ID|0x40) /**< Electronic software delivery */ -#define IEC958_AES1_CON_IEC62105 (IEC958_AES1_CON_BROADCAST1_ID|0x20) /**< Used by another standard (IEC 62105) */ -#define IEC958_AES1_CON_BROADCAST1_OTHER (IEC958_AES1_CON_BROADCAST1_ID|0x78) /**< Other broadcast product */ -#define IEC958_AES1_CON_BROADCAST2_MASK 0x0f /**< Broadcast alternative mask */ -#define IEC958_AES1_CON_BROADCAST2_ID 0x0e /**< Broadcast alternative ID */ -#define IEC958_AES1_CON_MUSICAL_MASK 0x07 /**< Musical device mask */ -#define IEC958_AES1_CON_MUSICAL_ID 0x05 /**< Musical device ID */ -#define IEC958_AES1_CON_SYNTHESIZER (IEC958_AES1_CON_MUSICAL_ID|0x00) /**< Synthesizer */ -#define IEC958_AES1_CON_MICROPHONE (IEC958_AES1_CON_MUSICAL_ID|0x08) /**< Microphone */ -#define IEC958_AES1_CON_MUSICAL_OTHER (IEC958_AES1_CON_MUSICAL_ID|0x78) /**< Other musical device */ -#define IEC958_AES1_CON_ADC_MASK 0x1f /**< ADC Mask */ -#define IEC958_AES1_CON_ADC_ID 0x06 /**< ADC ID */ -#define IEC958_AES1_CON_ADC (IEC958_AES1_CON_ADC_ID|0x00) /**< ADC without copyright information */ -#define IEC958_AES1_CON_ADC_OTHER (IEC958_AES1_CON_ADC_ID|0x60) /**< Other ADC product (with no copyright information) */ -#define IEC958_AES1_CON_ADC_COPYRIGHT_MASK 0x1f /**< ADC Copyright mask */ -#define IEC958_AES1_CON_ADC_COPYRIGHT_ID 0x16 /**< ADC Copyright ID */ -#define IEC958_AES1_CON_ADC_COPYRIGHT (IEC958_AES1_CON_ADC_COPYRIGHT_ID|0x00) /**< ADC with copyright information */ -#define IEC958_AES1_CON_ADC_COPYRIGHT_OTHER (IEC958_AES1_CON_ADC_COPYRIGHT_ID|0x60) /**< Other ADC with copyright information product */ -#define IEC958_AES1_CON_SOLIDMEM_MASK 0x0f /**< Solid memory based products mask */ -#define IEC958_AES1_CON_SOLIDMEM_ID 0x08 /**< Solid memory based products ID */ -#define IEC958_AES1_CON_SOLIDMEM_DIGITAL_RECORDER_PLAYER (IEC958_AES1_CON_SOLIDMEM_ID|0x00) /**< Digital audio recorder and player using solid state memory */ -#define IEC958_AES1_CON_SOLIDMEM_OTHER (IEC958_AES1_CON_SOLIDMEM_ID|0x70) /**< Other solid state memory based product */ -#define IEC958_AES1_CON_EXPERIMENTAL 0x40 /**< experimental category */ -#define IEC958_AES1_CON_ORIGINAL (1<<7) /**< this bits depends on the category code */ -#define IEC958_AES2_PRO_SBITS (7<<0) /**< mask - sample bits */ -#define IEC958_AES2_PRO_SBITS_20 (2<<0) /**< 20-bit - coordination */ -#define IEC958_AES2_PRO_SBITS_24 (4<<0) /**< 24-bit - main audio */ -#define IEC958_AES2_PRO_SBITS_UDEF (6<<0) /**< user defined application */ -#define IEC958_AES2_PRO_WORDLEN (7<<3) /**< mask - source word length */ -#define IEC958_AES2_PRO_WORDLEN_NOTID (0<<3) /**< source word length not indicated */ -#define IEC958_AES2_PRO_WORDLEN_22_18 (2<<3) /**< 22-bit or 18-bit */ -#define IEC958_AES2_PRO_WORDLEN_23_19 (4<<3) /**< 23-bit or 19-bit */ -#define IEC958_AES2_PRO_WORDLEN_24_20 (5<<3) /**< 24-bit or 20-bit */ -#define IEC958_AES2_PRO_WORDLEN_20_16 (6<<3) /**< 20-bit or 16-bit */ -#define IEC958_AES2_CON_SOURCE (15<<0) /**< mask - source number */ -#define IEC958_AES2_CON_SOURCE_UNSPEC (0<<0) /**< source number unspecified */ -#define IEC958_AES2_CON_CHANNEL (15<<4) /**< mask - channel number */ -#define IEC958_AES2_CON_CHANNEL_UNSPEC (0<<4) /**< channel number unspecified */ -#define IEC958_AES3_CON_FS (15<<0) /**< mask - sample frequency */ -#define IEC958_AES3_CON_FS_44100 (0<<0) /**< 44.1kHz */ -#define IEC958_AES3_CON_FS_NOTID (1<<0) /**< sample frequency non indicated */ -#define IEC958_AES3_CON_FS_48000 (2<<0) /**< 48kHz */ -#define IEC958_AES3_CON_FS_32000 (3<<0) /**< 32kHz */ -#define IEC958_AES3_CON_FS_22050 (4<<0) /**< 22.05kHz */ -#define IEC958_AES3_CON_FS_24000 (6<<0) /**< 24kHz */ -#define IEC958_AES3_CON_FS_88200 (8<<0) /**< 88.2kHz */ -#define IEC958_AES3_CON_FS_768000 (9<<0) /**< 768kHz */ -#define IEC958_AES3_CON_FS_96000 (10<<0) /**< 96kHz */ -#define IEC958_AES3_CON_FS_176400 (12<<0) /**< 176.4kHz */ -#define IEC958_AES3_CON_FS_192000 (14<<0) /**< 192kHz */ -#define IEC958_AES3_CON_CLOCK (3<<4) /**< mask - clock accuracy */ -#define IEC958_AES3_CON_CLOCK_1000PPM (0<<4) /**< 1000 ppm */ -#define IEC958_AES3_CON_CLOCK_50PPM (1<<4) /**< 50 ppm */ -#define IEC958_AES3_CON_CLOCK_VARIABLE (2<<4) /**< variable pitch */ -#define IEC958_AES4_CON_MAX_WORDLEN_24 (1<<0) /**< 0 = 20-bit, 1 = 24-bit */ -#define IEC958_AES4_CON_WORDLEN (7<<1) /**< mask - sample word length */ -#define IEC958_AES4_CON_WORDLEN_NOTID (0<<1) /**< not indicated */ -#define IEC958_AES4_CON_WORDLEN_20_16 (1<<1) /**< 20-bit or 16-bit */ -#define IEC958_AES4_CON_WORDLEN_22_18 (2<<1) /**< 22-bit or 18-bit */ -#define IEC958_AES4_CON_WORDLEN_23_19 (4<<1) /**< 23-bit or 19-bit */ -#define IEC958_AES4_CON_WORDLEN_24_20 (5<<1) /**< 24-bit or 20-bit */ -#define IEC958_AES4_CON_WORDLEN_21_17 (6<<1) /**< 21-bit or 17-bit */ -#define IEC958_AES4_CON_ORIGFS (15<<4) /**< mask - original sample frequency */ -#define IEC958_AES4_CON_ORIGFS_NOTID (0<<4) /**< original sample frequency not indicated */ -#define IEC958_AES4_CON_ORIGFS_192000 (1<<4) /**< 192kHz */ -#define IEC958_AES4_CON_ORIGFS_12000 (2<<4) /**< 12kHz */ -#define IEC958_AES4_CON_ORIGFS_176400 (3<<4) /**< 176.4kHz */ -#define IEC958_AES4_CON_ORIGFS_96000 (5<<4) /**< 96kHz */ -#define IEC958_AES4_CON_ORIGFS_8000 (6<<4) /**< 8kHz */ -#define IEC958_AES4_CON_ORIGFS_88200 (7<<4) /**< 88.2kHz */ -#define IEC958_AES4_CON_ORIGFS_16000 (8<<4) /**< 16kHz */ -#define IEC958_AES4_CON_ORIGFS_24000 (9<<4) /**< 24kHz */ -#define IEC958_AES4_CON_ORIGFS_11025 (10<<4) /**< 11.025kHz */ -#define IEC958_AES4_CON_ORIGFS_22050 (11<<4) /**< 22.05kHz */ -#define IEC958_AES4_CON_ORIGFS_32000 (12<<4) /**< 32kHz */ -#define IEC958_AES4_CON_ORIGFS_48000 (13<<4) /**< 48kHz */ -#define IEC958_AES4_CON_ORIGFS_44100 (15<<4) /**< 44.1kHz */ -#define IEC958_AES5_CON_CGMSA (3<<0) /**< mask - CGMS-A */ -#define IEC958_AES5_CON_CGMSA_COPYFREELY (0<<0) /**< copying is permitted without restriction */ -#define IEC958_AES5_CON_CGMSA_COPYONCE (1<<0) /**< one generation of copies may be made */ -#define IEC958_AES5_CON_CGMSA_COPYNOMORE (2<<0) /**< condition not be used */ -#define IEC958_AES5_CON_CGMSA_COPYNEVER (3<<0) /**< no copying is permitted */ - -/** \} */ - -/** - * \defgroup MIDI_Interface Constants for MIDI v1.0 - * Constants for MIDI v1.0. - * \{ - */ - -#define MIDI_CHANNELS 16 /**< Number of channels per port/cable. */ -#define MIDI_GM_DRUM_CHANNEL (10-1) /**< Channel number for GM drums. */ - -/** - * \defgroup MIDI_Commands MIDI Commands - * MIDI command codes. - * \{ - */ - -#define MIDI_CMD_NOTE_OFF 0x80 /**< note off */ -#define MIDI_CMD_NOTE_ON 0x90 /**< note on */ -#define MIDI_CMD_NOTE_PRESSURE 0xa0 /**< key pressure */ -#define MIDI_CMD_CONTROL 0xb0 /**< control change */ -#define MIDI_CMD_PGM_CHANGE 0xc0 /**< program change */ -#define MIDI_CMD_CHANNEL_PRESSURE 0xd0 /**< channel pressure */ -#define MIDI_CMD_BENDER 0xe0 /**< pitch bender */ - -#define MIDI_CMD_COMMON_SYSEX 0xf0 /**< sysex (system exclusive) begin */ -#define MIDI_CMD_COMMON_MTC_QUARTER 0xf1 /**< MTC quarter frame */ -#define MIDI_CMD_COMMON_SONG_POS 0xf2 /**< song position */ -#define MIDI_CMD_COMMON_SONG_SELECT 0xf3 /**< song select */ -#define MIDI_CMD_COMMON_TUNE_REQUEST 0xf6 /**< tune request */ -#define MIDI_CMD_COMMON_SYSEX_END 0xf7 /**< end of sysex */ -#define MIDI_CMD_COMMON_CLOCK 0xf8 /**< clock */ -#define MIDI_CMD_COMMON_START 0xfa /**< start */ -#define MIDI_CMD_COMMON_CONTINUE 0xfb /**< continue */ -#define MIDI_CMD_COMMON_STOP 0xfc /**< stop */ -#define MIDI_CMD_COMMON_SENSING 0xfe /**< active sensing */ -#define MIDI_CMD_COMMON_RESET 0xff /**< reset */ - -/** \} */ - -/** - * \defgroup MIDI_Controllers MIDI Controllers - * MIDI controller numbers. - * \{ - */ - -#define MIDI_CTL_MSB_BANK 0x00 /**< Bank selection */ -#define MIDI_CTL_MSB_MODWHEEL 0x01 /**< Modulation */ -#define MIDI_CTL_MSB_BREATH 0x02 /**< Breath */ -#define MIDI_CTL_MSB_FOOT 0x04 /**< Foot */ -#define MIDI_CTL_MSB_PORTAMENTO_TIME 0x05 /**< Portamento time */ -#define MIDI_CTL_MSB_DATA_ENTRY 0x06 /**< Data entry */ -#define MIDI_CTL_MSB_MAIN_VOLUME 0x07 /**< Main volume */ -#define MIDI_CTL_MSB_BALANCE 0x08 /**< Balance */ -#define MIDI_CTL_MSB_PAN 0x0a /**< Panpot */ -#define MIDI_CTL_MSB_EXPRESSION 0x0b /**< Expression */ -#define MIDI_CTL_MSB_EFFECT1 0x0c /**< Effect1 */ -#define MIDI_CTL_MSB_EFFECT2 0x0d /**< Effect2 */ -#define MIDI_CTL_MSB_GENERAL_PURPOSE1 0x10 /**< General purpose 1 */ -#define MIDI_CTL_MSB_GENERAL_PURPOSE2 0x11 /**< General purpose 2 */ -#define MIDI_CTL_MSB_GENERAL_PURPOSE3 0x12 /**< General purpose 3 */ -#define MIDI_CTL_MSB_GENERAL_PURPOSE4 0x13 /**< General purpose 4 */ -#define MIDI_CTL_LSB_BANK 0x20 /**< Bank selection */ -#define MIDI_CTL_LSB_MODWHEEL 0x21 /**< Modulation */ -#define MIDI_CTL_LSB_BREATH 0x22 /**< Breath */ -#define MIDI_CTL_LSB_FOOT 0x24 /**< Foot */ -#define MIDI_CTL_LSB_PORTAMENTO_TIME 0x25 /**< Portamento time */ -#define MIDI_CTL_LSB_DATA_ENTRY 0x26 /**< Data entry */ -#define MIDI_CTL_LSB_MAIN_VOLUME 0x27 /**< Main volume */ -#define MIDI_CTL_LSB_BALANCE 0x28 /**< Balance */ -#define MIDI_CTL_LSB_PAN 0x2a /**< Panpot */ -#define MIDI_CTL_LSB_EXPRESSION 0x2b /**< Expression */ -#define MIDI_CTL_LSB_EFFECT1 0x2c /**< Effect1 */ -#define MIDI_CTL_LSB_EFFECT2 0x2d /**< Effect2 */ -#define MIDI_CTL_LSB_GENERAL_PURPOSE1 0x30 /**< General purpose 1 */ -#define MIDI_CTL_LSB_GENERAL_PURPOSE2 0x31 /**< General purpose 2 */ -#define MIDI_CTL_LSB_GENERAL_PURPOSE3 0x32 /**< General purpose 3 */ -#define MIDI_CTL_LSB_GENERAL_PURPOSE4 0x33 /**< General purpose 4 */ -#define MIDI_CTL_SUSTAIN 0x40 /**< Sustain pedal */ -#define MIDI_CTL_PORTAMENTO 0x41 /**< Portamento */ -#define MIDI_CTL_SOSTENUTO 0x42 /**< Sostenuto */ -#define MIDI_CTL_SUSTENUTO 0x42 /**< Sostenuto (a typo in the older version) */ -#define MIDI_CTL_SOFT_PEDAL 0x43 /**< Soft pedal */ -#define MIDI_CTL_LEGATO_FOOTSWITCH 0x44 /**< Legato foot switch */ -#define MIDI_CTL_HOLD2 0x45 /**< Hold2 */ -#define MIDI_CTL_SC1_SOUND_VARIATION 0x46 /**< SC1 Sound Variation */ -#define MIDI_CTL_SC2_TIMBRE 0x47 /**< SC2 Timbre */ -#define MIDI_CTL_SC3_RELEASE_TIME 0x48 /**< SC3 Release Time */ -#define MIDI_CTL_SC4_ATTACK_TIME 0x49 /**< SC4 Attack Time */ -#define MIDI_CTL_SC5_BRIGHTNESS 0x4a /**< SC5 Brightness */ -#define MIDI_CTL_SC6 0x4b /**< SC6 */ -#define MIDI_CTL_SC7 0x4c /**< SC7 */ -#define MIDI_CTL_SC8 0x4d /**< SC8 */ -#define MIDI_CTL_SC9 0x4e /**< SC9 */ -#define MIDI_CTL_SC10 0x4f /**< SC10 */ -#define MIDI_CTL_GENERAL_PURPOSE5 0x50 /**< General purpose 5 */ -#define MIDI_CTL_GENERAL_PURPOSE6 0x51 /**< General purpose 6 */ -#define MIDI_CTL_GENERAL_PURPOSE7 0x52 /**< General purpose 7 */ -#define MIDI_CTL_GENERAL_PURPOSE8 0x53 /**< General purpose 8 */ -#define MIDI_CTL_PORTAMENTO_CONTROL 0x54 /**< Portamento control */ -#define MIDI_CTL_E1_REVERB_DEPTH 0x5b /**< E1 Reverb Depth */ -#define MIDI_CTL_E2_TREMOLO_DEPTH 0x5c /**< E2 Tremolo Depth */ -#define MIDI_CTL_E3_CHORUS_DEPTH 0x5d /**< E3 Chorus Depth */ -#define MIDI_CTL_E4_DETUNE_DEPTH 0x5e /**< E4 Detune Depth */ -#define MIDI_CTL_E5_PHASER_DEPTH 0x5f /**< E5 Phaser Depth */ -#define MIDI_CTL_DATA_INCREMENT 0x60 /**< Data Increment */ -#define MIDI_CTL_DATA_DECREMENT 0x61 /**< Data Decrement */ -#define MIDI_CTL_NONREG_PARM_NUM_LSB 0x62 /**< Non-registered parameter number */ -#define MIDI_CTL_NONREG_PARM_NUM_MSB 0x63 /**< Non-registered parameter number */ -#define MIDI_CTL_REGIST_PARM_NUM_LSB 0x64 /**< Registered parameter number */ -#define MIDI_CTL_REGIST_PARM_NUM_MSB 0x65 /**< Registered parameter number */ -#define MIDI_CTL_ALL_SOUNDS_OFF 0x78 /**< All sounds off */ -#define MIDI_CTL_RESET_CONTROLLERS 0x79 /**< Reset Controllers */ -#define MIDI_CTL_LOCAL_CONTROL_SWITCH 0x7a /**< Local control switch */ -#define MIDI_CTL_ALL_NOTES_OFF 0x7b /**< All notes off */ -#define MIDI_CTL_OMNI_OFF 0x7c /**< Omni off */ -#define MIDI_CTL_OMNI_ON 0x7d /**< Omni on */ -#define MIDI_CTL_MONO1 0x7e /**< Mono1 */ -#define MIDI_CTL_MONO2 0x7f /**< Mono2 */ - -/** \} */ - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_ASOUNDEF_H */ diff --git a/alsa-lib/include/asoundlib-head.h b/alsa-lib/include/asoundlib-head.h deleted file mode 100644 index 20c8a68..0000000 --- a/alsa-lib/include/asoundlib-head.h +++ /dev/null @@ -1,48 +0,0 @@ -/** - * \file include/asoundlib.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ASOUNDLIB_H -#define __ASOUNDLIB_H - -#include <unistd.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <assert.h> -#include <endian.h> -#include <sys/poll.h> -#include <errno.h> -#include <stdarg.h> - -#include <alsa/asoundef.h> -#include <alsa/version.h> -#include <alsa/global.h> -#include <alsa/input.h> -#include <alsa/output.h> -#include <alsa/error.h> -#include <alsa/conf.h> diff --git a/alsa-lib/include/asoundlib-tail.h b/alsa-lib/include/asoundlib-tail.h deleted file mode 100644 index e20f5ad..0000000 --- a/alsa-lib/include/asoundlib-tail.h +++ /dev/null @@ -1,2 +0,0 @@ - -#endif /* __ASOUNDLIB_H */ diff --git a/alsa-lib/include/asoundlib.h b/alsa-lib/include/asoundlib.h deleted file mode 100644 index 9fc860a..0000000 --- a/alsa-lib/include/asoundlib.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - * \file include/asoundlib.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ASOUNDLIB_H -#define __ASOUNDLIB_H - -#include <unistd.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <assert.h> -#include <endian.h> -#include <sys/poll.h> -#include <errno.h> -#include <stdarg.h> - -#include <alsa/asoundef.h> -#include <alsa/version.h> -#include <alsa/global.h> -#include <alsa/input.h> -#include <alsa/output.h> -#include <alsa/error.h> -#include <alsa/conf.h> -#include <alsa/pcm.h> -#include <alsa/rawmidi.h> -#include <alsa/timer.h> -#include <alsa/hwdep.h> -#include <alsa/control.h> -#include <alsa/mixer.h> -#include <alsa/seq_event.h> -#include <alsa/seq.h> -#include <alsa/seqmid.h> -#include <alsa/seq_midi_event.h> - -#endif /* __ASOUNDLIB_H */ diff --git a/alsa-lib/include/conf.h b/alsa-lib/include/conf.h deleted file mode 100644 index 7c0cab0..0000000 --- a/alsa-lib/include/conf.h +++ /dev/null @@ -1,198 +0,0 @@ -/** - * \file include/conf.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_CONF_H -#define __ALSA_CONF_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Config Configuration Interface - * The configuration functions and types allow you to read, enumerate, - * modify and write the contents of ALSA configuration files. - * \{ - */ - -/** \brief \c dlsym version for the config evaluate callback. */ -#define SND_CONFIG_DLSYM_VERSION_EVALUATE _dlsym_config_evaluate_001 -/** \brief \c dlsym version for the config hook callback. */ -#define SND_CONFIG_DLSYM_VERSION_HOOK _dlsym_config_hook_001 - -/** Configuration node type. */ -typedef enum _snd_config_type { - /** Integer number. */ - SND_CONFIG_TYPE_INTEGER, - /** 64 bit Integer number. */ - SND_CONFIG_TYPE_INTEGER64, - /** Real number. */ - SND_CONFIG_TYPE_REAL, - /** Character string. */ - SND_CONFIG_TYPE_STRING, - /** Pointer (runtime only, cannot be saved). */ - SND_CONFIG_TYPE_POINTER, - /** Compound node. */ - SND_CONFIG_TYPE_COMPOUND = 1024 -} snd_config_type_t; - -/** - * \brief Internal structure for a configuration node object. - * - * The ALSA library uses a pointer to this structure as a handle to a - * configuration node. Applications don't access its contents directly. - */ -typedef struct _snd_config snd_config_t; -/** - * \brief Type for a configuration compound iterator. - * - * The ALSA library uses this pointer type as a handle to a configuration - * compound iterator. Applications don't directly access the contents of - * the structure pointed to by this type. - */ -typedef struct _snd_config_iterator *snd_config_iterator_t; -/** - * \brief Internal structure for a configuration private update object. - * - * The ALSA library uses this structure to save private update information. - */ -typedef struct _snd_config_update snd_config_update_t; - -extern snd_config_t *snd_config; - -int snd_config_top(snd_config_t **config); - -int snd_config_load(snd_config_t *config, snd_input_t *in); -int snd_config_load_override(snd_config_t *config, snd_input_t *in); -int snd_config_save(snd_config_t *config, snd_output_t *out); -int snd_config_update(void); -int snd_config_update_r(snd_config_t **top, snd_config_update_t **update, const char *path); -int snd_config_update_free(snd_config_update_t *update); -int snd_config_update_free_global(void); - -int snd_config_search(snd_config_t *config, const char *key, - snd_config_t **result); -int snd_config_searchv(snd_config_t *config, - snd_config_t **result, ...); -int snd_config_search_definition(snd_config_t *config, - const char *base, const char *key, - snd_config_t **result); - -int snd_config_expand(snd_config_t *config, snd_config_t *root, - const char *args, snd_config_t *private_data, - snd_config_t **result); -int snd_config_evaluate(snd_config_t *config, snd_config_t *root, - snd_config_t *private_data, snd_config_t **result); - -int snd_config_add(snd_config_t *config, snd_config_t *leaf); -int snd_config_delete(snd_config_t *config); -int snd_config_delete_compound_members(const snd_config_t *config); -int snd_config_copy(snd_config_t **dst, snd_config_t *src); - -int snd_config_make(snd_config_t **config, const char *key, - snd_config_type_t type); -int snd_config_make_integer(snd_config_t **config, const char *key); -int snd_config_make_integer64(snd_config_t **config, const char *key); -int snd_config_make_real(snd_config_t **config, const char *key); -int snd_config_make_string(snd_config_t **config, const char *key); -int snd_config_make_pointer(snd_config_t **config, const char *key); -int snd_config_make_compound(snd_config_t **config, const char *key, int join); - -int snd_config_imake_integer(snd_config_t **config, const char *key, const long value); -int snd_config_imake_integer64(snd_config_t **config, const char *key, const long long value); -int snd_config_imake_real(snd_config_t **config, const char *key, const double value); -int snd_config_imake_string(snd_config_t **config, const char *key, const char *ascii); -int snd_config_imake_pointer(snd_config_t **config, const char *key, const void *ptr); - -snd_config_type_t snd_config_get_type(const snd_config_t *config); - -int snd_config_set_id(snd_config_t *config, const char *id); -int snd_config_set_integer(snd_config_t *config, long value); -int snd_config_set_integer64(snd_config_t *config, long long value); -int snd_config_set_real(snd_config_t *config, double value); -int snd_config_set_string(snd_config_t *config, const char *value); -int snd_config_set_ascii(snd_config_t *config, const char *ascii); -int snd_config_set_pointer(snd_config_t *config, const void *ptr); -int snd_config_get_id(const snd_config_t *config, const char **value); -int snd_config_get_integer(const snd_config_t *config, long *value); -int snd_config_get_integer64(const snd_config_t *config, long long *value); -int snd_config_get_real(const snd_config_t *config, double *value); -int snd_config_get_ireal(const snd_config_t *config, double *value); -int snd_config_get_string(const snd_config_t *config, const char **value); -int snd_config_get_ascii(const snd_config_t *config, char **value); -int snd_config_get_pointer(const snd_config_t *config, const void **value); -int snd_config_test_id(const snd_config_t *config, const char *id); - -snd_config_iterator_t snd_config_iterator_first(const snd_config_t *node); -snd_config_iterator_t snd_config_iterator_next(const snd_config_iterator_t iterator); -snd_config_iterator_t snd_config_iterator_end(const snd_config_t *node); -snd_config_t *snd_config_iterator_entry(const snd_config_iterator_t iterator); - -/** - * \brief Helper macro to iterate over the children of a compound node. - * \param pos Iterator variable for the current node. - * \param next Iterator variable for the next node. - * \param node Handle to the compound configuration node to iterate over. - * - * This macro is designed to permit the removal of the current node. - */ -#define snd_config_for_each(pos, next, node) \ - for (pos = snd_config_iterator_first(node), next = snd_config_iterator_next(pos); pos != snd_config_iterator_end(node); pos = next, next = snd_config_iterator_next(pos)) - -/* Misc functions */ - -int snd_config_get_bool_ascii(const char *ascii); -int snd_config_get_bool(const snd_config_t *conf); -int snd_config_get_ctl_iface_ascii(const char *ascii); -int snd_config_get_ctl_iface(const snd_config_t *conf); - -/* Names functions */ - -/** - * Device-name list element - */ -typedef struct snd_devname snd_devname_t; - -/** - * Device-name list element (definition) - */ -struct snd_devname { - char *name; /**< Device name string */ - char *comment; /**< Comments */ - snd_devname_t *next; /**< Next pointer */ -}; - -int snd_names_list(const char *iface, snd_devname_t **list); -void snd_names_list_free(snd_devname_t *list); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_CONF_H */ diff --git a/alsa-lib/include/config.h b/alsa-lib/include/config.h deleted file mode 100755 index e743490..0000000 --- a/alsa-lib/include/config.h +++ /dev/null @@ -1,165 +0,0 @@ -/* include/config.h. Generated from config.h.in by configure. */ -/* include/config.h.in. Generated from configure.in by autoheader. */ - -/* Directory with aload* device files */ -#ifndef ALOAD_DEVICE_DIRECTORY -#define ALOAD_DEVICE_DIRECTORY "/dev/" -#endif - -/* directory containing ALSA configuration database */ -#ifndef ALSA_CONFIG_DIR -#define ALSA_CONFIG_DIR "/usr/share/alsa" -#endif - -/* Enable assert at error message handler */ -/* #undef ALSA_DEBUG_ASSERT */ - -/* Directory with ALSA device files */ -#ifndef ALSA_DEVICE_DIRECTORY -#define ALSA_DEVICE_DIRECTORY "/dev/snd/" -#endif - -/* directory containing ALSA add-on modules */ -#ifndef ALSA_PLUGIN_DIR -#define ALSA_PLUGIN_DIR "/usr/lib/alsa-lib" -#endif - -/* Build hwdep component */ -#define BUILD_HWDEP "1" - -/* Build mixer component */ -#define BUILD_MIXER "1" - -/* Build PCM component */ -#define BUILD_PCM "1" - -/* Build PCM adpcm plugin */ -/* #undef BUILD_PCM_PLUGIN_ADPCM */ - -/* Build PCM alaw plugin */ -/* #undef BUILD_PCM_PLUGIN_ALAW */ - -/* Build PCM lfloat plugin */ -/* #undef BUILD_PCM_PLUGIN_LFLOAT */ - -/* Build PCM mulaw plugin */ -/* #undef BUILD_PCM_PLUGIN_MULAW */ - -/* Build PCM rate plugin */ -#define BUILD_PCM_PLUGIN_RATE "1" - -/* Build PCM route plugin */ -/* #undef BUILD_PCM_PLUGIN_ROUTE */ - -/* Build raw MIDI component */ -/* #undef BUILD_RAWMIDI */ - -/* Build sequencer component */ -/* #undef BUILD_SEQ */ - -/* Have clock gettime */ -/* #undef HAVE_CLOCK_GETTIME */ - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#define HAVE_DLFCN_H 1 - -/* Define to 1 if you have the <inttypes.h> header file. */ -#define HAVE_INTTYPES_H 1 - -/* Have libdl */ -#define HAVE_LIBDL 1 - -/* Have libpthread */ -#define HAVE_LIBPTHREAD 1 - -/* Define to 1 if you have the `resmgr' library (-lresmgr). */ -/* #undef HAVE_LIBRESMGR */ - -/* Have librt */ -/* #undef HAVE_LIBRT */ - -/* Define to 1 if you have the <memory.h> header file. */ -#define HAVE_MEMORY_H 1 - -/* Avoid calculation in float */ -#define HAVE_SOFT_FLOAT "1" - -/* Define to 1 if you have the <stdint.h> header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the <strings.h> header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the <string.h> header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the <sys/types.h> header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 if you have the <wordexp.h> header file. */ -/* #undef HAVE_WORDEXP_H */ - -/* No assert debug */ -#ifndef NDEBUG -#define NDEBUG -#endif - -/* Name of package */ -#define PACKAGE "alsa-lib" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "" - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Support /dev/aload* access for auto-loading */ -#define SUPPORT_ALOAD "1" - -/* Support resmgr with alsa-lib */ -/* #undef SUPPORT_RESMGR */ - -/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ -#define TIME_WITH_SYS_TIME 1 - -/* directory to put tmp socket files */ -#define TMPDIR "/tmp" - -/* sound library version string */ -#define VERSION "1.0.16" - -/* compiled with versioned symbols */ -/* #undef VERSIONED_SYMBOLS */ - -/* Toolchain Symbol Prefix */ -#define __SYMBOL_PREFIX "" - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef const */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -/* #undef inline */ -#endif diff --git a/alsa-lib/include/config.h.in b/alsa-lib/include/config.h.in deleted file mode 100644 index d20667f..0000000 --- a/alsa-lib/include/config.h.in +++ /dev/null @@ -1,157 +0,0 @@ -/* include/config.h.in. Generated from configure.in by autoheader. */ - -/* Directory with aload* device files */ -#undef ALOAD_DEVICE_DIRECTORY - -/* directory containing ALSA configuration database */ -#undef ALSA_CONFIG_DIR - -/* Enable assert at error message handler */ -#undef ALSA_DEBUG_ASSERT - -/* Directory with ALSA device files */ -#undef ALSA_DEVICE_DIRECTORY - -/* directory containing ALSA add-on modules */ -#undef ALSA_PLUGIN_DIR - -/* Build hwdep component */ -#undef BUILD_HWDEP - -/* Build mixer component */ -#undef BUILD_MIXER - -/* Build PCM component */ -#undef BUILD_PCM - -/* Build PCM adpcm plugin */ -#undef BUILD_PCM_PLUGIN_ADPCM - -/* Build PCM alaw plugin */ -#undef BUILD_PCM_PLUGIN_ALAW - -/* Build PCM lfloat plugin */ -#undef BUILD_PCM_PLUGIN_LFLOAT - -/* Build PCM mmap-emul plugin */ -#undef BUILD_PCM_PLUGIN_MMAP_EMUL - -/* Build PCM mulaw plugin */ -#undef BUILD_PCM_PLUGIN_MULAW - -/* Build PCM rate plugin */ -#undef BUILD_PCM_PLUGIN_RATE - -/* Build PCM route plugin */ -#undef BUILD_PCM_PLUGIN_ROUTE - -/* Build raw MIDI component */ -#undef BUILD_RAWMIDI - -/* Build sequencer component */ -#undef BUILD_SEQ - -/* Have clock gettime */ -#undef HAVE_CLOCK_GETTIME - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Have libdl */ -#undef HAVE_LIBDL - -/* Have libpthread */ -#undef HAVE_LIBPTHREAD - -/* Define to 1 if you have the `resmgr' library (-lresmgr). */ -#undef HAVE_LIBRESMGR - -/* Have librt */ -#undef HAVE_LIBRT - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Avoid calculation in float */ -#undef HAVE_SOFT_FLOAT - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the <wordexp.h> header file. */ -#undef HAVE_WORDEXP_H - -/* No assert debug */ -#undef NDEBUG - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Support /dev/aload* access for auto-loading */ -#undef SUPPORT_ALOAD - -/* Support resmgr with alsa-lib */ -#undef SUPPORT_RESMGR - -/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ -#undef TIME_WITH_SYS_TIME - -/* directory to put tmp socket files */ -#undef TMPDIR - -/* sound library version string */ -#undef VERSION - -/* compiled with versioned symbols */ -#undef VERSIONED_SYMBOLS - -/* Toolchain Symbol Prefix */ -#undef __SYMBOL_PREFIX - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif diff --git a/alsa-lib/include/control.h b/alsa-lib/include/control.h deleted file mode 100644 index 2361dc3..0000000 --- a/alsa-lib/include/control.h +++ /dev/null @@ -1,576 +0,0 @@ -/** - * \file include/control.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_CONTROL_H -#define __ALSA_CONTROL_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Control Control Interface - * The control interface. - * See \ref control page for more details. - * \{ - */ - -/** dlsym version for interface entry callback */ -#define SND_CONTROL_DLSYM_VERSION _dlsym_control_001 - -/** IEC958 structure */ -typedef struct snd_aes_iec958 { - unsigned char status[24]; /**< AES/IEC958 channel status bits */ - unsigned char subcode[147]; /**< AES/IEC958 subcode bits */ - unsigned char pad; /**< nothing */ - unsigned char dig_subframe[4]; /**< AES/IEC958 subframe bits */ -} snd_aes_iec958_t; - -/** CTL card info container */ -typedef struct _snd_ctl_card_info snd_ctl_card_info_t; - -/** CTL element identifier container */ -typedef struct _snd_ctl_elem_id snd_ctl_elem_id_t; - -/** CTL element identifier list container */ -typedef struct _snd_ctl_elem_list snd_ctl_elem_list_t; - -/** CTL element info container */ -typedef struct _snd_ctl_elem_info snd_ctl_elem_info_t; - -/** CTL element value container */ -typedef struct _snd_ctl_elem_value snd_ctl_elem_value_t; - -/** CTL event container */ -typedef struct _snd_ctl_event snd_ctl_event_t; - -/** CTL element type */ -typedef enum _snd_ctl_elem_type { - /** Invalid type */ - SND_CTL_ELEM_TYPE_NONE = 0, - /** Boolean contents */ - SND_CTL_ELEM_TYPE_BOOLEAN, - /** Integer contents */ - SND_CTL_ELEM_TYPE_INTEGER, - /** Enumerated contents */ - SND_CTL_ELEM_TYPE_ENUMERATED, - /** Bytes contents */ - SND_CTL_ELEM_TYPE_BYTES, - /** IEC958 (S/PDIF) setting content */ - SND_CTL_ELEM_TYPE_IEC958, - /** 64-bit integer contents */ - SND_CTL_ELEM_TYPE_INTEGER64, - SND_CTL_ELEM_TYPE_LAST = SND_CTL_ELEM_TYPE_INTEGER64 -} snd_ctl_elem_type_t; - -/** CTL related interface */ -typedef enum _snd_ctl_elem_iface { - /** Card level */ - SND_CTL_ELEM_IFACE_CARD = 0, - /** Hardware dependent device */ - SND_CTL_ELEM_IFACE_HWDEP, - /** Mixer */ - SND_CTL_ELEM_IFACE_MIXER, - /** PCM */ - SND_CTL_ELEM_IFACE_PCM, - /** RawMidi */ - SND_CTL_ELEM_IFACE_RAWMIDI, - /** Timer */ - SND_CTL_ELEM_IFACE_TIMER, - /** Sequencer */ - SND_CTL_ELEM_IFACE_SEQUENCER, - SND_CTL_ELEM_IFACE_LAST = SND_CTL_ELEM_IFACE_SEQUENCER -} snd_ctl_elem_iface_t; - -/** Event class */ -typedef enum _snd_ctl_event_type { - /** Elements related event */ - SND_CTL_EVENT_ELEM = 0, - SND_CTL_EVENT_LAST = SND_CTL_EVENT_ELEM -}snd_ctl_event_type_t; - -/** Element has been removed (Warning: test this first and if set don't - * test the other masks) \hideinitializer */ -#define SND_CTL_EVENT_MASK_REMOVE (~0U) -/** Element value has been changed \hideinitializer */ -#define SND_CTL_EVENT_MASK_VALUE (1<<0) -/** Element info has been changed \hideinitializer */ -#define SND_CTL_EVENT_MASK_INFO (1<<1) -/** Element has been added \hideinitializer */ -#define SND_CTL_EVENT_MASK_ADD (1<<2) -/** Element's TLV value has been changed \hideinitializer */ -#define SND_CTL_EVENT_MASK_TLV (1<<3) - -/** CTL name helper */ -#define SND_CTL_NAME_NONE "" -/** CTL name helper */ -#define SND_CTL_NAME_PLAYBACK "Playback " -/** CTL name helper */ -#define SND_CTL_NAME_CAPTURE "Capture " - -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_NONE "" -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_SWITCH "Switch" -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_VOLUME "Volume" -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_DEFAULT "Default" -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_MASK "Mask" -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_CON_MASK "Con Mask" -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_PRO_MASK "Pro Mask" -/** CTL name helper */ -#define SND_CTL_NAME_IEC958_PCM_STREAM "PCM Stream" -/** Element name for IEC958 (S/PDIF) */ -#define SND_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SND_CTL_NAME_##direction SND_CTL_NAME_IEC958_##what - -/** Mask for the major Power State identifier */ -#define SND_CTL_POWER_MASK 0xff00 -/** ACPI/PCI Power State D0 */ -#define SND_CTL_POWER_D0 0x0000 -/** ACPI/PCI Power State D1 */ -#define SND_CTL_POWER_D1 0x0100 -/** ACPI/PCI Power State D2 */ -#define SND_CTL_POWER_D2 0x0200 -/** ACPI/PCI Power State D3 */ -#define SND_CTL_POWER_D3 0x0300 -/** ACPI/PCI Power State D3hot */ -#define SND_CTL_POWER_D3hot (SND_CTL_POWER_D3|0x0000) -/** ACPI/PCI Power State D3cold */ -#define SND_CTL_POWER_D3cold (SND_CTL_POWER_D3|0x0001) - -/** TLV type - Container */ -#define SND_CTL_TLVT_CONTAINER 0x0000 -/** TLV type - basic dB scale */ -#define SND_CTL_TLVT_DB_SCALE 0x0001 -/** TLV type - linear volume */ -#define SND_CTL_TLVT_DB_LINEAR 0x0002 -/** TLV type - dB range container */ -#define SND_CTL_TLVT_DB_RANGE 0x0003 - -/** Mute state */ -#define SND_CTL_TLV_DB_GAIN_MUTE -9999999 - -/** CTL type */ -typedef enum _snd_ctl_type { - /** Kernel level CTL */ - SND_CTL_TYPE_HW, - /** Shared memory client CTL */ - SND_CTL_TYPE_SHM, - /** INET client CTL (not yet implemented) */ - SND_CTL_TYPE_INET, - /** External control plugin */ - SND_CTL_TYPE_EXT -} snd_ctl_type_t; - -/** Non blocking mode (flag for open mode) \hideinitializer */ -#define SND_CTL_NONBLOCK 0x0001 - -/** Async notification (flag for open mode) \hideinitializer */ -#define SND_CTL_ASYNC 0x0002 - -/** Read only (flag for open mode) \hideinitializer */ -#define SND_CTL_READONLY 0x0004 - -/** CTL handle */ -typedef struct _snd_ctl snd_ctl_t; - -/** Don't destroy the ctl handle when close */ -#define SND_SCTL_NOFREE 0x0001 - -/** SCTL type */ -typedef struct _snd_sctl snd_sctl_t; - -int snd_card_load(int card); -int snd_card_next(int *card); -int snd_card_get_index(const char *name); -int snd_card_get_name(int card, char **name); -int snd_card_get_longname(int card, char **name); - -int snd_device_name_hint(int card, const char *iface, void ***hints); -int snd_device_name_free_hint(void **hints); -char *snd_device_name_get_hint(const void *hint, const char *id); - -int snd_ctl_open(snd_ctl_t **ctl, const char *name, int mode); -int snd_ctl_open_lconf(snd_ctl_t **ctl, const char *name, int mode, snd_config_t *lconf); -int snd_ctl_close(snd_ctl_t *ctl); -int snd_ctl_nonblock(snd_ctl_t *ctl, int nonblock); -int snd_async_add_ctl_handler(snd_async_handler_t **handler, snd_ctl_t *ctl, - snd_async_callback_t callback, void *private_data); -snd_ctl_t *snd_async_handler_get_ctl(snd_async_handler_t *handler); -int snd_ctl_poll_descriptors_count(snd_ctl_t *ctl); -int snd_ctl_poll_descriptors(snd_ctl_t *ctl, struct pollfd *pfds, unsigned int space); -int snd_ctl_poll_descriptors_revents(snd_ctl_t *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -int snd_ctl_subscribe_events(snd_ctl_t *ctl, int subscribe); -int snd_ctl_card_info(snd_ctl_t *ctl, snd_ctl_card_info_t *info); -int snd_ctl_elem_list(snd_ctl_t *ctl, snd_ctl_elem_list_t *list); -int snd_ctl_elem_info(snd_ctl_t *ctl, snd_ctl_elem_info_t *info); -int snd_ctl_elem_read(snd_ctl_t *ctl, snd_ctl_elem_value_t *value); -int snd_ctl_elem_write(snd_ctl_t *ctl, snd_ctl_elem_value_t *value); -int snd_ctl_elem_lock(snd_ctl_t *ctl, snd_ctl_elem_id_t *id); -int snd_ctl_elem_unlock(snd_ctl_t *ctl, snd_ctl_elem_id_t *id); -int snd_ctl_elem_tlv_read(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, - unsigned int *tlv, unsigned int tlv_size); -int snd_ctl_elem_tlv_write(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, - const unsigned int *tlv); -int snd_ctl_elem_tlv_command(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, - const unsigned int *tlv); -#ifdef __ALSA_HWDEP_H -int snd_ctl_hwdep_next_device(snd_ctl_t *ctl, int * device); -int snd_ctl_hwdep_info(snd_ctl_t *ctl, snd_hwdep_info_t * info); -#endif -#ifdef __ALSA_PCM_H -int snd_ctl_pcm_next_device(snd_ctl_t *ctl, int *device); -int snd_ctl_pcm_info(snd_ctl_t *ctl, snd_pcm_info_t * info); -int snd_ctl_pcm_prefer_subdevice(snd_ctl_t *ctl, int subdev); -#endif -#ifdef __ALSA_RAWMIDI_H -int snd_ctl_rawmidi_next_device(snd_ctl_t *ctl, int * device); -int snd_ctl_rawmidi_info(snd_ctl_t *ctl, snd_rawmidi_info_t * info); -int snd_ctl_rawmidi_prefer_subdevice(snd_ctl_t *ctl, int subdev); -#endif -int snd_ctl_set_power_state(snd_ctl_t *ctl, unsigned int state); -int snd_ctl_get_power_state(snd_ctl_t *ctl, unsigned int *state); - -int snd_ctl_read(snd_ctl_t *ctl, snd_ctl_event_t *event); -int snd_ctl_wait(snd_ctl_t *ctl, int timeout); -const char *snd_ctl_name(snd_ctl_t *ctl); -snd_ctl_type_t snd_ctl_type(snd_ctl_t *ctl); - -const char *snd_ctl_elem_type_name(snd_ctl_elem_type_t type); -const char *snd_ctl_elem_iface_name(snd_ctl_elem_iface_t iface); -const char *snd_ctl_event_type_name(snd_ctl_event_type_t type); - -unsigned int snd_ctl_event_elem_get_mask(const snd_ctl_event_t *obj); -unsigned int snd_ctl_event_elem_get_numid(const snd_ctl_event_t *obj); -void snd_ctl_event_elem_get_id(const snd_ctl_event_t *obj, snd_ctl_elem_id_t *ptr); -snd_ctl_elem_iface_t snd_ctl_event_elem_get_interface(const snd_ctl_event_t *obj); -unsigned int snd_ctl_event_elem_get_device(const snd_ctl_event_t *obj); -unsigned int snd_ctl_event_elem_get_subdevice(const snd_ctl_event_t *obj); -const char *snd_ctl_event_elem_get_name(const snd_ctl_event_t *obj); -unsigned int snd_ctl_event_elem_get_index(const snd_ctl_event_t *obj); - -int snd_ctl_elem_list_alloc_space(snd_ctl_elem_list_t *obj, unsigned int entries); -void snd_ctl_elem_list_free_space(snd_ctl_elem_list_t *obj); - -size_t snd_ctl_elem_id_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_ctl_elem_id_t using standard alloca - * \param ptr returned pointer - */ -#define snd_ctl_elem_id_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_id) -int snd_ctl_elem_id_malloc(snd_ctl_elem_id_t **ptr); -void snd_ctl_elem_id_free(snd_ctl_elem_id_t *obj); -void snd_ctl_elem_id_clear(snd_ctl_elem_id_t *obj); -void snd_ctl_elem_id_copy(snd_ctl_elem_id_t *dst, const snd_ctl_elem_id_t *src); -unsigned int snd_ctl_elem_id_get_numid(const snd_ctl_elem_id_t *obj); -snd_ctl_elem_iface_t snd_ctl_elem_id_get_interface(const snd_ctl_elem_id_t *obj); -unsigned int snd_ctl_elem_id_get_device(const snd_ctl_elem_id_t *obj); -unsigned int snd_ctl_elem_id_get_subdevice(const snd_ctl_elem_id_t *obj); -const char *snd_ctl_elem_id_get_name(const snd_ctl_elem_id_t *obj); -unsigned int snd_ctl_elem_id_get_index(const snd_ctl_elem_id_t *obj); -void snd_ctl_elem_id_set_numid(snd_ctl_elem_id_t *obj, unsigned int val); -void snd_ctl_elem_id_set_interface(snd_ctl_elem_id_t *obj, snd_ctl_elem_iface_t val); -void snd_ctl_elem_id_set_device(snd_ctl_elem_id_t *obj, unsigned int val); -void snd_ctl_elem_id_set_subdevice(snd_ctl_elem_id_t *obj, unsigned int val); -void snd_ctl_elem_id_set_name(snd_ctl_elem_id_t *obj, const char *val); -void snd_ctl_elem_id_set_index(snd_ctl_elem_id_t *obj, unsigned int val); - -size_t snd_ctl_card_info_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_ctl_card_info_t using standard alloca - * \param ptr returned pointer - */ -#define snd_ctl_card_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_card_info) -int snd_ctl_card_info_malloc(snd_ctl_card_info_t **ptr); -void snd_ctl_card_info_free(snd_ctl_card_info_t *obj); -void snd_ctl_card_info_clear(snd_ctl_card_info_t *obj); -void snd_ctl_card_info_copy(snd_ctl_card_info_t *dst, const snd_ctl_card_info_t *src); -int snd_ctl_card_info_get_card(const snd_ctl_card_info_t *obj); -const char *snd_ctl_card_info_get_id(const snd_ctl_card_info_t *obj); -const char *snd_ctl_card_info_get_driver(const snd_ctl_card_info_t *obj); -const char *snd_ctl_card_info_get_name(const snd_ctl_card_info_t *obj); -const char *snd_ctl_card_info_get_longname(const snd_ctl_card_info_t *obj); -const char *snd_ctl_card_info_get_mixername(const snd_ctl_card_info_t *obj); -const char *snd_ctl_card_info_get_components(const snd_ctl_card_info_t *obj); - -size_t snd_ctl_event_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_ctl_event_t using standard alloca - * \param ptr returned pointer - */ -#define snd_ctl_event_alloca(ptr) __snd_alloca(ptr, snd_ctl_event) -int snd_ctl_event_malloc(snd_ctl_event_t **ptr); -void snd_ctl_event_free(snd_ctl_event_t *obj); -void snd_ctl_event_clear(snd_ctl_event_t *obj); -void snd_ctl_event_copy(snd_ctl_event_t *dst, const snd_ctl_event_t *src); -snd_ctl_event_type_t snd_ctl_event_get_type(const snd_ctl_event_t *obj); - -size_t snd_ctl_elem_list_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_ctl_elem_list_t using standard alloca - * \param ptr returned pointer - */ -#define snd_ctl_elem_list_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_list) -int snd_ctl_elem_list_malloc(snd_ctl_elem_list_t **ptr); -void snd_ctl_elem_list_free(snd_ctl_elem_list_t *obj); -void snd_ctl_elem_list_clear(snd_ctl_elem_list_t *obj); -void snd_ctl_elem_list_copy(snd_ctl_elem_list_t *dst, const snd_ctl_elem_list_t *src); -void snd_ctl_elem_list_set_offset(snd_ctl_elem_list_t *obj, unsigned int val); -unsigned int snd_ctl_elem_list_get_used(const snd_ctl_elem_list_t *obj); -unsigned int snd_ctl_elem_list_get_count(const snd_ctl_elem_list_t *obj); -void snd_ctl_elem_list_get_id(const snd_ctl_elem_list_t *obj, unsigned int idx, snd_ctl_elem_id_t *ptr); -unsigned int snd_ctl_elem_list_get_numid(const snd_ctl_elem_list_t *obj, unsigned int idx); -snd_ctl_elem_iface_t snd_ctl_elem_list_get_interface(const snd_ctl_elem_list_t *obj, unsigned int idx); -unsigned int snd_ctl_elem_list_get_device(const snd_ctl_elem_list_t *obj, unsigned int idx); -unsigned int snd_ctl_elem_list_get_subdevice(const snd_ctl_elem_list_t *obj, unsigned int idx); -const char *snd_ctl_elem_list_get_name(const snd_ctl_elem_list_t *obj, unsigned int idx); -unsigned int snd_ctl_elem_list_get_index(const snd_ctl_elem_list_t *obj, unsigned int idx); - -size_t snd_ctl_elem_info_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_ctl_elem_info_t using standard alloca - * \param ptr returned pointer - */ -#define snd_ctl_elem_info_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_info) -int snd_ctl_elem_info_malloc(snd_ctl_elem_info_t **ptr); -void snd_ctl_elem_info_free(snd_ctl_elem_info_t *obj); -void snd_ctl_elem_info_clear(snd_ctl_elem_info_t *obj); -void snd_ctl_elem_info_copy(snd_ctl_elem_info_t *dst, const snd_ctl_elem_info_t *src); -snd_ctl_elem_type_t snd_ctl_elem_info_get_type(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_readable(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_writable(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_volatile(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_inactive(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_locked(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_tlv_readable(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_tlv_writable(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_tlv_commandable(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_owner(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_is_user(const snd_ctl_elem_info_t *obj); -pid_t snd_ctl_elem_info_get_owner(const snd_ctl_elem_info_t *obj); -unsigned int snd_ctl_elem_info_get_count(const snd_ctl_elem_info_t *obj); -long snd_ctl_elem_info_get_min(const snd_ctl_elem_info_t *obj); -long snd_ctl_elem_info_get_max(const snd_ctl_elem_info_t *obj); -long snd_ctl_elem_info_get_step(const snd_ctl_elem_info_t *obj); -long long snd_ctl_elem_info_get_min64(const snd_ctl_elem_info_t *obj); -long long snd_ctl_elem_info_get_max64(const snd_ctl_elem_info_t *obj); -long long snd_ctl_elem_info_get_step64(const snd_ctl_elem_info_t *obj); -unsigned int snd_ctl_elem_info_get_items(const snd_ctl_elem_info_t *obj); -void snd_ctl_elem_info_set_item(snd_ctl_elem_info_t *obj, unsigned int val); -const char *snd_ctl_elem_info_get_item_name(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_get_dimensions(const snd_ctl_elem_info_t *obj); -int snd_ctl_elem_info_get_dimension(const snd_ctl_elem_info_t *obj, unsigned int idx); -void snd_ctl_elem_info_get_id(const snd_ctl_elem_info_t *obj, snd_ctl_elem_id_t *ptr); -unsigned int snd_ctl_elem_info_get_numid(const snd_ctl_elem_info_t *obj); -snd_ctl_elem_iface_t snd_ctl_elem_info_get_interface(const snd_ctl_elem_info_t *obj); -unsigned int snd_ctl_elem_info_get_device(const snd_ctl_elem_info_t *obj); -unsigned int snd_ctl_elem_info_get_subdevice(const snd_ctl_elem_info_t *obj); -const char *snd_ctl_elem_info_get_name(const snd_ctl_elem_info_t *obj); -unsigned int snd_ctl_elem_info_get_index(const snd_ctl_elem_info_t *obj); -void snd_ctl_elem_info_set_id(snd_ctl_elem_info_t *obj, const snd_ctl_elem_id_t *ptr); -void snd_ctl_elem_info_set_numid(snd_ctl_elem_info_t *obj, unsigned int val); -void snd_ctl_elem_info_set_interface(snd_ctl_elem_info_t *obj, snd_ctl_elem_iface_t val); -void snd_ctl_elem_info_set_device(snd_ctl_elem_info_t *obj, unsigned int val); -void snd_ctl_elem_info_set_subdevice(snd_ctl_elem_info_t *obj, unsigned int val); -void snd_ctl_elem_info_set_name(snd_ctl_elem_info_t *obj, const char *val); -void snd_ctl_elem_info_set_index(snd_ctl_elem_info_t *obj, unsigned int val); - -int snd_ctl_elem_add_integer(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count, long imin, long imax, long istep); -int snd_ctl_elem_add_integer64(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count, long long imin, long long imax, long long istep); -int snd_ctl_elem_add_boolean(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count); -int snd_ctl_elem_add_iec958(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id); -int snd_ctl_elem_remove(snd_ctl_t *ctl, snd_ctl_elem_id_t *id); - -size_t snd_ctl_elem_value_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_ctl_elem_value_t using standard alloca - * \param ptr returned pointer - */ -#define snd_ctl_elem_value_alloca(ptr) __snd_alloca(ptr, snd_ctl_elem_value) -int snd_ctl_elem_value_malloc(snd_ctl_elem_value_t **ptr); -void snd_ctl_elem_value_free(snd_ctl_elem_value_t *obj); -void snd_ctl_elem_value_clear(snd_ctl_elem_value_t *obj); -void snd_ctl_elem_value_copy(snd_ctl_elem_value_t *dst, const snd_ctl_elem_value_t *src); -void snd_ctl_elem_value_get_id(const snd_ctl_elem_value_t *obj, snd_ctl_elem_id_t *ptr); -unsigned int snd_ctl_elem_value_get_numid(const snd_ctl_elem_value_t *obj); -snd_ctl_elem_iface_t snd_ctl_elem_value_get_interface(const snd_ctl_elem_value_t *obj); -unsigned int snd_ctl_elem_value_get_device(const snd_ctl_elem_value_t *obj); -unsigned int snd_ctl_elem_value_get_subdevice(const snd_ctl_elem_value_t *obj); -const char *snd_ctl_elem_value_get_name(const snd_ctl_elem_value_t *obj); -unsigned int snd_ctl_elem_value_get_index(const snd_ctl_elem_value_t *obj); -void snd_ctl_elem_value_set_id(snd_ctl_elem_value_t *obj, const snd_ctl_elem_id_t *ptr); -void snd_ctl_elem_value_set_numid(snd_ctl_elem_value_t *obj, unsigned int val); -void snd_ctl_elem_value_set_interface(snd_ctl_elem_value_t *obj, snd_ctl_elem_iface_t val); -void snd_ctl_elem_value_set_device(snd_ctl_elem_value_t *obj, unsigned int val); -void snd_ctl_elem_value_set_subdevice(snd_ctl_elem_value_t *obj, unsigned int val); -void snd_ctl_elem_value_set_name(snd_ctl_elem_value_t *obj, const char *val); -void snd_ctl_elem_value_set_index(snd_ctl_elem_value_t *obj, unsigned int val); -int snd_ctl_elem_value_get_boolean(const snd_ctl_elem_value_t *obj, unsigned int idx); -long snd_ctl_elem_value_get_integer(const snd_ctl_elem_value_t *obj, unsigned int idx); -long long snd_ctl_elem_value_get_integer64(const snd_ctl_elem_value_t *obj, unsigned int idx); -unsigned int snd_ctl_elem_value_get_enumerated(const snd_ctl_elem_value_t *obj, unsigned int idx); -unsigned char snd_ctl_elem_value_get_byte(const snd_ctl_elem_value_t *obj, unsigned int idx); -void snd_ctl_elem_value_set_boolean(snd_ctl_elem_value_t *obj, unsigned int idx, long val); -void snd_ctl_elem_value_set_integer(snd_ctl_elem_value_t *obj, unsigned int idx, long val); -void snd_ctl_elem_value_set_integer64(snd_ctl_elem_value_t *obj, unsigned int idx, long long val); -void snd_ctl_elem_value_set_enumerated(snd_ctl_elem_value_t *obj, unsigned int idx, unsigned int val); -void snd_ctl_elem_value_set_byte(snd_ctl_elem_value_t *obj, unsigned int idx, unsigned char val); -void snd_ctl_elem_set_bytes(snd_ctl_elem_value_t *obj, void *data, size_t size); -const void * snd_ctl_elem_value_get_bytes(const snd_ctl_elem_value_t *obj); -void snd_ctl_elem_value_get_iec958(const snd_ctl_elem_value_t *obj, snd_aes_iec958_t *ptr); -void snd_ctl_elem_value_set_iec958(snd_ctl_elem_value_t *obj, const snd_aes_iec958_t *ptr); - -int snd_tlv_parse_dB_info(unsigned int *tlv, unsigned int tlv_size, - unsigned int **db_tlvp); -int snd_tlv_get_dB_range(unsigned int *tlv, long rangemin, long rangemax, - long *min, long *max); -int snd_tlv_convert_to_dB(unsigned int *tlv, long rangemin, long rangemax, - long volume, long *db_gain); -int snd_tlv_convert_from_dB(unsigned int *tlv, long rangemin, long rangemax, - long db_gain, long *value, int xdir); -int snd_ctl_get_dB_range(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, - long *min, long *max); -int snd_ctl_convert_to_dB(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, - long volume, long *db_gain); -int snd_ctl_convert_from_dB(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, - long db_gain, long *value, int xdir); - -/** - * \defgroup HControl High level Control Interface - * \ingroup Control - * The high level control interface. - * See \ref hcontrol page for more details. - * \{ - */ - -/** HCTL element handle */ -typedef struct _snd_hctl_elem snd_hctl_elem_t; - -/** HCTL handle */ -typedef struct _snd_hctl snd_hctl_t; - -/** - * \brief Compare function for sorting HCTL elements - * \param e1 First element - * \param e2 Second element - * \return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2 - */ -typedef int (*snd_hctl_compare_t)(const snd_hctl_elem_t *e1, - const snd_hctl_elem_t *e2); -int snd_hctl_compare_fast(const snd_hctl_elem_t *c1, - const snd_hctl_elem_t *c2); -/** - * \brief HCTL callback function - * \param hctl HCTL handle - * \param mask event mask - * \param elem related HCTL element (if any) - * \return 0 on success otherwise a negative error code - */ -typedef int (*snd_hctl_callback_t)(snd_hctl_t *hctl, - unsigned int mask, - snd_hctl_elem_t *elem); -/** - * \brief HCTL element callback function - * \param elem HCTL element - * \param mask event mask - * \return 0 on success otherwise a negative error code - */ -typedef int (*snd_hctl_elem_callback_t)(snd_hctl_elem_t *elem, - unsigned int mask); - -int snd_hctl_open(snd_hctl_t **hctl, const char *name, int mode); -int snd_hctl_open_ctl(snd_hctl_t **hctlp, snd_ctl_t *ctl); -int snd_hctl_close(snd_hctl_t *hctl); -int snd_hctl_nonblock(snd_hctl_t *hctl, int nonblock); -int snd_hctl_poll_descriptors_count(snd_hctl_t *hctl); -int snd_hctl_poll_descriptors(snd_hctl_t *hctl, struct pollfd *pfds, unsigned int space); -int snd_hctl_poll_descriptors_revents(snd_hctl_t *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -unsigned int snd_hctl_get_count(snd_hctl_t *hctl); -int snd_hctl_set_compare(snd_hctl_t *hctl, snd_hctl_compare_t hsort); -snd_hctl_elem_t *snd_hctl_first_elem(snd_hctl_t *hctl); -snd_hctl_elem_t *snd_hctl_last_elem(snd_hctl_t *hctl); -snd_hctl_elem_t *snd_hctl_find_elem(snd_hctl_t *hctl, const snd_ctl_elem_id_t *id); -void snd_hctl_set_callback(snd_hctl_t *hctl, snd_hctl_callback_t callback); -void snd_hctl_set_callback_private(snd_hctl_t *hctl, void *data); -void *snd_hctl_get_callback_private(snd_hctl_t *hctl); -int snd_hctl_load(snd_hctl_t *hctl); -int snd_hctl_free(snd_hctl_t *hctl); -int snd_hctl_handle_events(snd_hctl_t *hctl); -const char *snd_hctl_name(snd_hctl_t *hctl); -int snd_hctl_wait(snd_hctl_t *hctl, int timeout); -snd_ctl_t *snd_hctl_ctl(snd_hctl_t *hctl); - -snd_hctl_elem_t *snd_hctl_elem_next(snd_hctl_elem_t *elem); -snd_hctl_elem_t *snd_hctl_elem_prev(snd_hctl_elem_t *elem); -int snd_hctl_elem_info(snd_hctl_elem_t *elem, snd_ctl_elem_info_t * info); -int snd_hctl_elem_read(snd_hctl_elem_t *elem, snd_ctl_elem_value_t * value); -int snd_hctl_elem_write(snd_hctl_elem_t *elem, snd_ctl_elem_value_t * value); -int snd_hctl_elem_tlv_read(snd_hctl_elem_t *elem, unsigned int *tlv, unsigned int tlv_size); -int snd_hctl_elem_tlv_write(snd_hctl_elem_t *elem, const unsigned int *tlv); -int snd_hctl_elem_tlv_command(snd_hctl_elem_t *elem, const unsigned int *tlv); - -snd_hctl_t *snd_hctl_elem_get_hctl(snd_hctl_elem_t *elem); - -void snd_hctl_elem_get_id(const snd_hctl_elem_t *obj, snd_ctl_elem_id_t *ptr); -unsigned int snd_hctl_elem_get_numid(const snd_hctl_elem_t *obj); -snd_ctl_elem_iface_t snd_hctl_elem_get_interface(const snd_hctl_elem_t *obj); -unsigned int snd_hctl_elem_get_device(const snd_hctl_elem_t *obj); -unsigned int snd_hctl_elem_get_subdevice(const snd_hctl_elem_t *obj); -const char *snd_hctl_elem_get_name(const snd_hctl_elem_t *obj); -unsigned int snd_hctl_elem_get_index(const snd_hctl_elem_t *obj); -void snd_hctl_elem_set_callback(snd_hctl_elem_t *obj, snd_hctl_elem_callback_t val); -void * snd_hctl_elem_get_callback_private(const snd_hctl_elem_t *obj); -void snd_hctl_elem_set_callback_private(snd_hctl_elem_t *obj, void * val); - -/** \} */ - -/** \} */ - -/** - * \defgroup SControl Setup Control Interface - * \ingroup Control - * The setup control interface - set or modify control elements from a configuration file. - * \{ - */ - -int snd_sctl_build(snd_sctl_t **ctl, snd_ctl_t *handle, snd_config_t *config, - snd_config_t *private_data, int mode); -int snd_sctl_free(snd_sctl_t *handle); -int snd_sctl_install(snd_sctl_t *handle); -int snd_sctl_remove(snd_sctl_t *handle); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_CONTROL_H */ diff --git a/alsa-lib/include/control_external.h b/alsa-lib/include/control_external.h deleted file mode 100644 index 7c066cf..0000000 --- a/alsa-lib/include/control_external.h +++ /dev/null @@ -1,265 +0,0 @@ -/** - * \file include/control_external.h - * \brief External control plugin SDK - * \author Takashi Iwai <tiwai@suse.de> - * \date 2005 - * - * External control plugin SDK. - */ - -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ -#ifndef __ALSA_CONTROL_EXTERNAL_H -#define __ALSA_CONTROL_EXTERNAL_H - -#include "control.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup CtlPlugin_SDK External Control Plugin SDK - * \{ - */ - -/** - * Define the object entry for external control plugins - */ -#define SND_CTL_PLUGIN_ENTRY(name) _snd_ctl_##name##_open - -/** - * Define the symbols of the given control plugin with versions - */ -#define SND_CTL_PLUGIN_SYMBOL(name) SND_DLSYM_BUILD_VERSION(SND_CTL_PLUGIN_ENTRY(name), SND_CONTROL_DLSYM_VERSION); - -/** - * Define the control plugin - */ -#define SND_CTL_PLUGIN_DEFINE_FUNC(plugin) \ -int SND_CTL_PLUGIN_ENTRY(plugin) (snd_ctl_t **handlep, const char *name,\ - snd_config_t *root, snd_config_t *conf, int mode) - -/** External control plugin handle */ -typedef struct snd_ctl_ext snd_ctl_ext_t; -/** Callback table of control ext */ -typedef struct snd_ctl_ext_callback snd_ctl_ext_callback_t; -/** Key to access a control pointer */ -typedef unsigned long snd_ctl_ext_key_t; - -/* - * Protocol version - */ -#define SND_CTL_EXT_VERSION_MAJOR 1 /**< Protocol major version */ -#define SND_CTL_EXT_VERSION_MINOR 0 /**< Protocol minor version */ -#define SND_CTL_EXT_VERSION_TINY 0 /**< Protocol tiny version */ -/** - * external plugin protocol version - */ -#define SND_CTL_EXT_VERSION ((SND_CTL_EXT_VERSION_MAJOR<<16) |\ - (SND_CTL_EXT_VERSION_MINOR<<8) |\ - (SND_CTL_EXT_VERSION_TINY)) - -/** Handle of control ext */ -struct snd_ctl_ext { - /** - * protocol version; #SND_CTL_EXT_VERSION must be filled here - * before calling #snd_ctl_ext_create() - */ - unsigned int version; - /** - * Index of this card; must be filled before calling #snd_ctl_ext_create() - */ - int card_idx; - /** - * ID string of this card; must be filled before calling #snd_ctl_ext_create() - */ - char id[16]; - /** - * Driver name of this card; must be filled before calling #snd_ctl_ext_create() - */ - char driver[16]; - /** - * short name of this card; must be filled before calling #snd_ctl_ext_create() - */ - char name[32]; - /** - * Long name of this card; must be filled before calling #snd_ctl_ext_create() - */ - char longname[80]; - /** - * Mixer name of this card; must be filled before calling #snd_ctl_ext_create() - */ - char mixername[80]; - /** - * poll descriptor - */ - int poll_fd; - - /** - * callbacks of this plugin; must be filled before calling #snd_pcm_ioplug_create() - */ - const snd_ctl_ext_callback_t *callback; - /** - * private data, which can be used freely in the driver callbacks - */ - void *private_data; - /** - * control handle filled by #snd_ctl_ext_create() - */ - snd_ctl_t *handle; - - int nonblock; /**< non-block mode; read-only */ - int subscribed; /**< events subscribed; read-only */ -}; - -/** Callback table of ext */ -struct snd_ctl_ext_callback { - /** - * close the control handle; optional - */ - void (*close)(snd_ctl_ext_t *ext); - /** - * return the total number of elements; required - */ - int (*elem_count)(snd_ctl_ext_t *ext); - /** - * return the element id of the given offset (array index); required - */ - int (*elem_list)(snd_ctl_ext_t *ext, unsigned int offset, snd_ctl_elem_id_t *id); - /** - * convert the element id to a search key; required - */ - snd_ctl_ext_key_t (*find_elem)(snd_ctl_ext_t *ext, const snd_ctl_elem_id_t *id); - /** - * the destructor of the key; optional - */ - void (*free_key)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key); - /** - * get the attribute of the element; required - */ - int (*get_attribute)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, - int *type, unsigned int *acc, unsigned int *count); - /** - * get the element information of integer type - */ - int (*get_integer_info)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, - long *imin, long *imax, long *istep); - /** - * get the element information of integer64 type - */ - int (*get_integer64_info)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, - int64_t *imin, int64_t *imax, int64_t *istep); - /** - * get the element information of enumerated type - */ - int (*get_enumerated_info)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, unsigned int *items); - /** - * get the name of the enumerated item - */ - int (*get_enumerated_name)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, unsigned int item, - char *name, size_t name_max_len); - /** - * read the current values of integer type - */ - int (*read_integer)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, long *value); - /** - * read the current values of integer64 type - */ - int (*read_integer64)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, int64_t *value); - /** - * read the current values of enumerated type - */ - int (*read_enumerated)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, unsigned int *items); - /** - * read the current values of bytes type - */ - int (*read_bytes)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, unsigned char *data, - size_t max_bytes); - /** - * read the current values of iec958 type - */ - int (*read_iec958)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, snd_aes_iec958_t *iec958); - /** - * update the current values of integer type with the given values - */ - int (*write_integer)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, long *value); - /** - * update the current values of integer64 type with the given values - */ - int (*write_integer64)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, int64_t *value); - /** - * update the current values of enumerated type with the given values - */ - int (*write_enumerated)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, unsigned int *items); - /** - * update the current values of bytes type with the given values - */ - int (*write_bytes)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, unsigned char *data, - size_t max_bytes); - /** - * update the current values of iec958 type with the given values - */ - int (*write_iec958)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, snd_aes_iec958_t *iec958); - /** - * subscribe/unsubscribe the event notification; optional - */ - void (*subscribe_events)(snd_ctl_ext_t *ext, int subscribe); - /** - * read a pending notification event; optional - */ - int (*read_event)(snd_ctl_ext_t *ext, snd_ctl_elem_id_t *id, unsigned int *event_mask); - /** - * return the number of poll descriptors; optional - */ - int (*poll_descriptors_count)(snd_ctl_ext_t *ext); - /** - * fill the poll descriptors; optional - */ - int (*poll_descriptors)(snd_ctl_ext_t *ext, struct pollfd *pfds, unsigned int space); - /** - * mangle the revents of poll descriptors - */ - int (*poll_revents)(snd_ctl_ext_t *ext, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -}; - -/** - * The access type bits stored in get_attribute callback - */ -typedef enum snd_ctl_ext_access { - SND_CTL_EXT_ACCESS_READ = (1<<0), - SND_CTL_EXT_ACCESS_WRITE = (1<<1), - SND_CTL_EXT_ACCESS_READWRITE = (3<<0), - SND_CTL_EXT_ACCESS_VOLATILE = (1<<2), - SND_CTL_EXT_ACCESS_INACTIVE = (1<<8), -} snd_ctl_ext_access_t; - -/** - * find_elem callback returns this if no matching control element is found - */ -#define SND_CTL_EXT_KEY_NOT_FOUND (snd_ctl_ext_key_t)(-1) - -int snd_ctl_ext_create(snd_ctl_ext_t *ext, const char *name, int mode); -int snd_ctl_ext_delete(snd_ctl_ext_t *ext); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_CONTROL_EXTERNAL_H */ diff --git a/alsa-lib/include/error.h b/alsa-lib/include/error.h deleted file mode 100644 index 6d27083..0000000 --- a/alsa-lib/include/error.h +++ /dev/null @@ -1,78 +0,0 @@ -/** - * \file include/error.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_ERROR_H -#define __ALSA_ERROR_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Error Error handling - * Error handling macros and functions. - * \{ - */ - -#define SND_ERROR_BEGIN 500000 /**< Lower boundary of sound error codes. */ -#define SND_ERROR_INCOMPATIBLE_VERSION (SND_ERROR_BEGIN+0) /**< Kernel/library protocols are not compatible. */ -#define SND_ERROR_ALISP_NIL (SND_ERROR_BEGIN+1) /**< Lisp encountered an error during acall. */ - -const char *snd_strerror(int errnum); - -/** - * \brief Error handler callback. - * \param file Source file name. - * \param line Line number. - * \param function Function name. - * \param err Value of \c errno, or 0 if not relevant. - * \param fmt \c printf(3) format. - * \param ... \c printf(3) arguments. - * - * A function of this type is called by the ALSA library when an error occurs. - * This function usually shows the message on the screen, and/or logs it. - */ -typedef void (*snd_lib_error_handler_t)(const char *file, int line, const char *function, int err, const char *fmt, ...) /* __attribute__ ((format (printf, 5, 6))) */; -extern snd_lib_error_handler_t snd_lib_error; -extern int snd_lib_error_set_handler(snd_lib_error_handler_t handler); - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 95) -#define SNDERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, __VA_ARGS__) /**< Shows a sound error message. */ -#define SYSERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, __VA_ARGS__) /**< Shows a system error message (related to \c errno). */ -#else -#define SNDERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, ##args) /**< Shows a sound error message. */ -#define SYSERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, ##args) /**< Shows a system error message (related to \c errno). */ -#endif - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_ERROR_H */ - diff --git a/alsa-lib/include/global.h b/alsa-lib/include/global.h deleted file mode 100644 index 3e3680f..0000000 --- a/alsa-lib/include/global.h +++ /dev/null @@ -1,159 +0,0 @@ -/** - * \file include/global.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_GLOBAL_H_ -#define __ALSA_GLOBAL_H_ - -/* for timeval and timespec */ -#include <time.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Global Global defines and functions - * Global defines and functions. - * \par - * The ALSA library implementation uses these macros and functions. - * Most applications probably do not need them. - * \{ - */ - -const char *snd_asoundlib_version(void); - -#ifndef ATTRIBUTE_UNUSED -/** do not print warning (gcc) when function parameter is not used */ -#define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#endif - -#ifdef PIC /* dynamic build */ - -/** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */ -#define __SND_DLSYM_VERSION(name, version) _ ## name ## version -/** - * \hideinitializer - * \brief Appends the build version to the name of a versioned dynamic symbol. - */ -#define SND_DLSYM_BUILD_VERSION(name, version) char __SND_DLSYM_VERSION(name, version); - -#else /* static build */ - -struct snd_dlsym_link { - struct snd_dlsym_link *next; - const char *dlsym_name; - const void *dlsym_ptr; -}; - -extern struct snd_dlsym_link *snd_dlsym_start; - -/** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */ -#define __SND_DLSYM_VERSION(prefix, name, version) _ ## prefix ## name ## version -/** - * \hideinitializer - * \brief Appends the build version to the name of a versioned dynamic symbol. - */ -#define SND_DLSYM_BUILD_VERSION(name, version) \ - static struct snd_dlsym_link __SND_DLSYM_VERSION(snd_dlsym_, name, version); \ - void __SND_DLSYM_VERSION(snd_dlsym_constructor_, name, version) (void) __attribute__ ((constructor)); \ - void __SND_DLSYM_VERSION(snd_dlsym_constructor_, name, version) (void) { \ - __SND_DLSYM_VERSION(snd_dlsym_, name, version).next = snd_dlsym_start; \ - __SND_DLSYM_VERSION(snd_dlsym_, name, version).dlsym_name = # name; \ - __SND_DLSYM_VERSION(snd_dlsym_, name, version).dlsym_ptr = (void *)&name; \ - snd_dlsym_start = &__SND_DLSYM_VERSION(snd_dlsym_, name, version); \ - } - -#endif - -#ifndef __STRING -/** \brief Return 'x' argument as string */ -#define __STRING(x) #x -#endif - -/** \brief Returns the version of a dynamic symbol as a string. */ -#define SND_DLSYM_VERSION(version) __STRING(version) - -void *snd_dlopen(const char *file, int mode); -void *snd_dlsym(void *handle, const char *name, const char *version); -int snd_dlclose(void *handle); - - -/** \brief alloca helper macro. */ -#define __snd_alloca(ptr,type) do { *ptr = (type##_t *) alloca(type##_sizeof()); memset(*ptr, 0, type##_sizeof()); } while (0) - -/** - * \brief Internal structure for an async notification client handler. - * - * The ALSA library uses a pointer to this structure as a handle to an async - * notification object. Applications don't access its contents directly. - */ -typedef struct _snd_async_handler snd_async_handler_t; - -/** - * \brief Async notification callback. - * - * See the #snd_async_add_handler function for details. - */ -typedef void (*snd_async_callback_t)(snd_async_handler_t *handler); - -int snd_async_add_handler(snd_async_handler_t **handler, int fd, - snd_async_callback_t callback, void *private_data); -int snd_async_del_handler(snd_async_handler_t *handler); -int snd_async_handler_get_fd(snd_async_handler_t *handler); -int snd_async_handler_get_signo(snd_async_handler_t *handler); -void *snd_async_handler_get_callback_private(snd_async_handler_t *handler); - -struct snd_shm_area *snd_shm_area_create(int shmid, void *ptr); -struct snd_shm_area *snd_shm_area_share(struct snd_shm_area *area); -int snd_shm_area_destroy(struct snd_shm_area *area); - -int snd_user_file(const char *file, char **result); - -#if !defined(_POSIX_C_SOURCE) && !defined(_POSIX_SOURCE) -struct timeval { - time_t tv_sec; /* seconds */ - long tv_usec; /* microseconds */ -}; - -struct timespec { - time_t tv_sec; /* seconds */ - long tv_nsec; /* nanoseconds */ -}; -#endif - -/** Timestamp */ -typedef struct timeval snd_timestamp_t; -/** Hi-res timestamp */ -typedef struct timespec snd_htimestamp_t; - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_GLOBAL_H */ diff --git a/alsa-lib/include/hwdep.h b/alsa-lib/include/hwdep.h deleted file mode 100644 index ab12822..0000000 --- a/alsa-lib/include/hwdep.h +++ /dev/null @@ -1,160 +0,0 @@ -/** - * \file include/hwdep.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_HWDEP_H -#define __ALSA_HWDEP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup HwDep Hardware Dependant Interface - * The Hardware Dependant Interface. - * \{ - */ - -/** dlsym version for interface entry callback */ -#define SND_HWDEP_DLSYM_VERSION _dlsym_hwdep_001 - -/** HwDep information container */ -typedef struct _snd_hwdep_info snd_hwdep_info_t; - -/** HwDep DSP status container */ -typedef struct _snd_hwdep_dsp_status snd_hwdep_dsp_status_t; - -/** HwDep DSP image container */ -typedef struct _snd_hwdep_dsp_image snd_hwdep_dsp_image_t; - -/** HwDep interface */ -typedef enum _snd_hwdep_iface { - SND_HWDEP_IFACE_OPL2 = 0, /**< OPL2 raw driver */ - SND_HWDEP_IFACE_OPL3, /**< OPL3 raw driver */ - SND_HWDEP_IFACE_OPL4, /**< OPL4 raw driver */ - SND_HWDEP_IFACE_SB16CSP, /**< SB16CSP driver */ - SND_HWDEP_IFACE_EMU10K1, /**< EMU10K1 driver */ - SND_HWDEP_IFACE_YSS225, /**< YSS225 driver */ - SND_HWDEP_IFACE_ICS2115, /**< ICS2115 driver */ - SND_HWDEP_IFACE_SSCAPE, /**< Ensoniq SoundScape ISA card (MC68EC000) */ - SND_HWDEP_IFACE_VX, /**< Digigram VX cards */ - SND_HWDEP_IFACE_MIXART, /**< Digigram miXart cards */ - SND_HWDEP_IFACE_USX2Y, /**< Tascam US122, US224 & US428 usb */ - SND_HWDEP_IFACE_EMUX_WAVETABLE, /**< EmuX wavetable */ - SND_HWDEP_IFACE_BLUETOOTH, /**< Bluetooth audio */ - SND_HWDEP_IFACE_USX2Y_PCM, /**< Tascam US122, US224 & US428 raw USB PCM */ - SND_HWDEP_IFACE_PCXHR, /**< Digigram PCXHR */ - SND_HWDEP_IFACE_SB_RC, /**< SB Extigy/Audigy2NX remote control */ - - SND_HWDEP_IFACE_LAST = SND_HWDEP_IFACE_SB_RC /**< last known hwdep interface */ -} snd_hwdep_iface_t; - -/** open for reading */ -#define SND_HWDEP_OPEN_READ (O_RDONLY) -/** open for writing */ -#define SND_HWDEP_OPEN_WRITE (O_WRONLY) -/** open for reading and writing */ -#define SND_HWDEP_OPEN_DUPLEX (O_RDWR) -/** open mode flag: open in nonblock mode */ -#define SND_HWDEP_OPEN_NONBLOCK (O_NONBLOCK) - -/** HwDep handle type */ -typedef enum _snd_hwdep_type { - /** Kernel level HwDep */ - SND_HWDEP_TYPE_HW, - /** Shared memory client HwDep (not yet implemented) */ - SND_HWDEP_TYPE_SHM, - /** INET client HwDep (not yet implemented) */ - SND_HWDEP_TYPE_INET -} snd_hwdep_type_t; - -/** HwDep handle */ -typedef struct _snd_hwdep snd_hwdep_t; - -int snd_hwdep_open(snd_hwdep_t **hwdep, const char *name, int mode); -int snd_hwdep_close(snd_hwdep_t *hwdep); -int snd_hwdep_poll_descriptors(snd_hwdep_t *hwdep, struct pollfd *pfds, unsigned int space); -int snd_hwdep_poll_descriptors_revents(snd_hwdep_t *hwdep, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -int snd_hwdep_nonblock(snd_hwdep_t *hwdep, int nonblock); -int snd_hwdep_info(snd_hwdep_t *hwdep, snd_hwdep_info_t * info); -int snd_hwdep_dsp_status(snd_hwdep_t *hwdep, snd_hwdep_dsp_status_t *status); -int snd_hwdep_dsp_load(snd_hwdep_t *hwdep, snd_hwdep_dsp_image_t *block); -int snd_hwdep_ioctl(snd_hwdep_t *hwdep, unsigned int request, void * arg); -ssize_t snd_hwdep_write(snd_hwdep_t *hwdep, const void *buffer, size_t size); -ssize_t snd_hwdep_read(snd_hwdep_t *hwdep, void *buffer, size_t size); - -size_t snd_hwdep_info_sizeof(void); -/** allocate #snd_hwdep_info_t container on stack */ -#define snd_hwdep_info_alloca(ptr) __snd_alloca(ptr, snd_hwdep_info) -int snd_hwdep_info_malloc(snd_hwdep_info_t **ptr); -void snd_hwdep_info_free(snd_hwdep_info_t *obj); -void snd_hwdep_info_copy(snd_hwdep_info_t *dst, const snd_hwdep_info_t *src); - -unsigned int snd_hwdep_info_get_device(const snd_hwdep_info_t *obj); -int snd_hwdep_info_get_card(const snd_hwdep_info_t *obj); -const char *snd_hwdep_info_get_id(const snd_hwdep_info_t *obj); -const char *snd_hwdep_info_get_name(const snd_hwdep_info_t *obj); -snd_hwdep_iface_t snd_hwdep_info_get_iface(const snd_hwdep_info_t *obj); -void snd_hwdep_info_set_device(snd_hwdep_info_t *obj, unsigned int val); - -size_t snd_hwdep_dsp_status_sizeof(void); -/** allocate #snd_hwdep_dsp_status_t container on stack */ -#define snd_hwdep_dsp_status_alloca(ptr) __snd_alloca(ptr, snd_hwdep_dsp_status) -int snd_hwdep_dsp_status_malloc(snd_hwdep_dsp_status_t **ptr); -void snd_hwdep_dsp_status_free(snd_hwdep_dsp_status_t *obj); -void snd_hwdep_dsp_status_copy(snd_hwdep_dsp_status_t *dst, const snd_hwdep_dsp_status_t *src); - -unsigned int snd_hwdep_dsp_status_get_version(const snd_hwdep_dsp_status_t *obj); -const char *snd_hwdep_dsp_status_get_id(const snd_hwdep_dsp_status_t *obj); -unsigned int snd_hwdep_dsp_status_get_num_dsps(const snd_hwdep_dsp_status_t *obj); -unsigned int snd_hwdep_dsp_status_get_dsp_loaded(const snd_hwdep_dsp_status_t *obj); -unsigned int snd_hwdep_dsp_status_get_chip_ready(const snd_hwdep_dsp_status_t *obj); - -size_t snd_hwdep_dsp_image_sizeof(void); -/** allocate #snd_hwdep_dsp_image_t container on stack */ -#define snd_hwdep_dsp_image_alloca(ptr) __snd_alloca(ptr, snd_hwdep_dsp_image) -int snd_hwdep_dsp_image_malloc(snd_hwdep_dsp_image_t **ptr); -void snd_hwdep_dsp_image_free(snd_hwdep_dsp_image_t *obj); -void snd_hwdep_dsp_image_copy(snd_hwdep_dsp_image_t *dst, const snd_hwdep_dsp_image_t *src); - -unsigned int snd_hwdep_dsp_image_get_index(const snd_hwdep_dsp_image_t *obj); -const char *snd_hwdep_dsp_image_get_name(const snd_hwdep_dsp_image_t *obj); -const void *snd_hwdep_dsp_image_get_image(const snd_hwdep_dsp_image_t *obj); -size_t snd_hwdep_dsp_image_get_length(const snd_hwdep_dsp_image_t *obj); - -void snd_hwdep_dsp_image_set_index(snd_hwdep_dsp_image_t *obj, unsigned int _index); -void snd_hwdep_dsp_image_set_name(snd_hwdep_dsp_image_t *obj, const char *name); -void snd_hwdep_dsp_image_set_image(snd_hwdep_dsp_image_t *obj, void *buffer); -void snd_hwdep_dsp_image_set_length(snd_hwdep_dsp_image_t *obj, size_t length); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_HWDEP_H */ - diff --git a/alsa-lib/include/iatomic.h b/alsa-lib/include/iatomic.h deleted file mode 100644 index 8f6ec22..0000000 --- a/alsa-lib/include/iatomic.h +++ /dev/null @@ -1,1175 +0,0 @@ -#ifndef __ALSA_IATOMIC_H -#define __ALSA_IATOMIC_H - -#if defined(__i386__) || defined(__x86_64__) - -/* - * Atomic operations that C can't guarantee us. Useful for - * resource counting etc.. - */ - -#define ATOMIC_SMP_LOCK "lock ; " - -/* - * Make sure gcc doesn't try to be clever and move things around - * on us. We need to use _exactly_ the address the user gave us, - * not some alias that contains the same information. - */ -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) { (i) } - -/** - * atomic_read - read atomic variable - * @v: pointer of type atomic_t - * - * Atomically reads the value of @v. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_read(v) ((v)->counter) - -/** - * atomic_set - set atomic variable - * @v: pointer of type atomic_t - * @i: required value - * - * Atomically sets the value of @v to @i. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_set(v,i) (((v)->counter) = (i)) - -/** - * atomic_add - add integer to atomic variable - * @i: integer value to add - * @v: pointer of type atomic_t - * - * Atomically adds @i to @v. Note that the guaranteed useful range - * of an atomic_t is only 24 bits. - */ -static __inline__ void atomic_add(int i, atomic_t *v) -{ - __asm__ __volatile__( - ATOMIC_SMP_LOCK "addl %1,%0" - :"=m" (v->counter) - :"ir" (i), "m" (v->counter)); -} - -/** - * atomic_sub - subtract the atomic variable - * @i: integer value to subtract - * @v: pointer of type atomic_t - * - * Atomically subtracts @i from @v. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -static __inline__ void atomic_sub(int i, atomic_t *v) -{ - __asm__ __volatile__( - ATOMIC_SMP_LOCK "subl %1,%0" - :"=m" (v->counter) - :"ir" (i), "m" (v->counter)); -} - -/** - * atomic_sub_and_test - subtract value from variable and test result - * @i: integer value to subtract - * @v: pointer of type atomic_t - * - * Atomically subtracts @i from @v and returns - * true if the result is zero, or false for all - * other cases. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -static __inline__ int atomic_sub_and_test(int i, atomic_t *v) -{ - unsigned char c; - - __asm__ __volatile__( - ATOMIC_SMP_LOCK "subl %2,%0; sete %1" - :"=m" (v->counter), "=qm" (c) - :"ir" (i), "m" (v->counter) : "memory"); - return c; -} - -/** - * atomic_inc - increment atomic variable - * @v: pointer of type atomic_t - * - * Atomically increments @v by 1. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -static __inline__ void atomic_inc(atomic_t *v) -{ - __asm__ __volatile__( - ATOMIC_SMP_LOCK "incl %0" - :"=m" (v->counter) - :"m" (v->counter)); -} - -/** - * atomic_dec - decrement atomic variable - * @v: pointer of type atomic_t - * - * Atomically decrements @v by 1. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -static __inline__ void atomic_dec(atomic_t *v) -{ - __asm__ __volatile__( - ATOMIC_SMP_LOCK "decl %0" - :"=m" (v->counter) - :"m" (v->counter)); -} - -/** - * atomic_dec_and_test - decrement and test - * @v: pointer of type atomic_t - * - * Atomically decrements @v by 1 and - * returns true if the result is 0, or false for all other - * cases. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -static __inline__ int atomic_dec_and_test(atomic_t *v) -{ - unsigned char c; - - __asm__ __volatile__( - ATOMIC_SMP_LOCK "decl %0; sete %1" - :"=m" (v->counter), "=qm" (c) - :"m" (v->counter) : "memory"); - return c != 0; -} - -/** - * atomic_inc_and_test - increment and test - * @v: pointer of type atomic_t - * - * Atomically increments @v by 1 - * and returns true if the result is zero, or false for all - * other cases. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -static __inline__ int atomic_inc_and_test(atomic_t *v) -{ - unsigned char c; - - __asm__ __volatile__( - ATOMIC_SMP_LOCK "incl %0; sete %1" - :"=m" (v->counter), "=qm" (c) - :"m" (v->counter) : "memory"); - return c != 0; -} - -/** - * atomic_add_negative - add and test if negative - * @v: pointer of type atomic_t - * @i: integer value to add - * - * Atomically adds @i to @v and returns true - * if the result is negative, or false when - * result is greater than or equal to zero. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -static __inline__ int atomic_add_negative(int i, atomic_t *v) -{ - unsigned char c; - - __asm__ __volatile__( - ATOMIC_SMP_LOCK "addl %2,%0; sets %1" - :"=m" (v->counter), "=qm" (c) - :"ir" (i), "m" (v->counter) : "memory"); - return c; -} - -/* These are x86-specific, used by some header files */ -#define atomic_clear_mask(mask, addr) \ -__asm__ __volatile__(ATOMIC_SMP_LOCK "andl %0,%1" \ -: : "r" (~(mask)),"m" (*addr) : "memory") - -#define atomic_set_mask(mask, addr) \ -__asm__ __volatile__(ATOMIC_SMP_LOCK "orl %0,%1" \ -: : "r" (mask),"m" (*addr) : "memory") - -/* - * Force strict CPU ordering. - * And yes, this is required on UP too when we're talking - * to devices. - * - * For now, "wmb()" doesn't actually do anything, as all - * Intel CPU's follow what Intel calls a *Processor Order*, - * in which all writes are seen in the program order even - * outside the CPU. - * - * I expect future Intel CPU's to have a weaker ordering, - * but I'd also expect them to finally get their act together - * and add some real memory barriers if so. - */ - -#ifdef __i386__ -#define mb() __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory") -#define rmb() mb() -#define wmb() __asm__ __volatile__ ("": : :"memory") -#else -#define mb() asm volatile("mfence":::"memory") -#define rmb() asm volatile("lfence":::"memory") -#define wmb() asm volatile("sfence":::"memory") -#endif - -#undef ATOMIC_SMP_LOCK - -#define IATOMIC_DEFINED 1 - -#endif /* __i386__ */ - -#ifdef __ia64__ - -/* - * On IA-64, counter must always be volatile to ensure that that the - * memory accesses are ordered. - */ -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) ((atomic_t) { (i) }) - -#define atomic_read(v) ((v)->counter) -#define atomic_set(v,i) (((v)->counter) = (i)) - -/* stripped version - we need only 4byte version */ -#define ia64_cmpxchg(sem,ptr,old,new,size) \ -({ \ - __typeof__(ptr) _p_ = (ptr); \ - __typeof__(new) _n_ = (new); \ - unsigned long _o_, _r_; \ - _o_ = (unsigned int) (long) (old); \ - __asm__ __volatile__ ("mov ar.ccv=%0;;" :: "rO"(_o_)); \ - __asm__ __volatile__ ("cmpxchg4."sem" %0=[%1],%2,ar.ccv" \ - : "=r"(_r_) : "r"(_p_), "r"(_n_) : "memory"); \ - (__typeof__(old)) _r_; \ -}) - -static __inline__ int -ia64_atomic_add (int i, atomic_t *v) -{ - int old, new; - // CMPXCHG_BUGCHECK_DECL - - do { - // CMPXCHG_BUGCHECK(v); - old = atomic_read(v); - new = old + i; - } while (ia64_cmpxchg("acq", v, old, old + i, sizeof(atomic_t)) != old); - return new; -} - -static __inline__ int -ia64_atomic_sub (int i, atomic_t *v) -{ - int old, new; - // CMPXCHG_BUGCHECK_DECL - - do { - // CMPXCHG_BUGCHECK(v); - old = atomic_read(v); - new = old - i; - } while (ia64_cmpxchg("acq", v, old, new, sizeof(atomic_t)) != old); - return new; -} - -#define IA64_FETCHADD(tmp,v,n,sz) \ -({ \ - switch (sz) { \ - case 4: \ - __asm__ __volatile__ ("fetchadd4.rel %0=[%1],%2" \ - : "=r"(tmp) : "r"(v), "i"(n) : "memory"); \ - break; \ - \ - case 8: \ - __asm__ __volatile__ ("fetchadd8.rel %0=[%1],%2" \ - : "=r"(tmp) : "r"(v), "i"(n) : "memory"); \ - break; \ - } \ -}) - -#define ia64_fetch_and_add(i,v) \ -({ \ - unsigned long _tmp; \ - volatile __typeof__(*(v)) *_v = (v); \ - switch (i) { \ - case -16: IA64_FETCHADD(_tmp, _v, -16, sizeof(*(v))); break; \ - case -8: IA64_FETCHADD(_tmp, _v, -8, sizeof(*(v))); break; \ - case -4: IA64_FETCHADD(_tmp, _v, -4, sizeof(*(v))); break; \ - case -1: IA64_FETCHADD(_tmp, _v, -1, sizeof(*(v))); break; \ - case 1: IA64_FETCHADD(_tmp, _v, 1, sizeof(*(v))); break; \ - case 4: IA64_FETCHADD(_tmp, _v, 4, sizeof(*(v))); break; \ - case 8: IA64_FETCHADD(_tmp, _v, 8, sizeof(*(v))); break; \ - case 16: IA64_FETCHADD(_tmp, _v, 16, sizeof(*(v))); break; \ - } \ - (__typeof__(*v)) (_tmp + (i)); /* return new value */ \ -}) - -/* - * Atomically add I to V and return TRUE if the resulting value is - * negative. - */ -static __inline__ int -atomic_add_negative (int i, atomic_t *v) -{ - return ia64_atomic_add(i, v) < 0; -} - -#define atomic_add_return(i,v) \ - ((__builtin_constant_p(i) && \ - ( (i == 1) || (i == 4) || (i == 8) || (i == 16) \ - || (i == -1) || (i == -4) || (i == -8) || (i == -16))) \ - ? ia64_fetch_and_add(i, &(v)->counter) \ - : ia64_atomic_add(i, v)) - -#define atomic_sub_return(i,v) \ - ((__builtin_constant_p(i) && \ - ( (i == 1) || (i == 4) || (i == 8) || (i == 16) \ - || (i == -1) || (i == -4) || (i == -8) || (i == -16))) \ - ? ia64_fetch_and_add(-(i), &(v)->counter) \ - : ia64_atomic_sub(i, v)) - -#define atomic_dec_return(v) atomic_sub_return(1, (v)) -#define atomic_inc_return(v) atomic_add_return(1, (v)) - -#define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) -#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) -#define atomic_inc_and_test(v) (atomic_add_return(1, (v)) != 0) - -#define atomic_add(i,v) atomic_add_return((i), (v)) -#define atomic_sub(i,v) atomic_sub_return((i), (v)) -#define atomic_inc(v) atomic_add(1, (v)) -#define atomic_dec(v) atomic_sub(1, (v)) - -/* - * Macros to force memory ordering. In these descriptions, "previous" - * and "subsequent" refer to program order; "visible" means that all - * architecturally visible effects of a memory access have occurred - * (at a minimum, this means the memory has been read or written). - * - * wmb(): Guarantees that all preceding stores to memory- - * like regions are visible before any subsequent - * stores and that all following stores will be - * visible only after all previous stores. - * rmb(): Like wmb(), but for reads. - * mb(): wmb()/rmb() combo, i.e., all previous memory - * accesses are visible before all subsequent - * accesses and vice versa. This is also known as - * a "fence." - * - * Note: "mb()" and its variants cannot be used as a fence to order - * accesses to memory mapped I/O registers. For that, mf.a needs to - * be used. However, we don't want to always use mf.a because (a) - * it's (presumably) much slower than mf and (b) mf.a is supported for - * sequential memory pages only. - */ -#define mb() __asm__ __volatile__ ("mf" ::: "memory") -#define rmb() mb() -#define wmb() mb() - -#define IATOMIC_DEFINED 1 - -#endif /* __ia64__ */ - -#ifdef __alpha__ - -/* - * Atomic operations that C can't guarantee us. Useful for - * resource counting etc... - * - * But use these as seldom as possible since they are much slower - * than regular operations. - */ - - -/* - * Counter is volatile to make sure gcc doesn't try to be clever - * and move things around on us. We need to use _exactly_ the address - * the user gave us, not some alias that contains the same information. - */ -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) ( (atomic_t) { (i) } ) - -#define atomic_read(v) ((v)->counter) -#define atomic_set(v,i) ((v)->counter = (i)) - -/* - * To get proper branch prediction for the main line, we must branch - * forward to code at the end of this object's .text section, then - * branch back to restart the operation. - */ - -static __inline__ void atomic_add(int i, atomic_t * v) -{ - unsigned long temp; - __asm__ __volatile__( - "1: ldl_l %0,%1\n" - " addl %0,%2,%0\n" - " stl_c %0,%1\n" - " beq %0,2f\n" - ".subsection 2\n" - "2: br 1b\n" - ".previous" - :"=&r" (temp), "=m" (v->counter) - :"Ir" (i), "m" (v->counter)); -} - -static __inline__ void atomic_sub(int i, atomic_t * v) -{ - unsigned long temp; - __asm__ __volatile__( - "1: ldl_l %0,%1\n" - " subl %0,%2,%0\n" - " stl_c %0,%1\n" - " beq %0,2f\n" - ".subsection 2\n" - "2: br 1b\n" - ".previous" - :"=&r" (temp), "=m" (v->counter) - :"Ir" (i), "m" (v->counter)); -} - -/* - * Same as above, but return the result value - */ -static __inline__ long atomic_add_return(int i, atomic_t * v) -{ - long temp, result; - __asm__ __volatile__( - "1: ldl_l %0,%1\n" - " addl %0,%3,%2\n" - " addl %0,%3,%0\n" - " stl_c %0,%1\n" - " beq %0,2f\n" - " mb\n" - ".subsection 2\n" - "2: br 1b\n" - ".previous" - :"=&r" (temp), "=m" (v->counter), "=&r" (result) - :"Ir" (i), "m" (v->counter) : "memory"); - return result; -} - -static __inline__ long atomic_sub_return(int i, atomic_t * v) -{ - long temp, result; - __asm__ __volatile__( - "1: ldl_l %0,%1\n" - " subl %0,%3,%2\n" - " subl %0,%3,%0\n" - " stl_c %0,%1\n" - " beq %0,2f\n" - " mb\n" - ".subsection 2\n" - "2: br 1b\n" - ".previous" - :"=&r" (temp), "=m" (v->counter), "=&r" (result) - :"Ir" (i), "m" (v->counter) : "memory"); - return result; -} - -#define atomic_dec_return(v) atomic_sub_return(1,(v)) -#define atomic_inc_return(v) atomic_add_return(1,(v)) - -#define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) -#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) - -#define atomic_inc(v) atomic_add(1,(v)) -#define atomic_dec(v) atomic_sub(1,(v)) - -#define mb() \ -__asm__ __volatile__("mb": : :"memory") - -#define rmb() \ -__asm__ __volatile__("mb": : :"memory") - -#define wmb() \ -__asm__ __volatile__("wmb": : :"memory") - -#define IATOMIC_DEFINED 1 - -#endif /* __alpha__ */ - -#ifdef __powerpc__ - -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) { (i) } - -#define atomic_read(v) ((v)->counter) -#define atomic_set(v,i) (((v)->counter) = (i)) - -extern void atomic_clear_mask(unsigned long mask, unsigned long *addr); -extern void atomic_set_mask(unsigned long mask, unsigned long *addr); - -#define SMP_ISYNC "\n\tisync" - -static __inline__ void atomic_add(int a, atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%3 # atomic_add\n\ - add %0,%2,%0\n\ - stwcx. %0,0,%3\n\ - bne- 1b" - : "=&r" (t), "=m" (v->counter) - : "r" (a), "r" (&v->counter), "m" (v->counter) - : "cc"); -} - -static __inline__ int atomic_add_return(int a, atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%2 # atomic_add_return\n\ - add %0,%1,%0\n\ - stwcx. %0,0,%2\n\ - bne- 1b" - SMP_ISYNC - : "=&r" (t) - : "r" (a), "r" (&v->counter) - : "cc", "memory"); - - return t; -} - -static __inline__ void atomic_sub(int a, atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%3 # atomic_sub\n\ - subf %0,%2,%0\n\ - stwcx. %0,0,%3\n\ - bne- 1b" - : "=&r" (t), "=m" (v->counter) - : "r" (a), "r" (&v->counter), "m" (v->counter) - : "cc"); -} - -static __inline__ int atomic_sub_return(int a, atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%2 # atomic_sub_return\n\ - subf %0,%1,%0\n\ - stwcx. %0,0,%2\n\ - bne- 1b" - SMP_ISYNC - : "=&r" (t) - : "r" (a), "r" (&v->counter) - : "cc", "memory"); - - return t; -} - -static __inline__ void atomic_inc(atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%2 # atomic_inc\n\ - addic %0,%0,1\n\ - stwcx. %0,0,%2\n\ - bne- 1b" - : "=&r" (t), "=m" (v->counter) - : "r" (&v->counter), "m" (v->counter) - : "cc"); -} - -static __inline__ int atomic_inc_return(atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%1 # atomic_inc_return\n\ - addic %0,%0,1\n\ - stwcx. %0,0,%1\n\ - bne- 1b" - SMP_ISYNC - : "=&r" (t) - : "r" (&v->counter) - : "cc", "memory"); - - return t; -} - -static __inline__ void atomic_dec(atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%2 # atomic_dec\n\ - addic %0,%0,-1\n\ - stwcx. %0,0,%2\n\ - bne- 1b" - : "=&r" (t), "=m" (v->counter) - : "r" (&v->counter), "m" (v->counter) - : "cc"); -} - -static __inline__ int atomic_dec_return(atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%1 # atomic_dec_return\n\ - addic %0,%0,-1\n\ - stwcx. %0,0,%1\n\ - bne- 1b" - SMP_ISYNC - : "=&r" (t) - : "r" (&v->counter) - : "cc", "memory"); - - return t; -} - -#define atomic_sub_and_test(a, v) (atomic_sub_return((a), (v)) == 0) -#define atomic_dec_and_test(v) (atomic_dec_return((v)) == 0) - -/* - * Atomically test *v and decrement if it is greater than 0. - * The function returns the old value of *v minus 1. - */ -static __inline__ int atomic_dec_if_positive(atomic_t *v) -{ - int t; - - __asm__ __volatile__( -"1: lwarx %0,0,%1 # atomic_dec_if_positive\n\ - addic. %0,%0,-1\n\ - blt- 2f\n\ - stwcx. %0,0,%1\n\ - bne- 1b" - SMP_ISYNC - "\n\ -2:" : "=&r" (t) - : "r" (&v->counter) - : "cc", "memory"); - - return t; -} - -/* - * Memory barrier. - * The sync instruction guarantees that all memory accesses initiated - * by this processor have been performed (with respect to all other - * mechanisms that access memory). The eieio instruction is a barrier - * providing an ordering (separately) for (a) cacheable stores and (b) - * loads and stores to non-cacheable memory (e.g. I/O devices). - * - * mb() prevents loads and stores being reordered across this point. - * rmb() prevents loads being reordered across this point. - * wmb() prevents stores being reordered across this point. - * - * We can use the eieio instruction for wmb, but since it doesn't - * give any ordering guarantees about loads, we have to use the - * stronger but slower sync instruction for mb and rmb. - */ -#define mb() __asm__ __volatile__ ("sync" : : : "memory") -#define rmb() __asm__ __volatile__ ("sync" : : : "memory") -#define wmb() __asm__ __volatile__ ("eieio" : : : "memory") - -#define IATOMIC_DEFINED 1 - -#endif /* __powerpc__ */ - -#ifdef __mips__ - -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) { (i) } - -/* - * atomic_read - read atomic variable - * @v: pointer of type atomic_t - * - * Atomically reads the value of @v. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_read(v) ((v)->counter) - -/* - * atomic_set - set atomic variable - * @v: pointer of type atomic_t - * @i: required value - * - * Atomically sets the value of @v to @i. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_set(v,i) ((v)->counter = (i)) - -/* - * for MIPS II and better we can use ll/sc instruction, and kernel 2.4.3+ - * will emulate it on MIPS I. - */ - -/* - * atomic_add - add integer to atomic variable - * @i: integer value to add - * @v: pointer of type atomic_t - * - * Atomically adds @i to @v. Note that the guaranteed useful range - * of an atomic_t is only 24 bits. - */ -extern __inline__ void atomic_add(int i, atomic_t * v) -{ - unsigned long temp; - - __asm__ __volatile__( - ".set push \n" - ".set mips2 \n" - "1: ll %0, %1 # atomic_add\n" - " addu %0, %2 \n" - " sc %0, %1 \n" - " beqz %0, 1b \n" - ".set pop \n" - : "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter)); -} - -/* - * atomic_sub - subtract the atomic variable - * @i: integer value to subtract - * @v: pointer of type atomic_t - * - * Atomically subtracts @i from @v. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -extern __inline__ void atomic_sub(int i, atomic_t * v) -{ - unsigned long temp; - - __asm__ __volatile__( - ".set push \n" - ".set mips2 \n" - "1: ll %0, %1 # atomic_sub\n" - " subu %0, %2 \n" - " sc %0, %1 \n" - " beqz %0, 1b \n" - ".set pop \n" - : "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter)); -} - -/* - * Same as above, but return the result value - */ -extern __inline__ int atomic_add_return(int i, atomic_t * v) -{ - unsigned long temp, result; - - __asm__ __volatile__( - ".set push # atomic_add_return\n" - ".set noreorder \n" - ".set mips2 \n" - "1: ll %1, %2 \n" - " addu %0, %1, %3 \n" - " sc %0, %2 \n" - " beqz %0, 1b \n" - " addu %0, %1, %3 \n" - ".set pop \n" - : "=&r" (result), "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter) - : "memory"); - - return result; -} - -extern __inline__ int atomic_sub_return(int i, atomic_t * v) -{ - unsigned long temp, result; - - __asm__ __volatile__( - ".set push \n" - ".set mips2 \n" - ".set noreorder # atomic_sub_return\n" - "1: ll %1, %2 \n" - " subu %0, %1, %3 \n" - " sc %0, %2 \n" - " beqz %0, 1b \n" - " subu %0, %1, %3 \n" - ".set pop \n" - : "=&r" (result), "=&r" (temp), "=m" (v->counter) - : "Ir" (i), "m" (v->counter) - : "memory"); - - return result; -} - -#define atomic_dec_return(v) atomic_sub_return(1,(v)) -#define atomic_inc_return(v) atomic_add_return(1,(v)) - -/* - * atomic_sub_and_test - subtract value from variable and test result - * @i: integer value to subtract - * @v: pointer of type atomic_t - * - * Atomically subtracts @i from @v and returns - * true if the result is zero, or false for all - * other cases. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) - -/* - * atomic_inc_and_test - increment and test - * @v: pointer of type atomic_t - * - * Atomically increments @v by 1 - * and returns true if the result is zero, or false for all - * other cases. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_inc_and_test(v) (atomic_inc_return(1, (v)) == 0) - -/* - * atomic_dec_and_test - decrement by 1 and test - * @v: pointer of type atomic_t - * - * Atomically decrements @v by 1 and - * returns true if the result is 0, or false for all other - * cases. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) - -/* - * atomic_inc - increment atomic variable - * @v: pointer of type atomic_t - * - * Atomically increments @v by 1. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_inc(v) atomic_add(1,(v)) - -/* - * atomic_dec - decrement and test - * @v: pointer of type atomic_t - * - * Atomically decrements @v by 1. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ -#define atomic_dec(v) atomic_sub(1,(v)) - -/* - * atomic_add_negative - add and test if negative - * @v: pointer of type atomic_t - * @i: integer value to add - * - * Atomically adds @i to @v and returns true - * if the result is negative, or false when - * result is greater than or equal to zero. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - * - * Currently not implemented for MIPS. - */ - -#define mb() \ -__asm__ __volatile__( \ - "# prevent instructions being moved around\n\t" \ - ".set\tnoreorder\n\t" \ - "# 8 nops to fool the R4400 pipeline\n\t" \ - "nop;nop;nop;nop;nop;nop;nop;nop\n\t" \ - ".set\treorder" \ - : /* no output */ \ - : /* no input */ \ - : "memory") -#define rmb() mb() -#define wmb() mb() - -#define IATOMIC_DEFINED 1 - -#endif /* __mips__ */ - -#ifdef __arm__ - -/* - * FIXME: bellow code is valid only for SA11xx - */ - -/* - * Save the current interrupt enable state & disable IRQs - */ -#define local_irq_save(x) \ - ({ \ - unsigned long temp; \ - __asm__ __volatile__( \ - "mrs %0, cpsr @ local_irq_save\n" \ -" orr %1, %0, #128\n" \ -" msr cpsr_c, %1" \ - : "=r" (x), "=r" (temp) \ - : \ - : "memory"); \ - }) - -/* - * restore saved IRQ & FIQ state - */ -#define local_irq_restore(x) \ - __asm__ __volatile__( \ - "msr cpsr_c, %0 @ local_irq_restore\n" \ - : \ - : "r" (x) \ - : "memory") - -#define __save_flags_cli(x) local_irq_save(x) -#define __restore_flags(x) local_irq_restore(x) - -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) { (i) } - -#define atomic_read(v) ((v)->counter) -#define atomic_set(v,i) (((v)->counter) = (i)) - -static __inline__ void atomic_add(int i, volatile atomic_t *v) -{ - unsigned long flags; - - __save_flags_cli(flags); - v->counter += i; - __restore_flags(flags); -} - -static __inline__ void atomic_sub(int i, volatile atomic_t *v) -{ - unsigned long flags; - - __save_flags_cli(flags); - v->counter -= i; - __restore_flags(flags); -} - -static __inline__ void atomic_inc(volatile atomic_t *v) -{ - unsigned long flags; - - __save_flags_cli(flags); - v->counter += 1; - __restore_flags(flags); -} - -static __inline__ void atomic_dec(volatile atomic_t *v) -{ - unsigned long flags; - - __save_flags_cli(flags); - v->counter -= 1; - __restore_flags(flags); -} - -static __inline__ int atomic_dec_and_test(volatile atomic_t *v) -{ - unsigned long flags; - int result; - - __save_flags_cli(flags); - v->counter -= 1; - result = (v->counter == 0); - __restore_flags(flags); - - return result; -} - -static inline int atomic_add_negative(int i, volatile atomic_t *v) -{ - unsigned long flags; - int result; - - __save_flags_cli(flags); - v->counter += i; - result = (v->counter < 0); - __restore_flags(flags); - - return result; -} - -static __inline__ void atomic_clear_mask(unsigned long mask, unsigned long *addr) -{ - unsigned long flags; - - __save_flags_cli(flags); - *addr &= ~mask; - __restore_flags(flags); -} - -#define mb() __asm__ __volatile__ ("" : : : "memory") -#define rmb() mb() -#define wmb() mb() - -#define IATOMIC_DEFINED 1 - -#endif /* __arm__ */ - -#ifdef __sh__ - -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) { (i) } - -#define atomic_read(v) ((v)->counter) -#define atomic_set(v,i) (((v)->counter) = (i)) - -#define atomic_dec_return(v) atomic_sub_return(1,(v)) -#define atomic_inc_return(v) atomic_add_return(1,(v)) - -#define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) -#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) -#define atomic_inc_and_test(v) (atomic_add_return(1, (v)) != 0) - -#define atomic_add(i,v) atomic_add_return((i),(v)) -#define atomic_sub(i,v) atomic_sub_return((i),(v)) -#define atomic_inc(v) atomic_add(1,(v)) -#define atomic_dec(v) atomic_sub(1,(v)) - -static __inline__ int atomic_add_return(int i, volatile atomic_t *v) -{ - int result; - - asm volatile ( - " .align 2\n" - " mova 99f, r0\n" - " mov r15, r1\n" - " mov #-6, r15\n" - " mov.l @%2, %0\n" - " add %1, %0\n" - " mov.l %0, @%2\n" - "99: mov r1, r15" - : "=&r"(result) - : "r"(i), "r"(v) - : "r0", "r1"); - - return result; -} - -static __inline__ int atomic_sub_return(int i, volatile atomic_t *v) -{ - int result; - - asm volatile ( - " .align 2\n" - " mova 99f, r0\n" - " mov r15, r1\n" - " mov #-6, r15\n" - " mov.l @%2, %0\n" - " sub %1, %0\n" - " mov.l %0, @%2\n" - "99: mov r1, r15" - : "=&r"(result) - : "r"(i), "r"(v) - : "r0", "r1"); - - return result; -} - -#define mb() __asm__ __volatile__ ("" : : : "memory") -#define rmb() mb() -#define wmb() mb() - -#define IATOMIC_DEFINED 1 - -#endif /* __sh__ */ - -#ifndef IATOMIC_DEFINED -/* - * non supported architecture. - */ -#warning "Atomic operations are not supported on this architecture." - -typedef struct { volatile int counter; } atomic_t; - -#define ATOMIC_INIT(i) { (i) } - -#define atomic_read(v) ((v)->counter) -#define atomic_set(v,i) (((v)->counter) = (i)) -#define atomic_add(i,v) (((v)->counter) += (i)) -#define atomic_sub(i,v) (((v)->counter) -= (i)) -#define atomic_inc(v) (((v)->counter)++) -#define atomic_dec(v) (((v)->counter)--) - -#define mb() -#define rmb() -#define wmb() - -#define IATOMIC_DEFINED 1 - -#endif /* IATOMIC_DEFINED */ - -/* - * Atomic read/write - * Copyright (c) 2001 by Abramo Bagnara <abramo@alsa-project.org> - */ - -/* Max number of times we must spin on a spin-lock calling sched_yield(). - After MAX_SPIN_COUNT iterations, we put the calling thread to sleep. */ - -#ifndef MAX_SPIN_COUNT -#define MAX_SPIN_COUNT 50 -#endif - -/* Duration of sleep (in nanoseconds) when we can't acquire a spin-lock - after MAX_SPIN_COUNT iterations of sched_yield(). - This MUST BE > 2ms. - (Otherwise the kernel does busy-waiting for real-time threads, - giving other threads no chance to run.) */ - -#ifndef SPIN_SLEEP_DURATION -#define SPIN_SLEEP_DURATION 2000001 -#endif - -typedef struct { - unsigned int begin, end; -} snd_atomic_write_t; - -typedef struct { - volatile const snd_atomic_write_t *write; - unsigned int end; -} snd_atomic_read_t; - -void snd_atomic_read_wait(snd_atomic_read_t *t); - -static inline void snd_atomic_write_init(snd_atomic_write_t *w) -{ - w->begin = 0; - w->end = 0; -} - -static inline void snd_atomic_write_begin(snd_atomic_write_t *w) -{ - w->begin++; - wmb(); -} - -static inline void snd_atomic_write_end(snd_atomic_write_t *w) -{ - wmb(); - w->end++; -} - -static inline void snd_atomic_read_init(snd_atomic_read_t *r, snd_atomic_write_t *w) -{ - r->write = w; -} - -static inline void snd_atomic_read_begin(snd_atomic_read_t *r) -{ - r->end = r->write->end; - rmb(); -} - -static inline int snd_atomic_read_ok(snd_atomic_read_t *r) -{ - rmb(); - return r->end == r->write->begin; -} - -#endif /* __ALSA_IATOMIC_H */ diff --git a/alsa-lib/include/input.h b/alsa-lib/include/input.h deleted file mode 100644 index fc5d0e6..0000000 --- a/alsa-lib/include/input.h +++ /dev/null @@ -1,83 +0,0 @@ -/** - * \file include/input.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_INPUT_H -#define __ALSA_INPUT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Input Input Interface - * - * The input functions present an interface similar to the stdio functions - * on top of different underlying input sources. - * - * The #snd_config_load function uses such an input handle to be able to - * load configurations not only from standard files but also from other - * sources, e.g. from memory buffers. - * - * \{ - */ - -/** - * \brief Internal structure for an input object. - * - * The ALSA library uses a pointer to this structure as a handle to an - * input object. Applications don't access its contents directly. - */ -typedef struct _snd_input snd_input_t; - -/** Input type. */ -typedef enum _snd_input_type { - /** Input from a stdio stream. */ - SND_INPUT_STDIO, - /** Input from a memory buffer. */ - SND_INPUT_BUFFER -} snd_input_type_t; - -int snd_input_stdio_open(snd_input_t **inputp, const char *file, const char *mode); -int snd_input_stdio_attach(snd_input_t **inputp, FILE *fp, int _close); -int snd_input_buffer_open(snd_input_t **inputp, const char *buffer, ssize_t size); -int snd_input_close(snd_input_t *input); -int snd_input_scanf(snd_input_t *input, const char *format, ...) -#ifndef DOC_HIDDEN - __attribute__ ((format (scanf, 2, 3))) -#endif - ; -char *snd_input_gets(snd_input_t *input, char *str, size_t size); -int snd_input_getc(snd_input_t *input); -int snd_input_ungetc(snd_input_t *input, int c); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_INPUT_H */ diff --git a/alsa-lib/include/list.h b/alsa-lib/include/list.h deleted file mode 100644 index 5b3f1bf..0000000 --- a/alsa-lib/include/list.h +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef _LIST_H -#define _LIST_H - -/* - * This code was taken from the Linux 2.4.0 kernel. [jaroslav] - */ - -/* - * Simple doubly linked list implementation. - * - * Some of the internal functions ("__xxx") are useful when - * manipulating whole lists rather than single entries, as - * sometimes we already know the next/prev entries and we can - * generate better code by using them directly rather than - * using the generic single-entry routines. - */ - -#ifndef LIST_HEAD_IS_DEFINED -struct list_head { - struct list_head *next, *prev; -}; -#endif - -#define LIST_HEAD_INIT(name) { &(name), &(name) } - -#define LIST_HEAD(name) \ - struct list_head name = LIST_HEAD_INIT(name) - -#define INIT_LIST_HEAD(ptr) do { \ - (ptr)->next = (ptr); (ptr)->prev = (ptr); \ -} while (0) - -/* - * Insert a new entry between two known consecutive entries. - * - * This is only for internal list manipulation where we know - * the prev/next entries already! - */ -static __inline__ void __list_add(struct list_head * _new, - struct list_head * prev, - struct list_head * next) -{ - next->prev = _new; - _new->next = next; - _new->prev = prev; - prev->next = _new; -} - -/** - * list_add - add a new entry - * @new: new entry to be added - * @head: list head to add it after - * - * Insert a new entry after the specified head. - * This is good for implementing stacks. - */ -static __inline__ void list_add(struct list_head *_new, struct list_head *head) -{ - __list_add(_new, head, head->next); -} - -/** - * list_add_tail - add a new entry - * @new: new entry to be added - * @head: list head to add it before - * - * Insert a new entry before the specified head. - * This is useful for implementing queues. - */ -static __inline__ void list_add_tail(struct list_head *_new, struct list_head *head) -{ - __list_add(_new, head->prev, head); -} - -/* - * Delete a list entry by making the prev/next entries - * point to each other. - * - * This is only for internal list manipulation where we know - * the prev/next entries already! - */ -static __inline__ void __list_del(struct list_head * prev, - struct list_head * next) -{ - next->prev = prev; - prev->next = next; -} - -/** - * list_del - deletes entry from list. - * @entry: the element to delete from the list. - * Note: list_empty on entry does not return true after this, the entry is in an undefined state. - */ -static __inline__ void list_del(struct list_head *entry) -{ - __list_del(entry->prev, entry->next); -} - -/** - * list_del_init - deletes entry from list and reinitialize it. - * @entry: the element to delete from the list.n - */ -static __inline__ void list_del_init(struct list_head *entry) -{ - __list_del(entry->prev, entry->next); - INIT_LIST_HEAD(entry); -} - -/** - * list_empty - tests whether a list is empty - * @head: the list to test. - */ -static __inline__ int list_empty(struct list_head *head) -{ - return head->next == head; -} - -/** - * list_splice - join two lists - * @list: the new list to add. - * @head: the place to add it in the first list. - */ -static __inline__ void list_splice(struct list_head *list, struct list_head *head) -{ - struct list_head *first = list->next; - - if (first != list) { - struct list_head *last = list->prev; - struct list_head *at = head->next; - - first->prev = head; - head->next = first; - - last->next = at; - at->prev = last; - } -} - -/** - * list_for_each - iterate over a list - * @pos: the &struct list_head to use as a loop counter. - * @head: the head for your list. - */ -#define list_for_each(pos, head) \ - for (pos = (head)->next ; pos != (head); pos = pos->next) - -/** - * list_for_each_safe - iterate over a list safely (actual pointer can be invalidated) - * @pos: the &struct list_head to use as a loop counter. - * @next: the &struct list_head to use to save next. - * @head: the head for your list. - */ -#define list_for_each_safe(pos, npos, head) \ - for (pos = (head)->next, npos = pos->next ; pos != (head); pos = npos, npos = pos->next) - -/** - * list_entry - get the struct for this entry - * @ptr: the &struct list_head pointer. - * @type: the type of the struct this is embedded in. - * @member: the name of the list_struct within the struct. - */ -#define list_entry(ptr, type, member) \ - ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) - - -#endif /* _LIST_H */ diff --git a/alsa-lib/include/local.h b/alsa-lib/include/local.h deleted file mode 100644 index b5a1c45..0000000 --- a/alsa-lib/include/local.h +++ /dev/null @@ -1,278 +0,0 @@ -/* - * ALSA lib - local header file - * Copyright (c) 2000 by Abramo Bagnara <abramo@alsa-project.org> - * - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __LOCAL_H -#define __LOCAL_H - -#include <unistd.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <assert.h> -#include <endian.h> -#include <stdarg.h> -#include <sys/poll.h> -#include <errno.h> - -#include "config.h" -#ifdef SUPPORT_RESMGR -#include <resmgr.h> -#endif -#ifdef HAVE_LIBDL -#include <dlfcn.h> -#else -#define RTLD_NOW 0 -#endif - -#define _snd_config_iterator list_head -#define _snd_interval sndrv_interval -#define _snd_pcm_info sndrv_pcm_info -#define _snd_pcm_hw_params sndrv_pcm_hw_params -#define _snd_pcm_sw_params sndrv_pcm_sw_params -#define _snd_pcm_status sndrv_pcm_status - -#define _snd_ctl_card_info sndrv_ctl_card_info -#define _snd_ctl_elem_id sndrv_ctl_elem_id -#define _snd_ctl_elem_list sndrv_ctl_elem_list -#define _snd_ctl_elem_info sndrv_ctl_elem_info -#define _snd_ctl_elem_value sndrv_ctl_elem_value -#define _snd_ctl_event sndrv_ctl_event - -#define _snd_rawmidi_info sndrv_rawmidi_info -#define _snd_rawmidi_params sndrv_rawmidi_params -#define _snd_rawmidi_status sndrv_rawmidi_status - -#define _snd_hwdep_info sndrv_hwdep_info -#define _snd_hwdep_dsp_status sndrv_hwdep_dsp_status -#define _snd_hwdep_dsp_image sndrv_hwdep_dsp_image - -#define _snd_seq_queue_tempo sndrv_seq_queue_tempo -#define _snd_seq_client_info sndrv_seq_client_info -#define _snd_seq_port_info sndrv_seq_port_info -#define _snd_seq_system_info sndrv_seq_system_info -#define _snd_seq_queue_info sndrv_seq_queue_info -#define _snd_seq_queue_status sndrv_seq_queue_status -#define _snd_seq_queue_timer sndrv_seq_queue_timer -#define _snd_seq_port_subscribe sndrv_seq_port_subscribe -#define _snd_seq_query_subscribe sndrv_seq_query_subs -#define _snd_seq_client_pool sndrv_seq_client_pool -#define _snd_seq_remove_events sndrv_seq_remove_events - -#define sndrv_seq_addr snd_seq_addr -#define sndrv_seq_tick_time_t snd_seq_tick_time_t -#define sndrv_seq_real_time snd_seq_real_time -#define sndrv_seq_timestamp snd_seq_timestamp -#define sndrv_seq_event snd_seq_event - -#if 0 -typedef struct sndrv_seq_addr snd_seq_addr_t; -#define snd_seq_tick_time_t sndrv_seq_tick_time_t -typedef struct sndrv_seq_real_time snd_seq_real_time_t; -typedef union sndrv_seq_timestamp snd_seq_timestamp_t; -typedef struct sndrv_seq_event snd_seq_event_t; -#endif - -#define _snd_timer_id sndrv_timer_id -#define _snd_timer_ginfo sndrv_timer_ginfo -#define _snd_timer_gparams sndrv_timer_gparams -#define _snd_timer_gstatus sndrv_timer_gstatus -#define _snd_timer_select sndrv_timer_select -#define _snd_timer_info sndrv_timer_info -#define _snd_timer_params sndrv_timer_params -#define _snd_timer_status sndrv_timer_status - -#define ALSA_LIBRARY_BUILD - -#include <sound/asound.h> -#include <sound/asoundef.h> -#include "alsa-symbols.h" -#include "version.h" -#include "global.h" -#include "input.h" -#include "output.h" -#include "error.h" -#include "conf.h" -#include "pcm.h" -#include "pcm_plugin.h" -#include "rawmidi.h" -#include "timer.h" -#include "hwdep.h" -#include "control.h" -#include "mixer.h" -#include "seq_event.h" -#include "seq.h" -#include <sound/asequencer.h> -#include "seqmid.h" -#include "seq_midi_event.h" -#include "list.h" - -#if __BYTE_ORDER == __LITTLE_ENDIAN -#define SND_LITTLE_ENDIAN -#endif -#if __BYTE_ORDER == __BIG_ENDIAN -#define SND_BIG_ENDIAN -#endif - -struct _snd_async_handler { - enum { - SND_ASYNC_HANDLER_GENERIC, - SND_ASYNC_HANDLER_CTL, - SND_ASYNC_HANDLER_PCM, - SND_ASYNC_HANDLER_TIMER, - } type; - int fd; - union { - snd_ctl_t *ctl; - snd_pcm_t *pcm; - snd_timer_t *timer; - } u; - snd_async_callback_t callback; - void *private_data; - struct list_head glist; - struct list_head hlist; -}; - -typedef enum _snd_set_mode { - SND_CHANGE, - SND_TRY, - SND_TEST, -} snd_set_mode_t; - -size_t page_align(size_t size); -size_t page_size(void); -size_t page_ptr(size_t object_offset, size_t object_size, size_t *offset, size_t *mmap_offset); - -int safe_strtol(const char *str, long *val); - -int snd_send_fd(int sock, void *data, size_t len, int fd); -int snd_receive_fd(int sock, void *data, size_t len, int *fd); - -/* - * error messages - */ -#ifndef NDEBUG -#define CHECK_SANITY(x) x -extern snd_lib_error_handler_t snd_err_msg; -#define SNDMSG(args...) snd_err_msg(__FILE__, __LINE__, __FUNCTION__, 0, ##args) -#define SYSMSG(args...) snd_err_msg(__FILE__, __LINE__, __FUNCTION__, errno, ##args) -#else -#define CHECK_SANITY(x) 0 /* not evaluated */ -#define SNDMSG(args...) /* nop */ -#define SYSMSG(args...) /* nop */ -#endif - -/* - */ -#define HAVE_GNU_LD -#define HAVE_ELF -#define HAVE_ASM_PREVIOUS_DIRECTIVE - -/* Stolen from libc-symbols.h in GNU glibc */ - -/* When a reference to SYMBOL is encountered, the linker will emit a - warning message MSG. */ - -#define ASM_NAME(name) __SYMBOL_PREFIX name - -#ifdef HAVE_GNU_LD -# ifdef HAVE_ELF - -/* We want the .gnu.warning.SYMBOL section to be unallocated. */ -# ifdef HAVE_ASM_PREVIOUS_DIRECTIVE -# define __make_section_unallocated(section_string) \ - asm (".section " section_string "\n\t.previous"); -# elif defined HAVE_ASM_POPSECTION_DIRECTIVE -# define __make_section_unallocated(section_string) \ - asm (".pushsection " section_string "\n\t.popsection"); -# else -# define __make_section_unallocated(section_string) -# endif - -/* Tacking on "\n\t#" to the section name makes gcc put it's bogus - section attributes on what looks like a comment to the assembler. */ -# ifdef HAVE_SECTION_QUOTES -# define link_warning(symbol, msg) \ - __make_section_unallocated (".gnu.warning." ASM_NAME(#symbol)) \ - static const char __evoke_link_warning_##symbol[] \ - __attribute__ ((section (".gnu.warning." ASM_NAME(#symbol) "\"\n\t#\""))) = msg; -# else -# define link_warning(symbol, msg) \ - __make_section_unallocated (".gnu.warning." ASM_NAME(#symbol)) \ - static const char __evoke_link_warning_##symbol[] \ - __attribute__ ((section (".gnu.warning." ASM_NAME(#symbol) "\n\t#"))) = msg; -# endif -# else -# define link_warning(symbol, msg) \ - asm (".stabs \"" msg "\",30,0,0,0\n\t" \ - ".stabs \"" ASM_NAME(#symbol) "\",1,0,0,0\n"); -# endif -#else -/* We will never be heard; they will all die horribly. */ -# define link_warning(symbol, msg) -#endif - -/* open with resmgr */ -#ifdef SUPPORT_RESMGR -static inline int snd_open_device(const char *filename, int fmode) -{ - int fd = open(filename, fmode); - if (fd >= 0) - return fd; - if (errno == EAGAIN || errno == EBUSY) - return fd; - if (! access(filename, F_OK)) - return rsm_open_device(filename, fmode); - return -1; -} -#else -#define snd_open_device(filename, fmode) open(filename, fmode); -#endif - -/* make local functions really local */ -#define snd_dlobj_cache_lookup \ - snd1_dlobj_cache_lookup -#define snd_dlobj_cache_add \ - snd1_dlobj_cache_add -#define snd_dlobj_cache_cleanup \ - snd1_dlobj_cache_cleanup -#define snd_config_set_hop \ - snd1_config_set_hop -#define snd_config_check_hop \ - snd1_config_check_hop -#define snd_config_search_alias_hooks \ - snd1_config_search_alias_hooks - -/* dlobj cache */ -void *snd_dlobj_cache_lookup(const char *name); -int snd_dlobj_cache_add(const char *name, void *dlobj, void *open_func); -void snd_dlobj_cache_cleanup(void); - -/* for recursive checks */ -void snd_config_set_hop(snd_config_t *conf, int hop); -int snd_config_check_hop(snd_config_t *conf); -#define SND_CONF_MAX_HOPS 64 - -int snd_config_search_alias_hooks(snd_config_t *config, - const char *base, const char *key, - snd_config_t **result); - -#endif diff --git a/alsa-lib/include/mixer.h b/alsa-lib/include/mixer.h deleted file mode 100644 index df92164..0000000 --- a/alsa-lib/include/mixer.h +++ /dev/null @@ -1,319 +0,0 @@ -/** - * \file include/mixer.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_MIXER_H -#define __ALSA_MIXER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Mixer Mixer Interface - * The mixer interface. - * \{ - */ - -/** Mixer handle */ -typedef struct _snd_mixer snd_mixer_t; -/** Mixer elements class handle */ -typedef struct _snd_mixer_class snd_mixer_class_t; -/** Mixer element handle */ -typedef struct _snd_mixer_elem snd_mixer_elem_t; - -/** - * \brief Mixer callback function - * \param mixer Mixer handle - * \param mask event mask - * \param elem related mixer element (if any) - * \return 0 on success otherwise a negative error code - */ -typedef int (*snd_mixer_callback_t)(snd_mixer_t *ctl, - unsigned int mask, - snd_mixer_elem_t *elem); - -/** - * \brief Mixer element callback function - * \param elem Mixer element - * \param mask event mask - * \return 0 on success otherwise a negative error code - */ -typedef int (*snd_mixer_elem_callback_t)(snd_mixer_elem_t *elem, - unsigned int mask); - -/** - * \brief Compare function for sorting mixer elements - * \param e1 First element - * \param e2 Second element - * \return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2 - */ -typedef int (*snd_mixer_compare_t)(const snd_mixer_elem_t *e1, - const snd_mixer_elem_t *e2); - -/** - * \brief Event callback for the mixer class - * \param class_ Mixer class - * \param mask Event mask (SND_CTL_EVENT_*) - * \param helem HCTL element which invoked the event - * \param melem Mixer element associated to HCTL element - * \return zero if success, otherwise a negative error value - */ -typedef int (*snd_mixer_event_t)(snd_mixer_class_t *class_, unsigned int mask, - snd_hctl_elem_t *helem, snd_mixer_elem_t *melem); - - -/** Mixer element type */ -typedef enum _snd_mixer_elem_type { - /* Simple mixer elements */ - SND_MIXER_ELEM_SIMPLE, - SND_MIXER_ELEM_LAST = SND_MIXER_ELEM_SIMPLE -} snd_mixer_elem_type_t; - -int snd_mixer_open(snd_mixer_t **mixer, int mode); -int snd_mixer_close(snd_mixer_t *mixer); -snd_mixer_elem_t *snd_mixer_first_elem(snd_mixer_t *mixer); -snd_mixer_elem_t *snd_mixer_last_elem(snd_mixer_t *mixer); -int snd_mixer_handle_events(snd_mixer_t *mixer); -int snd_mixer_attach(snd_mixer_t *mixer, const char *name); -int snd_mixer_attach_hctl(snd_mixer_t *mixer, snd_hctl_t *hctl); -int snd_mixer_detach(snd_mixer_t *mixer, const char *name); -int snd_mixer_detach_hctl(snd_mixer_t *mixer, snd_hctl_t *hctl); -int snd_mixer_get_hctl(snd_mixer_t *mixer, const char *name, snd_hctl_t **hctl); -int snd_mixer_poll_descriptors_count(snd_mixer_t *mixer); -int snd_mixer_poll_descriptors(snd_mixer_t *mixer, struct pollfd *pfds, unsigned int space); -int snd_mixer_poll_descriptors_revents(snd_mixer_t *mixer, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -int snd_mixer_load(snd_mixer_t *mixer); -void snd_mixer_free(snd_mixer_t *mixer); -int snd_mixer_wait(snd_mixer_t *mixer, int timeout); -int snd_mixer_set_compare(snd_mixer_t *mixer, snd_mixer_compare_t msort); -void snd_mixer_set_callback(snd_mixer_t *obj, snd_mixer_callback_t val); -void * snd_mixer_get_callback_private(const snd_mixer_t *obj); -void snd_mixer_set_callback_private(snd_mixer_t *obj, void * val); -unsigned int snd_mixer_get_count(const snd_mixer_t *obj); -int snd_mixer_class_unregister(snd_mixer_class_t *clss); - -snd_mixer_elem_t *snd_mixer_elem_next(snd_mixer_elem_t *elem); -snd_mixer_elem_t *snd_mixer_elem_prev(snd_mixer_elem_t *elem); -void snd_mixer_elem_set_callback(snd_mixer_elem_t *obj, snd_mixer_elem_callback_t val); -void * snd_mixer_elem_get_callback_private(const snd_mixer_elem_t *obj); -void snd_mixer_elem_set_callback_private(snd_mixer_elem_t *obj, void * val); -snd_mixer_elem_type_t snd_mixer_elem_get_type(const snd_mixer_elem_t *obj); - -int snd_mixer_class_register(snd_mixer_class_t *class_, snd_mixer_t *mixer); -int snd_mixer_add_elem(snd_mixer_t *mixer, snd_mixer_elem_t *elem); -int snd_mixer_remove_elem(snd_mixer_t *mixer, snd_mixer_elem_t *elem); -int snd_mixer_elem_new(snd_mixer_elem_t **elem, - snd_mixer_elem_type_t type, - int compare_weight, - void *private_data, - void (*private_free)(snd_mixer_elem_t *elem)); -int snd_mixer_elem_add(snd_mixer_elem_t *elem, snd_mixer_class_t *class_); -int snd_mixer_elem_remove(snd_mixer_elem_t *elem); -void snd_mixer_elem_free(snd_mixer_elem_t *elem); -int snd_mixer_elem_info(snd_mixer_elem_t *elem); -int snd_mixer_elem_value(snd_mixer_elem_t *elem); -int snd_mixer_elem_attach(snd_mixer_elem_t *melem, snd_hctl_elem_t *helem); -int snd_mixer_elem_detach(snd_mixer_elem_t *melem, snd_hctl_elem_t *helem); -int snd_mixer_elem_empty(snd_mixer_elem_t *melem); -void *snd_mixer_elem_get_private(const snd_mixer_elem_t *melem); - -size_t snd_mixer_class_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_mixer_class_t using standard alloca - * \param ptr returned pointer - */ -#define snd_mixer_class_alloca(ptr) __snd_alloca(ptr, snd_mixer_class) -int snd_mixer_class_malloc(snd_mixer_class_t **ptr); -void snd_mixer_class_free(snd_mixer_class_t *obj); -void snd_mixer_class_copy(snd_mixer_class_t *dst, const snd_mixer_class_t *src); -snd_mixer_t *snd_mixer_class_get_mixer(const snd_mixer_class_t *class_); -snd_mixer_event_t snd_mixer_class_get_event(const snd_mixer_class_t *class_); -void *snd_mixer_class_get_private(const snd_mixer_class_t *class_); -snd_mixer_compare_t snd_mixer_class_get_compare(const snd_mixer_class_t *class_); -int snd_mixer_class_set_event(snd_mixer_class_t *class_, snd_mixer_event_t event); -int snd_mixer_class_set_private(snd_mixer_class_t *class_, void *private_data); -int snd_mixer_class_set_private_free(snd_mixer_class_t *class_, void (*private_free)(snd_mixer_class_t *class_)); -int snd_mixer_class_set_compare(snd_mixer_class_t *class_, snd_mixer_compare_t compare); - -/** - * \defgroup SimpleMixer Simple Mixer Interface - * \ingroup Mixer - * The simple mixer interface. - * \{ - */ - -/* Simple mixer elements API */ - -/** Mixer simple element channel identifier */ -typedef enum _snd_mixer_selem_channel_id { - /** Unknown */ - SND_MIXER_SCHN_UNKNOWN = -1, - /** Front left */ - SND_MIXER_SCHN_FRONT_LEFT = 0, - /** Front right */ - SND_MIXER_SCHN_FRONT_RIGHT, - /** Rear left */ - SND_MIXER_SCHN_REAR_LEFT, - /** Rear right */ - SND_MIXER_SCHN_REAR_RIGHT, - /** Front center */ - SND_MIXER_SCHN_FRONT_CENTER, - /** Woofer */ - SND_MIXER_SCHN_WOOFER, - /** Side Left */ - SND_MIXER_SCHN_SIDE_LEFT, - /** Side Right */ - SND_MIXER_SCHN_SIDE_RIGHT, - /** Rear Center */ - SND_MIXER_SCHN_REAR_CENTER, - SND_MIXER_SCHN_LAST = 31, - /** Mono (Front left alias) */ - SND_MIXER_SCHN_MONO = SND_MIXER_SCHN_FRONT_LEFT -} snd_mixer_selem_channel_id_t; - -/** Mixer simple element - register options - abstraction level */ -enum snd_mixer_selem_regopt_abstract { - /** no abstraction - try use all universal controls from driver */ - SND_MIXER_SABSTRACT_NONE = 0, - /** basic abstraction - Master,PCM,CD,Aux,Record-Gain etc. */ - SND_MIXER_SABSTRACT_BASIC, -}; - -/** Mixer simple element - register options */ -struct snd_mixer_selem_regopt { - /** structure version */ - int ver; - /** v1: abstract layer selection */ - enum snd_mixer_selem_regopt_abstract abstract; - /** v1: device name (must be NULL when playback_pcm or capture_pcm != NULL) */ - const char *device; - /** v1: playback PCM connected to mixer device (NULL == none) */ - snd_pcm_t *playback_pcm; - /** v1: capture PCM connected to mixer device (NULL == none) */ - snd_pcm_t *capture_pcm; -}; - -/** Mixer simple element identifier */ -typedef struct _snd_mixer_selem_id snd_mixer_selem_id_t; - -const char *snd_mixer_selem_channel_name(snd_mixer_selem_channel_id_t channel); - -int snd_mixer_selem_register(snd_mixer_t *mixer, - struct snd_mixer_selem_regopt *options, - snd_mixer_class_t **classp); -void snd_mixer_selem_get_id(snd_mixer_elem_t *element, - snd_mixer_selem_id_t *id); -const char *snd_mixer_selem_get_name(snd_mixer_elem_t *elem); -unsigned int snd_mixer_selem_get_index(snd_mixer_elem_t *elem); -snd_mixer_elem_t *snd_mixer_find_selem(snd_mixer_t *mixer, - const snd_mixer_selem_id_t *id); - -int snd_mixer_selem_is_active(snd_mixer_elem_t *elem); -int snd_mixer_selem_is_playback_mono(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_playback_channel(snd_mixer_elem_t *obj, snd_mixer_selem_channel_id_t channel); -int snd_mixer_selem_is_capture_mono(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_capture_channel(snd_mixer_elem_t *obj, snd_mixer_selem_channel_id_t channel); -int snd_mixer_selem_get_capture_group(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_common_volume(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_playback_volume(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_playback_volume_joined(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_capture_volume(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_capture_volume_joined(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_common_switch(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_playback_switch(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_playback_switch_joined(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_capture_switch(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_capture_switch_joined(snd_mixer_elem_t *elem); -int snd_mixer_selem_has_capture_switch_exclusive(snd_mixer_elem_t *elem); - -int snd_mixer_selem_ask_playback_vol_dB(snd_mixer_elem_t *elem, long value, long *dBvalue); -int snd_mixer_selem_ask_capture_vol_dB(snd_mixer_elem_t *elem, long value, long *dBvalue); -int snd_mixer_selem_ask_playback_dB_vol(snd_mixer_elem_t *elem, long dBvalue, int dir, long *value); -int snd_mixer_selem_ask_capture_dB_vol(snd_mixer_elem_t *elem, long dBvalue, int dir, long *value); -int snd_mixer_selem_get_playback_volume(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long *value); -int snd_mixer_selem_get_capture_volume(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long *value); -int snd_mixer_selem_get_playback_dB(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long *value); -int snd_mixer_selem_get_capture_dB(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long *value); -int snd_mixer_selem_get_playback_switch(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, int *value); -int snd_mixer_selem_get_capture_switch(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, int *value); -int snd_mixer_selem_set_playback_volume(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long value); -int snd_mixer_selem_set_capture_volume(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long value); -int snd_mixer_selem_set_playback_dB(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long value, int dir); -int snd_mixer_selem_set_capture_dB(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long value, int dir); -int snd_mixer_selem_set_playback_volume_all(snd_mixer_elem_t *elem, long value); -int snd_mixer_selem_set_capture_volume_all(snd_mixer_elem_t *elem, long value); -int snd_mixer_selem_set_playback_dB_all(snd_mixer_elem_t *elem, long value, int dir); -int snd_mixer_selem_set_capture_dB_all(snd_mixer_elem_t *elem, long value, int dir); -int snd_mixer_selem_set_playback_switch(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, int value); -int snd_mixer_selem_set_capture_switch(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, int value); -int snd_mixer_selem_set_playback_switch_all(snd_mixer_elem_t *elem, int value); -int snd_mixer_selem_set_capture_switch_all(snd_mixer_elem_t *elem, int value); -int snd_mixer_selem_get_playback_volume_range(snd_mixer_elem_t *elem, - long *min, long *max); -int snd_mixer_selem_get_playback_dB_range(snd_mixer_elem_t *elem, - long *min, long *max); -int snd_mixer_selem_set_playback_volume_range(snd_mixer_elem_t *elem, - long min, long max); -int snd_mixer_selem_get_capture_volume_range(snd_mixer_elem_t *elem, - long *min, long *max); -int snd_mixer_selem_get_capture_dB_range(snd_mixer_elem_t *elem, - long *min, long *max); -int snd_mixer_selem_set_capture_volume_range(snd_mixer_elem_t *elem, - long min, long max); - -int snd_mixer_selem_is_enumerated(snd_mixer_elem_t *elem); -int snd_mixer_selem_is_enum_playback(snd_mixer_elem_t *elem); -int snd_mixer_selem_is_enum_capture(snd_mixer_elem_t *elem); -int snd_mixer_selem_get_enum_items(snd_mixer_elem_t *elem); -int snd_mixer_selem_get_enum_item_name(snd_mixer_elem_t *elem, unsigned int idx, size_t maxlen, char *str); -int snd_mixer_selem_get_enum_item(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, unsigned int *idxp); -int snd_mixer_selem_set_enum_item(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, unsigned int idx); - -size_t snd_mixer_selem_id_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_mixer_selem_id_t using standard alloca - * \param ptr returned pointer - */ -#define snd_mixer_selem_id_alloca(ptr) __snd_alloca(ptr, snd_mixer_selem_id) -int snd_mixer_selem_id_malloc(snd_mixer_selem_id_t **ptr); -void snd_mixer_selem_id_free(snd_mixer_selem_id_t *obj); -void snd_mixer_selem_id_copy(snd_mixer_selem_id_t *dst, const snd_mixer_selem_id_t *src); -const char *snd_mixer_selem_id_get_name(const snd_mixer_selem_id_t *obj); -unsigned int snd_mixer_selem_id_get_index(const snd_mixer_selem_id_t *obj); -void snd_mixer_selem_id_set_name(snd_mixer_selem_id_t *obj, const char *val); -void snd_mixer_selem_id_set_index(snd_mixer_selem_id_t *obj, unsigned int val); - -/** \} */ - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_MIXER_H */ - diff --git a/alsa-lib/include/mixer_abst.h b/alsa-lib/include/mixer_abst.h deleted file mode 100644 index 7844b19..0000000 --- a/alsa-lib/include/mixer_abst.h +++ /dev/null @@ -1,112 +0,0 @@ -/** - * \file include/mixer_abst.h - * \brief Mixer abstract implementation interface library for the ALSA library - * \author Jaroslav Kysela <perex@perex.cz> - * \date 2005 - * - * Mixer abstact implementation interface library for the ALSA library - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_MIXER_ABST_H -#define __ALSA_MIXER_ABST_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Mixer_Abstract Mixer Abstact Module Interface - * The mixer abstact module interface. - * \{ - */ - -#define SM_PLAY 0 -#define SM_CAPT 1 - -#define SM_CAP_GVOLUME (1<<1) -#define SM_CAP_GSWITCH (1<<2) -#define SM_CAP_PVOLUME (1<<3) -#define SM_CAP_PVOLUME_JOIN (1<<4) -#define SM_CAP_PSWITCH (1<<5) -#define SM_CAP_PSWITCH_JOIN (1<<6) -#define SM_CAP_CVOLUME (1<<7) -#define SM_CAP_CVOLUME_JOIN (1<<8) -#define SM_CAP_CSWITCH (1<<9) -#define SM_CAP_CSWITCH_JOIN (1<<10) -#define SM_CAP_CSWITCH_EXCL (1<<11) -#define SM_CAP_PENUM (1<<12) -#define SM_CAP_CENUM (1<<13) -/* SM_CAP_* 24-31 => private for module use */ - -#define SM_OPS_IS_ACTIVE 0 -#define SM_OPS_IS_MONO 1 -#define SM_OPS_IS_CHANNEL 2 -#define SM_OPS_IS_ENUMERATED 3 -#define SM_OPS_IS_ENUMCNT 4 - -#define sm_selem(x) ((sm_selem_t *)((x)->private_data)) -#define sm_selem_ops(x) ((sm_selem_t *)((x)->private_data))->ops - -typedef struct _sm_selem { - snd_mixer_selem_id_t *id; - struct sm_elem_ops *ops; - unsigned int caps; - unsigned int capture_group; -} sm_selem_t; - -typedef struct _sm_class_basic { - char *device; - snd_ctl_t *ctl; - snd_hctl_t *hctl; - snd_ctl_card_info_t *info; -} sm_class_basic_t; - -struct sm_elem_ops { - int (*is)(snd_mixer_elem_t *elem, int dir, int cmd, int val); - int (*get_range)(snd_mixer_elem_t *elem, int dir, long *min, long *max); - int (*set_range)(snd_mixer_elem_t *elem, int dir, long min, long max); - int (*get_dB_range)(snd_mixer_elem_t *elem, int dir, long *min, long *max); - int (*ask_vol_dB)(snd_mixer_elem_t *elem, int dir, long value, long *dbValue); - int (*ask_dB_vol)(snd_mixer_elem_t *elem, int dir, long dbValue, long *value, int xdir); - int (*get_volume)(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, long *value); - int (*get_dB)(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, long *value); - int (*set_volume)(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, long value); - int (*set_dB)(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, long value, int xdir); - int (*get_switch)(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, int *value); - int (*set_switch)(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, int value); - int (*enum_item_name)(snd_mixer_elem_t *elem, unsigned int item, size_t maxlen, char *buf); - int (*get_enum_item)(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, unsigned int *itemp); - int (*set_enum_item)(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, unsigned int item); -}; - -int snd_mixer_selem_compare(const snd_mixer_elem_t *c1, const snd_mixer_elem_t *c2); - -int snd_mixer_sbasic_info(const snd_mixer_class_t *class, sm_class_basic_t *info); -void *snd_mixer_sbasic_get_private(const snd_mixer_class_t *class); -void snd_mixer_sbasic_set_private(const snd_mixer_class_t *class, void *private_data); -void snd_mixer_sbasic_set_private_free(const snd_mixer_class_t *class, void (*private_free)(snd_mixer_class_t *class)); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_MIXER_ABST_H */ - diff --git a/alsa-lib/include/output.h b/alsa-lib/include/output.h deleted file mode 100644 index 5279aa2..0000000 --- a/alsa-lib/include/output.h +++ /dev/null @@ -1,86 +0,0 @@ -/** - * \file include/output.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_OUTPUT_H -#define __ALSA_OUTPUT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Output Output Interface - * - * The output functions present an interface similar to the stdio functions - * on top of different underlying output destinations. - * - * Many PCM debugging functions (\c snd_pcm_xxx_dump_xxx) use such an output - * handle to be able to write not only to the screen but also to other - * destinations, e.g. to files or to memory buffers. - * - * \{ - */ - -/** - * \brief Internal structure for an output object. - * - * The ALSA library uses a pointer to this structure as a handle to an - * output object. Applications don't access its contents directly. - */ -typedef struct _snd_output snd_output_t; - -/** Output type. */ -typedef enum _snd_output_type { - /** Output to a stdio stream. */ - SND_OUTPUT_STDIO, - /** Output to a memory buffer. */ - SND_OUTPUT_BUFFER -} snd_output_type_t; - -int snd_output_stdio_open(snd_output_t **outputp, const char *file, const char *mode); -int snd_output_stdio_attach(snd_output_t **outputp, FILE *fp, int _close); -int snd_output_buffer_open(snd_output_t **outputp); -size_t snd_output_buffer_string(snd_output_t *output, char **buf); -int snd_output_close(snd_output_t *output); -int snd_output_printf(snd_output_t *output, const char *format, ...) -#ifndef DOC_HIDDEN - __attribute__ ((format (printf, 2, 3))) -#endif - ; -int snd_output_vprintf(snd_output_t *output, const char *format, va_list args); -int snd_output_puts(snd_output_t *output, const char *str); -int snd_output_putc(snd_output_t *output, int c); -int snd_output_flush(snd_output_t *output); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_OUTPUT_H */ - diff --git a/alsa-lib/include/pcm.h b/alsa-lib/include/pcm.h deleted file mode 100644 index 15e9cb2..0000000 --- a/alsa-lib/include/pcm.h +++ /dev/null @@ -1,1140 +0,0 @@ -/** - * \file include/pcm.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver. - * See the \ref pcm page for more details. - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_PCM_H -#define __ALSA_PCM_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup PCM PCM Interface - * See the \ref pcm page for more details. - * \{ - */ - -/** dlsym version for interface entry callback */ -#define SND_PCM_DLSYM_VERSION _dlsym_pcm_001 - -/** PCM generic info container */ -typedef struct _snd_pcm_info snd_pcm_info_t; -/** PCM hardware configuration space container */ -typedef struct _snd_pcm_hw_params snd_pcm_hw_params_t; -/** PCM software configuration container */ -typedef struct _snd_pcm_sw_params snd_pcm_sw_params_t; -/** PCM status container */ - typedef struct _snd_pcm_status snd_pcm_status_t; -/** PCM access types mask */ -typedef struct _snd_pcm_access_mask snd_pcm_access_mask_t; -/** PCM formats mask */ -typedef struct _snd_pcm_format_mask snd_pcm_format_mask_t; -/** PCM subformats mask */ -typedef struct _snd_pcm_subformat_mask snd_pcm_subformat_mask_t; - -/** PCM class */ -typedef enum _snd_pcm_class { - /** standard device */ - - SND_PCM_CLASS_GENERIC = 0, - /** multichannel device */ - SND_PCM_CLASS_MULTI, - /** software modem device */ - SND_PCM_CLASS_MODEM, - /** digitizer device */ - SND_PCM_CLASS_DIGITIZER, - SND_PCM_CLASS_LAST = SND_PCM_CLASS_DIGITIZER -} snd_pcm_class_t; - -/** PCM subclass */ -typedef enum _snd_pcm_subclass { - /** subdevices are mixed together */ - SND_PCM_SUBCLASS_GENERIC_MIX = 0, - /** multichannel subdevices are mixed together */ - SND_PCM_SUBCLASS_MULTI_MIX, - SND_PCM_SUBCLASS_LAST = SND_PCM_SUBCLASS_MULTI_MIX -} snd_pcm_subclass_t; - -/** PCM stream (direction) */ -typedef enum _snd_pcm_stream { - /** Playback stream */ - SND_PCM_STREAM_PLAYBACK = 0, - /** Capture stream */ - SND_PCM_STREAM_CAPTURE, - SND_PCM_STREAM_LAST = SND_PCM_STREAM_CAPTURE -} snd_pcm_stream_t; - -/** PCM access type */ -typedef enum _snd_pcm_access { - /** mmap access with simple interleaved channels */ - SND_PCM_ACCESS_MMAP_INTERLEAVED = 0, - /** mmap access with simple non interleaved channels */ - SND_PCM_ACCESS_MMAP_NONINTERLEAVED, - /** mmap access with complex placement */ - SND_PCM_ACCESS_MMAP_COMPLEX, - /** snd_pcm_readi/snd_pcm_writei access */ - SND_PCM_ACCESS_RW_INTERLEAVED, - /** snd_pcm_readn/snd_pcm_writen access */ - SND_PCM_ACCESS_RW_NONINTERLEAVED, - SND_PCM_ACCESS_LAST = SND_PCM_ACCESS_RW_NONINTERLEAVED -} snd_pcm_access_t; - -/** PCM sample format */ -typedef enum _snd_pcm_format { - /** Unknown */ - SND_PCM_FORMAT_UNKNOWN = -1, - /** Signed 8 bit */ - SND_PCM_FORMAT_S8 = 0, - /** Unsigned 8 bit */ - SND_PCM_FORMAT_U8, - /** Signed 16 bit Little Endian */ - SND_PCM_FORMAT_S16_LE, - /** Signed 16 bit Big Endian */ - SND_PCM_FORMAT_S16_BE, - /** Unsigned 16 bit Little Endian */ - SND_PCM_FORMAT_U16_LE, - /** Unsigned 16 bit Big Endian */ - SND_PCM_FORMAT_U16_BE, - /** Signed 24 bit Little Endian using low three bytes in 32-bit word */ - SND_PCM_FORMAT_S24_LE, - /** Signed 24 bit Big Endian using low three bytes in 32-bit word */ - SND_PCM_FORMAT_S24_BE, - /** Unsigned 24 bit Little Endian using low three bytes in 32-bit word */ - SND_PCM_FORMAT_U24_LE, - /** Unsigned 24 bit Big Endian using low three bytes in 32-bit word */ - SND_PCM_FORMAT_U24_BE, - /** Signed 32 bit Little Endian */ - SND_PCM_FORMAT_S32_LE, - /** Signed 32 bit Big Endian */ - SND_PCM_FORMAT_S32_BE, - /** Unsigned 32 bit Little Endian */ - SND_PCM_FORMAT_U32_LE, - /** Unsigned 32 bit Big Endian */ - SND_PCM_FORMAT_U32_BE, - /** Float 32 bit Little Endian, Range -1.0 to 1.0 */ - SND_PCM_FORMAT_FLOAT_LE, - /** Float 32 bit Big Endian, Range -1.0 to 1.0 */ - SND_PCM_FORMAT_FLOAT_BE, - /** Float 64 bit Little Endian, Range -1.0 to 1.0 */ - SND_PCM_FORMAT_FLOAT64_LE, - /** Float 64 bit Big Endian, Range -1.0 to 1.0 */ - SND_PCM_FORMAT_FLOAT64_BE, - /** IEC-958 Little Endian */ - SND_PCM_FORMAT_IEC958_SUBFRAME_LE, - /** IEC-958 Big Endian */ - SND_PCM_FORMAT_IEC958_SUBFRAME_BE, - /** Mu-Law */ - SND_PCM_FORMAT_MU_LAW, - /** A-Law */ - SND_PCM_FORMAT_A_LAW, - /** Ima-ADPCM */ - SND_PCM_FORMAT_IMA_ADPCM, - /** MPEG */ - SND_PCM_FORMAT_MPEG, - /** GSM */ - SND_PCM_FORMAT_GSM, - /** Special */ - SND_PCM_FORMAT_SPECIAL = 31, - /** Signed 24bit Little Endian in 3bytes format */ - SND_PCM_FORMAT_S24_3LE = 32, - /** Signed 24bit Big Endian in 3bytes format */ - SND_PCM_FORMAT_S24_3BE, - /** Unsigned 24bit Little Endian in 3bytes format */ - SND_PCM_FORMAT_U24_3LE, - /** Unsigned 24bit Big Endian in 3bytes format */ - SND_PCM_FORMAT_U24_3BE, - /** Signed 20bit Little Endian in 3bytes format */ - SND_PCM_FORMAT_S20_3LE, - /** Signed 20bit Big Endian in 3bytes format */ - SND_PCM_FORMAT_S20_3BE, - /** Unsigned 20bit Little Endian in 3bytes format */ - SND_PCM_FORMAT_U20_3LE, - /** Unsigned 20bit Big Endian in 3bytes format */ - SND_PCM_FORMAT_U20_3BE, - /** Signed 18bit Little Endian in 3bytes format */ - SND_PCM_FORMAT_S18_3LE, - /** Signed 18bit Big Endian in 3bytes format */ - SND_PCM_FORMAT_S18_3BE, - /** Unsigned 18bit Little Endian in 3bytes format */ - SND_PCM_FORMAT_U18_3LE, - /** Unsigned 18bit Big Endian in 3bytes format */ - SND_PCM_FORMAT_U18_3BE, - SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_U18_3BE, - -#if __BYTE_ORDER == __LITTLE_ENDIAN - /** Signed 16 bit CPU endian */ - SND_PCM_FORMAT_S16 = SND_PCM_FORMAT_S16_LE, - /** Unsigned 16 bit CPU endian */ - SND_PCM_FORMAT_U16 = SND_PCM_FORMAT_U16_LE, - /** Signed 24 bit CPU endian */ - SND_PCM_FORMAT_S24 = SND_PCM_FORMAT_S24_LE, - /** Unsigned 24 bit CPU endian */ - SND_PCM_FORMAT_U24 = SND_PCM_FORMAT_U24_LE, - /** Signed 32 bit CPU endian */ - SND_PCM_FORMAT_S32 = SND_PCM_FORMAT_S32_LE, - /** Unsigned 32 bit CPU endian */ - SND_PCM_FORMAT_U32 = SND_PCM_FORMAT_U32_LE, - /** Float 32 bit CPU endian */ - SND_PCM_FORMAT_FLOAT = SND_PCM_FORMAT_FLOAT_LE, - /** Float 64 bit CPU endian */ - SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_LE, - /** IEC-958 CPU Endian */ - SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_LE -#elif __BYTE_ORDER == __BIG_ENDIAN - /** Signed 16 bit CPU endian */ - SND_PCM_FORMAT_S16 = SND_PCM_FORMAT_S16_BE, - /** Unsigned 16 bit CPU endian */ - SND_PCM_FORMAT_U16 = SND_PCM_FORMAT_U16_BE, - /** Signed 24 bit CPU endian */ - SND_PCM_FORMAT_S24 = SND_PCM_FORMAT_S24_BE, - /** Unsigned 24 bit CPU endian */ - SND_PCM_FORMAT_U24 = SND_PCM_FORMAT_U24_BE, - /** Signed 32 bit CPU endian */ - SND_PCM_FORMAT_S32 = SND_PCM_FORMAT_S32_BE, - /** Unsigned 32 bit CPU endian */ - SND_PCM_FORMAT_U32 = SND_PCM_FORMAT_U32_BE, - /** Float 32 bit CPU endian */ - SND_PCM_FORMAT_FLOAT = SND_PCM_FORMAT_FLOAT_BE, - /** Float 64 bit CPU endian */ - SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_BE, - /** IEC-958 CPU Endian */ - SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_BE -#else -#error "Unknown endian" -#endif -} snd_pcm_format_t; - -/** PCM sample subformat */ -typedef enum _snd_pcm_subformat { - /** Standard */ - SND_PCM_SUBFORMAT_STD = 0, - SND_PCM_SUBFORMAT_LAST = SND_PCM_SUBFORMAT_STD -} snd_pcm_subformat_t; - -/** PCM state */ -typedef enum _snd_pcm_state { - /** Open */ - SND_PCM_STATE_OPEN = 0, - /** Setup installed */ - SND_PCM_STATE_SETUP, - /** Ready to start */ - SND_PCM_STATE_PREPARED, - /** Running */ - SND_PCM_STATE_RUNNING, - /** Stopped: underrun (playback) or overrun (capture) detected */ - SND_PCM_STATE_XRUN, - /** Draining: running (playback) or stopped (capture) */ - SND_PCM_STATE_DRAINING, - /** Paused */ - SND_PCM_STATE_PAUSED, - /** Hardware is suspended */ - SND_PCM_STATE_SUSPENDED, - /** Hardware is disconnected */ - SND_PCM_STATE_DISCONNECTED, - SND_PCM_STATE_LAST = SND_PCM_STATE_DISCONNECTED -} snd_pcm_state_t; - -/** PCM start mode */ -typedef enum _snd_pcm_start { - /** Automatic start on data read/write */ - SND_PCM_START_DATA = 0, - /** Explicit start */ - SND_PCM_START_EXPLICIT, - SND_PCM_START_LAST = SND_PCM_START_EXPLICIT -} snd_pcm_start_t; - -/** PCM xrun mode */ -typedef enum _snd_pcm_xrun { - /** Xrun detection disabled */ - SND_PCM_XRUN_NONE = 0, - /** Stop on xrun detection */ - SND_PCM_XRUN_STOP, - SND_PCM_XRUN_LAST = SND_PCM_XRUN_STOP -} snd_pcm_xrun_t; - -/** PCM timestamp mode */ -typedef enum _snd_pcm_tstamp { - /** No timestamp */ - SND_PCM_TSTAMP_NONE = 0, - /** Update timestamp at every hardware position update */ - SND_PCM_TSTAMP_ENABLE, - /** Equivalent with #SND_PCM_TSTAMP_ENABLE, - * just for compatibility with older versions - */ - SND_PCM_TSTAMP_MMAP = SND_PCM_TSTAMP_ENABLE, - SND_PCM_TSTAMP_LAST = SND_PCM_TSTAMP_ENABLE -} snd_pcm_tstamp_t; - -/** Unsigned frames quantity */ -typedef unsigned long snd_pcm_uframes_t; -/** Signed frames quantity */ -typedef long snd_pcm_sframes_t; - -/** Non blocking mode (flag for open mode) \hideinitializer */ -#define SND_PCM_NONBLOCK 0x00000001 -/** Async notification (flag for open mode) \hideinitializer */ -#define SND_PCM_ASYNC 0x00000002 -/** Disable automatic (but not forced!) rate resamplinig */ -#define SND_PCM_NO_AUTO_RESAMPLE 0x00010000 -/** Disable automatic (but not forced!) channel conversion */ -#define SND_PCM_NO_AUTO_CHANNELS 0x00020000 -/** Disable automatic (but not forced!) format conversion */ -#define SND_PCM_NO_AUTO_FORMAT 0x00040000 -/** Disable soft volume control */ -#define SND_PCM_NO_SOFTVOL 0x00080000 - -/** PCM handle */ -typedef struct _snd_pcm snd_pcm_t; - -/** PCM type */ -enum _snd_pcm_type { - /** Kernel level PCM */ - SND_PCM_TYPE_HW = 0, - /** Hooked PCM */ - SND_PCM_TYPE_HOOKS, - /** One or more linked PCM with exclusive access to selected - channels */ - SND_PCM_TYPE_MULTI, - /** File writing plugin */ - SND_PCM_TYPE_FILE, - /** Null endpoint PCM */ - SND_PCM_TYPE_NULL, - /** Shared memory client PCM */ - SND_PCM_TYPE_SHM, - /** INET client PCM (not yet implemented) */ - SND_PCM_TYPE_INET, - /** Copying plugin */ - SND_PCM_TYPE_COPY, - /** Linear format conversion PCM */ - SND_PCM_TYPE_LINEAR, - /** A-Law format conversion PCM */ - SND_PCM_TYPE_ALAW, - /** Mu-Law format conversion PCM */ - SND_PCM_TYPE_MULAW, - /** IMA-ADPCM format conversion PCM */ - SND_PCM_TYPE_ADPCM, - /** Rate conversion PCM */ - SND_PCM_TYPE_RATE, - /** Attenuated static route PCM */ - SND_PCM_TYPE_ROUTE, - /** Format adjusted PCM */ - SND_PCM_TYPE_PLUG, - /** Sharing PCM */ - SND_PCM_TYPE_SHARE, - /** Meter plugin */ - SND_PCM_TYPE_METER, - /** Mixing PCM */ - SND_PCM_TYPE_MIX, - /** Attenuated dynamic route PCM (not yet implemented) */ - SND_PCM_TYPE_DROUTE, - /** Loopback server plugin (not yet implemented) */ - SND_PCM_TYPE_LBSERVER, - /** Linear Integer <-> Linear Float format conversion PCM */ - SND_PCM_TYPE_LINEAR_FLOAT, - /** LADSPA integration plugin */ - SND_PCM_TYPE_LADSPA, - /** Direct Mixing plugin */ - SND_PCM_TYPE_DMIX, - /** Jack Audio Connection Kit plugin */ - SND_PCM_TYPE_JACK, - /** Direct Snooping plugin */ - SND_PCM_TYPE_DSNOOP, - /** Direct Sharing plugin */ - SND_PCM_TYPE_DSHARE, - /** IEC958 subframe plugin */ - SND_PCM_TYPE_IEC958, - /** Soft volume plugin */ - SND_PCM_TYPE_SOFTVOL, - /** External I/O plugin */ - SND_PCM_TYPE_IOPLUG, - /** External filter plugin */ - SND_PCM_TYPE_EXTPLUG, - /** Mmap-emulation plugin */ - SND_PCM_TYPE_MMAP_EMUL, - SND_PCM_TYPE_LAST = SND_PCM_TYPE_MMAP_EMUL -}; - -/** PCM type */ -typedef enum _snd_pcm_type snd_pcm_type_t; - -/** PCM area specification */ -typedef struct _snd_pcm_channel_area { - /** base address of channel samples */ - void *addr; - /** offset to first sample in bits */ - unsigned int first; - /** samples distance in bits */ - unsigned int step; -} snd_pcm_channel_area_t; - -/** PCM synchronization ID */ -typedef union _snd_pcm_sync_id { - /** 8-bit ID */ - unsigned char id[16]; - /** 16-bit ID */ - unsigned short id16[8]; - /** 32-bit ID */ - unsigned int id32[4]; -} snd_pcm_sync_id_t; - -/** #SND_PCM_TYPE_METER scope handle */ -typedef struct _snd_pcm_scope snd_pcm_scope_t; - -int snd_pcm_open(snd_pcm_t **pcm, const char *name, - snd_pcm_stream_t stream, int mode); -int snd_pcm_open_lconf(snd_pcm_t **pcm, const char *name, - snd_pcm_stream_t stream, int mode, - snd_config_t *lconf); - -int snd_pcm_close(snd_pcm_t *pcm); -const char *snd_pcm_name(snd_pcm_t *pcm); -snd_pcm_type_t snd_pcm_type(snd_pcm_t *pcm); -snd_pcm_stream_t snd_pcm_stream(snd_pcm_t *pcm); -int snd_pcm_poll_descriptors_count(snd_pcm_t *pcm); -int snd_pcm_poll_descriptors(snd_pcm_t *pcm, struct pollfd *pfds, unsigned int space); -int snd_pcm_poll_descriptors_revents(snd_pcm_t *pcm, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -int snd_pcm_nonblock(snd_pcm_t *pcm, int nonblock); -int snd_async_add_pcm_handler(snd_async_handler_t **handler, snd_pcm_t *pcm, - snd_async_callback_t callback, void *private_data); -snd_pcm_t *snd_async_handler_get_pcm(snd_async_handler_t *handler); -int snd_pcm_info(snd_pcm_t *pcm, snd_pcm_info_t *info); -int snd_pcm_hw_params_current(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -int snd_pcm_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -int snd_pcm_hw_free(snd_pcm_t *pcm); -int snd_pcm_sw_params_current(snd_pcm_t *pcm, snd_pcm_sw_params_t *params); -int snd_pcm_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params); -int snd_pcm_prepare(snd_pcm_t *pcm); -int snd_pcm_reset(snd_pcm_t *pcm); -int snd_pcm_status(snd_pcm_t *pcm, snd_pcm_status_t *status); -int snd_pcm_start(snd_pcm_t *pcm); -int snd_pcm_drop(snd_pcm_t *pcm); -int snd_pcm_drain(snd_pcm_t *pcm); -int snd_pcm_pause(snd_pcm_t *pcm, int enable); -snd_pcm_state_t snd_pcm_state(snd_pcm_t *pcm); -int snd_pcm_hwsync(snd_pcm_t *pcm); -int snd_pcm_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delayp); -int snd_pcm_resume(snd_pcm_t *pcm); -int snd_pcm_htimestamp(snd_pcm_t *pcm, snd_pcm_uframes_t *avail, snd_htimestamp_t *tstamp); -snd_pcm_sframes_t snd_pcm_avail(snd_pcm_t *pcm); -snd_pcm_sframes_t snd_pcm_avail_update(snd_pcm_t *pcm); -int snd_pcm_avail_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *availp, snd_pcm_sframes_t *delayp); -snd_pcm_sframes_t snd_pcm_rewindable(snd_pcm_t *pcm); -snd_pcm_sframes_t snd_pcm_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t frames); -snd_pcm_sframes_t snd_pcm_forwardable(snd_pcm_t *pcm); -snd_pcm_sframes_t snd_pcm_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames); -snd_pcm_sframes_t snd_pcm_writei(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size); -snd_pcm_sframes_t snd_pcm_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size); -snd_pcm_sframes_t snd_pcm_writen(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size); -snd_pcm_sframes_t snd_pcm_readn(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size); -int snd_pcm_wait(snd_pcm_t *pcm, int timeout); - -int snd_pcm_link(snd_pcm_t *pcm1, snd_pcm_t *pcm2); -int snd_pcm_unlink(snd_pcm_t *pcm); - -//int snd_pcm_mixer_element(snd_pcm_t *pcm, snd_mixer_t *mixer, snd_mixer_elem_t **elem); - -/* - * application helpers - these functions are implemented on top - * of the basic API - */ - -int snd_pcm_recover(snd_pcm_t *pcm, int err, int silent); -int snd_pcm_set_params(snd_pcm_t *pcm, - snd_pcm_format_t format, - snd_pcm_access_t access, - unsigned int channels, - unsigned int rate, - int soft_resample, - unsigned int latency); -int snd_pcm_get_params(snd_pcm_t *pcm, - snd_pcm_uframes_t *buffer_size, - snd_pcm_uframes_t *period_size); - -/** \} */ - -/** - * \defgroup PCM_Info Stream Information - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -size_t snd_pcm_info_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_pcm_info_t using standard alloca - * \param ptr returned pointer - */ -#define snd_pcm_info_alloca(ptr) __snd_alloca(ptr, snd_pcm_info) -int snd_pcm_info_malloc(snd_pcm_info_t **ptr); -void snd_pcm_info_free(snd_pcm_info_t *obj); -void snd_pcm_info_copy(snd_pcm_info_t *dst, const snd_pcm_info_t *src); -unsigned int snd_pcm_info_get_device(const snd_pcm_info_t *obj); -unsigned int snd_pcm_info_get_subdevice(const snd_pcm_info_t *obj); -snd_pcm_stream_t snd_pcm_info_get_stream(const snd_pcm_info_t *obj); -int snd_pcm_info_get_card(const snd_pcm_info_t *obj); -const char *snd_pcm_info_get_id(const snd_pcm_info_t *obj); -const char *snd_pcm_info_get_name(const snd_pcm_info_t *obj); -const char *snd_pcm_info_get_subdevice_name(const snd_pcm_info_t *obj); -snd_pcm_class_t snd_pcm_info_get_class(const snd_pcm_info_t *obj); -snd_pcm_subclass_t snd_pcm_info_get_subclass(const snd_pcm_info_t *obj); -unsigned int snd_pcm_info_get_subdevices_count(const snd_pcm_info_t *obj); -unsigned int snd_pcm_info_get_subdevices_avail(const snd_pcm_info_t *obj); -snd_pcm_sync_id_t snd_pcm_info_get_sync(const snd_pcm_info_t *obj); -void snd_pcm_info_set_device(snd_pcm_info_t *obj, unsigned int val); -void snd_pcm_info_set_subdevice(snd_pcm_info_t *obj, unsigned int val); -void snd_pcm_info_set_stream(snd_pcm_info_t *obj, snd_pcm_stream_t val); - -/** \} */ - -/** - * \defgroup PCM_HW_Params Hardware Parameters - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -int snd_pcm_hw_params_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); - -int snd_pcm_hw_params_can_mmap_sample_resolution(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_is_double(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_is_batch(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_is_block_transfer(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_is_monotonic(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_can_overrange(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_can_forward(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_can_rewind(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_can_pause(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_can_resume(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_is_half_duplex(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_is_joint_duplex(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_can_sync_start(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_get_rate_numden(const snd_pcm_hw_params_t *params, - unsigned int *rate_num, - unsigned int *rate_den); -int snd_pcm_hw_params_get_sbits(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_get_fifo_size(const snd_pcm_hw_params_t *params); - -#if 0 -typedef struct _snd_pcm_hw_strategy snd_pcm_hw_strategy_t; - -/* choices need to be sorted on ascending badness */ -typedef struct _snd_pcm_hw_strategy_simple_choices_list { - unsigned int value; - unsigned int badness; -} snd_pcm_hw_strategy_simple_choices_list_t; - -int snd_pcm_hw_params_strategy(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, - const snd_pcm_hw_strategy_t *strategy, - unsigned int badness_min, - unsigned int badness_max); - -void snd_pcm_hw_strategy_free(snd_pcm_hw_strategy_t *strategy); -int snd_pcm_hw_strategy_simple(snd_pcm_hw_strategy_t **strategyp, - unsigned int badness_min, - unsigned int badness_max); -int snd_pcm_hw_params_try_explain_failure(snd_pcm_t *pcm, - snd_pcm_hw_params_t *fail, - snd_pcm_hw_params_t *success, - unsigned int depth, - snd_output_t *out); - -#endif - -size_t snd_pcm_hw_params_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_pcm_hw_params_t using standard alloca - * \param ptr returned pointer - */ -#define snd_pcm_hw_params_alloca(ptr) __snd_alloca(ptr, snd_pcm_hw_params) -int snd_pcm_hw_params_malloc(snd_pcm_hw_params_t **ptr); -void snd_pcm_hw_params_free(snd_pcm_hw_params_t *obj); -void snd_pcm_hw_params_copy(snd_pcm_hw_params_t *dst, const snd_pcm_hw_params_t *src); - -#if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_HW_PARAMS_API) - -int snd_pcm_hw_params_get_access(const snd_pcm_hw_params_t *params, snd_pcm_access_t *_access); -int snd_pcm_hw_params_test_access(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t _access); -int snd_pcm_hw_params_set_access(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t _access); -int snd_pcm_hw_params_set_access_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t *_access); -int snd_pcm_hw_params_set_access_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t *_access); -int snd_pcm_hw_params_set_access_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_mask_t *mask); -int snd_pcm_hw_params_get_access_mask(snd_pcm_hw_params_t *params, snd_pcm_access_mask_t *mask); - -int snd_pcm_hw_params_get_format(const snd_pcm_hw_params_t *params, snd_pcm_format_t *val); -int snd_pcm_hw_params_test_format(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t val); -int snd_pcm_hw_params_set_format(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t val); -int snd_pcm_hw_params_set_format_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t *format); -int snd_pcm_hw_params_set_format_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t *format); -int snd_pcm_hw_params_set_format_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_mask_t *mask); -void snd_pcm_hw_params_get_format_mask(snd_pcm_hw_params_t *params, snd_pcm_format_mask_t *mask); - -int snd_pcm_hw_params_get_subformat(const snd_pcm_hw_params_t *params, snd_pcm_subformat_t *subformat); -int snd_pcm_hw_params_test_subformat(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_t subformat); -int snd_pcm_hw_params_set_subformat(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_t subformat); -int snd_pcm_hw_params_set_subformat_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_t *subformat); -int snd_pcm_hw_params_set_subformat_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_t *subformat); -int snd_pcm_hw_params_set_subformat_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_mask_t *mask); -void snd_pcm_hw_params_get_subformat_mask(snd_pcm_hw_params_t *params, snd_pcm_subformat_mask_t *mask); - -int snd_pcm_hw_params_get_channels(const snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_get_channels_min(const snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_get_channels_max(const snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_test_channels(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -int snd_pcm_hw_params_set_channels(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -int snd_pcm_hw_params_set_channels_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_set_channels_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_set_channels_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, unsigned int *max); -int snd_pcm_hw_params_set_channels_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_set_channels_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_set_channels_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); - -int snd_pcm_hw_params_get_rate(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_rate_min(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_rate_max(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_test_rate(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_rate(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_rate_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_rate_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_rate_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -int snd_pcm_hw_params_set_rate_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_rate_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_rate_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_rate_resample(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -int snd_pcm_hw_params_get_rate_resample(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_set_export_buffer(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -int snd_pcm_hw_params_get_export_buffer(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); - -int snd_pcm_hw_params_get_period_time(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_period_time_min(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_period_time_max(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_test_period_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_period_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_period_time_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_period_time_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_period_time_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -int snd_pcm_hw_params_set_period_time_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_period_time_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_period_time_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); - -int snd_pcm_hw_params_get_period_size(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *frames, int *dir); -int snd_pcm_hw_params_get_period_size_min(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *frames, int *dir); -int snd_pcm_hw_params_get_period_size_max(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *frames, int *dir); -int snd_pcm_hw_params_test_period_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val, int dir); -int snd_pcm_hw_params_set_period_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val, int dir); -int snd_pcm_hw_params_set_period_size_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir); -int snd_pcm_hw_params_set_period_size_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir); -int snd_pcm_hw_params_set_period_size_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *min, int *mindir, snd_pcm_uframes_t *max, int *maxdir); -int snd_pcm_hw_params_set_period_size_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir); -int snd_pcm_hw_params_set_period_size_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir); -int snd_pcm_hw_params_set_period_size_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir); -int snd_pcm_hw_params_set_period_size_integer(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); - -int snd_pcm_hw_params_get_periods(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_periods_min(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_periods_max(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_test_periods(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_periods(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_periods_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_periods_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_periods_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -int snd_pcm_hw_params_set_periods_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_periods_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_periods_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_periods_integer(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); - -int snd_pcm_hw_params_get_buffer_time(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_buffer_time_min(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_get_buffer_time_max(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_test_buffer_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_buffer_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_buffer_time_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_buffer_time_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_buffer_time_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -int snd_pcm_hw_params_set_buffer_time_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_buffer_time_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_buffer_time_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); - -int snd_pcm_hw_params_get_buffer_size(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_get_buffer_size_min(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_get_buffer_size_max(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_test_buffer_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_hw_params_set_buffer_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_hw_params_set_buffer_size_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_set_buffer_size_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_set_buffer_size_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *min, snd_pcm_uframes_t *max); -int snd_pcm_hw_params_set_buffer_size_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_set_buffer_size_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_set_buffer_size_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); - -#endif /* !ALSA_LIBRARY_BUILD && !ALSA_PCM_OLD_HW_PARAMS_API */ - -int snd_pcm_hw_params_get_min_align(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); - -/** \} */ - -/** - * \defgroup PCM_SW_Params Software Parameters - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -size_t snd_pcm_sw_params_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_pcm_sw_params_t using standard alloca - * \param ptr returned pointer - */ -#define snd_pcm_sw_params_alloca(ptr) __snd_alloca(ptr, snd_pcm_sw_params) -int snd_pcm_sw_params_malloc(snd_pcm_sw_params_t **ptr); -void snd_pcm_sw_params_free(snd_pcm_sw_params_t *obj); -void snd_pcm_sw_params_copy(snd_pcm_sw_params_t *dst, const snd_pcm_sw_params_t *src); -int snd_pcm_sw_params_get_boundary(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val); - -#if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_SW_PARAMS_API) - -int snd_pcm_sw_params_set_tstamp_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_tstamp_t val); -int snd_pcm_sw_params_get_tstamp_mode(const snd_pcm_sw_params_t *params, snd_pcm_tstamp_t *val); -int snd_pcm_sw_params_set_avail_min(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_sw_params_get_avail_min(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_sw_params_set_period_event(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, int val); -int snd_pcm_sw_params_get_period_event(const snd_pcm_sw_params_t *params, int *val); -int snd_pcm_sw_params_set_start_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_sw_params_get_start_threshold(const snd_pcm_sw_params_t *paramsm, snd_pcm_uframes_t *val); -int snd_pcm_sw_params_set_stop_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_sw_params_get_stop_threshold(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_sw_params_set_silence_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_sw_params_get_silence_threshold(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_sw_params_set_silence_size(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_sw_params_get_silence_size(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val); - -#endif /* !ALSA_LIBRARY_BUILD && !ALSA_PCM_OLD_SW_PARAMS_API */ - -/** \} */ - -/* include old API */ -#ifndef ALSA_LIBRARY_BUILD -#if defined(ALSA_PCM_OLD_HW_PARAMS_API) || defined(ALSA_PCM_OLD_SW_PARAMS_API) -#include "pcm_old.h" -#endif -#endif - -/** - * \defgroup PCM_Access Access Mask Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -size_t snd_pcm_access_mask_sizeof(void); -/** \hideinitializer - * \brief allocate an empty #snd_pcm_access_mask_t using standard alloca - * \param ptr returned pointer - */ -#define snd_pcm_access_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_access_mask) -int snd_pcm_access_mask_malloc(snd_pcm_access_mask_t **ptr); -void snd_pcm_access_mask_free(snd_pcm_access_mask_t *obj); -void snd_pcm_access_mask_copy(snd_pcm_access_mask_t *dst, const snd_pcm_access_mask_t *src); -void snd_pcm_access_mask_none(snd_pcm_access_mask_t *mask); -void snd_pcm_access_mask_any(snd_pcm_access_mask_t *mask); -int snd_pcm_access_mask_test(const snd_pcm_access_mask_t *mask, snd_pcm_access_t val); -int snd_pcm_access_mask_empty(const snd_pcm_access_mask_t *mask); -void snd_pcm_access_mask_set(snd_pcm_access_mask_t *mask, snd_pcm_access_t val); -void snd_pcm_access_mask_reset(snd_pcm_access_mask_t *mask, snd_pcm_access_t val); - -/** \} */ - -/** - * \defgroup PCM_Format Format Mask Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -size_t snd_pcm_format_mask_sizeof(void); -/** \hideinitializer - * \brief allocate an empty #snd_pcm_format_mask_t using standard alloca - * \param ptr returned pointer - */ -#define snd_pcm_format_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_format_mask) -int snd_pcm_format_mask_malloc(snd_pcm_format_mask_t **ptr); -void snd_pcm_format_mask_free(snd_pcm_format_mask_t *obj); -void snd_pcm_format_mask_copy(snd_pcm_format_mask_t *dst, const snd_pcm_format_mask_t *src); -void snd_pcm_format_mask_none(snd_pcm_format_mask_t *mask); -void snd_pcm_format_mask_any(snd_pcm_format_mask_t *mask); -int snd_pcm_format_mask_test(const snd_pcm_format_mask_t *mask, snd_pcm_format_t val); -int snd_pcm_format_mask_empty(const snd_pcm_format_mask_t *mask); -void snd_pcm_format_mask_set(snd_pcm_format_mask_t *mask, snd_pcm_format_t val); -void snd_pcm_format_mask_reset(snd_pcm_format_mask_t *mask, snd_pcm_format_t val); - -/** \} */ - -/** - * \defgroup PCM_SubFormat Subformat Mask Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -size_t snd_pcm_subformat_mask_sizeof(void); -/** \hideinitializer - * \brief allocate an empty #snd_pcm_subformat_mask_t using standard alloca - * \param ptr returned pointer - */ -#define snd_pcm_subformat_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_subformat_mask) -int snd_pcm_subformat_mask_malloc(snd_pcm_subformat_mask_t **ptr); -void snd_pcm_subformat_mask_free(snd_pcm_subformat_mask_t *obj); -void snd_pcm_subformat_mask_copy(snd_pcm_subformat_mask_t *dst, const snd_pcm_subformat_mask_t *src); -void snd_pcm_subformat_mask_none(snd_pcm_subformat_mask_t *mask); -void snd_pcm_subformat_mask_any(snd_pcm_subformat_mask_t *mask); -int snd_pcm_subformat_mask_test(const snd_pcm_subformat_mask_t *mask, snd_pcm_subformat_t val); -int snd_pcm_subformat_mask_empty(const snd_pcm_subformat_mask_t *mask); -void snd_pcm_subformat_mask_set(snd_pcm_subformat_mask_t *mask, snd_pcm_subformat_t val); -void snd_pcm_subformat_mask_reset(snd_pcm_subformat_mask_t *mask, snd_pcm_subformat_t val); - -/** \} */ - -/** - * \defgroup PCM_Status Status Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -size_t snd_pcm_status_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_pcm_status_t using standard alloca - * \param ptr returned pointer - */ -#define snd_pcm_status_alloca(ptr) __snd_alloca(ptr, snd_pcm_status) -int snd_pcm_status_malloc(snd_pcm_status_t **ptr); -void snd_pcm_status_free(snd_pcm_status_t *obj); -void snd_pcm_status_copy(snd_pcm_status_t *dst, const snd_pcm_status_t *src); -snd_pcm_state_t snd_pcm_status_get_state(const snd_pcm_status_t *obj); -void snd_pcm_status_get_trigger_tstamp(const snd_pcm_status_t *obj, snd_timestamp_t *ptr); -void snd_pcm_status_get_trigger_htstamp(const snd_pcm_status_t *obj, snd_htimestamp_t *ptr); -void snd_pcm_status_get_tstamp(const snd_pcm_status_t *obj, snd_timestamp_t *ptr); -void snd_pcm_status_get_htstamp(const snd_pcm_status_t *obj, snd_htimestamp_t *ptr); -snd_pcm_sframes_t snd_pcm_status_get_delay(const snd_pcm_status_t *obj); -snd_pcm_uframes_t snd_pcm_status_get_avail(const snd_pcm_status_t *obj); -snd_pcm_uframes_t snd_pcm_status_get_avail_max(const snd_pcm_status_t *obj); -snd_pcm_uframes_t snd_pcm_status_get_overrange(const snd_pcm_status_t *obj); - -/** \} */ - -/** - * \defgroup PCM_Description Description Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -const char *snd_pcm_type_name(snd_pcm_type_t type); -const char *snd_pcm_stream_name(const snd_pcm_stream_t stream); -const char *snd_pcm_access_name(const snd_pcm_access_t _access); -const char *snd_pcm_format_name(const snd_pcm_format_t format); -const char *snd_pcm_format_description(const snd_pcm_format_t format); -const char *snd_pcm_subformat_name(const snd_pcm_subformat_t subformat); -const char *snd_pcm_subformat_description(const snd_pcm_subformat_t subformat); -snd_pcm_format_t snd_pcm_format_value(const char* name); -const char *snd_pcm_tstamp_mode_name(const snd_pcm_tstamp_t mode); -const char *snd_pcm_state_name(const snd_pcm_state_t state); - -/** \} */ - -/** - * \defgroup PCM_Dump Debug Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -int snd_pcm_dump(snd_pcm_t *pcm, snd_output_t *out); -int snd_pcm_dump_hw_setup(snd_pcm_t *pcm, snd_output_t *out); -int snd_pcm_dump_sw_setup(snd_pcm_t *pcm, snd_output_t *out); -int snd_pcm_dump_setup(snd_pcm_t *pcm, snd_output_t *out); -int snd_pcm_hw_params_dump(snd_pcm_hw_params_t *params, snd_output_t *out); -int snd_pcm_sw_params_dump(snd_pcm_sw_params_t *params, snd_output_t *out); -int snd_pcm_status_dump(snd_pcm_status_t *status, snd_output_t *out); - -/** \} */ - -/** - * \defgroup PCM_Direct Direct Access (MMAP) Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -int snd_pcm_mmap_begin(snd_pcm_t *pcm, - const snd_pcm_channel_area_t **areas, - snd_pcm_uframes_t *offset, - snd_pcm_uframes_t *frames); -snd_pcm_sframes_t snd_pcm_mmap_commit(snd_pcm_t *pcm, - snd_pcm_uframes_t offset, - snd_pcm_uframes_t frames); -snd_pcm_sframes_t snd_pcm_mmap_writei(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size); -snd_pcm_sframes_t snd_pcm_mmap_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size); -snd_pcm_sframes_t snd_pcm_mmap_writen(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size); -snd_pcm_sframes_t snd_pcm_mmap_readn(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size); - -/** \} */ - -/** - * \defgroup PCM_Helpers Helper Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -int snd_pcm_format_signed(snd_pcm_format_t format); -int snd_pcm_format_unsigned(snd_pcm_format_t format); -int snd_pcm_format_linear(snd_pcm_format_t format); -int snd_pcm_format_float(snd_pcm_format_t format); -int snd_pcm_format_little_endian(snd_pcm_format_t format); -int snd_pcm_format_big_endian(snd_pcm_format_t format); -int snd_pcm_format_cpu_endian(snd_pcm_format_t format); -int snd_pcm_format_width(snd_pcm_format_t format); /* in bits */ -int snd_pcm_format_physical_width(snd_pcm_format_t format); /* in bits */ -snd_pcm_format_t snd_pcm_build_linear_format(int width, int pwidth, int unsignd, int big_endian); -ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples); -u_int8_t snd_pcm_format_silence(snd_pcm_format_t format); -u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format); -u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format); -u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format); -int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int samples); - -snd_pcm_sframes_t snd_pcm_bytes_to_frames(snd_pcm_t *pcm, ssize_t bytes); -ssize_t snd_pcm_frames_to_bytes(snd_pcm_t *pcm, snd_pcm_sframes_t frames); -long snd_pcm_bytes_to_samples(snd_pcm_t *pcm, ssize_t bytes); -ssize_t snd_pcm_samples_to_bytes(snd_pcm_t *pcm, long samples); - -int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_channel, snd_pcm_uframes_t dst_offset, - unsigned int samples, snd_pcm_format_t format); -int snd_pcm_areas_silence(const snd_pcm_channel_area_t *dst_channels, snd_pcm_uframes_t dst_offset, - unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format); -int snd_pcm_area_copy(const snd_pcm_channel_area_t *dst_channel, snd_pcm_uframes_t dst_offset, - const snd_pcm_channel_area_t *src_channel, snd_pcm_uframes_t src_offset, - unsigned int samples, snd_pcm_format_t format); -int snd_pcm_areas_copy(const snd_pcm_channel_area_t *dst_channels, snd_pcm_uframes_t dst_offset, - const snd_pcm_channel_area_t *src_channels, snd_pcm_uframes_t src_offset, - unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format); - -/** \} */ - -/** - * \defgroup PCM_Hook Hook Extension - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -/** type of pcm hook */ -typedef enum _snd_pcm_hook_type { - SND_PCM_HOOK_TYPE_HW_PARAMS = 0, - SND_PCM_HOOK_TYPE_HW_FREE, - SND_PCM_HOOK_TYPE_CLOSE, - SND_PCM_HOOK_TYPE_LAST = SND_PCM_HOOK_TYPE_CLOSE -} snd_pcm_hook_type_t; - -/** PCM hook container */ -typedef struct _snd_pcm_hook snd_pcm_hook_t; -/** PCM hook callback function */ -typedef int (*snd_pcm_hook_func_t)(snd_pcm_hook_t *hook); -snd_pcm_t *snd_pcm_hook_get_pcm(snd_pcm_hook_t *hook); -void *snd_pcm_hook_get_private(snd_pcm_hook_t *hook); -void snd_pcm_hook_set_private(snd_pcm_hook_t *hook, void *private_data); -int snd_pcm_hook_add(snd_pcm_hook_t **hookp, snd_pcm_t *pcm, - snd_pcm_hook_type_t type, - snd_pcm_hook_func_t func, void *private_data); -int snd_pcm_hook_remove(snd_pcm_hook_t *hook); - -/** \} */ - -/** - * \defgroup PCM_Scope Scope Plugin Extension - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -/** #SND_PCM_TYPE_METER scope functions */ -typedef struct _snd_pcm_scope_ops { - /** \brief Enable and prepare it using current params - * \param scope scope handle - */ - int (*enable)(snd_pcm_scope_t *scope); - /** \brief Disable - * \param scope scope handle - */ - void (*disable)(snd_pcm_scope_t *scope); - /** \brief PCM has been started - * \param scope scope handle - */ - void (*start)(snd_pcm_scope_t *scope); - /** \brief PCM has been stopped - * \param scope scope handle - */ - void (*stop)(snd_pcm_scope_t *scope); - /** \brief New frames are present - * \param scope scope handle - */ - void (*update)(snd_pcm_scope_t *scope); - /** \brief Reset status - * \param scope scope handle - */ - void (*reset)(snd_pcm_scope_t *scope); - /** \brief PCM is closing - * \param scope scope handle - */ - void (*close)(snd_pcm_scope_t *scope); -} snd_pcm_scope_ops_t; - -snd_pcm_uframes_t snd_pcm_meter_get_bufsize(snd_pcm_t *pcm); -unsigned int snd_pcm_meter_get_channels(snd_pcm_t *pcm); -unsigned int snd_pcm_meter_get_rate(snd_pcm_t *pcm); -snd_pcm_uframes_t snd_pcm_meter_get_now(snd_pcm_t *pcm); -snd_pcm_uframes_t snd_pcm_meter_get_boundary(snd_pcm_t *pcm); -int snd_pcm_meter_add_scope(snd_pcm_t *pcm, snd_pcm_scope_t *scope); -snd_pcm_scope_t *snd_pcm_meter_search_scope(snd_pcm_t *pcm, const char *name); -int snd_pcm_scope_malloc(snd_pcm_scope_t **ptr); -void snd_pcm_scope_set_ops(snd_pcm_scope_t *scope, snd_pcm_scope_ops_t *val); -void snd_pcm_scope_set_name(snd_pcm_scope_t *scope, const char *val); -const char *snd_pcm_scope_get_name(snd_pcm_scope_t *scope); -void *snd_pcm_scope_get_callback_private(snd_pcm_scope_t *scope); -void snd_pcm_scope_set_callback_private(snd_pcm_scope_t *scope, void *val); -int snd_pcm_scope_s16_open(snd_pcm_t *pcm, const char *name, - snd_pcm_scope_t **scopep); -int16_t *snd_pcm_scope_s16_get_channel_buffer(snd_pcm_scope_t *scope, - unsigned int channel); - -/** \} */ - -/** - * \defgroup PCM_Simple Simple setup functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -/** Simple PCM latency type */ -typedef enum _snd_spcm_latency { - /** standard latency - for standard playback or capture - (estimated latency in one direction 350ms) */ - SND_SPCM_LATENCY_STANDARD = 0, - /** medium latency - software phones etc. - (estimated latency in one direction maximally 25ms */ - SND_SPCM_LATENCY_MEDIUM, - /** realtime latency - realtime applications (effect processors etc.) - (estimated latency in one direction 5ms and better) */ - SND_SPCM_LATENCY_REALTIME -} snd_spcm_latency_t; - -/** Simple PCM xrun type */ -typedef enum _snd_spcm_xrun_type { - /** driver / library will ignore all xruns, the stream runs forever */ - SND_SPCM_XRUN_IGNORE = 0, - /** driver / library stops the stream when an xrun occurs */ - SND_SPCM_XRUN_STOP -} snd_spcm_xrun_type_t; - -/** Simple PCM duplex type */ -typedef enum _snd_spcm_duplex_type { - /** liberal duplex - the buffer and period sizes might not match */ - SND_SPCM_DUPLEX_LIBERAL = 0, - /** pedantic duplex - the buffer and period sizes MUST match */ - SND_SPCM_DUPLEX_PEDANTIC -} snd_spcm_duplex_type_t; - -int snd_spcm_init(snd_pcm_t *pcm, - unsigned int rate, - unsigned int channels, - snd_pcm_format_t format, - snd_pcm_subformat_t subformat, - snd_spcm_latency_t latency, - snd_pcm_access_t _access, - snd_spcm_xrun_type_t xrun_type); - -int snd_spcm_init_duplex(snd_pcm_t *playback_pcm, - snd_pcm_t *capture_pcm, - unsigned int rate, - unsigned int channels, - snd_pcm_format_t format, - snd_pcm_subformat_t subformat, - snd_spcm_latency_t latency, - snd_pcm_access_t _access, - snd_spcm_xrun_type_t xrun_type, - snd_spcm_duplex_type_t duplex_type); - -int snd_spcm_init_get_params(snd_pcm_t *pcm, - unsigned int *rate, - snd_pcm_uframes_t *buffer_size, - snd_pcm_uframes_t *period_size); - -/** \} */ - -/** - * \defgroup PCM_Deprecated Deprecated Functions - * \ingroup PCM - * See the \ref pcm page for more details. - * \{ - */ - -/* Deprecated functions, for compatibility */ -const char *snd_pcm_start_mode_name(snd_pcm_start_t mode) __attribute__((deprecated)); -const char *snd_pcm_xrun_mode_name(snd_pcm_xrun_t mode) __attribute__((deprecated)); -int snd_pcm_sw_params_set_start_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_start_t val) __attribute__((deprecated)); -snd_pcm_start_t snd_pcm_sw_params_get_start_mode(const snd_pcm_sw_params_t *params) __attribute__((deprecated)); -int snd_pcm_sw_params_set_xrun_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_xrun_t val) __attribute__((deprecated)); -snd_pcm_xrun_t snd_pcm_sw_params_get_xrun_mode(const snd_pcm_sw_params_t *params) __attribute__((deprecated)); -#if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_SW_PARAMS_API) -int snd_pcm_sw_params_set_xfer_align(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val) __attribute__((deprecated)); -int snd_pcm_sw_params_get_xfer_align(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val) __attribute__((deprecated)); -int snd_pcm_sw_params_set_sleep_min(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, unsigned int val) __attribute__((deprecated)); -int snd_pcm_sw_params_get_sleep_min(const snd_pcm_sw_params_t *params, unsigned int *val) __attribute__((deprecated)); -#endif /* !ALSA_LIBRARY_BUILD && !ALSA_PCM_OLD_SW_PARAMS_API */ -#if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_HW_PARAMS_API) -int snd_pcm_hw_params_get_tick_time(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -int snd_pcm_hw_params_get_tick_time_min(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -int snd_pcm_hw_params_get_tick_time_max(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -int snd_pcm_hw_params_test_tick_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir) __attribute__((deprecated)); -int snd_pcm_hw_params_set_tick_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir) __attribute__((deprecated)); -int snd_pcm_hw_params_set_tick_time_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -int snd_pcm_hw_params_set_tick_time_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -int snd_pcm_hw_params_set_tick_time_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir) __attribute__((deprecated)); -int snd_pcm_hw_params_set_tick_time_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -int snd_pcm_hw_params_set_tick_time_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -int snd_pcm_hw_params_set_tick_time_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir) __attribute__((deprecated)); -#endif /* !ALSA_LIBRARY_BUILD && !ALSA_PCM_OLD_HW_PARAMS_API */ - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_PCM_H */ diff --git a/alsa-lib/include/pcm_external.h b/alsa-lib/include/pcm_external.h deleted file mode 100644 index 5750418..0000000 --- a/alsa-lib/include/pcm_external.h +++ /dev/null @@ -1,70 +0,0 @@ -/** - * \file include/pcm_external.h - * \brief External PCM plugin SDK - * \author Takashi Iwai <tiwai@suse.de> - * \date 2005 - * - * Extern PCM plugin SDK. - */ - -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ -#ifndef __ALSA_PCM_EXTERNAL_H -#define __ALSA_PCM_EXTERNAL_H - -#include "pcm.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Plugin_SDK External PCM plugin SDK - * \{ - */ - -/** - * Define the object entry for external PCM plugins - */ -#define SND_PCM_PLUGIN_ENTRY(name) _snd_pcm_##name##_open - -/** - * Define the symbols of the given plugin with versions - */ -#define SND_PCM_PLUGIN_SYMBOL(name) SND_DLSYM_BUILD_VERSION(SND_PCM_PLUGIN_ENTRY(name), SND_PCM_DLSYM_VERSION); - -/** - * Define the plugin - */ -#define SND_PCM_PLUGIN_DEFINE_FUNC(plugin) \ -int SND_PCM_PLUGIN_ENTRY(plugin) (snd_pcm_t **pcmp, const char *name,\ - snd_config_t *root, snd_config_t *conf, \ - snd_pcm_stream_t stream, int mode) - -#include "pcm_ioplug.h" -#include "pcm_extplug.h" - -int snd_pcm_parse_control_id(snd_config_t *conf, snd_ctl_elem_id_t *ctl_id, int *cardp, - int *cchannelsp, int *hwctlp); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_PCM_EXTERNAL_H */ diff --git a/alsa-lib/include/pcm_extplug.h b/alsa-lib/include/pcm_extplug.h deleted file mode 100644 index b14c5be..0000000 --- a/alsa-lib/include/pcm_extplug.h +++ /dev/null @@ -1,189 +0,0 @@ -/** - * \file include/pcm_extplug.h - * \brief External Filter-Plugin SDK - * \author Takashi Iwai <tiwai@suse.de> - * \date 2005 - * - * External Filter-Plugin SDK - */ - -/* - * ALSA external PCM plugin SDK (draft version) - * - * Copyright (c) 2005 Takashi Iwai <tiwai@suse.de> - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_PCM_EXTPLUG_H -#define __ALSA_PCM_EXTPLUG_H - -/** - * \defgroup PCM_ExtPlug External Filter plugin SDK - * \ingroup Plugin_SDK - * See the \ref pcm page for more details. - * \{ - */ - -/** hw constraints for extplug */ -enum { - SND_PCM_EXTPLUG_HW_FORMAT, /**< format */ - SND_PCM_EXTPLUG_HW_CHANNELS, /**< channels */ - SND_PCM_EXTPLUG_HW_PARAMS /**< max number of hw constraints */ -}; - -/** Handle of external filter plugin */ -typedef struct snd_pcm_extplug snd_pcm_extplug_t; -/** Callback table of extplug */ -typedef struct snd_pcm_extplug_callback snd_pcm_extplug_callback_t; - -/* - * Protocol version - */ -#define SND_PCM_EXTPLUG_VERSION_MAJOR 1 /**< Protocol major version */ -#define SND_PCM_EXTPLUG_VERSION_MINOR 0 /**< Protocol minor version */ -#define SND_PCM_EXTPLUG_VERSION_TINY 1 /**< Protocol tiny version */ -/** - * Filter-plugin protocol version - */ -#define SND_PCM_EXTPLUG_VERSION ((SND_PCM_EXTPLUG_VERSION_MAJOR<<16) |\ - (SND_PCM_EXTPLUG_VERSION_MINOR<<8) |\ - (SND_PCM_EXTPLUG_VERSION_TINY)) - -/** Handle of extplug */ -struct snd_pcm_extplug { - /** - * protocol version; #SND_PCM_EXTPLUG_VERSION must be filled here - * before calling #snd_pcm_extplug_create() - */ - unsigned int version; - /** - * name of this plugin; must be filled before calling #snd_pcm_extplug_create() - */ - const char *name; - /** - * callbacks of this plugin; must be filled before calling #snd_pcm_extplug_create() - */ - const snd_pcm_extplug_callback_t *callback; - /** - * private data, which can be used freely in the driver callbacks - */ - void *private_data; - /** - * PCM handle filled by #snd_pcm_extplug_create() - */ - snd_pcm_t *pcm; - /** - * stream direction; read-only status - */ - snd_pcm_stream_t stream; - /** - * format hw parameter; filled after hw_params is caled - */ - snd_pcm_format_t format; - /** - * subformat hw parameter; filled after hw_params is caled - */ - snd_pcm_subformat_t subformat; - /** - * channels hw parameter; filled after hw_params is caled - */ - unsigned int channels; - /** - * rate hw parameter; filled after hw_params is caled - */ - unsigned int rate; - /** - * slave_format hw parameter; filled after hw_params is caled - */ - snd_pcm_format_t slave_format; - /** - * slave_subformat hw parameter; filled after hw_params is caled - */ - snd_pcm_subformat_t slave_subformat; - /** - * slave_channels hw parameter; filled after hw_params is caled - */ - unsigned int slave_channels; -}; - -/** Callback table of extplug */ -struct snd_pcm_extplug_callback { - /** - * transfer between source and destination; this is a required callback - */ - snd_pcm_sframes_t (*transfer)(snd_pcm_extplug_t *ext, - const snd_pcm_channel_area_t *dst_areas, - snd_pcm_uframes_t dst_offset, - const snd_pcm_channel_area_t *src_areas, - snd_pcm_uframes_t src_offset, - snd_pcm_uframes_t size); - /** - * close the PCM; optional - */ - int (*close)(snd_pcm_extplug_t *ext); - /** - * hw_params; optional - */ - int (*hw_params)(snd_pcm_extplug_t *ext, snd_pcm_hw_params_t *params); - /** - * hw_free; optional - */ - int (*hw_free)(snd_pcm_extplug_t *ext); - /** - * dump; optional - */ - void (*dump)(snd_pcm_extplug_t *ext, snd_output_t *out); - /** - * init; optional initialization called at prepare or reset - */ - int (*init)(snd_pcm_extplug_t *ext); -}; - - -int snd_pcm_extplug_create(snd_pcm_extplug_t *ext, const char *name, - snd_config_t *root, snd_config_t *slave_conf, - snd_pcm_stream_t stream, int mode); -int snd_pcm_extplug_delete(snd_pcm_extplug_t *ext); - -/* clear hw_parameter setting */ -void snd_pcm_extplug_params_reset(snd_pcm_extplug_t *ext); - -/* hw_parameter setting */ -int snd_pcm_extplug_set_param_list(snd_pcm_extplug_t *extplug, int type, unsigned int num_list, const unsigned int *list); -int snd_pcm_extplug_set_param_minmax(snd_pcm_extplug_t *extplug, int type, unsigned int min, unsigned int max); -int snd_pcm_extplug_set_slave_param_list(snd_pcm_extplug_t *extplug, int type, unsigned int num_list, const unsigned int *list); -int snd_pcm_extplug_set_slave_param_minmax(snd_pcm_extplug_t *extplug, int type, unsigned int min, unsigned int max); - -/** - * set the parameter constraint with a single value - */ -static inline int snd_pcm_extplug_set_param(snd_pcm_extplug_t *extplug, int type, unsigned int val) -{ - return snd_pcm_extplug_set_param_list(extplug, type, 1, &val); -} - -/** - * set the parameter constraint for slave PCM with a single value - */ -static inline int snd_pcm_extplug_set_slave_param(snd_pcm_extplug_t *extplug, int type, unsigned int val) -{ - return snd_pcm_extplug_set_slave_param_list(extplug, type, 1, &val); -} - -/** \} */ - -#endif /* __ALSA_PCM_EXTPLUG_H */ diff --git a/alsa-lib/include/pcm_ioplug.h b/alsa-lib/include/pcm_ioplug.h deleted file mode 100644 index b5968f1..0000000 --- a/alsa-lib/include/pcm_ioplug.h +++ /dev/null @@ -1,217 +0,0 @@ -/** - * \file include/pcm_ioplug.h - * \brief External I/O-Plugin SDK - * \author Takashi Iwai <tiwai@suse.de> - * \date 2005 - * - * External I/O-Plugin SDK - */ - -/* - * ALSA external PCM plugin SDK - * - * Copyright (c) 2005 Takashi Iwai <tiwai@suse.de> - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_PCM_IOPLUG_H -#define __ALSA_PCM_IOPLUG_H - -/** - * \defgroup PCM_IOPlug External I/O plugin SDK - * \ingroup Plugin_SDK - * See the \ref pcm page for more details. - * \{ - */ - -/** hw constraints for ioplug */ -enum { - SND_PCM_IOPLUG_HW_ACCESS = 0, /**< access type */ - SND_PCM_IOPLUG_HW_FORMAT, /**< format */ - SND_PCM_IOPLUG_HW_CHANNELS, /**< channels */ - SND_PCM_IOPLUG_HW_RATE, /**< rate */ - SND_PCM_IOPLUG_HW_PERIOD_BYTES, /**< period bytes */ - SND_PCM_IOPLUG_HW_BUFFER_BYTES, /**< buffer bytes */ - SND_PCM_IOPLUG_HW_PERIODS, /**< number of periods */ - SND_PCM_IOPLUG_HW_PARAMS /**< max number of hw constraints */ -}; - -/** I/O plugin handle */ -typedef struct snd_pcm_ioplug snd_pcm_ioplug_t; -/** Callback table of ioplug */ -typedef struct snd_pcm_ioplug_callback snd_pcm_ioplug_callback_t; - -/** - * bit flags for additional conditions - */ -#define SND_PCM_IOPLUG_FLAG_LISTED (1<<0) /* list up this PCM */ -#define SND_PCM_IOPLUG_FLAG_MONOTONIC (1<<1) /* monotonic timestamps */ - -/* - * Protocol version - */ -#define SND_PCM_IOPLUG_VERSION_MAJOR 1 /**< Protocol major version */ -#define SND_PCM_IOPLUG_VERSION_MINOR 0 /**< Protocol minor version */ -#define SND_PCM_IOPLUG_VERSION_TINY 1 /**< Protocol tiny version */ -/** - * IO-plugin protocol version - */ -#define SND_PCM_IOPLUG_VERSION ((SND_PCM_IOPLUG_VERSION_MAJOR<<16) |\ - (SND_PCM_IOPLUG_VERSION_MINOR<<8) |\ - (SND_PCM_IOPLUG_VERSION_TINY)) - -/** Handle of ioplug */ -struct snd_pcm_ioplug { - /** - * protocol version; #SND_PCM_IOPLUG_VERSION must be filled here - * before calling #snd_pcm_ioplug_create() - */ - unsigned int version; - /** - * name of this plugin; must be filled before calling #snd_pcm_ioplug_create() - */ - const char *name; - unsigned int flags; /**< SND_PCM_IOPLUG_FLAG_XXX */ - int poll_fd; /**< poll file descriptor */ - unsigned int poll_events; /**< poll events */ - unsigned int mmap_rw; /**< pseudo mmap mode */ - /** - * callbacks of this plugin; must be filled before calling #snd_pcm_ioplug_create() - */ - const snd_pcm_ioplug_callback_t *callback; - /** - * private data, which can be used freely in the driver callbacks - */ - void *private_data; - /** - * PCM handle filled by #snd_pcm_extplug_create() - */ - snd_pcm_t *pcm; - - snd_pcm_stream_t stream; /**< stream direcion; read-only */ - snd_pcm_state_t state; /**< current PCM state; read-only */ - volatile snd_pcm_uframes_t appl_ptr; /**< application pointer; read-only */ - volatile snd_pcm_uframes_t hw_ptr; /**< hw pointer; read-only */ - int nonblock; /**< non-block mode; read-only */ - - snd_pcm_access_t access; /**< access type; filled after hw_params is called */ - snd_pcm_format_t format; /**< PCM format; filled after hw_params is called */ - unsigned int channels; /**< number of channels; filled after hw_params is called */ - unsigned int rate; /**< rate; filled after hw_params is called */ - snd_pcm_uframes_t period_size; /**< period size; filled after hw_params is called */ - snd_pcm_uframes_t buffer_size; /**< buffer size; filled after hw_params is called */ -}; - -/** Callback table of ioplug */ -struct snd_pcm_ioplug_callback { - /** - * start the PCM; required - */ - int (*start)(snd_pcm_ioplug_t *io); - /** - * stop the PCM; required - */ - int (*stop)(snd_pcm_ioplug_t *io); - /** - * get the current DMA position; required - */ - snd_pcm_sframes_t (*pointer)(snd_pcm_ioplug_t *io); - /** - * transfer the data; optional - */ - snd_pcm_sframes_t (*transfer)(snd_pcm_ioplug_t *io, - const snd_pcm_channel_area_t *areas, - snd_pcm_uframes_t offset, - snd_pcm_uframes_t size); - /** - * close the PCM; optional - */ - int (*close)(snd_pcm_ioplug_t *io); - /** - * hw_params; optional - */ - int (*hw_params)(snd_pcm_ioplug_t *io, snd_pcm_hw_params_t *params); - /** - * hw_free; optional - */ - int (*hw_free)(snd_pcm_ioplug_t *io); - /** - * sw_params; optional - */ - int (*sw_params)(snd_pcm_ioplug_t *io, snd_pcm_sw_params_t *params); - /** - * prepare; optional - */ - int (*prepare)(snd_pcm_ioplug_t *io); - /** - * drain; optional - */ - int (*drain)(snd_pcm_ioplug_t *io); - /** - * toggle pause; optional - */ - int (*pause)(snd_pcm_ioplug_t *io, int enable); - /** - * resume; optional - */ - int (*resume)(snd_pcm_ioplug_t *io); - /** - * poll descriptors count; optional - */ - int (*poll_descriptors_count)(snd_pcm_ioplug_t *io); - /** - * poll descriptors; optional - */ - int (*poll_descriptors)(snd_pcm_ioplug_t *io, struct pollfd *pfd, unsigned int space); - /** - * mangle poll events; optional - */ - int (*poll_revents)(snd_pcm_ioplug_t *io, struct pollfd *pfd, unsigned int nfds, unsigned short *revents); - /** - * dump; optional - */ - void (*dump)(snd_pcm_ioplug_t *io, snd_output_t *out); - /** - * get the delay for the running PCM; optional - */ - int (*delay)(snd_pcm_ioplug_t *io, snd_pcm_sframes_t *delayp); -}; - - -int snd_pcm_ioplug_create(snd_pcm_ioplug_t *io, const char *name, - snd_pcm_stream_t stream, int mode); -int snd_pcm_ioplug_delete(snd_pcm_ioplug_t *io); - -/* update poll_fd and mmap_rw */ -int snd_pcm_ioplug_reinit_status(snd_pcm_ioplug_t *ioplug); - -/* get a mmap area (for mmap_rw only) */ -const snd_pcm_channel_area_t *snd_pcm_ioplug_mmap_areas(snd_pcm_ioplug_t *ioplug); - -/* clear hw_parameter setting */ -void snd_pcm_ioplug_params_reset(snd_pcm_ioplug_t *io); - -/* hw_parameter setting */ -int snd_pcm_ioplug_set_param_minmax(snd_pcm_ioplug_t *io, int type, unsigned int min, unsigned int max); -int snd_pcm_ioplug_set_param_list(snd_pcm_ioplug_t *io, int type, unsigned int num_list, const unsigned int *list); - -/* change PCM status */ -int snd_pcm_ioplug_set_state(snd_pcm_ioplug_t *ioplug, snd_pcm_state_t state); - -/** \} */ - -#endif /* __ALSA_PCM_IOPLUG_H */ diff --git a/alsa-lib/include/pcm_old.h b/alsa-lib/include/pcm_old.h deleted file mode 100644 index f0de4c3..0000000 --- a/alsa-lib/include/pcm_old.h +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Old ALSA 0.9.x API - */ - -#ifdef ALSA_PCM_OLD_HW_PARAMS_API - -asm(".symver snd_pcm_hw_params_get_access,snd_pcm_hw_params_get_access@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_access_first,snd_pcm_hw_params_set_access_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_access_last,snd_pcm_hw_params_set_access_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_access(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_test_access(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t val); -int snd_pcm_hw_params_set_access(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t val); -snd_pcm_access_t snd_pcm_hw_params_set_access_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -snd_pcm_access_t snd_pcm_hw_params_set_access_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_set_access_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_mask_t *mask); -void snd_pcm_hw_params_get_access_mask(snd_pcm_hw_params_t *params, snd_pcm_access_mask_t *mask); - -asm(".symver snd_pcm_hw_params_get_format,snd_pcm_hw_params_get_format@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_format_first,snd_pcm_hw_params_set_format_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_format_last,snd_pcm_hw_params_set_format_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_format(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_test_format(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t val); -int snd_pcm_hw_params_set_format(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t val); -snd_pcm_format_t snd_pcm_hw_params_set_format_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -snd_pcm_format_t snd_pcm_hw_params_set_format_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_set_format_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_mask_t *mask); -void snd_pcm_hw_params_get_format_mask(snd_pcm_hw_params_t *params, snd_pcm_format_mask_t *mask); - -asm(".symver snd_pcm_hw_params_get_subformat,snd_pcm_hw_params_get_subformat@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_subformat_first,snd_pcm_hw_params_set_subformat_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_subformat_last,snd_pcm_hw_params_set_subformat_last@ALSA_0.9"); - -int snd_pcm_hw_params_test_subformat(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_t val); -int snd_pcm_hw_params_get_subformat(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_set_subformat(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_t val); -snd_pcm_subformat_t snd_pcm_hw_params_set_subformat_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -snd_pcm_subformat_t snd_pcm_hw_params_set_subformat_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_set_subformat_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_subformat_mask_t *mask); -void snd_pcm_hw_params_get_subformat_mask(snd_pcm_hw_params_t *params, snd_pcm_subformat_mask_t *mask); - -asm(".symver snd_pcm_hw_params_get_channels,snd_pcm_hw_params_get_channels@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_channels_min,snd_pcm_hw_params_get_channels_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_channels_max,snd_pcm_hw_params_get_channels_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_channels_near,snd_pcm_hw_params_set_channels_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_channels_first,snd_pcm_hw_params_set_channels_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_channels_last,snd_pcm_hw_params_set_channels_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_channels(const snd_pcm_hw_params_t *params); -unsigned int snd_pcm_hw_params_get_channels_min(const snd_pcm_hw_params_t *params); -unsigned int snd_pcm_hw_params_get_channels_max(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_test_channels(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -int snd_pcm_hw_params_set_channels(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -int snd_pcm_hw_params_set_channels_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_set_channels_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); -int snd_pcm_hw_params_set_channels_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, unsigned int *max); -unsigned int snd_pcm_hw_params_set_channels_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -unsigned int snd_pcm_hw_params_set_channels_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -unsigned int snd_pcm_hw_params_set_channels_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); - -asm(".symver snd_pcm_hw_params_get_rate,snd_pcm_hw_params_get_rate@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_rate_min,snd_pcm_hw_params_get_rate_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_rate_max,snd_pcm_hw_params_get_rate_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_rate_near,snd_pcm_hw_params_set_rate_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_rate_first,snd_pcm_hw_params_set_rate_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_rate_last,snd_pcm_hw_params_set_rate_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_rate(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_rate_min(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_rate_max(const snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_test_rate(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_rate(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_rate_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_rate_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_rate_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -unsigned int snd_pcm_hw_params_set_rate_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int *dir); -unsigned int snd_pcm_hw_params_set_rate_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_set_rate_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_set_rate_resample(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val); -int snd_pcm_hw_params_get_rate_resample(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val); - -asm(".symver snd_pcm_hw_params_get_period_time,snd_pcm_hw_params_get_period_time@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_period_time_min,snd_pcm_hw_params_get_period_time_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_period_time_max,snd_pcm_hw_params_get_period_time_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_period_time_near,snd_pcm_hw_params_set_period_time_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_period_time_first,snd_pcm_hw_params_set_period_time_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_period_time_last,snd_pcm_hw_params_set_period_time_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_period_time(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_period_time_min(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_period_time_max(const snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_test_period_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_period_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_period_time_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_period_time_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_period_time_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -unsigned int snd_pcm_hw_params_set_period_time_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int *dir); -unsigned int snd_pcm_hw_params_set_period_time_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_set_period_time_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); - -asm(".symver snd_pcm_hw_params_get_period_size,snd_pcm_hw_params_get_period_size@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_period_size_min,snd_pcm_hw_params_get_period_size_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_period_size_max,snd_pcm_hw_params_get_period_size_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_period_size_near,snd_pcm_hw_params_set_period_size_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_period_size_first,snd_pcm_hw_params_set_period_size_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_period_size_last,snd_pcm_hw_params_set_period_size_last@ALSA_0.9"); - -snd_pcm_sframes_t snd_pcm_hw_params_get_period_size(const snd_pcm_hw_params_t *params, int *dir); -snd_pcm_uframes_t snd_pcm_hw_params_get_period_size_min(const snd_pcm_hw_params_t *params, int *dir); -snd_pcm_uframes_t snd_pcm_hw_params_get_period_size_max(const snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_test_period_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val, int dir); -int snd_pcm_hw_params_set_period_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val, int dir); -int snd_pcm_hw_params_set_period_size_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir); -int snd_pcm_hw_params_set_period_size_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir); -int snd_pcm_hw_params_set_period_size_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *min, int *mindir, snd_pcm_uframes_t *max, int *maxdir); -snd_pcm_uframes_t snd_pcm_hw_params_set_period_size_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val, int *dir); -snd_pcm_uframes_t snd_pcm_hw_params_set_period_size_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -snd_pcm_uframes_t snd_pcm_hw_params_set_period_size_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_set_period_size_integer(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); - -asm(".symver snd_pcm_hw_params_get_periods,snd_pcm_hw_params_get_periods@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_periods_min,snd_pcm_hw_params_get_periods_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_periods_max,snd_pcm_hw_params_get_periods_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_periods_near,snd_pcm_hw_params_set_periods_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_periods_first,snd_pcm_hw_params_set_periods_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_periods_last,snd_pcm_hw_params_set_periods_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_periods(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_periods_min(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_periods_max(const snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_test_periods(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_periods(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_periods_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_periods_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_periods_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -unsigned int snd_pcm_hw_params_set_periods_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int *dir); -unsigned int snd_pcm_hw_params_set_periods_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_set_periods_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_set_periods_integer(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); - -asm(".symver snd_pcm_hw_params_get_buffer_time,snd_pcm_hw_params_get_buffer_time@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_buffer_time_min,snd_pcm_hw_params_get_buffer_time_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_buffer_time_max,snd_pcm_hw_params_get_buffer_time_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_buffer_time_near,snd_pcm_hw_params_set_buffer_time_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_buffer_time_first,snd_pcm_hw_params_set_buffer_time_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_buffer_time_last,snd_pcm_hw_params_set_buffer_time_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_buffer_time(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_buffer_time_min(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_buffer_time_max(const snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_test_buffer_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_buffer_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_buffer_time_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_buffer_time_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_buffer_time_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -unsigned int snd_pcm_hw_params_set_buffer_time_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int *dir); -unsigned int snd_pcm_hw_params_set_buffer_time_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_set_buffer_time_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); - -asm(".symver snd_pcm_hw_params_get_buffer_size,snd_pcm_hw_params_get_buffer_size@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_buffer_size_min,snd_pcm_hw_params_get_buffer_size_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_buffer_size_max,snd_pcm_hw_params_get_buffer_size_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_buffer_size_near,snd_pcm_hw_params_set_buffer_size_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_buffer_size_first,snd_pcm_hw_params_set_buffer_size_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_buffer_size_last,snd_pcm_hw_params_set_buffer_size_last@ALSA_0.9"); - -snd_pcm_sframes_t snd_pcm_hw_params_get_buffer_size(const snd_pcm_hw_params_t *params); -snd_pcm_uframes_t snd_pcm_hw_params_get_buffer_size_min(const snd_pcm_hw_params_t *params); -snd_pcm_uframes_t snd_pcm_hw_params_get_buffer_size_max(const snd_pcm_hw_params_t *params); -int snd_pcm_hw_params_test_buffer_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_hw_params_set_buffer_size(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val); -int snd_pcm_hw_params_set_buffer_size_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_set_buffer_size_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val); -int snd_pcm_hw_params_set_buffer_size_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t *min, snd_pcm_uframes_t *max); -snd_pcm_uframes_t snd_pcm_hw_params_set_buffer_size_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_uframes_t val); -snd_pcm_uframes_t snd_pcm_hw_params_set_buffer_size_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); -snd_pcm_uframes_t snd_pcm_hw_params_set_buffer_size_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); - -asm(".symver snd_pcm_hw_params_get_tick_time,snd_pcm_hw_params_get_tick_time@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_tick_time_min,snd_pcm_hw_params_get_tick_time_min@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_get_tick_time_max,snd_pcm_hw_params_get_tick_time_max@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_tick_time_near,snd_pcm_hw_params_set_tick_time_near@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_tick_time_first,snd_pcm_hw_params_set_tick_time_first@ALSA_0.9"); -asm(".symver snd_pcm_hw_params_set_tick_time_last,snd_pcm_hw_params_set_tick_time_last@ALSA_0.9"); - -int snd_pcm_hw_params_get_tick_time(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_tick_time_min(const snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_get_tick_time_max(const snd_pcm_hw_params_t *params, int *dir); -int snd_pcm_hw_params_test_tick_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_tick_time(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int dir); -int snd_pcm_hw_params_set_tick_time_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_tick_time_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir); -int snd_pcm_hw_params_set_tick_time_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *min, int *mindir, unsigned int *max, int *maxdir); -unsigned int snd_pcm_hw_params_set_tick_time_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int *dir); -unsigned int snd_pcm_hw_params_set_tick_time_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); -unsigned int snd_pcm_hw_params_set_tick_time_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int *dir); - -#endif /* ALSA_PCM_OLD_HW_PARAMS_API */ - - -#ifdef ALSA_PCM_OLD_SW_PARAMS_API - -asm(".symver snd_pcm_sw_params_get_tstamp_mode,snd_pcm_sw_params_get_tstamp_mode@ALSA_0.9"); -asm(".symver snd_pcm_sw_params_get_sleep_min,snd_pcm_sw_params_get_sleep_min@ALSA_0.9"); -asm(".symver snd_pcm_sw_params_get_avail_min,snd_pcm_sw_params_get_avail_min@ALSA_0.9"); -asm(".symver snd_pcm_sw_params_get_xfer_align,snd_pcm_sw_params_get_xfer_align@ALSA_0.9"); -asm(".symver snd_pcm_sw_params_get_start_threshold,snd_pcm_sw_params_get_start_threshold@ALSA_0.9"); -asm(".symver snd_pcm_sw_params_get_stop_threshold,snd_pcm_sw_params_set_stop_threshold@ALSA_0.9"); -asm(".symver snd_pcm_sw_params_get_silence_threshold,snd_pcm_sw_params_get_silence_threshold@ALSA_0.9"); -asm(".symver snd_pcm_sw_params_get_silence_size,snd_pcm_sw_params_get_silence_size@ALSA_0.9"); - -int snd_pcm_sw_params_set_tstamp_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_tstamp_t val); -snd_pcm_tstamp_t snd_pcm_sw_params_get_tstamp_mode(const snd_pcm_sw_params_t *params); -int snd_pcm_sw_params_set_sleep_min(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, unsigned int val); -unsigned int snd_pcm_sw_params_get_sleep_min(const snd_pcm_sw_params_t *params); -int snd_pcm_sw_params_set_avail_min(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -snd_pcm_uframes_t snd_pcm_sw_params_get_avail_min(const snd_pcm_sw_params_t *params); -int snd_pcm_sw_params_set_xfer_align(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -snd_pcm_uframes_t snd_pcm_sw_params_get_xfer_align(const snd_pcm_sw_params_t *params); -int snd_pcm_sw_params_set_start_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -snd_pcm_uframes_t snd_pcm_sw_params_get_start_threshold(const snd_pcm_sw_params_t *params); -int snd_pcm_sw_params_set_stop_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -snd_pcm_uframes_t snd_pcm_sw_params_get_stop_threshold(const snd_pcm_sw_params_t *params); -int snd_pcm_sw_params_set_silence_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -snd_pcm_uframes_t snd_pcm_sw_params_get_silence_threshold(const snd_pcm_sw_params_t *params); -int snd_pcm_sw_params_set_silence_size(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); -snd_pcm_uframes_t snd_pcm_sw_params_get_silence_size(const snd_pcm_sw_params_t *params); - -#endif /* ALSA_PCM_OLD_SW_PARAMS_API */ diff --git a/alsa-lib/include/pcm_plugin.h b/alsa-lib/include/pcm_plugin.h deleted file mode 100644 index eea1d82..0000000 --- a/alsa-lib/include/pcm_plugin.h +++ /dev/null @@ -1,202 +0,0 @@ -/** - * \file include/pcm_plugin.h - * \brief Common PCM plugin code - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Jaroslav Kysela <perex@perex.cz> - * \date 2000-2001 - * - * Application interface library for the ALSA driver. - * See the \ref pcm_plugins page for more details. - * - * \warning Using of contents of this header file might be dangerous - * in the sense of compatibility reasons. The contents might be - * freely changed in future. - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_PCM_PLUGIN_H - -/** - * \defgroup PCM_Plugins PCM Plugins - * \ingroup PCM - * See the \ref pcm_plugins page for more details. - * \{ - */ - -#define SND_PCM_PLUGIN_RATE_MIN 4000 /**< minimal rate for the rate plugin */ -#define SND_PCM_PLUGIN_RATE_MAX 192000 /**< maximal rate for the rate plugin */ - -/* ROUTE_FLOAT should be set to 0 for machines without FP unit - like iPAQ */ -#ifdef HAVE_SOFT_FLOAT -#define SND_PCM_PLUGIN_ROUTE_FLOAT 0 /**< use integers for route plugin */ -#else -#define SND_PCM_PLUGIN_ROUTE_FLOAT 1 /**< use floats for route plugin */ -#endif - -#define SND_PCM_PLUGIN_ROUTE_RESOLUTION 16 /**< integer resolution for route plugin */ - -#if SND_PCM_PLUGIN_ROUTE_FLOAT -/** route ttable entry type */ -typedef float snd_pcm_route_ttable_entry_t; -#define SND_PCM_PLUGIN_ROUTE_HALF 0.5 /**< half value */ -#define SND_PCM_PLUGIN_ROUTE_FULL 1.0 /**< full value */ -#else -/** route ttable entry type */ -typedef int snd_pcm_route_ttable_entry_t; -#define SND_PCM_PLUGIN_ROUTE_HALF (SND_PCM_PLUGIN_ROUTE_RESOLUTION / 2) /**< half value */ -#define SND_PCM_PLUGIN_ROUTE_FULL SND_PCM_PLUGIN_ROUTE_RESOLUTION /**< full value */ -#endif - -/* - * Hardware plugin - */ -int snd_pcm_hw_open(snd_pcm_t **pcmp, const char *name, - int card, int device, int subdevice, - snd_pcm_stream_t stream, int mode, - int mmap_emulation, int sync_ptr_ioctl); -int _snd_pcm_hw_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root ATTRIBUTE_UNUSED, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Copy plugin - */ -int snd_pcm_copy_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_t *slave, int close_slave); -int _snd_pcm_copy_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Linear conversion plugin - */ -int snd_pcm_linear_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_format_t sformat, snd_pcm_t *slave, - int close_slave); -int _snd_pcm_linear_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Linear<->Float conversion plugin - */ -int snd_pcm_lfloat_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_format_t sformat, snd_pcm_t *slave, - int close_slave); -int _snd_pcm_lfloat_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Linear<->mu-Law conversion plugin - */ -int snd_pcm_mulaw_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_format_t sformat, snd_pcm_t *slave, - int close_slave); -int _snd_pcm_mulaw_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Linear<->a-Law conversion plugin - */ -int snd_pcm_alaw_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_format_t sformat, snd_pcm_t *slave, - int close_slave); -int _snd_pcm_alaw_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Linear<->Ima-ADPCM conversion plugin - */ -int snd_pcm_adpcm_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_format_t sformat, snd_pcm_t *slave, - int close_slave); -int _snd_pcm_adpcm_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Route plugin for linear formats - */ -int snd_pcm_route_load_ttable(snd_config_t *tt, snd_pcm_route_ttable_entry_t *ttable, - unsigned int tt_csize, unsigned int tt_ssize, - unsigned int *tt_cused, unsigned int *tt_sused, - int schannels); -int snd_pcm_route_determine_ttable(snd_config_t *tt, - unsigned int *tt_csize, - unsigned int *tt_ssize); -int snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_format_t sformat, int schannels, - snd_pcm_route_ttable_entry_t *ttable, - unsigned int tt_ssize, - unsigned int tt_cused, unsigned int tt_sused, - snd_pcm_t *slave, int close_slave); -int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Rate plugin for linear formats - */ -int snd_pcm_rate_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_format_t sformat, unsigned int srate, - const snd_config_t *converter, - snd_pcm_t *slave, int close_slave); -int _snd_pcm_rate_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Hooks plugin - */ -int snd_pcm_hooks_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_t *slave, int close_slave); -int _snd_pcm_hooks_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * LADSPA plugin - */ -int snd_pcm_ladspa_open(snd_pcm_t **pcmp, const char *name, - const char *ladspa_path, - unsigned int channels, - snd_config_t *ladspa_pplugins, - snd_config_t *ladspa_cplugins, - snd_pcm_t *slave, int close_slave); -int _snd_pcm_ladspa_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - -/* - * Jack plugin - */ -int snd_pcm_jack_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *playback_conf, - snd_config_t *capture_conf, - snd_pcm_stream_t stream, int mode); -int _snd_pcm_jack_open(snd_pcm_t **pcmp, const char *name, - snd_config_t *root, snd_config_t *conf, - snd_pcm_stream_t stream, int mode); - - -/** \} */ - -#endif /* __ALSA_PCM_PLUGIN_H */ diff --git a/alsa-lib/include/pcm_rate.h b/alsa-lib/include/pcm_rate.h deleted file mode 100644 index d211e09..0000000 --- a/alsa-lib/include/pcm_rate.h +++ /dev/null @@ -1,117 +0,0 @@ -/** - * \file include/pcm_rate.h - * \brief External Rate-Converter-Plugin SDK - * \author Takashi Iwai <tiwai@suse.de> - * \date 2006 - * - * External Rate-Converter-Plugin SDK - */ - -/* - * ALSA external PCM rate-converter plugin SDK (draft version) - * - * Copyright (c) 2006 Takashi Iwai <tiwai@suse.de> - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_PCM_RATE_H -#define __ALSA_PCM_RATE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Protocol version - */ -#define SND_PCM_RATE_PLUGIN_VERSION 0x010001 - -/** hw_params information for a single side */ -typedef struct snd_pcm_rate_side_info { - snd_pcm_format_t format; - unsigned int rate; - snd_pcm_uframes_t buffer_size; - snd_pcm_uframes_t period_size; -} snd_pcm_rate_side_info_t; - -/** hw_params information */ -typedef struct snd_pcm_rate_info { - struct snd_pcm_rate_side_info in; - struct snd_pcm_rate_side_info out; - unsigned int channels; -} snd_pcm_rate_info_t; - -/** Callback table of rate-converter */ -typedef struct snd_pcm_rate_ops { - /** - * close the converter; optional - */ - void (*close)(void *obj); - /** - * initialize the converter, called at hw_params - */ - int (*init)(void *obj, snd_pcm_rate_info_t *info); - /** - * free the converter; optional - */ - void (*free)(void *obj); - /** - * reset the converter, called at prepare; optional - */ - void (*reset)(void *obj); - /** - * adjust the pitch, called at sw_params; optional - */ - int (*adjust_pitch)(void *obj, snd_pcm_rate_info_t *info); - /** - * convert the data - */ - void (*convert)(void *obj, - const snd_pcm_channel_area_t *dst_areas, - snd_pcm_uframes_t dst_offset, unsigned int dst_frames, - const snd_pcm_channel_area_t *src_areas, - snd_pcm_uframes_t src_offset, unsigned int src_frames); - /** - * convert an s16 interleaved-data array; exclusive with convert - */ - void (*convert_s16)(void *obj, int16_t *dst, unsigned int dst_frames, - const int16_t *src, unsigned int src_frames); - /** - * compute the frame size for input - */ - snd_pcm_uframes_t (*input_frames)(void *obj, snd_pcm_uframes_t frames); - /** - * compute the frame size for output - */ - snd_pcm_uframes_t (*output_frames)(void *obj, snd_pcm_uframes_t frames); -} snd_pcm_rate_ops_t; - -/** open function type */ -typedef int (*snd_pcm_rate_open_func_t)(unsigned int version, void **objp, - snd_pcm_rate_ops_t *opsp); - -/** - * Define the object entry for external PCM rate-converter plugins - */ -#define SND_PCM_RATE_PLUGIN_ENTRY(name) _snd_pcm_rate_##name##_open - - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_PCM_RATE_H */ diff --git a/alsa-lib/include/rawmidi.h b/alsa-lib/include/rawmidi.h deleted file mode 100644 index 1d8fd56..0000000 --- a/alsa-lib/include/rawmidi.h +++ /dev/null @@ -1,159 +0,0 @@ -/** - * \file include/rawmidi.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_RAWMIDI_H -#define __ALSA_RAWMIDI_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup RawMidi RawMidi Interface - * The RawMidi Interface. See \ref rawmidi page for more details. - * \{ - */ - -/** dlsym version for interface entry callback */ -#define SND_RAWMIDI_DLSYM_VERSION _dlsym_rawmidi_001 - -/** RawMidi information container */ -typedef struct _snd_rawmidi_info snd_rawmidi_info_t; -/** RawMidi settings container */ -typedef struct _snd_rawmidi_params snd_rawmidi_params_t; -/** RawMidi status container */ -typedef struct _snd_rawmidi_status snd_rawmidi_status_t; - -/** RawMidi stream (direction) */ -typedef enum _snd_rawmidi_stream { - /** Output stream */ - SND_RAWMIDI_STREAM_OUTPUT = 0, - /** Input stream */ - SND_RAWMIDI_STREAM_INPUT, - SND_RAWMIDI_STREAM_LAST = SND_RAWMIDI_STREAM_INPUT -} snd_rawmidi_stream_t; - -/** Append (flag to open mode) \hideinitializer */ -#define SND_RAWMIDI_APPEND 0x0001 -/** Non blocking mode (flag to open mode) \hideinitializer */ -#define SND_RAWMIDI_NONBLOCK 0x0002 -/** Write sync mode (Flag to open mode) \hideinitializer */ -#define SND_RAWMIDI_SYNC 0x0004 - -/** RawMidi handle */ -typedef struct _snd_rawmidi snd_rawmidi_t; - -/** RawMidi type */ -typedef enum _snd_rawmidi_type { - /** Kernel level RawMidi */ - SND_RAWMIDI_TYPE_HW, - /** Shared memory client RawMidi (not yet implemented) */ - SND_RAWMIDI_TYPE_SHM, - /** INET client RawMidi (not yet implemented) */ - SND_RAWMIDI_TYPE_INET, - /** Virtual (sequencer) RawMidi */ - SND_RAWMIDI_TYPE_VIRTUAL -} snd_rawmidi_type_t; - -int snd_rawmidi_open(snd_rawmidi_t **in_rmidi, snd_rawmidi_t **out_rmidi, - const char *name, int mode); -int snd_rawmidi_open_lconf(snd_rawmidi_t **in_rmidi, snd_rawmidi_t **out_rmidi, - const char *name, int mode, snd_config_t *lconf); -int snd_rawmidi_close(snd_rawmidi_t *rmidi); -int snd_rawmidi_poll_descriptors_count(snd_rawmidi_t *rmidi); -int snd_rawmidi_poll_descriptors(snd_rawmidi_t *rmidi, struct pollfd *pfds, unsigned int space); -int snd_rawmidi_poll_descriptors_revents(snd_rawmidi_t *rawmidi, struct pollfd *pfds, unsigned int nfds, unsigned short *revent); -int snd_rawmidi_nonblock(snd_rawmidi_t *rmidi, int nonblock); -size_t snd_rawmidi_info_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_rawmidi_info_t using standard alloca - * \param ptr returned pointer - */ -#define snd_rawmidi_info_alloca(ptr) __snd_alloca(ptr, snd_rawmidi_info) -int snd_rawmidi_info_malloc(snd_rawmidi_info_t **ptr); -void snd_rawmidi_info_free(snd_rawmidi_info_t *obj); -void snd_rawmidi_info_copy(snd_rawmidi_info_t *dst, const snd_rawmidi_info_t *src); -unsigned int snd_rawmidi_info_get_device(const snd_rawmidi_info_t *obj); -unsigned int snd_rawmidi_info_get_subdevice(const snd_rawmidi_info_t *obj); -snd_rawmidi_stream_t snd_rawmidi_info_get_stream(const snd_rawmidi_info_t *obj); -int snd_rawmidi_info_get_card(const snd_rawmidi_info_t *obj); -unsigned int snd_rawmidi_info_get_flags(const snd_rawmidi_info_t *obj); -const char *snd_rawmidi_info_get_id(const snd_rawmidi_info_t *obj); -const char *snd_rawmidi_info_get_name(const snd_rawmidi_info_t *obj); -const char *snd_rawmidi_info_get_subdevice_name(const snd_rawmidi_info_t *obj); -unsigned int snd_rawmidi_info_get_subdevices_count(const snd_rawmidi_info_t *obj); -unsigned int snd_rawmidi_info_get_subdevices_avail(const snd_rawmidi_info_t *obj); -void snd_rawmidi_info_set_device(snd_rawmidi_info_t *obj, unsigned int val); -void snd_rawmidi_info_set_subdevice(snd_rawmidi_info_t *obj, unsigned int val); -void snd_rawmidi_info_set_stream(snd_rawmidi_info_t *obj, snd_rawmidi_stream_t val); -int snd_rawmidi_info(snd_rawmidi_t *rmidi, snd_rawmidi_info_t * info); -size_t snd_rawmidi_params_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_rawmidi_params_t using standard alloca - * \param ptr returned pointer - */ -#define snd_rawmidi_params_alloca(ptr) __snd_alloca(ptr, snd_rawmidi_params) -int snd_rawmidi_params_malloc(snd_rawmidi_params_t **ptr); -void snd_rawmidi_params_free(snd_rawmidi_params_t *obj); -void snd_rawmidi_params_copy(snd_rawmidi_params_t *dst, const snd_rawmidi_params_t *src); -int snd_rawmidi_params_set_buffer_size(snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params, size_t val); -size_t snd_rawmidi_params_get_buffer_size(const snd_rawmidi_params_t *params); -int snd_rawmidi_params_set_avail_min(snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params, size_t val); -size_t snd_rawmidi_params_get_avail_min(const snd_rawmidi_params_t *params); -int snd_rawmidi_params_set_no_active_sensing(snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params, int val); -int snd_rawmidi_params_get_no_active_sensing(const snd_rawmidi_params_t *params); -int snd_rawmidi_params(snd_rawmidi_t *rmidi, snd_rawmidi_params_t * params); -int snd_rawmidi_params_current(snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params); -size_t snd_rawmidi_status_sizeof(void); -/** \hideinitializer - * \brief allocate an invalid #snd_rawmidi_status_t using standard alloca - * \param ptr returned pointer - */ -#define snd_rawmidi_status_alloca(ptr) __snd_alloca(ptr, snd_rawmidi_status) -int snd_rawmidi_status_malloc(snd_rawmidi_status_t **ptr); -void snd_rawmidi_status_free(snd_rawmidi_status_t *obj); -void snd_rawmidi_status_copy(snd_rawmidi_status_t *dst, const snd_rawmidi_status_t *src); -void snd_rawmidi_status_get_tstamp(const snd_rawmidi_status_t *obj, snd_htimestamp_t *ptr); -size_t snd_rawmidi_status_get_avail(const snd_rawmidi_status_t *obj); -size_t snd_rawmidi_status_get_xruns(const snd_rawmidi_status_t *obj); -int snd_rawmidi_status(snd_rawmidi_t *rmidi, snd_rawmidi_status_t * status); -int snd_rawmidi_drain(snd_rawmidi_t *rmidi); -int snd_rawmidi_drop(snd_rawmidi_t *rmidi); -ssize_t snd_rawmidi_write(snd_rawmidi_t *rmidi, const void *buffer, size_t size); -ssize_t snd_rawmidi_read(snd_rawmidi_t *rmidi, void *buffer, size_t size); -const char *snd_rawmidi_name(snd_rawmidi_t *rmidi); -snd_rawmidi_type_t snd_rawmidi_type(snd_rawmidi_t *rmidi); -snd_rawmidi_stream_t snd_rawmidi_stream(snd_rawmidi_t *rawmidi); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __RAWMIDI_H */ - diff --git a/alsa-lib/include/search.h b/alsa-lib/include/search.h deleted file mode 100644 index 91e6210..0000000 --- a/alsa-lib/include/search.h +++ /dev/null @@ -1,177 +0,0 @@ -/* Declarations for System V style searching functions. - Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SEARCH_H -#define _SEARCH_H 1 - -#include <features.h> - -#define __need_size_t -#include <stddef.h> - -__BEGIN_DECLS - -#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED -/* Prototype structure for a linked-list data structure. - This is the type used by the `insque' and `remque' functions. */ - -# ifdef __USE_GNU -struct qelem - { - struct qelem *q_forw; - struct qelem *q_back; - char q_data[1]; - }; -# endif - - -/* Insert ELEM into a doubly-linked list, after PREV. */ -extern void insque __P ((void *__elem, void *__prev)); - -/* Unlink ELEM from the doubly-linked list that it is in. */ -extern void remque __P ((void *__elem)); -#endif - - -/* For use with hsearch(3). */ -#ifndef __COMPAR_FN_T -# define __COMPAR_FN_T -typedef int (*__compar_fn_t) __PMT ((__const __ptr_t, __const __ptr_t)); - -# ifdef __USE_GNU -typedef __compar_fn_t comparison_fn_t; -# endif -#endif - -/* Action which shall be performed in the call the hsearch. */ -typedef enum - { - FIND, - ENTER - } -ACTION; - -typedef struct entry - { - char *key; - void *data; - } -ENTRY; - -/* Opaque type for internal use. */ -struct _ENTRY; - -/* Family of hash table handling functions. The functions also - have reentrant counterparts ending with _r. The non-reentrant - functions all work on a single internal hashing table. */ - -/* Search for entry matching ITEM.key in internal hash table. If - ACTION is `FIND' return found entry or signal error by returning - NULL. If ACTION is `ENTER' replace existing data (if any) with - ITEM.data. */ -extern ENTRY *hsearch __P ((ENTRY __item, ACTION __action)); - -/* Create a new hashing table which will at most contain NEL elements. */ -extern int hcreate __P ((size_t __nel)); - -/* Destroy current internal hashing table. */ -extern void hdestroy __P ((void)); - -#ifdef __USE_GNU -/* Data type for reentrant functions. */ -struct hsearch_data - { - struct _ENTRY *table; - unsigned int size; - unsigned int filled; - }; - -/* Reentrant versions which can handle multiple hashing tables at the - same time. */ -extern int hsearch_r __P ((ENTRY __item, ACTION __action, ENTRY **__retval, - struct hsearch_data *__htab)); -extern int hcreate_r __P ((size_t __nel, struct hsearch_data *__htab)); -extern void hdestroy_r __P ((struct hsearch_data *__htab)); -#endif - - -/* The tsearch routines are very interesting. They make many - assumptions about the compiler. It assumes that the first field - in node must be the "key" field, which points to the datum. - Everything depends on that. */ -/* For tsearch */ -typedef enum -{ - preorder, - postorder, - endorder, - leaf -} -VISIT; - -/* Search for an entry matching the given KEY in the tree pointed to - by *ROOTP and insert a new element if not found. */ -extern void *tsearch __PMT ((__const void *__key, void **__rootp, - __compar_fn_t __compar)); - -/* Search for an entry matching the given KEY in the tree pointed to - by *ROOTP. If no matching entry is available return NULL. */ -extern void *tfind __PMT ((__const void *__key, void *__const *__rootp, - __compar_fn_t __compar)); - -/* Remove the element matching KEY from the tree pointed to by *ROOTP. */ -extern void *tdelete __PMT ((__const void *__key, void **__rootp, - __compar_fn_t __compar)); - -#ifndef __ACTION_FN_T -# define __ACTION_FN_T -typedef void (*__action_fn_t) __PMT ((__const void *__nodep, - VISIT __value, - int __level)); -#endif - -/* Walk through the whole tree and call the ACTION callback for every node - or leaf. */ -extern void twalk __PMT ((__const void *__root, __action_fn_t __action)); - -#ifdef __USE_GNU -/* Callback type for function to free a tree node. If the keys are atomic - data this function should do nothing. */ -typedef void (*__free_fn_t) __PMT ((void *__nodep)); - -/* Destroy the whole tree, call FREEFCT for each node or leaf. */ -extern void tdestroy __PMT ((void *__root, __free_fn_t __freefct)); -#endif - - -/* Perform linear search for KEY by comparing by COMPAR in an array - [BASE,BASE+NMEMB*SIZE). */ -extern void *lfind __PMT ((__const void *__key, __const void *__base, - size_t *__nmemb, size_t __size, - __compar_fn_t __compar)); - -/* Perform linear search for KEY by comparing by COMPAR function in - array [BASE,BASE+NMEMB*SIZE) and insert entry if not found. */ -extern void *lsearch __PMT ((__const void *__key, void *__base, - size_t *__nmemb, size_t __size, - __compar_fn_t __compar)); - -__END_DECLS - -#endif /* search.h */ diff --git a/alsa-lib/include/seq.h b/alsa-lib/include/seq.h deleted file mode 100644 index 9576822..0000000 --- a/alsa-lib/include/seq.h +++ /dev/null @@ -1,737 +0,0 @@ -/** - * \file include/seq.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - */ -/* - * Application interface library for the ALSA driver - * - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_SEQ_H -#define __ALSA_SEQ_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Sequencer MIDI Sequencer - * MIDI Sequencer Interface. - * See \ref seq page for more details. - * \{ - */ - -/** dlsym version for interface entry callback */ -#define SND_SEQ_DLSYM_VERSION _dlsym_seq_001 - -/** Sequencer handle */ -typedef struct _snd_seq snd_seq_t; - -/** - * sequencer opening stream types - */ -#define SND_SEQ_OPEN_OUTPUT 1 /**< open for output (write) */ -#define SND_SEQ_OPEN_INPUT 2 /**< open for input (read) */ -#define SND_SEQ_OPEN_DUPLEX (SND_SEQ_OPEN_OUTPUT|SND_SEQ_OPEN_INPUT) /**< open for both input and output (read/write) */ - -/** - * sequencer opening mode - */ -#define SND_SEQ_NONBLOCK 0x0001 /**< non-blocking mode (flag to open mode) */ - -/** sequencer handle type */ -typedef enum _snd_seq_type { - SND_SEQ_TYPE_HW, /**< hardware */ - SND_SEQ_TYPE_SHM, /**< shared memory (NYI) */ - SND_SEQ_TYPE_INET /**< network (NYI) */ -} snd_seq_type_t; - -/** special client (port) ids */ -#define SND_SEQ_ADDRESS_UNKNOWN 253 /**< unknown source */ -#define SND_SEQ_ADDRESS_SUBSCRIBERS 254 /**< send event to all subscribed ports */ -#define SND_SEQ_ADDRESS_BROADCAST 255 /**< send event to all queues/clients/ports/channels */ - -/** known client numbers */ -#define SND_SEQ_CLIENT_SYSTEM 0 /**< system client */ - -/* - */ -int snd_seq_open(snd_seq_t **handle, const char *name, int streams, int mode); -int snd_seq_open_lconf(snd_seq_t **handle, const char *name, int streams, int mode, snd_config_t *lconf); -const char *snd_seq_name(snd_seq_t *seq); -snd_seq_type_t snd_seq_type(snd_seq_t *seq); -int snd_seq_close(snd_seq_t *handle); -int snd_seq_poll_descriptors_count(snd_seq_t *handle, short events); -int snd_seq_poll_descriptors(snd_seq_t *handle, struct pollfd *pfds, unsigned int space, short events); -int snd_seq_poll_descriptors_revents(snd_seq_t *seq, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -int snd_seq_nonblock(snd_seq_t *handle, int nonblock); -int snd_seq_client_id(snd_seq_t *handle); - -size_t snd_seq_get_output_buffer_size(snd_seq_t *handle); -size_t snd_seq_get_input_buffer_size(snd_seq_t *handle); -int snd_seq_set_output_buffer_size(snd_seq_t *handle, size_t size); -int snd_seq_set_input_buffer_size(snd_seq_t *handle, size_t size); - -/** system information container */ -typedef struct _snd_seq_system_info snd_seq_system_info_t; - -size_t snd_seq_system_info_sizeof(void); -/** allocate a #snd_seq_system_info_t container on stack */ -#define snd_seq_system_info_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_system_info) -int snd_seq_system_info_malloc(snd_seq_system_info_t **ptr); -void snd_seq_system_info_free(snd_seq_system_info_t *ptr); -void snd_seq_system_info_copy(snd_seq_system_info_t *dst, const snd_seq_system_info_t *src); - -int snd_seq_system_info_get_queues(const snd_seq_system_info_t *info); -int snd_seq_system_info_get_clients(const snd_seq_system_info_t *info); -int snd_seq_system_info_get_ports(const snd_seq_system_info_t *info); -int snd_seq_system_info_get_channels(const snd_seq_system_info_t *info); -int snd_seq_system_info_get_cur_clients(const snd_seq_system_info_t *info); -int snd_seq_system_info_get_cur_queues(const snd_seq_system_info_t *info); - -int snd_seq_system_info(snd_seq_t *handle, snd_seq_system_info_t *info); - -/** \} */ - - -/** - * \defgroup SeqClient Sequencer Client Interface - * Sequencer Client Interface - * \ingroup Sequencer - * \{ - */ - -/** client information container */ -typedef struct _snd_seq_client_info snd_seq_client_info_t; - -/** client types */ -typedef enum snd_seq_client_type { - SND_SEQ_USER_CLIENT = 1, /**< user client */ - SND_SEQ_KERNEL_CLIENT = 2 /**< kernel client */ -} snd_seq_client_type_t; - -size_t snd_seq_client_info_sizeof(void); -/** allocate a #snd_seq_client_info_t container on stack */ -#define snd_seq_client_info_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_client_info) -int snd_seq_client_info_malloc(snd_seq_client_info_t **ptr); -void snd_seq_client_info_free(snd_seq_client_info_t *ptr); -void snd_seq_client_info_copy(snd_seq_client_info_t *dst, const snd_seq_client_info_t *src); - -int snd_seq_client_info_get_client(const snd_seq_client_info_t *info); -snd_seq_client_type_t snd_seq_client_info_get_type(const snd_seq_client_info_t *info); -const char *snd_seq_client_info_get_name(snd_seq_client_info_t *info); -int snd_seq_client_info_get_broadcast_filter(const snd_seq_client_info_t *info); -int snd_seq_client_info_get_error_bounce(const snd_seq_client_info_t *info); -const unsigned char *snd_seq_client_info_get_event_filter(const snd_seq_client_info_t *info); -int snd_seq_client_info_get_num_ports(const snd_seq_client_info_t *info); -int snd_seq_client_info_get_event_lost(const snd_seq_client_info_t *info); - -void snd_seq_client_info_set_client(snd_seq_client_info_t *info, int client); -void snd_seq_client_info_set_name(snd_seq_client_info_t *info, const char *name); -void snd_seq_client_info_set_broadcast_filter(snd_seq_client_info_t *info, int val); -void snd_seq_client_info_set_error_bounce(snd_seq_client_info_t *info, int val); -void snd_seq_client_info_set_event_filter(snd_seq_client_info_t *info, unsigned char *filter); - -void snd_seq_client_info_event_filter_clear(snd_seq_client_info_t *info); -void snd_seq_client_info_event_filter_add(snd_seq_client_info_t *info, int event_type); -void snd_seq_client_info_event_filter_del(snd_seq_client_info_t *info, int event_type); -int snd_seq_client_info_event_filter_check(snd_seq_client_info_t *info, int event_type); - -int snd_seq_get_client_info(snd_seq_t *handle, snd_seq_client_info_t *info); -int snd_seq_get_any_client_info(snd_seq_t *handle, int client, snd_seq_client_info_t *info); -int snd_seq_set_client_info(snd_seq_t *handle, snd_seq_client_info_t *info); -int snd_seq_query_next_client(snd_seq_t *handle, snd_seq_client_info_t *info); - -/* - */ - -/** client pool information container */ -typedef struct _snd_seq_client_pool snd_seq_client_pool_t; - -size_t snd_seq_client_pool_sizeof(void); -/** allocate a #snd_seq_client_pool_t container on stack */ -#define snd_seq_client_pool_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_client_pool) -int snd_seq_client_pool_malloc(snd_seq_client_pool_t **ptr); -void snd_seq_client_pool_free(snd_seq_client_pool_t *ptr); -void snd_seq_client_pool_copy(snd_seq_client_pool_t *dst, const snd_seq_client_pool_t *src); - -int snd_seq_client_pool_get_client(const snd_seq_client_pool_t *info); -size_t snd_seq_client_pool_get_output_pool(const snd_seq_client_pool_t *info); -size_t snd_seq_client_pool_get_input_pool(const snd_seq_client_pool_t *info); -size_t snd_seq_client_pool_get_output_room(const snd_seq_client_pool_t *info); -size_t snd_seq_client_pool_get_output_free(const snd_seq_client_pool_t *info); -size_t snd_seq_client_pool_get_input_free(const snd_seq_client_pool_t *info); -void snd_seq_client_pool_set_output_pool(snd_seq_client_pool_t *info, size_t size); -void snd_seq_client_pool_set_input_pool(snd_seq_client_pool_t *info, size_t size); -void snd_seq_client_pool_set_output_room(snd_seq_client_pool_t *info, size_t size); - -int snd_seq_get_client_pool(snd_seq_t *handle, snd_seq_client_pool_t *info); -int snd_seq_set_client_pool(snd_seq_t *handle, snd_seq_client_pool_t *info); - - -/** \} */ - - -/** - * \defgroup SeqPort Sequencer Port Interface - * Sequencer Port Interface - * \ingroup Sequencer - * \{ - */ - -/** port information container */ -typedef struct _snd_seq_port_info snd_seq_port_info_t; - -/** known port numbers */ -#define SND_SEQ_PORT_SYSTEM_TIMER 0 /**< system timer port */ -#define SND_SEQ_PORT_SYSTEM_ANNOUNCE 1 /**< system announce port */ - -/** port capabilities (32 bits) */ -#define SND_SEQ_PORT_CAP_READ (1<<0) /**< readable from this port */ -#define SND_SEQ_PORT_CAP_WRITE (1<<1) /**< writable to this port */ - -#define SND_SEQ_PORT_CAP_SYNC_READ (1<<2) /**< allow read subscriptions */ -#define SND_SEQ_PORT_CAP_SYNC_WRITE (1<<3) /**< allow write subscriptions */ - -#define SND_SEQ_PORT_CAP_DUPLEX (1<<4) /**< allow read/write duplex */ - -#define SND_SEQ_PORT_CAP_SUBS_READ (1<<5) /**< allow read subscription */ -#define SND_SEQ_PORT_CAP_SUBS_WRITE (1<<6) /**< allow write subscription */ -#define SND_SEQ_PORT_CAP_NO_EXPORT (1<<7) /**< routing not allowed */ - -/* port type */ -/** Messages sent from/to this port have device-specific semantics. */ -#define SND_SEQ_PORT_TYPE_SPECIFIC (1<<0) -/** This port understands MIDI messages. */ -#define SND_SEQ_PORT_TYPE_MIDI_GENERIC (1<<1) -/** This port is compatible with the General MIDI specification. */ -#define SND_SEQ_PORT_TYPE_MIDI_GM (1<<2) -/** This port is compatible with the Roland GS standard. */ -#define SND_SEQ_PORT_TYPE_MIDI_GS (1<<3) -/** This port is compatible with the Yamaha XG specification. */ -#define SND_SEQ_PORT_TYPE_MIDI_XG (1<<4) -/** This port is compatible with the Roland MT-32. */ -#define SND_SEQ_PORT_TYPE_MIDI_MT32 (1<<5) -/** This port is compatible with the General MIDI 2 specification. */ -#define SND_SEQ_PORT_TYPE_MIDI_GM2 (1<<6) -/** This port understands SND_SEQ_EVENT_SAMPLE_xxx messages - (these are not MIDI messages). */ -#define SND_SEQ_PORT_TYPE_SYNTH (1<<10) -/** Instruments can be downloaded to this port - (with SND_SEQ_EVENT_INSTR_xxx messages sent directly). */ -#define SND_SEQ_PORT_TYPE_DIRECT_SAMPLE (1<<11) -/** Instruments can be downloaded to this port - (with SND_SEQ_EVENT_INSTR_xxx messages sent directly or through a queue). */ -#define SND_SEQ_PORT_TYPE_SAMPLE (1<<12) -/** This port is implemented in hardware. */ -#define SND_SEQ_PORT_TYPE_HARDWARE (1<<16) -/** This port is implemented in software. */ -#define SND_SEQ_PORT_TYPE_SOFTWARE (1<<17) -/** Messages sent to this port will generate sounds. */ -#define SND_SEQ_PORT_TYPE_SYNTHESIZER (1<<18) -/** This port may connect to other devices - (whose characteristics are not known). */ -#define SND_SEQ_PORT_TYPE_PORT (1<<19) -/** This port belongs to an application, such as a sequencer or editor. */ -#define SND_SEQ_PORT_TYPE_APPLICATION (1<<20) - - -size_t snd_seq_port_info_sizeof(void); -/** allocate a #snd_seq_port_info_t container on stack */ -#define snd_seq_port_info_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_port_info) -int snd_seq_port_info_malloc(snd_seq_port_info_t **ptr); -void snd_seq_port_info_free(snd_seq_port_info_t *ptr); -void snd_seq_port_info_copy(snd_seq_port_info_t *dst, const snd_seq_port_info_t *src); - -int snd_seq_port_info_get_client(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_port(const snd_seq_port_info_t *info); -const snd_seq_addr_t *snd_seq_port_info_get_addr(const snd_seq_port_info_t *info); -const char *snd_seq_port_info_get_name(const snd_seq_port_info_t *info); -unsigned int snd_seq_port_info_get_capability(const snd_seq_port_info_t *info); -unsigned int snd_seq_port_info_get_type(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_midi_channels(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_midi_voices(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_synth_voices(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_read_use(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_write_use(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_port_specified(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_timestamping(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_timestamp_real(const snd_seq_port_info_t *info); -int snd_seq_port_info_get_timestamp_queue(const snd_seq_port_info_t *info); - -void snd_seq_port_info_set_client(snd_seq_port_info_t *info, int client); -void snd_seq_port_info_set_port(snd_seq_port_info_t *info, int port); -void snd_seq_port_info_set_addr(snd_seq_port_info_t *info, const snd_seq_addr_t *addr); -void snd_seq_port_info_set_name(snd_seq_port_info_t *info, const char *name); -void snd_seq_port_info_set_capability(snd_seq_port_info_t *info, unsigned int capability); -void snd_seq_port_info_set_type(snd_seq_port_info_t *info, unsigned int type); -void snd_seq_port_info_set_midi_channels(snd_seq_port_info_t *info, int channels); -void snd_seq_port_info_set_midi_voices(snd_seq_port_info_t *info, int voices); -void snd_seq_port_info_set_synth_voices(snd_seq_port_info_t *info, int voices); -void snd_seq_port_info_set_port_specified(snd_seq_port_info_t *info, int val); -void snd_seq_port_info_set_timestamping(snd_seq_port_info_t *info, int enable); -void snd_seq_port_info_set_timestamp_real(snd_seq_port_info_t *info, int realtime); -void snd_seq_port_info_set_timestamp_queue(snd_seq_port_info_t *info, int queue); - -int snd_seq_create_port(snd_seq_t *handle, snd_seq_port_info_t *info); -int snd_seq_delete_port(snd_seq_t *handle, int port); -int snd_seq_get_port_info(snd_seq_t *handle, int port, snd_seq_port_info_t *info); -int snd_seq_get_any_port_info(snd_seq_t *handle, int client, int port, snd_seq_port_info_t *info); -int snd_seq_set_port_info(snd_seq_t *handle, int port, snd_seq_port_info_t *info); -int snd_seq_query_next_port(snd_seq_t *handle, snd_seq_port_info_t *info); - -/** \} */ - - -/** - * \defgroup SeqSubscribe Sequencer Port Subscription - * Sequencer Port Subscription - * \ingroup Sequencer - * \{ - */ - -/** port subscription container */ -typedef struct _snd_seq_port_subscribe snd_seq_port_subscribe_t; - -size_t snd_seq_port_subscribe_sizeof(void); -/** allocate a #snd_seq_port_subscribe_t container on stack */ -#define snd_seq_port_subscribe_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_port_subscribe) -int snd_seq_port_subscribe_malloc(snd_seq_port_subscribe_t **ptr); -void snd_seq_port_subscribe_free(snd_seq_port_subscribe_t *ptr); -void snd_seq_port_subscribe_copy(snd_seq_port_subscribe_t *dst, const snd_seq_port_subscribe_t *src); - -const snd_seq_addr_t *snd_seq_port_subscribe_get_sender(const snd_seq_port_subscribe_t *info); -const snd_seq_addr_t *snd_seq_port_subscribe_get_dest(const snd_seq_port_subscribe_t *info); -int snd_seq_port_subscribe_get_queue(const snd_seq_port_subscribe_t *info); -int snd_seq_port_subscribe_get_exclusive(const snd_seq_port_subscribe_t *info); -int snd_seq_port_subscribe_get_time_update(const snd_seq_port_subscribe_t *info); -int snd_seq_port_subscribe_get_time_real(const snd_seq_port_subscribe_t *info); - -void snd_seq_port_subscribe_set_sender(snd_seq_port_subscribe_t *info, const snd_seq_addr_t *addr); -void snd_seq_port_subscribe_set_dest(snd_seq_port_subscribe_t *info, const snd_seq_addr_t *addr); -void snd_seq_port_subscribe_set_queue(snd_seq_port_subscribe_t *info, int q); -void snd_seq_port_subscribe_set_exclusive(snd_seq_port_subscribe_t *info, int val); -void snd_seq_port_subscribe_set_time_update(snd_seq_port_subscribe_t *info, int val); -void snd_seq_port_subscribe_set_time_real(snd_seq_port_subscribe_t *info, int val); - -int snd_seq_get_port_subscription(snd_seq_t *handle, snd_seq_port_subscribe_t *sub); -int snd_seq_subscribe_port(snd_seq_t *handle, snd_seq_port_subscribe_t *sub); -int snd_seq_unsubscribe_port(snd_seq_t *handle, snd_seq_port_subscribe_t *sub); - -/* - */ - -/** subscription query container */ -typedef struct _snd_seq_query_subscribe snd_seq_query_subscribe_t; - -/** type of query subscription */ -typedef enum { - SND_SEQ_QUERY_SUBS_READ, /**< query read subscriptions */ - SND_SEQ_QUERY_SUBS_WRITE /**< query write subscriptions */ -} snd_seq_query_subs_type_t; - -size_t snd_seq_query_subscribe_sizeof(void); -/** allocate a #snd_seq_query_subscribe_t container on stack */ -#define snd_seq_query_subscribe_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_query_subscribe) -int snd_seq_query_subscribe_malloc(snd_seq_query_subscribe_t **ptr); -void snd_seq_query_subscribe_free(snd_seq_query_subscribe_t *ptr); -void snd_seq_query_subscribe_copy(snd_seq_query_subscribe_t *dst, const snd_seq_query_subscribe_t *src); - -int snd_seq_query_subscribe_get_client(const snd_seq_query_subscribe_t *info); -int snd_seq_query_subscribe_get_port(const snd_seq_query_subscribe_t *info); -const snd_seq_addr_t *snd_seq_query_subscribe_get_root(const snd_seq_query_subscribe_t *info); -snd_seq_query_subs_type_t snd_seq_query_subscribe_get_type(const snd_seq_query_subscribe_t *info); -int snd_seq_query_subscribe_get_index(const snd_seq_query_subscribe_t *info); -int snd_seq_query_subscribe_get_num_subs(const snd_seq_query_subscribe_t *info); -const snd_seq_addr_t *snd_seq_query_subscribe_get_addr(const snd_seq_query_subscribe_t *info); -int snd_seq_query_subscribe_get_queue(const snd_seq_query_subscribe_t *info); -int snd_seq_query_subscribe_get_exclusive(const snd_seq_query_subscribe_t *info); -int snd_seq_query_subscribe_get_time_update(const snd_seq_query_subscribe_t *info); -int snd_seq_query_subscribe_get_time_real(const snd_seq_query_subscribe_t *info); - -void snd_seq_query_subscribe_set_client(snd_seq_query_subscribe_t *info, int client); -void snd_seq_query_subscribe_set_port(snd_seq_query_subscribe_t *info, int port); -void snd_seq_query_subscribe_set_root(snd_seq_query_subscribe_t *info, const snd_seq_addr_t *addr); -void snd_seq_query_subscribe_set_type(snd_seq_query_subscribe_t *info, snd_seq_query_subs_type_t type); -void snd_seq_query_subscribe_set_index(snd_seq_query_subscribe_t *info, int _index); - -int snd_seq_query_port_subscribers(snd_seq_t *seq, snd_seq_query_subscribe_t * subs); - -/** \} */ - - -/** - * \defgroup SeqQueue Sequencer Queue Interface - * Sequencer Queue Interface - * \ingroup Sequencer - * \{ - */ - -/** queue information container */ -typedef struct _snd_seq_queue_info snd_seq_queue_info_t; -/** queue status container */ -typedef struct _snd_seq_queue_status snd_seq_queue_status_t; -/** queue tempo container */ -typedef struct _snd_seq_queue_tempo snd_seq_queue_tempo_t; -/** queue timer information container */ -typedef struct _snd_seq_queue_timer snd_seq_queue_timer_t; - -/** special queue ids */ -#define SND_SEQ_QUEUE_DIRECT 253 /**< direct dispatch */ - -size_t snd_seq_queue_info_sizeof(void); -/** allocate a #snd_seq_queue_info_t container on stack */ -#define snd_seq_queue_info_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_queue_info) -int snd_seq_queue_info_malloc(snd_seq_queue_info_t **ptr); -void snd_seq_queue_info_free(snd_seq_queue_info_t *ptr); -void snd_seq_queue_info_copy(snd_seq_queue_info_t *dst, const snd_seq_queue_info_t *src); - -int snd_seq_queue_info_get_queue(const snd_seq_queue_info_t *info); -const char *snd_seq_queue_info_get_name(const snd_seq_queue_info_t *info); -int snd_seq_queue_info_get_owner(const snd_seq_queue_info_t *info); -int snd_seq_queue_info_get_locked(const snd_seq_queue_info_t *info); -unsigned int snd_seq_queue_info_get_flags(const snd_seq_queue_info_t *info); - -void snd_seq_queue_info_set_name(snd_seq_queue_info_t *info, const char *name); -void snd_seq_queue_info_set_owner(snd_seq_queue_info_t *info, int owner); -void snd_seq_queue_info_set_locked(snd_seq_queue_info_t *info, int locked); -void snd_seq_queue_info_set_flags(snd_seq_queue_info_t *info, unsigned int flags); - -int snd_seq_create_queue(snd_seq_t *seq, snd_seq_queue_info_t *info); -int snd_seq_alloc_named_queue(snd_seq_t *seq, const char *name); -int snd_seq_alloc_queue(snd_seq_t *handle); -int snd_seq_free_queue(snd_seq_t *handle, int q); -int snd_seq_get_queue_info(snd_seq_t *seq, int q, snd_seq_queue_info_t *info); -int snd_seq_set_queue_info(snd_seq_t *seq, int q, snd_seq_queue_info_t *info); -int snd_seq_query_named_queue(snd_seq_t *seq, const char *name); - -int snd_seq_get_queue_usage(snd_seq_t *handle, int q); -int snd_seq_set_queue_usage(snd_seq_t *handle, int q, int used); - -/* - */ -size_t snd_seq_queue_status_sizeof(void); -/** allocate a #snd_seq_queue_status_t container on stack */ -#define snd_seq_queue_status_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_queue_status) -int snd_seq_queue_status_malloc(snd_seq_queue_status_t **ptr); -void snd_seq_queue_status_free(snd_seq_queue_status_t *ptr); -void snd_seq_queue_status_copy(snd_seq_queue_status_t *dst, const snd_seq_queue_status_t *src); - -int snd_seq_queue_status_get_queue(const snd_seq_queue_status_t *info); -int snd_seq_queue_status_get_events(const snd_seq_queue_status_t *info); -snd_seq_tick_time_t snd_seq_queue_status_get_tick_time(const snd_seq_queue_status_t *info); -const snd_seq_real_time_t *snd_seq_queue_status_get_real_time(const snd_seq_queue_status_t *info); -unsigned int snd_seq_queue_status_get_status(const snd_seq_queue_status_t *info); - -int snd_seq_get_queue_status(snd_seq_t *handle, int q, snd_seq_queue_status_t *status); - -/* - */ -size_t snd_seq_queue_tempo_sizeof(void); -/** allocate a #snd_seq_queue_tempo_t container on stack */ -#define snd_seq_queue_tempo_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_queue_tempo) -int snd_seq_queue_tempo_malloc(snd_seq_queue_tempo_t **ptr); -void snd_seq_queue_tempo_free(snd_seq_queue_tempo_t *ptr); -void snd_seq_queue_tempo_copy(snd_seq_queue_tempo_t *dst, const snd_seq_queue_tempo_t *src); - -int snd_seq_queue_tempo_get_queue(const snd_seq_queue_tempo_t *info); -unsigned int snd_seq_queue_tempo_get_tempo(const snd_seq_queue_tempo_t *info); -int snd_seq_queue_tempo_get_ppq(const snd_seq_queue_tempo_t *info); -unsigned int snd_seq_queue_tempo_get_skew(const snd_seq_queue_tempo_t *info); -unsigned int snd_seq_queue_tempo_get_skew_base(const snd_seq_queue_tempo_t *info); -void snd_seq_queue_tempo_set_tempo(snd_seq_queue_tempo_t *info, unsigned int tempo); -void snd_seq_queue_tempo_set_ppq(snd_seq_queue_tempo_t *info, int ppq); -void snd_seq_queue_tempo_set_skew(snd_seq_queue_tempo_t *info, unsigned int skew); -void snd_seq_queue_tempo_set_skew_base(snd_seq_queue_tempo_t *info, unsigned int base); - -int snd_seq_get_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo); -int snd_seq_set_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo); - -/* - */ - -/** sequencer timer sources */ -typedef enum { - SND_SEQ_TIMER_ALSA = 0, /* ALSA timer */ - SND_SEQ_TIMER_MIDI_CLOCK = 1, /* Midi Clock (CLOCK event) */ - SND_SEQ_TIMER_MIDI_TICK = 2 /* Midi Timer Tick (TICK event */ -} snd_seq_queue_timer_type_t; - -size_t snd_seq_queue_timer_sizeof(void); -/** allocate a #snd_seq_queue_timer_t container on stack */ -#define snd_seq_queue_timer_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_queue_timer) -int snd_seq_queue_timer_malloc(snd_seq_queue_timer_t **ptr); -void snd_seq_queue_timer_free(snd_seq_queue_timer_t *ptr); -void snd_seq_queue_timer_copy(snd_seq_queue_timer_t *dst, const snd_seq_queue_timer_t *src); - -int snd_seq_queue_timer_get_queue(const snd_seq_queue_timer_t *info); -snd_seq_queue_timer_type_t snd_seq_queue_timer_get_type(const snd_seq_queue_timer_t *info); -const snd_timer_id_t *snd_seq_queue_timer_get_id(const snd_seq_queue_timer_t *info); -unsigned int snd_seq_queue_timer_get_resolution(const snd_seq_queue_timer_t *info); - -void snd_seq_queue_timer_set_type(snd_seq_queue_timer_t *info, snd_seq_queue_timer_type_t type); -void snd_seq_queue_timer_set_id(snd_seq_queue_timer_t *info, const snd_timer_id_t *id); -void snd_seq_queue_timer_set_resolution(snd_seq_queue_timer_t *info, unsigned int resolution); - -int snd_seq_get_queue_timer(snd_seq_t *handle, int q, snd_seq_queue_timer_t *timer); -int snd_seq_set_queue_timer(snd_seq_t *handle, int q, snd_seq_queue_timer_t *timer); - -/** \} */ - -/** - * \defgroup SeqEvent Sequencer Event API - * Sequencer Event API - * \ingroup Sequencer - * \{ - */ - -int snd_seq_free_event(snd_seq_event_t *ev); -ssize_t snd_seq_event_length(snd_seq_event_t *ev); -int snd_seq_event_output(snd_seq_t *handle, snd_seq_event_t *ev); -int snd_seq_event_output_buffer(snd_seq_t *handle, snd_seq_event_t *ev); -int snd_seq_event_output_direct(snd_seq_t *handle, snd_seq_event_t *ev); -int snd_seq_event_input(snd_seq_t *handle, snd_seq_event_t **ev); -int snd_seq_event_input_pending(snd_seq_t *seq, int fetch_sequencer); -int snd_seq_drain_output(snd_seq_t *handle); -int snd_seq_event_output_pending(snd_seq_t *seq); -int snd_seq_extract_output(snd_seq_t *handle, snd_seq_event_t **ev); -int snd_seq_drop_output(snd_seq_t *handle); -int snd_seq_drop_output_buffer(snd_seq_t *handle); -int snd_seq_drop_input(snd_seq_t *handle); -int snd_seq_drop_input_buffer(snd_seq_t *handle); - -/** event removal conditionals */ -typedef struct _snd_seq_remove_events snd_seq_remove_events_t; - -/** Remove conditional flags */ -#define SND_SEQ_REMOVE_INPUT (1<<0) /**< Flush input queues */ -#define SND_SEQ_REMOVE_OUTPUT (1<<1) /**< Flush output queues */ -#define SND_SEQ_REMOVE_DEST (1<<2) /**< Restrict by destination q:client:port */ -#define SND_SEQ_REMOVE_DEST_CHANNEL (1<<3) /**< Restrict by channel */ -#define SND_SEQ_REMOVE_TIME_BEFORE (1<<4) /**< Restrict to before time */ -#define SND_SEQ_REMOVE_TIME_AFTER (1<<5) /**< Restrict to time or after */ -#define SND_SEQ_REMOVE_TIME_TICK (1<<6) /**< Time is in ticks */ -#define SND_SEQ_REMOVE_EVENT_TYPE (1<<7) /**< Restrict to event type */ -#define SND_SEQ_REMOVE_IGNORE_OFF (1<<8) /**< Do not flush off events */ -#define SND_SEQ_REMOVE_TAG_MATCH (1<<9) /**< Restrict to events with given tag */ - -size_t snd_seq_remove_events_sizeof(void); -/** allocate a #snd_seq_remove_events_t container on stack */ -#define snd_seq_remove_events_alloca(ptr) \ - __snd_alloca(ptr, snd_seq_remove_events) -int snd_seq_remove_events_malloc(snd_seq_remove_events_t **ptr); -void snd_seq_remove_events_free(snd_seq_remove_events_t *ptr); -void snd_seq_remove_events_copy(snd_seq_remove_events_t *dst, const snd_seq_remove_events_t *src); - -unsigned int snd_seq_remove_events_get_condition(const snd_seq_remove_events_t *info); -int snd_seq_remove_events_get_queue(const snd_seq_remove_events_t *info); -const snd_seq_timestamp_t *snd_seq_remove_events_get_time(const snd_seq_remove_events_t *info); -const snd_seq_addr_t *snd_seq_remove_events_get_dest(const snd_seq_remove_events_t *info); -int snd_seq_remove_events_get_channel(const snd_seq_remove_events_t *info); -int snd_seq_remove_events_get_event_type(const snd_seq_remove_events_t *info); -int snd_seq_remove_events_get_tag(const snd_seq_remove_events_t *info); - -void snd_seq_remove_events_set_condition(snd_seq_remove_events_t *info, unsigned int flags); -void snd_seq_remove_events_set_queue(snd_seq_remove_events_t *info, int queue); -void snd_seq_remove_events_set_time(snd_seq_remove_events_t *info, const snd_seq_timestamp_t *time); -void snd_seq_remove_events_set_dest(snd_seq_remove_events_t *info, const snd_seq_addr_t *addr); -void snd_seq_remove_events_set_channel(snd_seq_remove_events_t *info, int channel); -void snd_seq_remove_events_set_event_type(snd_seq_remove_events_t *info, int type); -void snd_seq_remove_events_set_tag(snd_seq_remove_events_t *info, int tag); - -int snd_seq_remove_events(snd_seq_t *handle, snd_seq_remove_events_t *info); - -/** \} */ - -/** - * \defgroup SeqMisc Sequencer Miscellaneous - * Sequencer Miscellaneous - * \ingroup Sequencer - * \{ - */ - -void snd_seq_set_bit(int nr, void *array); -void snd_seq_unset_bit(int nr, void *array); -int snd_seq_change_bit(int nr, void *array); -int snd_seq_get_bit(int nr, void *array); - -/** \} */ - - -/** - * \defgroup SeqEvType Sequencer Event Type Checks - * Sequencer Event Type Checks - * \ingroup Sequencer - * \{ - */ - -/* event type macros */ -enum { - SND_SEQ_EVFLG_RESULT, - SND_SEQ_EVFLG_NOTE, - SND_SEQ_EVFLG_CONTROL, - SND_SEQ_EVFLG_QUEUE, - SND_SEQ_EVFLG_SYSTEM, - SND_SEQ_EVFLG_MESSAGE, - SND_SEQ_EVFLG_CONNECTION, - SND_SEQ_EVFLG_SAMPLE, - SND_SEQ_EVFLG_USERS, - SND_SEQ_EVFLG_INSTR, - SND_SEQ_EVFLG_QUOTE, - SND_SEQ_EVFLG_NONE, - SND_SEQ_EVFLG_RAW, - SND_SEQ_EVFLG_FIXED, - SND_SEQ_EVFLG_VARIABLE, - SND_SEQ_EVFLG_VARUSR -}; - -enum { - SND_SEQ_EVFLG_NOTE_ONEARG, - SND_SEQ_EVFLG_NOTE_TWOARG -}; - -enum { - SND_SEQ_EVFLG_QUEUE_NOARG, - SND_SEQ_EVFLG_QUEUE_TICK, - SND_SEQ_EVFLG_QUEUE_TIME, - SND_SEQ_EVFLG_QUEUE_VALUE -}; - -/** - * Exported event type table - * - * This table is referred by snd_seq_ev_is_xxx. - */ -extern const unsigned int snd_seq_event_types[]; - -#define _SND_SEQ_TYPE(x) (1<<(x)) /**< master type - 24bit */ -#define _SND_SEQ_TYPE_OPT(x) ((x)<<24) /**< optional type - 8bit */ - -/** check the event type */ -#define snd_seq_type_check(ev,x) (snd_seq_event_types[(ev)->type] & _SND_SEQ_TYPE(x)) - -/** event type check: result events */ -#define snd_seq_ev_is_result_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_RESULT) -/** event type check: note events */ -#define snd_seq_ev_is_note_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_NOTE) -/** event type check: control events */ -#define snd_seq_ev_is_control_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_CONTROL) -/** event type check: channel specific events */ -#define snd_seq_ev_is_channel_type(ev) \ - (snd_seq_event_types[(ev)->type] & (_SND_SEQ_TYPE(SND_SEQ_EVFLG_NOTE) | _SND_SEQ_TYPE(SND_SEQ_EVFLG_CONTROL))) - -/** event type check: queue control events */ -#define snd_seq_ev_is_queue_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_QUEUE) -/** event type check: system status messages */ -#define snd_seq_ev_is_message_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_MESSAGE) -/** event type check: system status messages */ -#define snd_seq_ev_is_subscribe_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_CONNECTION) -/** event type check: sample messages */ -#define snd_seq_ev_is_sample_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_SAMPLE) -/** event type check: user-defined messages */ -#define snd_seq_ev_is_user_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_USERS) -/** event type check: instrument layer events */ -#define snd_seq_ev_is_instr_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_INSTR) -/** event type check: fixed length events */ -#define snd_seq_ev_is_fixed_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_FIXED) -/** event type check: variable length events */ -#define snd_seq_ev_is_variable_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_VARIABLE) -/** event type check: user pointer events */ -#define snd_seq_ev_is_varusr_type(ev) \ - snd_seq_type_check(ev, SND_SEQ_EVFLG_VARUSR) -/** event type check: reserved for kernel */ -#define snd_seq_ev_is_reserved(ev) \ - (! snd_seq_event_types[(ev)->type]) - -/** - * macros to check event flags - */ -/** prior events */ -#define snd_seq_ev_is_prior(ev) \ - (((ev)->flags & SND_SEQ_PRIORITY_MASK) == SND_SEQ_PRIORITY_HIGH) - -/** get the data length type */ -#define snd_seq_ev_length_type(ev) \ - ((ev)->flags & SND_SEQ_EVENT_LENGTH_MASK) -/** fixed length events */ -#define snd_seq_ev_is_fixed(ev) \ - (snd_seq_ev_length_type(ev) == SND_SEQ_EVENT_LENGTH_FIXED) -/** variable length events */ -#define snd_seq_ev_is_variable(ev) \ - (snd_seq_ev_length_type(ev) == SND_SEQ_EVENT_LENGTH_VARIABLE) -/** variable length on user-space */ -#define snd_seq_ev_is_varusr(ev) \ - (snd_seq_ev_length_type(ev) == SND_SEQ_EVENT_LENGTH_VARUSR) - -/** time-stamp type */ -#define snd_seq_ev_timestamp_type(ev) \ - ((ev)->flags & SND_SEQ_TIME_STAMP_MASK) -/** event is in tick time */ -#define snd_seq_ev_is_tick(ev) \ - (snd_seq_ev_timestamp_type(ev) == SND_SEQ_TIME_STAMP_TICK) -/** event is in real-time */ -#define snd_seq_ev_is_real(ev) \ - (snd_seq_ev_timestamp_type(ev) == SND_SEQ_TIME_STAMP_REAL) - -/** time-mode type */ -#define snd_seq_ev_timemode_type(ev) \ - ((ev)->flags & SND_SEQ_TIME_MODE_MASK) -/** scheduled in absolute time */ -#define snd_seq_ev_is_abstime(ev) \ - (snd_seq_ev_timemode_type(ev) == SND_SEQ_TIME_MODE_ABS) -/** scheduled in relative time */ -#define snd_seq_ev_is_reltime(ev) \ - (snd_seq_ev_timemode_type(ev) == SND_SEQ_TIME_MODE_REL) - -/** direct dispatched events */ -#define snd_seq_ev_is_direct(ev) \ - ((ev)->queue == SND_SEQ_QUEUE_DIRECT) - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_SEQ_H */ - diff --git a/alsa-lib/include/seq_event.h b/alsa-lib/include/seq_event.h deleted file mode 100644 index 583f1d0..0000000 --- a/alsa-lib/include/seq_event.h +++ /dev/null @@ -1,319 +0,0 @@ -/** - * \file include/seq_event.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_SEQ_EVENT_H -#define __ALSA_SEQ_EVENT_H - -/** - * \defgroup SeqEvents Sequencer Event Definitions - * Sequencer Event Definitions - * \ingroup Sequencer - * \{ - */ - -/** - * Sequencer event data type - */ -typedef unsigned char snd_seq_event_type_t; - -/** Sequencer event type */ -enum snd_seq_event_type { - /** system status; event data type = #snd_seq_result_t */ - SND_SEQ_EVENT_SYSTEM = 0, - /** returned result status; event data type = #snd_seq_result_t */ - SND_SEQ_EVENT_RESULT, - - /** note on and off with duration; event data type = #snd_seq_ev_note_t */ - SND_SEQ_EVENT_NOTE = 5, - /** note on; event data type = #snd_seq_ev_note_t */ - SND_SEQ_EVENT_NOTEON, - /** note off; event data type = #snd_seq_ev_note_t */ - SND_SEQ_EVENT_NOTEOFF, - /** key pressure change (aftertouch); event data type = #snd_seq_ev_note_t */ - SND_SEQ_EVENT_KEYPRESS, - - /** controller; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_CONTROLLER = 10, - /** program change; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_PGMCHANGE, - /** channel pressure; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_CHANPRESS, - /** pitchwheel; event data type = #snd_seq_ev_ctrl_t; data is from -8192 to 8191) */ - SND_SEQ_EVENT_PITCHBEND, - /** 14 bit controller value; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_CONTROL14, - /** 14 bit NRPN; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_NONREGPARAM, - /** 14 bit RPN; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_REGPARAM, - - /** SPP with LSB and MSB values; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_SONGPOS = 20, - /** Song Select with song ID number; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_SONGSEL, - /** midi time code quarter frame; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_QFRAME, - /** SMF Time Signature event; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_TIMESIGN, - /** SMF Key Signature event; event data type = #snd_seq_ev_ctrl_t */ - SND_SEQ_EVENT_KEYSIGN, - - /** MIDI Real Time Start message; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_START = 30, - /** MIDI Real Time Continue message; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_CONTINUE, - /** MIDI Real Time Stop message; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_STOP, - /** Set tick queue position; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_SETPOS_TICK, - /** Set real-time queue position; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_SETPOS_TIME, - /** (SMF) Tempo event; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_TEMPO, - /** MIDI Real Time Clock message; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_CLOCK, - /** MIDI Real Time Tick message; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_TICK, - /** Queue timer skew; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_QUEUE_SKEW, - /** Sync position changed; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_SYNC_POS, - - /** Tune request; event data type = none */ - SND_SEQ_EVENT_TUNE_REQUEST = 40, - /** Reset to power-on state; event data type = none */ - SND_SEQ_EVENT_RESET, - /** Active sensing event; event data type = none */ - SND_SEQ_EVENT_SENSING, - - /** Echo-back event; event data type = any type */ - SND_SEQ_EVENT_ECHO = 50, - /** OSS emulation raw event; event data type = any type */ - SND_SEQ_EVENT_OSS, - - /** New client has connected; event data type = #snd_seq_addr_t */ - SND_SEQ_EVENT_CLIENT_START = 60, - /** Client has left the system; event data type = #snd_seq_addr_t */ - SND_SEQ_EVENT_CLIENT_EXIT, - /** Client status/info has changed; event data type = #snd_seq_addr_t */ - SND_SEQ_EVENT_CLIENT_CHANGE, - /** New port was created; event data type = #snd_seq_addr_t */ - SND_SEQ_EVENT_PORT_START, - /** Port was deleted from system; event data type = #snd_seq_addr_t */ - SND_SEQ_EVENT_PORT_EXIT, - /** Port status/info has changed; event data type = #snd_seq_addr_t */ - SND_SEQ_EVENT_PORT_CHANGE, - - /** Ports connected; event data type = #snd_seq_connect_t */ - SND_SEQ_EVENT_PORT_SUBSCRIBED, - /** Ports disconnected; event data type = #snd_seq_connect_t */ - SND_SEQ_EVENT_PORT_UNSUBSCRIBED, - - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR0 = 90, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR1, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR2, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR3, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR4, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR5, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR6, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR7, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR8, - /** user-defined event; event data type = any (fixed size) */ - SND_SEQ_EVENT_USR9, - - /** system exclusive data (variable length); event data type = #snd_seq_ev_ext_t */ - SND_SEQ_EVENT_SYSEX = 130, - /** error event; event data type = #snd_seq_ev_ext_t */ - SND_SEQ_EVENT_BOUNCE, - /** reserved for user apps; event data type = #snd_seq_ev_ext_t */ - SND_SEQ_EVENT_USR_VAR0 = 135, - /** reserved for user apps; event data type = #snd_seq_ev_ext_t */ - SND_SEQ_EVENT_USR_VAR1, - /** reserved for user apps; event data type = #snd_seq_ev_ext_t */ - SND_SEQ_EVENT_USR_VAR2, - /** reserved for user apps; event data type = #snd_seq_ev_ext_t */ - SND_SEQ_EVENT_USR_VAR3, - /** reserved for user apps; event data type = #snd_seq_ev_ext_t */ - SND_SEQ_EVENT_USR_VAR4, - - /** NOP; ignored in any case */ - SND_SEQ_EVENT_NONE = 255 -}; - - -/** Sequencer event address */ -typedef struct snd_seq_addr { - unsigned char client; /**< Client id */ - unsigned char port; /**< Port id */ -} snd_seq_addr_t; - -/** Connection (subscription) between ports */ -typedef struct snd_seq_connect { - snd_seq_addr_t sender; /**< sender address */ - snd_seq_addr_t dest; /**< destination address */ -} snd_seq_connect_t; - - -/** Real-time data record */ -typedef struct snd_seq_real_time { - unsigned int tv_sec; /**< seconds */ - unsigned int tv_nsec; /**< nanoseconds */ -} snd_seq_real_time_t; - -/** (MIDI) Tick-time data record */ -typedef unsigned int snd_seq_tick_time_t; - -/** unioned time stamp */ -typedef union snd_seq_timestamp { - snd_seq_tick_time_t tick; /**< tick-time */ - struct snd_seq_real_time time; /**< real-time */ -} snd_seq_timestamp_t; - - -/** - * Event mode flags - * - * NOTE: only 8 bits available! - */ -#define SND_SEQ_TIME_STAMP_TICK (0<<0) /**< timestamp in clock ticks */ -#define SND_SEQ_TIME_STAMP_REAL (1<<0) /**< timestamp in real time */ -#define SND_SEQ_TIME_STAMP_MASK (1<<0) /**< mask for timestamp bits */ - -#define SND_SEQ_TIME_MODE_ABS (0<<1) /**< absolute timestamp */ -#define SND_SEQ_TIME_MODE_REL (1<<1) /**< relative to current time */ -#define SND_SEQ_TIME_MODE_MASK (1<<1) /**< mask for time mode bits */ - -#define SND_SEQ_EVENT_LENGTH_FIXED (0<<2) /**< fixed event size */ -#define SND_SEQ_EVENT_LENGTH_VARIABLE (1<<2) /**< variable event size */ -#define SND_SEQ_EVENT_LENGTH_VARUSR (2<<2) /**< variable event size - user memory space */ -#define SND_SEQ_EVENT_LENGTH_MASK (3<<2) /**< mask for event length bits */ - -#define SND_SEQ_PRIORITY_NORMAL (0<<4) /**< normal priority */ -#define SND_SEQ_PRIORITY_HIGH (1<<4) /**< event should be processed before others */ -#define SND_SEQ_PRIORITY_MASK (1<<4) /**< mask for priority bits */ - - -/** Note event */ -typedef struct snd_seq_ev_note { - unsigned char channel; /**< channel number */ - unsigned char note; /**< note */ - unsigned char velocity; /**< velocity */ - unsigned char off_velocity; /**< note-off velocity; only for #SND_SEQ_EVENT_NOTE */ - unsigned int duration; /**< duration until note-off; only for #SND_SEQ_EVENT_NOTE */ -} snd_seq_ev_note_t; - -/** Controller event */ -typedef struct snd_seq_ev_ctrl { - unsigned char channel; /**< channel number */ - unsigned char unused[3]; /**< reserved */ - unsigned int param; /**< control parameter */ - signed int value; /**< control value */ -} snd_seq_ev_ctrl_t; - -/** generic set of bytes (12x8 bit) */ -typedef struct snd_seq_ev_raw8 { - unsigned char d[12]; /**< 8 bit value */ -} snd_seq_ev_raw8_t; - -/** generic set of integers (3x32 bit) */ -typedef struct snd_seq_ev_raw32 { - unsigned int d[3]; /**< 32 bit value */ -} snd_seq_ev_raw32_t; - -/** external stored data */ -typedef struct snd_seq_ev_ext { - unsigned int len; /**< length of data */ - void *ptr; /**< pointer to data (note: can be 64-bit) */ -} __attribute__((packed)) snd_seq_ev_ext_t; - -/** Result events */ -typedef struct snd_seq_result { - int event; /**< processed event type */ - int result; /**< status */ -} snd_seq_result_t; - -/** Queue skew values */ -typedef struct snd_seq_queue_skew { - unsigned int value; /**< skew value */ - unsigned int base; /**< skew base */ -} snd_seq_queue_skew_t; - -/** queue timer control */ -typedef struct snd_seq_ev_queue_control { - unsigned char queue; /**< affected queue */ - unsigned char unused[3]; /**< reserved */ - union { - signed int value; /**< affected value (e.g. tempo) */ - snd_seq_timestamp_t time; /**< time */ - unsigned int position; /**< sync position */ - snd_seq_queue_skew_t skew; /**< queue skew */ - unsigned int d32[2]; /**< any data */ - unsigned char d8[8]; /**< any data */ - } param; /**< data value union */ -} snd_seq_ev_queue_control_t; - - -/** Sequencer event */ -typedef struct snd_seq_event { - snd_seq_event_type_t type; /**< event type */ - unsigned char flags; /**< event flags */ - unsigned char tag; /**< tag */ - - unsigned char queue; /**< schedule queue */ - snd_seq_timestamp_t time; /**< schedule time */ - - snd_seq_addr_t source; /**< source address */ - snd_seq_addr_t dest; /**< destination address */ - - union { - snd_seq_ev_note_t note; /**< note information */ - snd_seq_ev_ctrl_t control; /**< MIDI control information */ - snd_seq_ev_raw8_t raw8; /**< raw8 data */ - snd_seq_ev_raw32_t raw32; /**< raw32 data */ - snd_seq_ev_ext_t ext; /**< external data */ - snd_seq_ev_queue_control_t queue; /**< queue control */ - snd_seq_timestamp_t time; /**< timestamp */ - snd_seq_addr_t addr; /**< address */ - snd_seq_connect_t connect; /**< connect information */ - snd_seq_result_t result; /**< operation result code */ - } data; /**< event data... */ -} snd_seq_event_t; - - -/** \} */ - -#endif /* __ALSA_SEQ_EVENT_H */ - diff --git a/alsa-lib/include/seq_midi_event.h b/alsa-lib/include/seq_midi_event.h deleted file mode 100644 index 9b8ee59..0000000 --- a/alsa-lib/include/seq_midi_event.h +++ /dev/null @@ -1,65 +0,0 @@ -/** - * \file include/seq_midi_event.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_SEQ_MIDI_EVENT_H -#define __ALSA_SEQ_MIDI_EVENT_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup MIDI_Event Sequencer event <-> MIDI byte stream coder - * \ingroup Sequencer - * Sequencer event <-> MIDI byte stream coder - * \{ - */ - -/** container for sequencer midi event parsers */ -typedef struct snd_midi_event snd_midi_event_t; - -int snd_midi_event_new(size_t bufsize, snd_midi_event_t **rdev); -int snd_midi_event_resize_buffer(snd_midi_event_t *dev, size_t bufsize); -void snd_midi_event_free(snd_midi_event_t *dev); -void snd_midi_event_init(snd_midi_event_t *dev); -void snd_midi_event_reset_encode(snd_midi_event_t *dev); -void snd_midi_event_reset_decode(snd_midi_event_t *dev); -void snd_midi_event_no_status(snd_midi_event_t *dev, int on); -/* encode from byte stream - return number of written bytes if success */ -long snd_midi_event_encode(snd_midi_event_t *dev, const unsigned char *buf, long count, snd_seq_event_t *ev); -int snd_midi_event_encode_byte(snd_midi_event_t *dev, int c, snd_seq_event_t *ev); -/* decode from event to bytes - return number of written bytes if success */ -long snd_midi_event_decode(snd_midi_event_t *dev, unsigned char *buf, long count, const snd_seq_event_t *ev); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_SEQ_MIDI_EVENT_H */ - diff --git a/alsa-lib/include/seqmid.h b/alsa-lib/include/seqmid.h deleted file mode 100644 index 68069b2..0000000 --- a/alsa-lib/include/seqmid.h +++ /dev/null @@ -1,490 +0,0 @@ -/** - * \file include/seqmid.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_SEQMID_H -#define __ALSA_SEQMID_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup SeqMiddle Sequencer Middle Level Interface - * Sequencer Middle Level Interface - * \ingroup Sequencer - * \{ - */ - -/** - * \brief initialize event record - * \param ev event record pointer - * - * This macro clears the given event record pointer to the default status. - */ -#define snd_seq_ev_clear(ev) \ - memset(ev, 0, sizeof(snd_seq_event_t)) - -/** - * \brief set the tag for given event - * \param ev event record - * \param t event tag - * - * This macro sets the tag to the given event record. - */ -#define snd_seq_ev_set_tag(ev,t) \ - ((ev)->tag = (t)) - -/** - * \brief set the explicit destination - * \param ev event record - * \param c destination client id - * \param p destination port id - * - * This macro sets the client and port id numbers to the given event record. - * - * \sa snd_seq_ev_set_subs() - */ -#define snd_seq_ev_set_dest(ev,c,p) \ - ((ev)->dest.client = (c), (ev)->dest.port = (p)) - -/** - * \brief set broadcasting to subscribers - * \param ev event record - * - * This macro sets the destination as the subscribers. - * - * \sa snd_seq_ev_set_dest() - */ -#define snd_seq_ev_set_subs(ev) \ - ((ev)->dest.client = SND_SEQ_ADDRESS_SUBSCRIBERS,\ - (ev)->dest.port = SND_SEQ_ADDRESS_UNKNOWN) - -/** - * \brief set broadcasting to all clients/ports - * \param ev event record - * - * This macro sets the destination as the broadcasting. - * - * \sa snd_seq_ev_set_dest() - */ -#define snd_seq_ev_set_broadcast(ev) \ - ((ev)->dest.client = SND_SEQ_ADDRESS_BROADCAST,\ - (ev)->dest.port = SND_SEQ_ADDRESS_BROADCAST) - -/** - * \brief set the source port - * \param ev event record - * \param p source port id - * - * This macro sets the source port id number. - */ -#define snd_seq_ev_set_source(ev,p) \ - ((ev)->source.port = (p)) - -/** - * \brief set direct passing mode (without queued) - * \param ev event instance - * - * This macro sets the event to the direct passing mode - * to be delivered immediately without queueing. - * - * \sa snd_seq_ev_schedule_tick(), snd_seq_ev_schedule_real() - */ -#define snd_seq_ev_set_direct(ev) \ - ((ev)->queue = SND_SEQ_QUEUE_DIRECT) - -/** - * \brief set tick-scheduling mode on queue - * \param ev event instance - * \param q queue id to schedule - * \param relative relative time-stamp if non-zero - * \param ttick tick time-stamp to be delivered - * - * This macro sets the scheduling of the event in the - * MIDI tick mode. - * - * \sa snd_seq_ev_schedule_real(), snd_seq_ev_set_direct() - */ -#define snd_seq_ev_schedule_tick(ev, q, relative, ttick) \ - ((ev)->flags &= ~(SND_SEQ_TIME_STAMP_MASK | SND_SEQ_TIME_MODE_MASK),\ - (ev)->flags |= SND_SEQ_TIME_STAMP_TICK,\ - (ev)->flags |= (relative) ? SND_SEQ_TIME_MODE_REL : SND_SEQ_TIME_MODE_ABS,\ - (ev)->time.tick = (ttick),\ - (ev)->queue = (q)) - -/** - * \brief set real-time-scheduling mode on queue - * \param ev event instance - * \param q queue id to schedule - * \param relative relative time-stamp if non-zero - * \param rtime time-stamp to be delivered - * - * This macro sets the scheduling of the event in the - * realtime mode. - * - * \sa snd_seq_ev_schedule_tick(), snd_seq_ev_set_direct() - */ -#define snd_seq_ev_schedule_real(ev, q, relative, rtime) \ - ((ev)->flags &= ~(SND_SEQ_TIME_STAMP_MASK | SND_SEQ_TIME_MODE_MASK),\ - (ev)->flags |= SND_SEQ_TIME_STAMP_REAL,\ - (ev)->flags |= (relative) ? SND_SEQ_TIME_MODE_REL : SND_SEQ_TIME_MODE_ABS,\ - (ev)->time.time = *(rtime),\ - (ev)->queue = (q)) - -/** - * \brief set event priority - * \param ev event instance - * \param high_prior 1 for high priority mode - */ -#define snd_seq_ev_set_priority(ev, high_prior) \ - ((ev)->flags &= ~SND_SEQ_PRIORITY_MASK,\ - (ev)->flags |= (high_prior) ? SND_SEQ_PRIORITY_HIGH : SND_SEQ_PRIORITY_NORMAL) - -/** - * \brief set fixed data - * \param ev event instance - * - * Sets the event length mode as fixed size. - * - * \sa snd_seq_ev_set_variable(), snd_seq_ev_set_varusr() - */ -#define snd_seq_ev_set_fixed(ev) \ - ((ev)->flags &= ~SND_SEQ_EVENT_LENGTH_MASK,\ - (ev)->flags |= SND_SEQ_EVENT_LENGTH_FIXED) - -/** - * \brief set variable data - * \param ev event instance - * \param datalen length of the external data - * \param dataptr pointer of the external data - * - * Sets the event length mode as variable length and stores the data. - * - * \sa snd_seq_ev_set_fixed(), snd_seq_ev_set_varusr() - */ -#define snd_seq_ev_set_variable(ev, datalen, dataptr) \ - ((ev)->flags &= ~SND_SEQ_EVENT_LENGTH_MASK,\ - (ev)->flags |= SND_SEQ_EVENT_LENGTH_VARIABLE,\ - (ev)->data.ext.len = (datalen),\ - (ev)->data.ext.ptr = (dataptr)) - -/** - * \brief set varusr data - * \param ev event instance - * \param datalen length of the external data - * \param dataptr pointer of the external data - * - * Sets the event length mode as variable user-space data and stores the data. - * - * \sa snd_seq_ev_set_fixed(), snd_seq_ev_set_variable() - */ -#define snd_seq_ev_set_varusr(ev, datalen, dataptr) \ - ((ev)->flags &= ~SND_SEQ_EVENT_LENGTH_MASK,\ - (ev)->flags |= SND_SEQ_EVENT_LENGTH_VARUSR,\ - (ev)->data.ext.len = (datalen),\ - (ev)->data.ext.ptr = (dataptr)) - -/** - * \brief set queue controls - * \param ev event record - * \param typ event type - * \param q queue id - * \param val control value - */ -#define snd_seq_ev_set_queue_control(ev, typ, q, val) \ - ((ev)->type = (typ),\ - snd_seq_ev_set_dest(ev, SND_SEQ_CLIENT_SYSTEM, SND_SEQ_PORT_SYSTEM_TIMER),\ - (ev)->data.queue.queue = (q),\ - (ev)->data.queue.param.value = (val)) - -/** - * \brief set the start queue event - * \param ev event record - * \param q queue id to start - * - * \sa snd_seq_ev_set_queue_stop(), snd_seq_ev_set_queue_continue() - */ -#define snd_seq_ev_set_queue_start(ev, q) \ - snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_START, q, 0) - -/** - * \brief set the stop queue event - * \param ev event record - * \param q queue id to stop - * - * \sa snd_seq_ev_set_queue_start(), snd_seq_ev_set_queue_continue() - */ -#define snd_seq_ev_set_queue_stop(ev, q) \ - snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_STOP, q, 0) - -/** - * \brief set the stop queue event - * \param ev event record - * \param q queue id to continue - * - * \sa snd_seq_ev_set_queue_start(), snd_seq_ev_set_queue_stop() - */ -#define snd_seq_ev_set_queue_continue(ev, q) \ - snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_CONTINUE, q, 0) - -/** - * \brief set the stop queue event - * \param ev event record - * \param q queue id to change tempo - * \param val the new tempo value - */ -#define snd_seq_ev_set_queue_tempo(ev, q, val) \ - snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_TEMPO, q, val) - -/** - * \brief set the real-time position of a queue - * \param ev event record - * \param q queue id to change tempo - * \param rtime the new real-time pointer - */ -#define snd_seq_ev_set_queue_pos_real(ev, q, rtime) \ - ((ev)->type = SND_SEQ_EVENT_SETPOS_TIME,\ - snd_seq_ev_set_dest(ev, SND_SEQ_CLIENT_SYSTEM, SND_SEQ_PORT_SYSTEM_TIMER),\ - (ev)->data.queue.queue = (q),\ - (ev)->data.queue.param.time.time = *(rtime)) - -/** - * \brief set the tick-time position of a queue - * \param ev event record - * \param q queue id to change tempo - * \param ttime the new tick-time - */ -#define snd_seq_ev_set_queue_pos_tick(ev, q, ttime) \ - ((ev)->type = SND_SEQ_EVENT_SETPOS_TICK,\ - snd_seq_ev_set_dest(ev, SND_SEQ_CLIENT_SYSTEM, SND_SEQ_PORT_SYSTEM_TIMER),\ - (ev)->data.queue.queue = (q),\ - (ev)->data.queue.param.time.tick = (ttime)) - -/* set and send a queue control event */ -int snd_seq_control_queue(snd_seq_t *seq, int q, int type, int value, snd_seq_event_t *ev); - -/** - * \brief start the specified queue - * \param seq sequencer handle - * \param q queue id to start - * \param ev optional event record (see #snd_seq_control_queue) - */ -#define snd_seq_start_queue(seq, q, ev) \ - snd_seq_control_queue(seq, q, SND_SEQ_EVENT_START, 0, ev) - -/** - * \brief stop the specified queue - * \param seq sequencer handle - * \param q queue id to stop - * \param ev optional event record (see #snd_seq_control_queue) - */ -#define snd_seq_stop_queue(seq, q, ev) \ - snd_seq_control_queue(seq, q, SND_SEQ_EVENT_STOP, 0, ev) - -/** - * \brief continue the specified queue - * \param seq sequencer handle - * \param q queue id to continue - * \param ev optional event record (see #snd_seq_control_queue) - */ -#define snd_seq_continue_queue(seq, q, ev) \ - snd_seq_control_queue(seq, q, SND_SEQ_EVENT_CONTINUE, 0, ev) - -/** - * \brief change the tempo of the specified queue - * \param seq sequencer handle - * \param q queue id - * \param tempo the new tempo value - * \param ev optional event record (see #snd_seq_control_queue) - */ -#define snd_seq_change_queue_tempo(seq, q, tempo, ev) \ - snd_seq_control_queue(seq, q, SND_SEQ_EVENT_TEMPO, tempo, ev) - -/* create a port - simple version - return the port number */ -int snd_seq_create_simple_port(snd_seq_t *seq, const char *name, - unsigned int caps, unsigned int type); -/* delete the port */ -int snd_seq_delete_simple_port(snd_seq_t *seq, int port); - -/* simple subscription between this port and another port - (w/o exclusive & time conversion) - */ -int snd_seq_connect_from(snd_seq_t *seq, int my_port, int src_client, int src_port); -int snd_seq_connect_to(snd_seq_t *seq, int my_port, int dest_client, int dest_port); -int snd_seq_disconnect_from(snd_seq_t *seq, int my_port, int src_client, int src_port); -int snd_seq_disconnect_to(snd_seq_t *seq, int my_port, int dest_client, int dest_port); - -/* - * set client information - */ -int snd_seq_set_client_name(snd_seq_t *seq, const char *name); -int snd_seq_set_client_event_filter(snd_seq_t *seq, int event_type); -int snd_seq_set_client_pool_output(snd_seq_t *seq, size_t size); -int snd_seq_set_client_pool_output_room(snd_seq_t *seq, size_t size); -int snd_seq_set_client_pool_input(snd_seq_t *seq, size_t size); -/* sync output queue */ -int snd_seq_sync_output_queue(snd_seq_t *seq); - -/* - * parse the given string and get the sequencer address - */ -int snd_seq_parse_address(snd_seq_t *seq, snd_seq_addr_t *addr, const char *str); - -/* - * reset client input/output pool - */ -int snd_seq_reset_pool_output(snd_seq_t *seq); -int snd_seq_reset_pool_input(snd_seq_t *seq); - -/** - * \brief set note event - * \param ev event record - * \param ch channel number - * \param key note key - * \param vel velocity - * \param dur duration (in tick or msec) - */ -#define snd_seq_ev_set_note(ev, ch, key, vel, dur) \ - ((ev)->type = SND_SEQ_EVENT_NOTE,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.note.channel = (ch),\ - (ev)->data.note.note = (key),\ - (ev)->data.note.velocity = (vel),\ - (ev)->data.note.duration = (dur)) - -/** - * \brief set note-on event - * \param ev event record - * \param ch channel number - * \param key note key - * \param vel velocity - */ -#define snd_seq_ev_set_noteon(ev, ch, key, vel) \ - ((ev)->type = SND_SEQ_EVENT_NOTEON,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.note.channel = (ch),\ - (ev)->data.note.note = (key),\ - (ev)->data.note.velocity = (vel)) - -/** - * \brief set note-off event - * \param ev event record - * \param ch channel number - * \param key note key - * \param vel velocity - */ -#define snd_seq_ev_set_noteoff(ev, ch, key, vel) \ - ((ev)->type = SND_SEQ_EVENT_NOTEOFF,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.note.channel = (ch),\ - (ev)->data.note.note = (key),\ - (ev)->data.note.velocity = (vel)) - -/** - * \brief set key-pressure event - * \param ev event record - * \param ch channel number - * \param key note key - * \param vel velocity - */ -#define snd_seq_ev_set_keypress(ev,ch,key,vel) \ - ((ev)->type = SND_SEQ_EVENT_KEYPRESS,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.note.channel = (ch),\ - (ev)->data.note.note = (key),\ - (ev)->data.note.velocity = (vel)) - -/** - * \brief set MIDI controller event - * \param ev event record - * \param ch channel number - * \param cc controller number - * \param val control value - */ -#define snd_seq_ev_set_controller(ev,ch,cc,val) \ - ((ev)->type = SND_SEQ_EVENT_CONTROLLER,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.control.channel = (ch),\ - (ev)->data.control.param = (cc),\ - (ev)->data.control.value = (val)) - -/** - * \brief set program change event - * \param ev event record - * \param ch channel number - * \param val program number - */ -#define snd_seq_ev_set_pgmchange(ev,ch,val) \ - ((ev)->type = SND_SEQ_EVENT_PGMCHANGE,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.control.channel = (ch),\ - (ev)->data.control.value = (val)) - -/** - * \brief set pitch-bend event - * \param ev event record - * \param ch channel number - * \param val pitch bend; zero centered from -8192 to 8191 - */ -#define snd_seq_ev_set_pitchbend(ev,ch,val) \ - ((ev)->type = SND_SEQ_EVENT_PITCHBEND,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.control.channel = (ch),\ - (ev)->data.control.value = (val)) - -/** - * \brief set channel pressure event - * \param ev event record - * \param ch channel number - * \param val channel pressure value - */ -#define snd_seq_ev_set_chanpress(ev,ch,val) \ - ((ev)->type = SND_SEQ_EVENT_CHANPRESS,\ - snd_seq_ev_set_fixed(ev),\ - (ev)->data.control.channel = (ch),\ - (ev)->data.control.value = (val)) - -/** - * \brief set sysex event - * \param ev event record - * \param datalen length of sysex data - * \param dataptr sysex data pointer - * - * the sysex data must contain the start byte 0xf0 and the end byte 0xf7. - */ -#define snd_seq_ev_set_sysex(ev,datalen,dataptr) \ - ((ev)->type = SND_SEQ_EVENT_SYSEX,\ - snd_seq_ev_set_variable(ev, datalen, dataptr)) - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALSA_SEQMID_H */ - diff --git a/alsa-lib/include/sound/Makefile.am b/alsa-lib/include/sound/Makefile.am deleted file mode 100644 index 67d4447..0000000 --- a/alsa-lib/include/sound/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -alsasoundincludedir = ${includedir}/alsa/sound - -alsasoundinclude_HEADERS = asound_fm.h hdsp.h sb16_csp.h sscape_ioctl.h emu10k1.h \ - type_compat.h - -noinst_HEADERS = asound.h asoundef.h asequencer.h diff --git a/alsa-lib/include/sound/Makefile.in b/alsa-lib/include/sound/Makefile.in deleted file mode 100644 index 12a0c5d..0000000 --- a/alsa-lib/include/sound/Makefile.in +++ /dev/null @@ -1,497 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/sound -DIST_COMMON = $(alsasoundinclude_HEADERS) $(noinst_HEADERS) \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/include/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(alsasoundincludedir)" -alsasoundincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(alsasoundinclude_HEADERS) $(noinst_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALSA_CONFIG_DIR = @ALSA_CONFIG_DIR@ -ALSA_DEPLIBS = @ALSA_DEPLIBS@ -ALSA_HSEARCH_R_FALSE = @ALSA_HSEARCH_R_FALSE@ -ALSA_HSEARCH_R_TRUE = @ALSA_HSEARCH_R_TRUE@ -ALSA_PLUGIN_DIR = @ALSA_PLUGIN_DIR@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_ALISP_FALSE = @BUILD_ALISP_FALSE@ -BUILD_ALISP_TRUE = @BUILD_ALISP_TRUE@ -BUILD_CTL_PLUGIN_EXT_FALSE = @BUILD_CTL_PLUGIN_EXT_FALSE@ -BUILD_CTL_PLUGIN_EXT_TRUE = @BUILD_CTL_PLUGIN_EXT_TRUE@ -BUILD_CTL_PLUGIN_FALSE = @BUILD_CTL_PLUGIN_FALSE@ -BUILD_CTL_PLUGIN_SHM_FALSE = @BUILD_CTL_PLUGIN_SHM_FALSE@ -BUILD_CTL_PLUGIN_SHM_TRUE = @BUILD_CTL_PLUGIN_SHM_TRUE@ -BUILD_CTL_PLUGIN_TRUE = @BUILD_CTL_PLUGIN_TRUE@ -BUILD_HWDEP_FALSE = @BUILD_HWDEP_FALSE@ -BUILD_HWDEP_TRUE = @BUILD_HWDEP_TRUE@ -BUILD_MIXER_FALSE = @BUILD_MIXER_FALSE@ -BUILD_MIXER_TRUE = @BUILD_MIXER_TRUE@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -BUILD_PCM_FALSE = @BUILD_PCM_FALSE@ -BUILD_PCM_PLUGIN_ADPCM_FALSE = @BUILD_PCM_PLUGIN_ADPCM_FALSE@ -BUILD_PCM_PLUGIN_ADPCM_TRUE = @BUILD_PCM_PLUGIN_ADPCM_TRUE@ -BUILD_PCM_PLUGIN_ALAW_FALSE = @BUILD_PCM_PLUGIN_ALAW_FALSE@ -BUILD_PCM_PLUGIN_ALAW_TRUE = @BUILD_PCM_PLUGIN_ALAW_TRUE@ -BUILD_PCM_PLUGIN_ASYM_FALSE = @BUILD_PCM_PLUGIN_ASYM_FALSE@ -BUILD_PCM_PLUGIN_ASYM_TRUE = @BUILD_PCM_PLUGIN_ASYM_TRUE@ -BUILD_PCM_PLUGIN_COPY_FALSE = @BUILD_PCM_PLUGIN_COPY_FALSE@ -BUILD_PCM_PLUGIN_COPY_TRUE = @BUILD_PCM_PLUGIN_COPY_TRUE@ -BUILD_PCM_PLUGIN_DMIX_FALSE = @BUILD_PCM_PLUGIN_DMIX_FALSE@ -BUILD_PCM_PLUGIN_DMIX_TRUE = @BUILD_PCM_PLUGIN_DMIX_TRUE@ -BUILD_PCM_PLUGIN_DSHARE_FALSE = @BUILD_PCM_PLUGIN_DSHARE_FALSE@ -BUILD_PCM_PLUGIN_DSHARE_TRUE = @BUILD_PCM_PLUGIN_DSHARE_TRUE@ -BUILD_PCM_PLUGIN_DSNOOP_FALSE = @BUILD_PCM_PLUGIN_DSNOOP_FALSE@ -BUILD_PCM_PLUGIN_DSNOOP_TRUE = @BUILD_PCM_PLUGIN_DSNOOP_TRUE@ -BUILD_PCM_PLUGIN_EMPTY_FALSE = @BUILD_PCM_PLUGIN_EMPTY_FALSE@ -BUILD_PCM_PLUGIN_EMPTY_TRUE = @BUILD_PCM_PLUGIN_EMPTY_TRUE@ -BUILD_PCM_PLUGIN_EXTPLUG_FALSE = @BUILD_PCM_PLUGIN_EXTPLUG_FALSE@ -BUILD_PCM_PLUGIN_EXTPLUG_TRUE = @BUILD_PCM_PLUGIN_EXTPLUG_TRUE@ -BUILD_PCM_PLUGIN_FALSE = @BUILD_PCM_PLUGIN_FALSE@ -BUILD_PCM_PLUGIN_FILE_FALSE = @BUILD_PCM_PLUGIN_FILE_FALSE@ -BUILD_PCM_PLUGIN_FILE_TRUE = @BUILD_PCM_PLUGIN_FILE_TRUE@ -BUILD_PCM_PLUGIN_HOOKS_FALSE = @BUILD_PCM_PLUGIN_HOOKS_FALSE@ -BUILD_PCM_PLUGIN_HOOKS_TRUE = @BUILD_PCM_PLUGIN_HOOKS_TRUE@ -BUILD_PCM_PLUGIN_IEC958_FALSE = @BUILD_PCM_PLUGIN_IEC958_FALSE@ -BUILD_PCM_PLUGIN_IEC958_TRUE = @BUILD_PCM_PLUGIN_IEC958_TRUE@ -BUILD_PCM_PLUGIN_IOPLUG_FALSE = @BUILD_PCM_PLUGIN_IOPLUG_FALSE@ -BUILD_PCM_PLUGIN_IOPLUG_TRUE = @BUILD_PCM_PLUGIN_IOPLUG_TRUE@ -BUILD_PCM_PLUGIN_LADSPA_FALSE = @BUILD_PCM_PLUGIN_LADSPA_FALSE@ -BUILD_PCM_PLUGIN_LADSPA_TRUE = @BUILD_PCM_PLUGIN_LADSPA_TRUE@ -BUILD_PCM_PLUGIN_LFLOAT_FALSE = @BUILD_PCM_PLUGIN_LFLOAT_FALSE@ -BUILD_PCM_PLUGIN_LFLOAT_TRUE = @BUILD_PCM_PLUGIN_LFLOAT_TRUE@ -BUILD_PCM_PLUGIN_LINEAR_FALSE = @BUILD_PCM_PLUGIN_LINEAR_FALSE@ -BUILD_PCM_PLUGIN_LINEAR_TRUE = @BUILD_PCM_PLUGIN_LINEAR_TRUE@ -BUILD_PCM_PLUGIN_METER_FALSE = @BUILD_PCM_PLUGIN_METER_FALSE@ -BUILD_PCM_PLUGIN_METER_TRUE = @BUILD_PCM_PLUGIN_METER_TRUE@ -BUILD_PCM_PLUGIN_MMAP_EMUL_FALSE = @BUILD_PCM_PLUGIN_MMAP_EMUL_FALSE@ -BUILD_PCM_PLUGIN_MMAP_EMUL_TRUE = @BUILD_PCM_PLUGIN_MMAP_EMUL_TRUE@ -BUILD_PCM_PLUGIN_MULAW_FALSE = @BUILD_PCM_PLUGIN_MULAW_FALSE@ -BUILD_PCM_PLUGIN_MULAW_TRUE = @BUILD_PCM_PLUGIN_MULAW_TRUE@ -BUILD_PCM_PLUGIN_MULTI_FALSE = @BUILD_PCM_PLUGIN_MULTI_FALSE@ -BUILD_PCM_PLUGIN_MULTI_TRUE = @BUILD_PCM_PLUGIN_MULTI_TRUE@ -BUILD_PCM_PLUGIN_NULL_FALSE = @BUILD_PCM_PLUGIN_NULL_FALSE@ -BUILD_PCM_PLUGIN_NULL_TRUE = @BUILD_PCM_PLUGIN_NULL_TRUE@ -BUILD_PCM_PLUGIN_PLUG_FALSE = @BUILD_PCM_PLUGIN_PLUG_FALSE@ -BUILD_PCM_PLUGIN_PLUG_TRUE = @BUILD_PCM_PLUGIN_PLUG_TRUE@ -BUILD_PCM_PLUGIN_RATE_FALSE = @BUILD_PCM_PLUGIN_RATE_FALSE@ -BUILD_PCM_PLUGIN_RATE_TRUE = @BUILD_PCM_PLUGIN_RATE_TRUE@ -BUILD_PCM_PLUGIN_ROUTE_FALSE = @BUILD_PCM_PLUGIN_ROUTE_FALSE@ -BUILD_PCM_PLUGIN_ROUTE_TRUE = @BUILD_PCM_PLUGIN_ROUTE_TRUE@ -BUILD_PCM_PLUGIN_SHARE_FALSE = @BUILD_PCM_PLUGIN_SHARE_FALSE@ -BUILD_PCM_PLUGIN_SHARE_TRUE = @BUILD_PCM_PLUGIN_SHARE_TRUE@ -BUILD_PCM_PLUGIN_SHM_FALSE = @BUILD_PCM_PLUGIN_SHM_FALSE@ -BUILD_PCM_PLUGIN_SHM_TRUE = @BUILD_PCM_PLUGIN_SHM_TRUE@ -BUILD_PCM_PLUGIN_SOFTVOL_FALSE = @BUILD_PCM_PLUGIN_SOFTVOL_FALSE@ -BUILD_PCM_PLUGIN_SOFTVOL_TRUE = @BUILD_PCM_PLUGIN_SOFTVOL_TRUE@ -BUILD_PCM_PLUGIN_TRUE = @BUILD_PCM_PLUGIN_TRUE@ -BUILD_PCM_TRUE = @BUILD_PCM_TRUE@ -BUILD_PYTHON_FALSE = @BUILD_PYTHON_FALSE@ -BUILD_PYTHON_TRUE = @BUILD_PYTHON_TRUE@ -BUILD_RAWMIDI_FALSE = @BUILD_RAWMIDI_FALSE@ -BUILD_RAWMIDI_TRUE = @BUILD_RAWMIDI_TRUE@ -BUILD_SEQ_FALSE = @BUILD_SEQ_FALSE@ -BUILD_SEQ_TRUE = @BUILD_SEQ_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_M4_FALSE = @INSTALL_M4_FALSE@ -INSTALL_M4_TRUE = @INSTALL_M4_TRUE@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -KEEP_OLD_SYMBOLS_FALSE = @KEEP_OLD_SYMBOLS_FALSE@ -KEEP_OLD_SYMBOLS_TRUE = @KEEP_OLD_SYMBOLS_TRUE@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_VERSION_INFO = @LIBTOOL_VERSION_INFO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_INCLUDES = @PYTHON_INCLUDES@ -PYTHON_LIBS = @PYTHON_LIBS@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SND_LIB_EXTRAVER = @SND_LIB_EXTRAVER@ -SND_LIB_MAJOR = @SND_LIB_MAJOR@ -SND_LIB_MINOR = @SND_LIB_MINOR@ -SND_LIB_SUBMINOR = @SND_LIB_SUBMINOR@ -SND_LIB_VERSION = @SND_LIB_VERSION@ -STRIP = @STRIP@ -SYMBOLIC_FUNCTIONS_FALSE = @SYMBOLIC_FUNCTIONS_FALSE@ -SYMBOLIC_FUNCTIONS_TRUE = @SYMBOLIC_FUNCTIONS_TRUE@ -SYMBOL_PREFIX = @SYMBOL_PREFIX@ -VERSION = @VERSION@ -VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@ -VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -alsasoundincludedir = ${includedir}/alsa/sound -alsasoundinclude_HEADERS = asound_fm.h hdsp.h sb16_csp.h sscape_ioctl.h emu10k1.h \ - type_compat.h - -noinst_HEADERS = asound.h asoundef.h asequencer.h -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/sound/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/sound/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -install-alsasoundincludeHEADERS: $(alsasoundinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(alsasoundincludedir)" || $(mkdir_p) "$(DESTDIR)$(alsasoundincludedir)" - @list='$(alsasoundinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(alsasoundincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(alsasoundincludedir)/$$f'"; \ - $(alsasoundincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(alsasoundincludedir)/$$f"; \ - done - -uninstall-alsasoundincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(alsasoundinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(alsasoundincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(alsasoundincludedir)/$$f"; \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(alsasoundincludedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-alsasoundincludeHEADERS - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-alsasoundincludeHEADERS uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-alsasoundincludeHEADERS \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-alsasoundincludeHEADERS uninstall-am \ - uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/alsa-lib/include/sound/asequencer.h b/alsa-lib/include/sound/asequencer.h deleted file mode 100644 index 6d14fb1..0000000 --- a/alsa-lib/include/sound/asequencer.h +++ /dev/null @@ -1,678 +0,0 @@ -/* - * Main header file for the ALSA sequencer - * Copyright (c) 1998-1999 by Frank van de Pol <fvdpol@coil.demon.nl> - * (c) 1998-1999 by Jaroslav Kysela <perex@perex.cz> - * - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ -#ifndef __SOUND_ASEQUENCER_H -#define __SOUND_ASEQUENCER_H - -#ifdef __KERNEL__ -#include <linux/ioctl.h> -#endif - -#include <sound/asound.h> - -/** version of the sequencer */ -#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION (1, 0, 1) - -#ifdef __KERNEL__ -/** - * definition of sequencer event types - */ - -/** system messages - * event data type = #sndrv_seq_result_t - */ -#define SNDRV_SEQ_EVENT_SYSTEM 0 -#define SNDRV_SEQ_EVENT_RESULT 1 - -/** note messages (channel specific) - * event data type = #sndrv_seq_ev_note - */ -#define SNDRV_SEQ_EVENT_NOTE 5 -#define SNDRV_SEQ_EVENT_NOTEON 6 -#define SNDRV_SEQ_EVENT_NOTEOFF 7 -#define SNDRV_SEQ_EVENT_KEYPRESS 8 - -/** control messages (channel specific) - * event data type = #sndrv_seq_ev_ctrl - */ -#define SNDRV_SEQ_EVENT_CONTROLLER 10 -#define SNDRV_SEQ_EVENT_PGMCHANGE 11 -#define SNDRV_SEQ_EVENT_CHANPRESS 12 -#define SNDRV_SEQ_EVENT_PITCHBEND 13 /**< from -8192 to 8191 */ -#define SNDRV_SEQ_EVENT_CONTROL14 14 /**< 14 bit controller value */ -#define SNDRV_SEQ_EVENT_NONREGPARAM 15 /**< 14 bit NRPN address + 14 bit unsigned value */ -#define SNDRV_SEQ_EVENT_REGPARAM 16 /**< 14 bit RPN address + 14 bit unsigned value */ - -/** synchronisation messages - * event data type = #sndrv_seq_ev_ctrl - */ -#define SNDRV_SEQ_EVENT_SONGPOS 20 /* Song Position Pointer with LSB and MSB values */ -#define SNDRV_SEQ_EVENT_SONGSEL 21 /* Song Select with song ID number */ -#define SNDRV_SEQ_EVENT_QFRAME 22 /* midi time code quarter frame */ -#define SNDRV_SEQ_EVENT_TIMESIGN 23 /* SMF Time Signature event */ -#define SNDRV_SEQ_EVENT_KEYSIGN 24 /* SMF Key Signature event */ - -/** timer messages - * event data type = sndrv_seq_ev_queue_control_t - */ -#define SNDRV_SEQ_EVENT_START 30 /* midi Real Time Start message */ -#define SNDRV_SEQ_EVENT_CONTINUE 31 /* midi Real Time Continue message */ -#define SNDRV_SEQ_EVENT_STOP 32 /* midi Real Time Stop message */ -#define SNDRV_SEQ_EVENT_SETPOS_TICK 33 /* set tick queue position */ -#define SNDRV_SEQ_EVENT_SETPOS_TIME 34 /* set realtime queue position */ -#define SNDRV_SEQ_EVENT_TEMPO 35 /* (SMF) Tempo event */ -#define SNDRV_SEQ_EVENT_CLOCK 36 /* midi Real Time Clock message */ -#define SNDRV_SEQ_EVENT_TICK 37 /* midi Real Time Tick message */ -#define SNDRV_SEQ_EVENT_QUEUE_SKEW 38 /* skew queue tempo */ - -/** others - * event data type = none - */ -#define SNDRV_SEQ_EVENT_TUNE_REQUEST 40 /* tune request */ -#define SNDRV_SEQ_EVENT_RESET 41 /* reset to power-on state */ -#define SNDRV_SEQ_EVENT_SENSING 42 /* "active sensing" event */ - -/** echo back, kernel private messages - * event data type = any type - */ -#define SNDRV_SEQ_EVENT_ECHO 50 /* echo event */ -#define SNDRV_SEQ_EVENT_OSS 51 /* OSS raw event */ - -/** system status messages (broadcast for subscribers) - * event data type = sndrv_seq_addr_t - */ -#define SNDRV_SEQ_EVENT_CLIENT_START 60 /* new client has connected */ -#define SNDRV_SEQ_EVENT_CLIENT_EXIT 61 /* client has left the system */ -#define SNDRV_SEQ_EVENT_CLIENT_CHANGE 62 /* client status/info has changed */ -#define SNDRV_SEQ_EVENT_PORT_START 63 /* new port was created */ -#define SNDRV_SEQ_EVENT_PORT_EXIT 64 /* port was deleted from system */ -#define SNDRV_SEQ_EVENT_PORT_CHANGE 65 /* port status/info has changed */ - -/** port connection changes - * event data type = sndrv_seq_connect_t - */ -#define SNDRV_SEQ_EVENT_PORT_SUBSCRIBED 66 /* ports connected */ -#define SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED 67 /* ports disconnected */ - -/* 70-89: synthesizer events - obsoleted */ - -/** user-defined events with fixed length - * event data type = any - */ -#define SNDRV_SEQ_EVENT_USR0 90 -#define SNDRV_SEQ_EVENT_USR1 91 -#define SNDRV_SEQ_EVENT_USR2 92 -#define SNDRV_SEQ_EVENT_USR3 93 -#define SNDRV_SEQ_EVENT_USR4 94 -#define SNDRV_SEQ_EVENT_USR5 95 -#define SNDRV_SEQ_EVENT_USR6 96 -#define SNDRV_SEQ_EVENT_USR7 97 -#define SNDRV_SEQ_EVENT_USR8 98 -#define SNDRV_SEQ_EVENT_USR9 99 - -/* 100-118: instrument layer - obsoleted */ -/* 119-129: reserved */ - -/* 130-139: variable length events - * event data type = sndrv_seq_ev_ext - * (SNDRV_SEQ_EVENT_LENGTH_VARIABLE must be set) - */ -#define SNDRV_SEQ_EVENT_SYSEX 130 /* system exclusive data (variable length) */ -#define SNDRV_SEQ_EVENT_BOUNCE 131 /* error event */ -/* 132-134: reserved */ -#define SNDRV_SEQ_EVENT_USR_VAR0 135 -#define SNDRV_SEQ_EVENT_USR_VAR1 136 -#define SNDRV_SEQ_EVENT_USR_VAR2 137 -#define SNDRV_SEQ_EVENT_USR_VAR3 138 -#define SNDRV_SEQ_EVENT_USR_VAR4 139 - -/* 150-151: kernel events with quote - DO NOT use in user clients */ -#define SNDRV_SEQ_EVENT_KERNEL_ERROR 150 -#define SNDRV_SEQ_EVENT_KERNEL_QUOTE 151 /* obsolete */ - -/* 152-191: reserved */ - -/* 192-254: hardware specific events */ - -/* 255: special event */ -#define SNDRV_SEQ_EVENT_NONE 255 - - -typedef unsigned char sndrv_seq_event_type_t; - -/** event address */ -struct sndrv_seq_addr { - unsigned char client; /**< Client number: 0..255, 255 = broadcast to all clients */ - unsigned char port; /**< Port within client: 0..255, 255 = broadcast to all ports */ -}; - -/** port connection */ -struct sndrv_seq_connect { - struct sndrv_seq_addr sender; - struct sndrv_seq_addr dest; -}; - - -#define SNDRV_SEQ_ADDRESS_UNKNOWN 253 /* unknown source */ -#define SNDRV_SEQ_ADDRESS_SUBSCRIBERS 254 /* send event to all subscribed ports */ -#define SNDRV_SEQ_ADDRESS_BROADCAST 255 /* send event to all queues/clients/ports/channels */ -#define SNDRV_SEQ_QUEUE_DIRECT 253 /* direct dispatch */ - - /* event mode flag - NOTE: only 8 bits available! */ -#define SNDRV_SEQ_TIME_STAMP_TICK (0<<0) /* timestamp in clock ticks */ -#define SNDRV_SEQ_TIME_STAMP_REAL (1<<0) /* timestamp in real time */ -#define SNDRV_SEQ_TIME_STAMP_MASK (1<<0) - -#define SNDRV_SEQ_TIME_MODE_ABS (0<<1) /* absolute timestamp */ -#define SNDRV_SEQ_TIME_MODE_REL (1<<1) /* relative to current time */ -#define SNDRV_SEQ_TIME_MODE_MASK (1<<1) - -#define SNDRV_SEQ_EVENT_LENGTH_FIXED (0<<2) /* fixed event size */ -#define SNDRV_SEQ_EVENT_LENGTH_VARIABLE (1<<2) /* variable event size */ -#define SNDRV_SEQ_EVENT_LENGTH_VARUSR (2<<2) /* variable event size - user memory space */ -#define SNDRV_SEQ_EVENT_LENGTH_MASK (3<<2) - -#define SNDRV_SEQ_PRIORITY_NORMAL (0<<4) /* normal priority */ -#define SNDRV_SEQ_PRIORITY_HIGH (1<<4) /* event should be processed before others */ -#define SNDRV_SEQ_PRIORITY_MASK (1<<4) - - - /* note event */ -struct sndrv_seq_ev_note { - unsigned char channel; - unsigned char note; - unsigned char velocity; - unsigned char off_velocity; /* only for SNDRV_SEQ_EVENT_NOTE */ - unsigned int duration; /* only for SNDRV_SEQ_EVENT_NOTE */ -}; - - /* controller event */ -struct sndrv_seq_ev_ctrl { - unsigned char channel; - unsigned char unused1, unused2, unused3; /* pad */ - unsigned int param; - signed int value; -}; - - /* generic set of bytes (12x8 bit) */ -struct sndrv_seq_ev_raw8 { - unsigned char d[12]; /* 8 bit value */ -}; - - /* generic set of integers (3x32 bit) */ -struct sndrv_seq_ev_raw32 { - unsigned int d[3]; /* 32 bit value */ -}; - - /* external stored data */ -struct sndrv_seq_ev_ext { - unsigned int len; /* length of data */ - void *ptr; /* pointer to data (note: maybe 64-bit) */ -} __attribute__((packed)); - -struct sndrv_seq_result { - int event; /* processed event type */ - int result; -}; - - -struct sndrv_seq_real_time { - unsigned int tv_sec; /* seconds */ - unsigned int tv_nsec; /* nanoseconds */ -}; - -typedef unsigned int sndrv_seq_tick_time_t; /* midi ticks */ - -union sndrv_seq_timestamp { - sndrv_seq_tick_time_t tick; - struct sndrv_seq_real_time time; -}; - -struct sndrv_seq_queue_skew { - unsigned int value; - unsigned int base; -}; - - /* queue timer control */ -struct sndrv_seq_ev_queue_control { - unsigned char queue; /* affected queue */ - unsigned char pad[3]; /* reserved */ - union { - signed int value; /* affected value (e.g. tempo) */ - union sndrv_seq_timestamp time; /* time */ - unsigned int position; /* sync position */ - struct sndrv_seq_queue_skew skew; - unsigned int d32[2]; - unsigned char d8[8]; - } param; -}; - - /* quoted event - inside the kernel only */ -struct sndrv_seq_ev_quote { - struct sndrv_seq_addr origin; /* original sender */ - unsigned short value; /* optional data */ - struct sndrv_seq_event *event; /* quoted event */ -} __attribute__((packed)); - - - /* sequencer event */ -struct sndrv_seq_event { - sndrv_seq_event_type_t type; /* event type */ - unsigned char flags; /* event flags */ - char tag; - - unsigned char queue; /* schedule queue */ - union sndrv_seq_timestamp time; /* schedule time */ - - - struct sndrv_seq_addr source; /* source address */ - struct sndrv_seq_addr dest; /* destination address */ - - union { /* event data... */ - struct sndrv_seq_ev_note note; - struct sndrv_seq_ev_ctrl control; - struct sndrv_seq_ev_raw8 raw8; - struct sndrv_seq_ev_raw32 raw32; - struct sndrv_seq_ev_ext ext; - struct sndrv_seq_ev_queue_control queue; - union sndrv_seq_timestamp time; - struct sndrv_seq_addr addr; - struct sndrv_seq_connect connect; - struct sndrv_seq_result result; - struct sndrv_seq_ev_quote quote; - } data; -}; - - -/* - * bounce event - stored as variable size data - */ -struct sndrv_seq_event_bounce { - int err; - struct sndrv_seq_event event; - /* external data follows here. */ -}; - -#define sndrv_seq_event_bounce_ext_data(ev) ((void*)((char *)(ev)->data.ext.ptr + sizeof(sndrv_seq_event_bounce_t))) - -/* - * type check macros - */ -/* result events: 0-4 */ -#define sndrv_seq_ev_is_result_type(ev) ((ev)->type < 5) -/* channel specific events: 5-19 */ -#define sndrv_seq_ev_is_channel_type(ev) ((ev)->type >= 5 && (ev)->type < 20) -/* note events: 5-9 */ -#define sndrv_seq_ev_is_note_type(ev) ((ev)->type >= 5 && (ev)->type < 10) -/* control events: 10-19 */ -#define sndrv_seq_ev_is_control_type(ev) ((ev)->type >= 10 && (ev)->type < 20) -/* queue control events: 30-39 */ -#define sndrv_seq_ev_is_queue_type(ev) ((ev)->type >= 30 && (ev)->type < 40) -/* system status messages */ -#define sndrv_seq_ev_is_message_type(ev) ((ev)->type >= 60 && (ev)->type < 69) -/* sample messages */ -#define sndrv_seq_ev_is_sample_type(ev) ((ev)->type >= 70 && (ev)->type < 79) -/* user-defined messages */ -#define sndrv_seq_ev_is_user_type(ev) ((ev)->type >= 90 && (ev)->type < 99) -/* fixed length events: 0-99 */ -#define sndrv_seq_ev_is_fixed_type(ev) ((ev)->type < 100) -/* variable length events: 130-139 */ -#define sndrv_seq_ev_is_variable_type(ev) ((ev)->type >= 130 && (ev)->type < 140) -/* reserved for kernel */ -#define sndrv_seq_ev_is_reserved(ev) ((ev)->type >= 150) - -/* direct dispatched events */ -#define sndrv_seq_ev_is_direct(ev) ((ev)->queue == SNDRV_SEQ_QUEUE_DIRECT) - -/* - * macros to check event flags - */ -/* prior events */ -#define sndrv_seq_ev_is_prior(ev) (((ev)->flags & SNDRV_SEQ_PRIORITY_MASK) == SNDRV_SEQ_PRIORITY_HIGH) - -/* event length type */ -#define sndrv_seq_ev_length_type(ev) ((ev)->flags & SNDRV_SEQ_EVENT_LENGTH_MASK) -#define sndrv_seq_ev_is_fixed(ev) (sndrv_seq_ev_length_type(ev) == SNDRV_SEQ_EVENT_LENGTH_FIXED) -#define sndrv_seq_ev_is_variable(ev) (sndrv_seq_ev_length_type(ev) == SNDRV_SEQ_EVENT_LENGTH_VARIABLE) -#define sndrv_seq_ev_is_varusr(ev) (sndrv_seq_ev_length_type(ev) == SNDRV_SEQ_EVENT_LENGTH_VARUSR) - -/* time-stamp type */ -#define sndrv_seq_ev_timestamp_type(ev) ((ev)->flags & SNDRV_SEQ_TIME_STAMP_MASK) -#define sndrv_seq_ev_is_tick(ev) (sndrv_seq_ev_timestamp_type(ev) == SNDRV_SEQ_TIME_STAMP_TICK) -#define sndrv_seq_ev_is_real(ev) (sndrv_seq_ev_timestamp_type(ev) == SNDRV_SEQ_TIME_STAMP_REAL) - -/* time-mode type */ -#define sndrv_seq_ev_timemode_type(ev) ((ev)->flags & SNDRV_SEQ_TIME_MODE_MASK) -#define sndrv_seq_ev_is_abstime(ev) (sndrv_seq_ev_timemode_type(ev) == SNDRV_SEQ_TIME_MODE_ABS) -#define sndrv_seq_ev_is_reltime(ev) (sndrv_seq_ev_timemode_type(ev) == SNDRV_SEQ_TIME_MODE_REL) - -/* queue sync port */ -#define sndrv_seq_queue_sync_port(q) ((q) + 16) - -#endif /* __KERNEL__ */ - - /* system information */ -struct sndrv_seq_system_info { - int queues; /* maximum queues count */ - int clients; /* maximum clients count */ - int ports; /* maximum ports per client */ - int channels; /* maximum channels per port */ - int cur_clients; /* current clients */ - int cur_queues; /* current queues */ - char reserved[24]; -}; - - - /* system running information */ -struct sndrv_seq_running_info { - unsigned char client; /* client id */ - unsigned char big_endian; /* 1 = big-endian */ - unsigned char cpu_mode; /* 4 = 32bit, 8 = 64bit */ - unsigned char pad; /* reserved */ - unsigned char reserved[12]; -}; - - - /* known client numbers */ -#define SNDRV_SEQ_CLIENT_SYSTEM 0 - /* internal client numbers */ -#define SNDRV_SEQ_CLIENT_DUMMY 14 /* midi through */ -#define SNDRV_SEQ_CLIENT_OSS 15 /* oss sequencer emulator */ - - - /* client types */ -enum sndrv_seq_client_type { - NO_CLIENT = 0, - USER_CLIENT = 1, - KERNEL_CLIENT = 2 -}; - - /* event filter flags */ -#define SNDRV_SEQ_FILTER_BROADCAST (1<<0) /* accept broadcast messages */ -#define SNDRV_SEQ_FILTER_MULTICAST (1<<1) /* accept multicast messages */ -#define SNDRV_SEQ_FILTER_BOUNCE (1<<2) /* accept bounce event in error */ -#define SNDRV_SEQ_FILTER_USE_EVENT (1<<31) /* use event filter */ - -struct sndrv_seq_client_info { - int client; /* client number to inquire */ - int type; /* client type */ - char name[64]; /* client name */ - unsigned int filter; /* filter flags */ - unsigned char multicast_filter[8]; /* multicast filter bitmap */ - unsigned char event_filter[32]; /* event filter bitmap */ - int num_ports; /* RO: number of ports */ - int event_lost; /* number of lost events */ - char reserved[64]; /* for future use */ -}; - - -/* client pool size */ -struct sndrv_seq_client_pool { - int client; /* client number to inquire */ - int output_pool; /* outgoing (write) pool size */ - int input_pool; /* incoming (read) pool size */ - int output_room; /* minimum free pool size for select/blocking mode */ - int output_free; /* unused size */ - int input_free; /* unused size */ - char reserved[64]; -}; - - -/* Remove events by specified criteria */ - -#define SNDRV_SEQ_REMOVE_INPUT (1<<0) /* Flush input queues */ -#define SNDRV_SEQ_REMOVE_OUTPUT (1<<1) /* Flush output queues */ -#define SNDRV_SEQ_REMOVE_DEST (1<<2) /* Restrict by destination q:client:port */ -#define SNDRV_SEQ_REMOVE_DEST_CHANNEL (1<<3) /* Restrict by channel */ -#define SNDRV_SEQ_REMOVE_TIME_BEFORE (1<<4) /* Restrict to before time */ -#define SNDRV_SEQ_REMOVE_TIME_AFTER (1<<5) /* Restrict to time or after */ -#define SNDRV_SEQ_REMOVE_TIME_TICK (1<<6) /* Time is in ticks */ -#define SNDRV_SEQ_REMOVE_EVENT_TYPE (1<<7) /* Restrict to event type */ -#define SNDRV_SEQ_REMOVE_IGNORE_OFF (1<<8) /* Do not flush off events */ -#define SNDRV_SEQ_REMOVE_TAG_MATCH (1<<9) /* Restrict to events with given tag */ - -struct sndrv_seq_remove_events { - unsigned int remove_mode; /* Flags that determine what gets removed */ - - union sndrv_seq_timestamp time; - - unsigned char queue; /* Queue for REMOVE_DEST */ - struct sndrv_seq_addr dest; /* Address for REMOVE_DEST */ - unsigned char channel; /* Channel for REMOVE_DEST */ - - int type; /* For REMOVE_EVENT_TYPE */ - char tag; /* Tag for REMOVE_TAG */ - - int reserved[10]; /* To allow for future binary compatibility */ - -}; - - - /* known port numbers */ -#define SNDRV_SEQ_PORT_SYSTEM_TIMER 0 -#define SNDRV_SEQ_PORT_SYSTEM_ANNOUNCE 1 - - /* port capabilities (32 bits) */ -#define SNDRV_SEQ_PORT_CAP_READ (1<<0) /* readable from this port */ -#define SNDRV_SEQ_PORT_CAP_WRITE (1<<1) /* writable to this port */ - -#define SNDRV_SEQ_PORT_CAP_SYNC_READ (1<<2) -#define SNDRV_SEQ_PORT_CAP_SYNC_WRITE (1<<3) - -#define SNDRV_SEQ_PORT_CAP_DUPLEX (1<<4) - -#define SNDRV_SEQ_PORT_CAP_SUBS_READ (1<<5) /* allow read subscription */ -#define SNDRV_SEQ_PORT_CAP_SUBS_WRITE (1<<6) /* allow write subscription */ -#define SNDRV_SEQ_PORT_CAP_NO_EXPORT (1<<7) /* routing not allowed */ - - /* port type */ -#define SNDRV_SEQ_PORT_TYPE_SPECIFIC (1<<0) /* hardware specific */ -#define SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC (1<<1) /* generic MIDI device */ -#define SNDRV_SEQ_PORT_TYPE_MIDI_GM (1<<2) /* General MIDI compatible device */ -#define SNDRV_SEQ_PORT_TYPE_MIDI_GS (1<<3) /* GS compatible device */ -#define SNDRV_SEQ_PORT_TYPE_MIDI_XG (1<<4) /* XG compatible device */ -#define SNDRV_SEQ_PORT_TYPE_MIDI_MT32 (1<<5) /* MT-32 compatible device */ -#define SNDRV_SEQ_PORT_TYPE_MIDI_GM2 (1<<6) /* General MIDI 2 compatible device */ - -/* other standards...*/ -#define SNDRV_SEQ_PORT_TYPE_SYNTH (1<<10) /* Synth device (no MIDI compatible - direct wavetable) */ -#define SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE (1<<11) /* Sampling device (support sample download) */ -#define SNDRV_SEQ_PORT_TYPE_SAMPLE (1<<12) /* Sampling device (sample can be downloaded at any time) */ -/*...*/ -#define SNDRV_SEQ_PORT_TYPE_HARDWARE (1<<16) /* driver for a hardware device */ -#define SNDRV_SEQ_PORT_TYPE_SOFTWARE (1<<17) /* implemented in software */ -#define SNDRV_SEQ_PORT_TYPE_SYNTHESIZER (1<<18) /* generates sound */ -#define SNDRV_SEQ_PORT_TYPE_PORT (1<<19) /* connects to other device(s) */ -#define SNDRV_SEQ_PORT_TYPE_APPLICATION (1<<20) /* application (sequencer/editor) */ - -/* misc. conditioning flags */ -#define SNDRV_SEQ_PORT_FLG_GIVEN_PORT (1<<0) -#define SNDRV_SEQ_PORT_FLG_TIMESTAMP (1<<1) -#define SNDRV_SEQ_PORT_FLG_TIME_REAL (1<<2) - -struct sndrv_seq_port_info { - struct sndrv_seq_addr addr; /* client/port numbers */ - char name[64]; /* port name */ - - unsigned int capability; /* port capability bits */ - unsigned int type; /* port type bits */ - int midi_channels; /* channels per MIDI port */ - int midi_voices; /* voices per MIDI port */ - int synth_voices; /* voices per SYNTH port */ - - int read_use; /* R/O: subscribers for output (from this port) */ - int write_use; /* R/O: subscribers for input (to this port) */ - - void *kernel; /* reserved for kernel use (must be NULL) */ - unsigned int flags; /* misc. conditioning */ - unsigned char time_queue; /* queue # for timestamping */ - char reserved[59]; /* for future use */ -}; - - -/* queue flags */ -#define SNDRV_SEQ_QUEUE_FLG_SYNC (1<<0) /* sync enabled */ - -/* queue information */ -struct sndrv_seq_queue_info { - int queue; /* queue id */ - - /* - * security settings, only owner of this queue can start/stop timer - * etc. if the queue is locked for other clients - */ - int owner; /* client id for owner of the queue */ - int locked:1; /* timing queue locked for other queues */ - char name[64]; /* name of this queue */ - unsigned int flags; /* flags */ - char reserved[60]; /* for future use */ - -}; - -/* queue info/status */ -struct sndrv_seq_queue_status { - int queue; /* queue id */ - int events; /* read-only - queue size */ - sndrv_seq_tick_time_t tick; /* current tick */ - struct sndrv_seq_real_time time; /* current time */ - int running; /* running state of queue */ - int flags; /* various flags */ - char reserved[64]; /* for the future */ -}; - - -/* queue tempo */ -struct sndrv_seq_queue_tempo { - int queue; /* sequencer queue */ - unsigned int tempo; /* current tempo, us/tick */ - int ppq; /* time resolution, ticks/quarter */ - unsigned int skew_value; /* queue skew */ - unsigned int skew_base; /* queue skew base */ - char reserved[24]; /* for the future */ -}; - - -/* sequencer timer sources */ -#define SNDRV_SEQ_TIMER_ALSA 0 /* ALSA timer */ -#define SNDRV_SEQ_TIMER_MIDI_CLOCK 1 /* Midi Clock (CLOCK event) */ -#define SNDRV_SEQ_TIMER_MIDI_TICK 2 /* Midi Timer Tick (TICK event) */ - -/* queue timer info */ -struct sndrv_seq_queue_timer { - int queue; /* sequencer queue */ - int type; /* source timer type */ - union { - struct { - struct sndrv_timer_id id; /* ALSA's timer ID */ - unsigned int resolution; /* resolution in Hz */ - } alsa; - } u; - char reserved[64]; /* for the future use */ -}; - - -struct sndrv_seq_queue_client { - int queue; /* sequencer queue */ - int client; /* sequencer client */ - int used; /* queue is used with this client - (must be set for accepting events) */ - /* per client watermarks */ - char reserved[64]; /* for future use */ -}; - - -#define SNDRV_SEQ_PORT_SUBS_EXCLUSIVE (1<<0) /* exclusive connection */ -#define SNDRV_SEQ_PORT_SUBS_TIMESTAMP (1<<1) -#define SNDRV_SEQ_PORT_SUBS_TIME_REAL (1<<2) - -struct sndrv_seq_port_subscribe { - struct sndrv_seq_addr sender; /* sender address */ - struct sndrv_seq_addr dest; /* destination address */ - unsigned int voices; /* number of voices to be allocated (0 = don't care) */ - unsigned int flags; /* modes */ - unsigned char queue; /* input time-stamp queue (optional) */ - unsigned char pad[3]; /* reserved */ - char reserved[64]; -}; - -/* type of query subscription */ -#define SNDRV_SEQ_QUERY_SUBS_READ 0 -#define SNDRV_SEQ_QUERY_SUBS_WRITE 1 - -struct sndrv_seq_query_subs { - struct sndrv_seq_addr root; /* client/port id to be searched */ - int type; /* READ or WRITE */ - int index; /* 0..N-1 */ - int num_subs; /* R/O: number of subscriptions on this port */ - struct sndrv_seq_addr addr; /* R/O: result */ - unsigned char queue; /* R/O: result */ - unsigned int flags; /* R/O: result */ - char reserved[64]; /* for future use */ -}; - - -/* - * IOCTL commands - */ - -#define SNDRV_SEQ_IOCTL_PVERSION _IOR ('S', 0x00, int) -#define SNDRV_SEQ_IOCTL_CLIENT_ID _IOR ('S', 0x01, int) -#define SNDRV_SEQ_IOCTL_SYSTEM_INFO _IOWR('S', 0x02, struct sndrv_seq_system_info) -#define SNDRV_SEQ_IOCTL_RUNNING_MODE _IOWR('S', 0x03, struct sndrv_seq_running_info) - -#define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct sndrv_seq_client_info) -#define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW ('S', 0x11, struct sndrv_seq_client_info) - -#define SNDRV_SEQ_IOCTL_CREATE_PORT _IOWR('S', 0x20, struct sndrv_seq_port_info) -#define SNDRV_SEQ_IOCTL_DELETE_PORT _IOW ('S', 0x21, struct sndrv_seq_port_info) -#define SNDRV_SEQ_IOCTL_GET_PORT_INFO _IOWR('S', 0x22, struct sndrv_seq_port_info) -#define SNDRV_SEQ_IOCTL_SET_PORT_INFO _IOW ('S', 0x23, struct sndrv_seq_port_info) - -#define SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT _IOW ('S', 0x30, struct sndrv_seq_port_subscribe) -#define SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT _IOW ('S', 0x31, struct sndrv_seq_port_subscribe) - -#define SNDRV_SEQ_IOCTL_CREATE_QUEUE _IOWR('S', 0x32, struct sndrv_seq_queue_info) -#define SNDRV_SEQ_IOCTL_DELETE_QUEUE _IOW ('S', 0x33, struct sndrv_seq_queue_info) -#define SNDRV_SEQ_IOCTL_GET_QUEUE_INFO _IOWR('S', 0x34, struct sndrv_seq_queue_info) -#define SNDRV_SEQ_IOCTL_SET_QUEUE_INFO _IOWR('S', 0x35, struct sndrv_seq_queue_info) -#define SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE _IOWR('S', 0x36, struct sndrv_seq_queue_info) -#define SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS _IOWR('S', 0x40, struct sndrv_seq_queue_status) -#define SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO _IOWR('S', 0x41, struct sndrv_seq_queue_tempo) -#define SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO _IOW ('S', 0x42, struct sndrv_seq_queue_tempo) -#define SNDRV_SEQ_IOCTL_GET_QUEUE_OWNER _IOWR('S', 0x43, struct sndrv_seq_queue_owner) -#define SNDRV_SEQ_IOCTL_SET_QUEUE_OWNER _IOW ('S', 0x44, struct sndrv_seq_queue_owner) -#define SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER _IOWR('S', 0x45, struct sndrv_seq_queue_timer) -#define SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER _IOW ('S', 0x46, struct sndrv_seq_queue_timer) -/* XXX -#define SNDRV_SEQ_IOCTL_GET_QUEUE_SYNC _IOWR('S', 0x53, struct sndrv_seq_queue_sync) -#define SNDRV_SEQ_IOCTL_SET_QUEUE_SYNC _IOW ('S', 0x54, struct sndrv_seq_queue_sync) -*/ -#define SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT _IOWR('S', 0x49, struct sndrv_seq_queue_client) -#define SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT _IOW ('S', 0x4a, struct sndrv_seq_queue_client) -#define SNDRV_SEQ_IOCTL_GET_CLIENT_POOL _IOWR('S', 0x4b, struct sndrv_seq_client_pool) -#define SNDRV_SEQ_IOCTL_SET_CLIENT_POOL _IOW ('S', 0x4c, struct sndrv_seq_client_pool) -#define SNDRV_SEQ_IOCTL_REMOVE_EVENTS _IOW ('S', 0x4e, struct sndrv_seq_remove_events) -#define SNDRV_SEQ_IOCTL_QUERY_SUBS _IOWR('S', 0x4f, struct sndrv_seq_query_subs) -#define SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION _IOWR('S', 0x50, struct sndrv_seq_port_subscribe) -#define SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT _IOWR('S', 0x51, struct sndrv_seq_client_info) -#define SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT _IOWR('S', 0x52, struct sndrv_seq_port_info) - -#endif /* __SOUND_ASEQUENCER_H */ diff --git a/alsa-lib/include/sound/asound.h b/alsa-lib/include/sound/asound.h deleted file mode 100644 index 977b2d6..0000000 --- a/alsa-lib/include/sound/asound.h +++ /dev/null @@ -1,954 +0,0 @@ -/* - * Advanced Linux Sound Architecture - ALSA - Driver - * Copyright (c) 1994-2003 by Jaroslav Kysela <perex@perex.cz>, - * Abramo Bagnara <abramo@alsa-project.org> - * - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __SOUND_ASOUND_H -#define __SOUND_ASOUND_H - -#if defined(LINUX) || defined(__LINUX__) || defined(__linux__) - -#include <linux/ioctl.h> - -#ifdef __KERNEL__ - -#include <linux/types.h> -#include <linux/time.h> -#include <asm/byteorder.h> - -#if __LITTLE_ENDIAN == 1234 -#define SNDRV_LITTLE_ENDIAN -#elif __BIG_ENDIAN == 4321 -#define SNDRV_BIG_ENDIAN -#else -#error "Unsupported endian..." -#endif - -#else /* !__KERNEL__ */ - -#include <endian.h> -#if __BYTE_ORDER == __LITTLE_ENDIAN -#define SNDRV_LITTLE_ENDIAN -#elif __BYTE_ORDER == __BIG_ENDIAN -#define SNDRV_BIG_ENDIAN -#else -#error "Unsupported endian..." -#endif - -#endif /* __KERNEL **/ - -#endif /* LINUX */ - -#ifndef __KERNEL__ -#include <sys/time.h> -#include <sys/types.h> -#include <sys/ioctl.h> -#endif - -/* - * protocol version - */ - -#define SNDRV_PROTOCOL_VERSION(major, minor, subminor) (((major)<<16)|((minor)<<8)|(subminor)) -#define SNDRV_PROTOCOL_MAJOR(version) (((version)>>16)&0xffff) -#define SNDRV_PROTOCOL_MINOR(version) (((version)>>8)&0xff) -#define SNDRV_PROTOCOL_MICRO(version) ((version)&0xff) -#define SNDRV_PROTOCOL_INCOMPATIBLE(kversion, uversion) \ - (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || \ - (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && \ - SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion))) - -/**************************************************************************** - * * - * Digital audio interface * - * * - ****************************************************************************/ - -struct sndrv_aes_iec958 { - unsigned char status[24]; /* AES/IEC958 channel status bits */ - unsigned char subcode[147]; /* AES/IEC958 subcode bits */ - unsigned char pad; /* nothing */ - unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */ -}; - -/**************************************************************************** - * * - * Section for driver hardware dependent interface - /dev/snd/hw? * - * * - ****************************************************************************/ - -#define SNDRV_HWDEP_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1) - -enum sndrv_hwdep_iface { - SNDRV_HWDEP_IFACE_OPL2 = 0, - SNDRV_HWDEP_IFACE_OPL3, - SNDRV_HWDEP_IFACE_OPL4, - SNDRV_HWDEP_IFACE_SB16CSP, /* Creative Signal Processor */ - SNDRV_HWDEP_IFACE_EMU10K1, /* FX8010 processor in EMU10K1 chip */ - SNDRV_HWDEP_IFACE_YSS225, /* Yamaha FX processor */ - SNDRV_HWDEP_IFACE_ICS2115, /* Wavetable synth */ - SNDRV_HWDEP_IFACE_SSCAPE, /* Ensoniq SoundScape ISA card (MC68EC000) */ - SNDRV_HWDEP_IFACE_VX, /* Digigram VX cards */ - SNDRV_HWDEP_IFACE_MIXART, /* Digigram miXart cards */ - SNDRV_HWDEP_IFACE_USX2Y, /* Tascam US122, US224 & US428 usb */ - SNDRV_HWDEP_IFACE_EMUX_WAVETABLE, /* EmuX wavetable */ - SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */ - SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */ - SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */ - SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */ - - /* Don't forget to change the following: */ - SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_SB_RC -}; - -struct sndrv_hwdep_info { - unsigned int device; /* WR: device number */ - int card; /* R: card number */ - unsigned char id[64]; /* ID (user selectable) */ - unsigned char name[80]; /* hwdep name */ - int iface; /* hwdep interface */ - unsigned char reserved[64]; /* reserved for future */ -}; - -/* generic DSP loader */ -struct sndrv_hwdep_dsp_status { - unsigned int version; /* R: driver-specific version */ - unsigned char id[32]; /* R: driver-specific ID string */ - unsigned int num_dsps; /* R: number of DSP images to transfer */ - unsigned int dsp_loaded; /* R: bit flags indicating the loaded DSPs */ - unsigned int chip_ready; /* R: 1 = initialization finished */ - unsigned char reserved[16]; /* reserved for future use */ -}; - -struct sndrv_hwdep_dsp_image { - unsigned int index; /* W: DSP index */ - unsigned char name[64]; /* W: ID (e.g. file name) */ - unsigned char *image; /* W: binary image */ - size_t length; /* W: size of image in bytes */ - unsigned long driver_data; /* W: driver-specific data */ -}; - -enum { - SNDRV_HWDEP_IOCTL_PVERSION = _IOR ('H', 0x00, int), - SNDRV_HWDEP_IOCTL_INFO = _IOR ('H', 0x01, struct sndrv_hwdep_info), - SNDRV_HWDEP_IOCTL_DSP_STATUS = _IOR('H', 0x02, struct sndrv_hwdep_dsp_status), - SNDRV_HWDEP_IOCTL_DSP_LOAD = _IOW('H', 0x03, struct sndrv_hwdep_dsp_image) -}; - -/***************************************************************************** - * * - * Digital Audio (PCM) interface - /dev/snd/pcm?? * - * * - *****************************************************************************/ - -#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 9) - -typedef unsigned long sndrv_pcm_uframes_t; -typedef long sndrv_pcm_sframes_t; - -enum sndrv_pcm_class { - SNDRV_PCM_CLASS_GENERIC = 0, /* standard mono or stereo device */ - SNDRV_PCM_CLASS_MULTI, /* multichannel device */ - SNDRV_PCM_CLASS_MODEM, /* software modem class */ - SNDRV_PCM_CLASS_DIGITIZER, /* digitizer class */ - /* Don't forget to change the following: */ - SNDRV_PCM_CLASS_LAST = SNDRV_PCM_CLASS_DIGITIZER, -}; - -enum sndrv_pcm_subclass { - SNDRV_PCM_SUBCLASS_GENERIC_MIX = 0, /* mono or stereo subdevices are mixed together */ - SNDRV_PCM_SUBCLASS_MULTI_MIX, /* multichannel subdevices are mixed together */ - /* Don't forget to change the following: */ - SNDRV_PCM_SUBCLASS_LAST = SNDRV_PCM_SUBCLASS_MULTI_MIX, -}; - -enum sndrv_pcm_stream { - SNDRV_PCM_STREAM_PLAYBACK = 0, - SNDRV_PCM_STREAM_CAPTURE, - SNDRV_PCM_STREAM_LAST = SNDRV_PCM_STREAM_CAPTURE, -}; - -enum sndrv_pcm_access { - SNDRV_PCM_ACCESS_MMAP_INTERLEAVED = 0, /* interleaved mmap */ - SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED, /* noninterleaved mmap */ - SNDRV_PCM_ACCESS_MMAP_COMPLEX, /* complex mmap */ - SNDRV_PCM_ACCESS_RW_INTERLEAVED, /* readi/writei */ - SNDRV_PCM_ACCESS_RW_NONINTERLEAVED, /* readn/writen */ - SNDRV_PCM_ACCESS_LAST = SNDRV_PCM_ACCESS_RW_NONINTERLEAVED, -}; - -enum sndrv_pcm_format { - SNDRV_PCM_FORMAT_S8 = 0, - SNDRV_PCM_FORMAT_U8, - SNDRV_PCM_FORMAT_S16_LE, - SNDRV_PCM_FORMAT_S16_BE, - SNDRV_PCM_FORMAT_U16_LE, - SNDRV_PCM_FORMAT_U16_BE, - SNDRV_PCM_FORMAT_S24_LE, /* low three bytes */ - SNDRV_PCM_FORMAT_S24_BE, /* low three bytes */ - SNDRV_PCM_FORMAT_U24_LE, /* low three bytes */ - SNDRV_PCM_FORMAT_U24_BE, /* low three bytes */ - SNDRV_PCM_FORMAT_S32_LE, - SNDRV_PCM_FORMAT_S32_BE, - SNDRV_PCM_FORMAT_U32_LE, - SNDRV_PCM_FORMAT_U32_BE, - SNDRV_PCM_FORMAT_FLOAT_LE, /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */ - SNDRV_PCM_FORMAT_FLOAT_BE, /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */ - SNDRV_PCM_FORMAT_FLOAT64_LE, /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */ - SNDRV_PCM_FORMAT_FLOAT64_BE, /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */ - SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE, /* IEC-958 subframe, Little Endian */ - SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE, /* IEC-958 subframe, Big Endian */ - SNDRV_PCM_FORMAT_MU_LAW, - SNDRV_PCM_FORMAT_A_LAW, - SNDRV_PCM_FORMAT_IMA_ADPCM, - SNDRV_PCM_FORMAT_MPEG, - SNDRV_PCM_FORMAT_GSM, - SNDRV_PCM_FORMAT_SPECIAL = 31, - SNDRV_PCM_FORMAT_S24_3LE = 32, /* in three bytes */ - SNDRV_PCM_FORMAT_S24_3BE, /* in three bytes */ - SNDRV_PCM_FORMAT_U24_3LE, /* in three bytes */ - SNDRV_PCM_FORMAT_U24_3BE, /* in three bytes */ - SNDRV_PCM_FORMAT_S20_3LE, /* in three bytes */ - SNDRV_PCM_FORMAT_S20_3BE, /* in three bytes */ - SNDRV_PCM_FORMAT_U20_3LE, /* in three bytes */ - SNDRV_PCM_FORMAT_U20_3BE, /* in three bytes */ - SNDRV_PCM_FORMAT_S18_3LE, /* in three bytes */ - SNDRV_PCM_FORMAT_S18_3BE, /* in three bytes */ - SNDRV_PCM_FORMAT_U18_3LE, /* in three bytes */ - SNDRV_PCM_FORMAT_U18_3BE, /* in three bytes */ - SNDRV_PCM_FORMAT_LAST = SNDRV_PCM_FORMAT_U18_3BE, - -#ifdef SNDRV_LITTLE_ENDIAN - SNDRV_PCM_FORMAT_S16 = SNDRV_PCM_FORMAT_S16_LE, - SNDRV_PCM_FORMAT_U16 = SNDRV_PCM_FORMAT_U16_LE, - SNDRV_PCM_FORMAT_S24 = SNDRV_PCM_FORMAT_S24_LE, - SNDRV_PCM_FORMAT_U24 = SNDRV_PCM_FORMAT_U24_LE, - SNDRV_PCM_FORMAT_S32 = SNDRV_PCM_FORMAT_S32_LE, - SNDRV_PCM_FORMAT_U32 = SNDRV_PCM_FORMAT_U32_LE, - SNDRV_PCM_FORMAT_FLOAT = SNDRV_PCM_FORMAT_FLOAT_LE, - SNDRV_PCM_FORMAT_FLOAT64 = SNDRV_PCM_FORMAT_FLOAT64_LE, - SNDRV_PCM_FORMAT_IEC958_SUBFRAME = SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE, -#endif -#ifdef SNDRV_BIG_ENDIAN - SNDRV_PCM_FORMAT_S16 = SNDRV_PCM_FORMAT_S16_BE, - SNDRV_PCM_FORMAT_U16 = SNDRV_PCM_FORMAT_U16_BE, - SNDRV_PCM_FORMAT_S24 = SNDRV_PCM_FORMAT_S24_BE, - SNDRV_PCM_FORMAT_U24 = SNDRV_PCM_FORMAT_U24_BE, - SNDRV_PCM_FORMAT_S32 = SNDRV_PCM_FORMAT_S32_BE, - SNDRV_PCM_FORMAT_U32 = SNDRV_PCM_FORMAT_U32_BE, - SNDRV_PCM_FORMAT_FLOAT = SNDRV_PCM_FORMAT_FLOAT_BE, - SNDRV_PCM_FORMAT_FLOAT64 = SNDRV_PCM_FORMAT_FLOAT64_BE, - SNDRV_PCM_FORMAT_IEC958_SUBFRAME = SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE, -#endif -}; - -enum sndrv_pcm_subformat { - SNDRV_PCM_SUBFORMAT_STD = 0, - SNDRV_PCM_SUBFORMAT_LAST = SNDRV_PCM_SUBFORMAT_STD, -}; - -#define SNDRV_PCM_INFO_MMAP 0x00000001 /* hardware supports mmap */ -#define SNDRV_PCM_INFO_MMAP_VALID 0x00000002 /* period data are valid during transfer */ -#define SNDRV_PCM_INFO_DOUBLE 0x00000004 /* Double buffering needed for PCM start/stop */ -#define SNDRV_PCM_INFO_BATCH 0x00000010 /* double buffering */ -#define SNDRV_PCM_INFO_INTERLEAVED 0x00000100 /* channels are interleaved */ -#define SNDRV_PCM_INFO_NONINTERLEAVED 0x00000200 /* channels are not interleaved */ -#define SNDRV_PCM_INFO_COMPLEX 0x00000400 /* complex frame organization (mmap only) */ -#define SNDRV_PCM_INFO_BLOCK_TRANSFER 0x00010000 /* hardware transfer block of samples */ -#define SNDRV_PCM_INFO_OVERRANGE 0x00020000 /* hardware supports ADC (capture) overrange detection */ -#define SNDRV_PCM_INFO_RESUME 0x00040000 /* hardware supports stream resume after suspend */ -#define SNDRV_PCM_INFO_PAUSE 0x00080000 /* pause ioctl is supported */ -#define SNDRV_PCM_INFO_HALF_DUPLEX 0x00100000 /* only half duplex */ -#define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 /* playback and capture stream are somewhat correlated */ -#define SNDRV_PCM_INFO_SYNC_START 0x00400000 /* pcm support some kind of sync go */ - -enum sndrv_pcm_state { - SNDRV_PCM_STATE_OPEN = 0, /* stream is open */ - SNDRV_PCM_STATE_SETUP, /* stream has a setup */ - SNDRV_PCM_STATE_PREPARED, /* stream is ready to start */ - SNDRV_PCM_STATE_RUNNING, /* stream is running */ - SNDRV_PCM_STATE_XRUN, /* stream reached an xrun */ - SNDRV_PCM_STATE_DRAINING, /* stream is draining */ - SNDRV_PCM_STATE_PAUSED, /* stream is paused */ - SNDRV_PCM_STATE_SUSPENDED, /* hardware is suspended */ - SNDRV_PCM_STATE_DISCONNECTED, /* hardware is disconnected */ - SNDRV_PCM_STATE_LAST = SNDRV_PCM_STATE_DISCONNECTED, -}; - -enum { - SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000, - SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000, - SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000, -}; - -union sndrv_pcm_sync_id { - unsigned char id[16]; - unsigned short id16[8]; - unsigned int id32[4]; -}; - -struct sndrv_pcm_info { - unsigned int device; /* RO/WR (control): device number */ - unsigned int subdevice; /* RO/WR (control): subdevice number */ - int stream; /* RO/WR (control): stream number */ - int card; /* R: card number */ - unsigned char id[64]; /* ID (user selectable) */ - unsigned char name[80]; /* name of this device */ - unsigned char subname[32]; /* subdevice name */ - int dev_class; /* SNDRV_PCM_CLASS_* */ - int dev_subclass; /* SNDRV_PCM_SUBCLASS_* */ - unsigned int subdevices_count; - unsigned int subdevices_avail; - union sndrv_pcm_sync_id sync; /* hardware synchronization ID */ - unsigned char reserved[64]; /* reserved for future... */ -}; - -enum sndrv_pcm_hw_param { - SNDRV_PCM_HW_PARAM_ACCESS = 0, /* Access type */ - SNDRV_PCM_HW_PARAM_FIRST_MASK = SNDRV_PCM_HW_PARAM_ACCESS, - SNDRV_PCM_HW_PARAM_FORMAT, /* Format */ - SNDRV_PCM_HW_PARAM_SUBFORMAT, /* Subformat */ - SNDRV_PCM_HW_PARAM_LAST_MASK = SNDRV_PCM_HW_PARAM_SUBFORMAT, - - SNDRV_PCM_HW_PARAM_SAMPLE_BITS = 8, /* Bits per sample */ - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL = SNDRV_PCM_HW_PARAM_SAMPLE_BITS, - SNDRV_PCM_HW_PARAM_FRAME_BITS, /* Bits per frame */ - SNDRV_PCM_HW_PARAM_CHANNELS, /* Channels */ - SNDRV_PCM_HW_PARAM_RATE, /* Approx rate */ - SNDRV_PCM_HW_PARAM_PERIOD_TIME, /* Approx distance between interrupts - in us */ - SNDRV_PCM_HW_PARAM_PERIOD_SIZE, /* Approx frames between interrupts */ - SNDRV_PCM_HW_PARAM_PERIOD_BYTES, /* Approx bytes between interrupts */ - SNDRV_PCM_HW_PARAM_PERIODS, /* Approx interrupts per buffer */ - SNDRV_PCM_HW_PARAM_BUFFER_TIME, /* Approx duration of buffer in us */ - SNDRV_PCM_HW_PARAM_BUFFER_SIZE, /* Size of buffer in frames */ - SNDRV_PCM_HW_PARAM_BUFFER_BYTES, /* Size of buffer in bytes */ - SNDRV_PCM_HW_PARAM_TICK_TIME, /* Approx tick duration in us */ - SNDRV_PCM_HW_PARAM_LAST_INTERVAL = SNDRV_PCM_HW_PARAM_TICK_TIME -}; - -#define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1<<0) /* avoid rate resampling */ -#define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER (1<<1) /* export buffer */ - -struct sndrv_interval { - unsigned int min, max; - unsigned int openmin:1, - openmax:1, - integer:1, - empty:1; -}; - -#define SNDRV_MASK_MAX 256 - -struct sndrv_mask { - u_int32_t bits[(SNDRV_MASK_MAX+31)/32]; -}; - -struct sndrv_pcm_hw_params { - unsigned int flags; - struct sndrv_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK - - SNDRV_PCM_HW_PARAM_FIRST_MASK + 1]; - struct sndrv_mask mres[5]; /* reserved masks */ - struct sndrv_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL - - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1]; - struct sndrv_interval ires[9]; /* reserved intervals */ - unsigned int rmask; /* W: requested masks */ - unsigned int cmask; /* R: changed masks */ - unsigned int info; /* R: Info flags for returned setup */ - unsigned int msbits; /* R: used most significant bits */ - unsigned int rate_num; /* R: rate numerator */ - unsigned int rate_den; /* R: rate denominator */ - sndrv_pcm_uframes_t fifo_size; /* R: chip FIFO size in frames */ - unsigned char reserved[64]; /* reserved for future */ -}; - -enum sndrv_pcm_tstamp { - SNDRV_PCM_TSTAMP_NONE = 0, - SNDRV_PCM_TSTAMP_ENABLE, - SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE, -}; - -struct sndrv_pcm_sw_params { - int tstamp_mode; /* timestamp mode */ - unsigned int period_step; - unsigned int sleep_min; /* min ticks to sleep */ - sndrv_pcm_uframes_t avail_min; /* min avail frames for wakeup */ - sndrv_pcm_uframes_t xfer_align; /* xfer size need to be a multiple */ - sndrv_pcm_uframes_t start_threshold; /* min hw_avail frames for automatic start */ - sndrv_pcm_uframes_t stop_threshold; /* min avail frames for automatic stop */ - sndrv_pcm_uframes_t silence_threshold; /* min distance from noise for silence filling */ - sndrv_pcm_uframes_t silence_size; /* silence block size */ - sndrv_pcm_uframes_t boundary; /* pointers wrap point */ - unsigned char reserved[60]; /* reserved for future */ - unsigned int period_event; /* for alsa-lib implementation */ -}; - -struct sndrv_pcm_channel_info { - unsigned int channel; - off_t offset; /* mmap offset */ - unsigned int first; /* offset to first sample in bits */ - unsigned int step; /* samples distance in bits */ -}; - -struct sndrv_pcm_status { - int state; /* stream state */ - struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */ - struct timespec tstamp; /* reference timestamp */ - sndrv_pcm_uframes_t appl_ptr; /* appl ptr */ - sndrv_pcm_uframes_t hw_ptr; /* hw ptr */ - sndrv_pcm_sframes_t delay; /* current delay in frames */ - sndrv_pcm_uframes_t avail; /* number of frames available */ - sndrv_pcm_uframes_t avail_max; /* max frames available on hw since last status */ - sndrv_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */ - int suspended_state; /* suspended stream state */ - unsigned char reserved[60]; /* must be filled with zero */ -}; - -struct sndrv_pcm_mmap_status { - int state; /* RO: state - SNDRV_PCM_STATE_XXXX */ - int pad1; /* Needed for 64 bit alignment */ - sndrv_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */ - struct timespec tstamp; /* Timestamp */ - int suspended_state; /* RO: suspended stream state */ -}; - -struct sndrv_pcm_mmap_control { - sndrv_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */ - sndrv_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */ -}; - -#define SNDRV_PCM_SYNC_PTR_HWSYNC (1<<0) /* execute hwsync */ -#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */ -#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */ - -struct sndrv_pcm_sync_ptr { - unsigned int flags; - union { - struct sndrv_pcm_mmap_status status; - unsigned char reserved[64]; - } s; - union { - struct sndrv_pcm_mmap_control control; - unsigned char reserved[64]; - } c; -}; - -struct sndrv_xferi { - sndrv_pcm_sframes_t result; - void *buf; - sndrv_pcm_uframes_t frames; -}; - -struct sndrv_xfern { - sndrv_pcm_sframes_t result; - void **bufs; - sndrv_pcm_uframes_t frames; -}; - - -enum { - SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */ - SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */ - SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, -}; - -enum { - SNDRV_PCM_IOCTL_PVERSION = _IOR('A', 0x00, int), - SNDRV_PCM_IOCTL_INFO = _IOR('A', 0x01, struct sndrv_pcm_info), - SNDRV_PCM_IOCTL_TSTAMP = _IOW('A', 0x02, int), - SNDRV_PCM_IOCTL_TTSTAMP = _IOW('A', 0x03, int), - SNDRV_PCM_IOCTL_HW_REFINE = _IOWR('A', 0x10, struct sndrv_pcm_hw_params), - SNDRV_PCM_IOCTL_HW_PARAMS = _IOWR('A', 0x11, struct sndrv_pcm_hw_params), - SNDRV_PCM_IOCTL_HW_FREE = _IO('A', 0x12), - SNDRV_PCM_IOCTL_SW_PARAMS = _IOWR('A', 0x13, struct sndrv_pcm_sw_params), - SNDRV_PCM_IOCTL_STATUS = _IOR('A', 0x20, struct sndrv_pcm_status), - SNDRV_PCM_IOCTL_DELAY = _IOR('A', 0x21, sndrv_pcm_sframes_t), - SNDRV_PCM_IOCTL_HWSYNC = _IO('A', 0x22), - SNDRV_PCM_IOCTL_SYNC_PTR = _IOWR('A', 0x23, struct sndrv_pcm_sync_ptr), - SNDRV_PCM_IOCTL_CHANNEL_INFO = _IOR('A', 0x32, struct sndrv_pcm_channel_info), - SNDRV_PCM_IOCTL_PREPARE = _IO('A', 0x40), - SNDRV_PCM_IOCTL_RESET = _IO('A', 0x41), - SNDRV_PCM_IOCTL_START = _IO('A', 0x42), - SNDRV_PCM_IOCTL_DROP = _IO('A', 0x43), - SNDRV_PCM_IOCTL_DRAIN = _IO('A', 0x44), - SNDRV_PCM_IOCTL_PAUSE = _IOW('A', 0x45, int), - SNDRV_PCM_IOCTL_REWIND = _IOW('A', 0x46, sndrv_pcm_uframes_t), - SNDRV_PCM_IOCTL_RESUME = _IO('A', 0x47), - SNDRV_PCM_IOCTL_XRUN = _IO('A', 0x48), - SNDRV_PCM_IOCTL_FORWARD = _IOW('A', 0x49, sndrv_pcm_uframes_t), - SNDRV_PCM_IOCTL_WRITEI_FRAMES = _IOW('A', 0x50, struct sndrv_xferi), - SNDRV_PCM_IOCTL_READI_FRAMES = _IOR('A', 0x51, struct sndrv_xferi), - SNDRV_PCM_IOCTL_WRITEN_FRAMES = _IOW('A', 0x52, struct sndrv_xfern), - SNDRV_PCM_IOCTL_READN_FRAMES = _IOR('A', 0x53, struct sndrv_xfern), - SNDRV_PCM_IOCTL_LINK = _IOW('A', 0x60, int), - SNDRV_PCM_IOCTL_UNLINK = _IO('A', 0x61), -}; - -/* Trick to make alsa-lib/acinclude.m4 happy */ -#define SNDRV_PCM_IOCTL_REWIND SNDRV_PCM_IOCTL_REWIND - -/***************************************************************************** - * * - * MIDI v1.0 interface * - * * - *****************************************************************************/ - -/* - * Raw MIDI section - /dev/snd/midi?? - */ - -#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0) - -enum sndrv_rawmidi_stream { - SNDRV_RAWMIDI_STREAM_OUTPUT = 0, - SNDRV_RAWMIDI_STREAM_INPUT, - SNDRV_RAWMIDI_STREAM_LAST = SNDRV_RAWMIDI_STREAM_INPUT, -}; - -#define SNDRV_RAWMIDI_INFO_OUTPUT 0x00000001 -#define SNDRV_RAWMIDI_INFO_INPUT 0x00000002 -#define SNDRV_RAWMIDI_INFO_DUPLEX 0x00000004 - -struct sndrv_rawmidi_info { - unsigned int device; /* RO/WR (control): device number */ - unsigned int subdevice; /* RO/WR (control): subdevice number */ - int stream; /* WR: stream */ - int card; /* R: card number */ - unsigned int flags; /* SNDRV_RAWMIDI_INFO_XXXX */ - unsigned char id[64]; /* ID (user selectable) */ - unsigned char name[80]; /* name of device */ - unsigned char subname[32]; /* name of active or selected subdevice */ - unsigned int subdevices_count; - unsigned int subdevices_avail; - unsigned char reserved[64]; /* reserved for future use */ -}; - -struct sndrv_rawmidi_params { - int stream; - size_t buffer_size; /* queue size in bytes */ - size_t avail_min; /* minimum avail bytes for wakeup */ - unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */ - unsigned char reserved[16]; /* reserved for future use */ -}; - -struct sndrv_rawmidi_status { - int stream; - struct timespec tstamp; /* Timestamp */ - size_t avail; /* available bytes */ - size_t xruns; /* count of overruns since last status (in bytes) */ - unsigned char reserved[16]; /* reserved for future use */ -}; - -enum { - SNDRV_RAWMIDI_IOCTL_PVERSION = _IOR('W', 0x00, int), - SNDRV_RAWMIDI_IOCTL_INFO = _IOR('W', 0x01, struct sndrv_rawmidi_info), - SNDRV_RAWMIDI_IOCTL_PARAMS = _IOWR('W', 0x10, struct sndrv_rawmidi_params), - SNDRV_RAWMIDI_IOCTL_STATUS = _IOWR('W', 0x20, struct sndrv_rawmidi_status), - SNDRV_RAWMIDI_IOCTL_DROP = _IOW('W', 0x30, int), - SNDRV_RAWMIDI_IOCTL_DRAIN = _IOW('W', 0x31, int), -}; - -/* - * Timer section - /dev/snd/timer - */ - -#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 5) - -enum sndrv_timer_class { - SNDRV_TIMER_CLASS_NONE = -1, - SNDRV_TIMER_CLASS_SLAVE = 0, - SNDRV_TIMER_CLASS_GLOBAL, - SNDRV_TIMER_CLASS_CARD, - SNDRV_TIMER_CLASS_PCM, - SNDRV_TIMER_CLASS_LAST = SNDRV_TIMER_CLASS_PCM, -}; - -/* slave timer classes */ -enum sndrv_timer_slave_class { - SNDRV_TIMER_SCLASS_NONE = 0, - SNDRV_TIMER_SCLASS_APPLICATION, - SNDRV_TIMER_SCLASS_SEQUENCER, /* alias */ - SNDRV_TIMER_SCLASS_OSS_SEQUENCER, /* alias */ - SNDRV_TIMER_SCLASS_LAST = SNDRV_TIMER_SCLASS_OSS_SEQUENCER, -}; - -/* global timers (device member) */ -#define SNDRV_TIMER_GLOBAL_SYSTEM 0 -#define SNDRV_TIMER_GLOBAL_RTC 1 -#define SNDRV_TIMER_GLOBAL_HPET 2 - -/* info flags */ -#define SNDRV_TIMER_FLG_SLAVE (1<<0) /* cannot be controlled */ - -struct sndrv_timer_id { - int dev_class; - int dev_sclass; - int card; - int device; - int subdevice; -}; - -struct sndrv_timer_ginfo { - struct sndrv_timer_id tid; /* requested timer ID */ - unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */ - int card; /* card number */ - unsigned char id[64]; /* timer identification */ - unsigned char name[80]; /* timer name */ - unsigned long reserved0; /* reserved for future use */ - unsigned long resolution; /* average period resolution in ns */ - unsigned long resolution_min; /* minimal period resolution in ns */ - unsigned long resolution_max; /* maximal period resolution in ns */ - unsigned int clients; /* active timer clients */ - unsigned char reserved[32]; -}; - -struct sndrv_timer_gparams { - struct sndrv_timer_id tid; /* requested timer ID */ - unsigned long period_num; /* requested precise period duration (in seconds) - numerator */ - unsigned long period_den; /* requested precise period duration (in seconds) - denominator */ - unsigned char reserved[32]; -}; - -struct sndrv_timer_gstatus { - struct sndrv_timer_id tid; /* requested timer ID */ - unsigned long resolution; /* current period resolution in ns */ - unsigned long resolution_num; /* precise current period resolution (in seconds) - numerator */ - unsigned long resolution_den; /* precise current period resolution (in seconds) - denominator */ - unsigned char reserved[32]; -}; - -struct sndrv_timer_select { - struct sndrv_timer_id id; /* bind to timer ID */ - unsigned char reserved[32]; /* reserved */ -}; - -struct sndrv_timer_info { - unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */ - int card; /* card number */ - unsigned char id[64]; /* timer identificator */ - unsigned char name[80]; /* timer name */ - unsigned long reserved0; /* reserved for future use */ - unsigned long resolution; /* average period resolution in ns */ - unsigned char reserved[64]; /* reserved */ -}; - -#define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* auto start, otherwise one-shot */ -#define SNDRV_TIMER_PSFLG_EXCLUSIVE (1<<1) /* exclusive use, precise start/stop/pause/continue */ -#define SNDRV_TIMER_PSFLG_EARLY_EVENT (1<<2) /* write early event to the poll queue */ - -struct sndrv_timer_params { - unsigned int flags; /* flags - SNDRV_MIXER_PSFLG_* */ - unsigned int ticks; /* requested resolution in ticks */ - unsigned int queue_size; /* total size of queue (32-1024) */ - unsigned int reserved0; /* reserved, was: failure locations */ - unsigned int filter; /* event filter (bitmask of SNDRV_TIMER_EVENT_*) */ - unsigned char reserved[60]; /* reserved */ -}; - -struct sndrv_timer_status { - struct timespec tstamp; /* Timestamp - last update */ - unsigned int resolution; /* current period resolution in ns */ - unsigned int lost; /* counter of master tick lost */ - unsigned int overrun; /* count of read queue overruns */ - unsigned int queue; /* used queue size */ - unsigned char reserved[64]; /* reserved */ -}; - -enum { - SNDRV_TIMER_IOCTL_PVERSION = _IOR('T', 0x00, int), - SNDRV_TIMER_IOCTL_NEXT_DEVICE = _IOWR('T', 0x01, struct sndrv_timer_id), - SNDRV_TIMER_IOCTL_TREAD = _IOW('T', 0x02, int), - SNDRV_TIMER_IOCTL_GINFO = _IOWR('T', 0x03, struct sndrv_timer_ginfo), - SNDRV_TIMER_IOCTL_GPARAMS = _IOW('T', 0x04, struct sndrv_timer_gparams), - SNDRV_TIMER_IOCTL_GSTATUS = _IOWR('T', 0x05, struct sndrv_timer_gstatus), - SNDRV_TIMER_IOCTL_SELECT = _IOW('T', 0x10, struct sndrv_timer_select), - SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct sndrv_timer_info), - SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct sndrv_timer_params), - SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct sndrv_timer_status), - /* The following four ioctls are changed since 1.0.9 due to confliction */ - SNDRV_TIMER_IOCTL_START = _IO('T', 0xa0), - SNDRV_TIMER_IOCTL_STOP = _IO('T', 0xa1), - SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0xa2), - SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0xa3), -}; - -struct sndrv_timer_read { - unsigned int resolution; - unsigned int ticks; -}; - -enum sndrv_timer_event { - SNDRV_TIMER_EVENT_RESOLUTION = 0, /* val = resolution in ns */ - SNDRV_TIMER_EVENT_TICK, /* val = ticks */ - SNDRV_TIMER_EVENT_START, /* val = resolution in ns */ - SNDRV_TIMER_EVENT_STOP, /* val = 0 */ - SNDRV_TIMER_EVENT_CONTINUE, /* val = resolution in ns */ - SNDRV_TIMER_EVENT_PAUSE, /* val = 0 */ - SNDRV_TIMER_EVENT_EARLY, /* val = 0, early event */ - SNDRV_TIMER_EVENT_SUSPEND, /* val = 0 */ - SNDRV_TIMER_EVENT_RESUME, /* val = resolution in ns */ - /* master timer events for slave timer instances */ - SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10, - SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10, - SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10, - SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10, - SNDRV_TIMER_EVENT_MSUSPEND = SNDRV_TIMER_EVENT_SUSPEND + 10, - SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10, -}; - -struct sndrv_timer_tread { - int event; - struct timespec tstamp; - unsigned int val; -}; - -/**************************************************************************** - * * - * Section for driver control interface - /dev/snd/control? * - * * - ****************************************************************************/ - -#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6) - -struct sndrv_ctl_card_info { - int card; /* card number */ - int pad; /* reserved for future (was type) */ - unsigned char id[16]; /* ID of card (user selectable) */ - unsigned char driver[16]; /* Driver name */ - unsigned char name[32]; /* Short name of soundcard */ - unsigned char longname[80]; /* name + info text about soundcard */ - unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */ - unsigned char mixername[80]; /* visual mixer identification */ - unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */ -}; - -enum sndrv_ctl_elem_type { - SNDRV_CTL_ELEM_TYPE_NONE = 0, /* invalid */ - SNDRV_CTL_ELEM_TYPE_BOOLEAN, /* boolean type */ - SNDRV_CTL_ELEM_TYPE_INTEGER, /* integer type */ - SNDRV_CTL_ELEM_TYPE_ENUMERATED, /* enumerated type */ - SNDRV_CTL_ELEM_TYPE_BYTES, /* byte array */ - SNDRV_CTL_ELEM_TYPE_IEC958, /* IEC958 (S/PDIF) setup */ - SNDRV_CTL_ELEM_TYPE_INTEGER64, /* 64-bit integer type */ - SNDRV_CTL_ELEM_TYPE_LAST = SNDRV_CTL_ELEM_TYPE_INTEGER64, -}; - -enum sndrv_ctl_elem_iface { - SNDRV_CTL_ELEM_IFACE_CARD = 0, /* global control */ - SNDRV_CTL_ELEM_IFACE_HWDEP, /* hardware dependent device */ - SNDRV_CTL_ELEM_IFACE_MIXER, /* virtual mixer device */ - SNDRV_CTL_ELEM_IFACE_PCM, /* PCM device */ - SNDRV_CTL_ELEM_IFACE_RAWMIDI, /* RawMidi device */ - SNDRV_CTL_ELEM_IFACE_TIMER, /* timer device */ - SNDRV_CTL_ELEM_IFACE_SEQUENCER, /* sequencer client */ - SNDRV_CTL_ELEM_IFACE_LAST = SNDRV_CTL_ELEM_IFACE_SEQUENCER, -}; - -#define SNDRV_CTL_ELEM_ACCESS_READ (1<<0) -#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1) -#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE) -#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */ -#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */ -#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is supported */ -#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is supported */ -#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE) -#define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND (1<<6) /* TLV command is possible */ -#define SNDRV_CTL_ELEM_ACCESS_INACTIVE (1<<8) /* control does actually nothing, but may be updated */ -#define SNDRV_CTL_ELEM_ACCESS_LOCK (1<<9) /* write lock */ -#define SNDRV_CTL_ELEM_ACCESS_OWNER (1<<10) /* write lock owner */ -#define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK (1<<28) /* flag only for kernel */ -#define SNDRV_CTL_ELEM_ACCESS_USER (1<<29) /* user space element */ -/* bits 30 and 31 are obsoleted (for indirect access) */ - -/* for further details see the ACPI and PCI power management specification */ -#define SNDRV_CTL_POWER_D0 0x0000 /* full On */ -#define SNDRV_CTL_POWER_D1 0x0100 /* partial On */ -#define SNDRV_CTL_POWER_D2 0x0200 /* partial On */ -#define SNDRV_CTL_POWER_D3 0x0300 /* Off */ -#define SNDRV_CTL_POWER_D3hot (SNDRV_CTL_POWER_D3|0x0000) /* Off, with power */ -#define SNDRV_CTL_POWER_D3cold (SNDRV_CTL_POWER_D3|0x0001) /* Off, without power */ - -struct sndrv_ctl_elem_id { - unsigned int numid; /* numeric identifier, zero = invalid */ - int iface; /* interface identifier */ - unsigned int device; /* device/client number */ - unsigned int subdevice; /* subdevice (substream) number */ - unsigned char name[44]; /* ASCII name of item */ - unsigned int index; /* index of item */ -}; - -struct sndrv_ctl_elem_list { - unsigned int offset; /* W: first element ID to get */ - unsigned int space; /* W: count of element IDs to get */ - unsigned int used; /* R: count of element IDs set */ - unsigned int count; /* R: count of all elements */ - struct sndrv_ctl_elem_id *pids; /* R: IDs */ - unsigned char reserved[50]; -}; - -struct sndrv_ctl_elem_info { - struct sndrv_ctl_elem_id id; /* W: element ID */ - int type; /* R: value type - SNDRV_CTL_ELEM_TYPE_* */ - unsigned int access; /* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */ - unsigned int count; /* count of values */ - pid_t owner; /* owner's PID of this control */ - union { - struct { - long min; /* R: minimum value */ - long max; /* R: maximum value */ - long step; /* R: step (0 variable) */ - } integer; - struct { - long long min; /* R: minimum value */ - long long max; /* R: maximum value */ - long long step; /* R: step (0 variable) */ - } integer64; - struct { - unsigned int items; /* R: number of items */ - unsigned int item; /* W: item number */ - char name[64]; /* R: value name */ - } enumerated; - unsigned char reserved[128]; - } value; - union { - unsigned short d[4]; /* dimensions */ - unsigned short *d_ptr; /* (obsolete) indirect */ - } dimen; - unsigned char reserved[64-4*sizeof(unsigned short)]; -}; - -struct sndrv_ctl_elem_value { - struct sndrv_ctl_elem_id id; /* W: element ID */ - unsigned int indirect: 1; /* (obsolete) W: use indirect pointer (xxx_ptr member) */ - union { - union { - long value[128]; - long *value_ptr; /* obsolete */ - } integer; - union { - long long value[64]; - long long *value_ptr; /* obsolete */ - } integer64; - union { - unsigned int item[128]; - unsigned int *item_ptr; /* obsolete */ - } enumerated; - union { - unsigned char data[512]; - unsigned char *data_ptr; /* obsolete */ - } bytes; - struct sndrv_aes_iec958 iec958; - } value; /* RO */ - struct timespec tstamp; - unsigned char reserved[128-sizeof(struct timespec)]; -}; - -struct sndrv_ctl_tlv { - unsigned int numid; /* control element numeric identification */ - unsigned int length; /* in bytes aligned to 4 */ - unsigned int tlv[0]; /* first TLV */ -}; - -enum { - SNDRV_CTL_IOCTL_PVERSION = _IOR('U', 0x00, int), - SNDRV_CTL_IOCTL_CARD_INFO = _IOR('U', 0x01, struct sndrv_ctl_card_info), - SNDRV_CTL_IOCTL_ELEM_LIST = _IOWR('U', 0x10, struct sndrv_ctl_elem_list), - SNDRV_CTL_IOCTL_ELEM_INFO = _IOWR('U', 0x11, struct sndrv_ctl_elem_info), - SNDRV_CTL_IOCTL_ELEM_READ = _IOWR('U', 0x12, struct sndrv_ctl_elem_value), - SNDRV_CTL_IOCTL_ELEM_WRITE = _IOWR('U', 0x13, struct sndrv_ctl_elem_value), - SNDRV_CTL_IOCTL_ELEM_LOCK = _IOW('U', 0x14, struct sndrv_ctl_elem_id), - SNDRV_CTL_IOCTL_ELEM_UNLOCK = _IOW('U', 0x15, struct sndrv_ctl_elem_id), - SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS = _IOWR('U', 0x16, int), - SNDRV_CTL_IOCTL_ELEM_ADD = _IOWR('U', 0x17, struct sndrv_ctl_elem_info), - SNDRV_CTL_IOCTL_ELEM_REPLACE = _IOWR('U', 0x18, struct sndrv_ctl_elem_info), - SNDRV_CTL_IOCTL_ELEM_REMOVE = _IOWR('U', 0x19, struct sndrv_ctl_elem_id), - SNDRV_CTL_IOCTL_TLV_READ = _IOWR('U', 0x1a, struct sndrv_ctl_tlv), - SNDRV_CTL_IOCTL_TLV_WRITE = _IOWR('U', 0x1b, struct sndrv_ctl_tlv), - SNDRV_CTL_IOCTL_TLV_COMMAND = _IOWR('U', 0x1c, struct sndrv_ctl_tlv), - SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE = _IOWR('U', 0x20, int), - SNDRV_CTL_IOCTL_HWDEP_INFO = _IOR('U', 0x21, struct sndrv_hwdep_info), - SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE = _IOR('U', 0x30, int), - SNDRV_CTL_IOCTL_PCM_INFO = _IOWR('U', 0x31, struct sndrv_pcm_info), - SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE = _IOW('U', 0x32, int), - SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE = _IOWR('U', 0x40, int), - SNDRV_CTL_IOCTL_RAWMIDI_INFO = _IOWR('U', 0x41, struct sndrv_rawmidi_info), - SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE = _IOW('U', 0x42, int), - SNDRV_CTL_IOCTL_POWER = _IOWR('U', 0xd0, int), - SNDRV_CTL_IOCTL_POWER_STATE = _IOR('U', 0xd1, int), -}; - -/* - * Read interface. - */ - -enum sndrv_ctl_event_type { - SNDRV_CTL_EVENT_ELEM = 0, - SNDRV_CTL_EVENT_LAST = SNDRV_CTL_EVENT_ELEM, -}; - -#define SNDRV_CTL_EVENT_MASK_VALUE (1<<0) /* element value was changed */ -#define SNDRV_CTL_EVENT_MASK_INFO (1<<1) /* element info was changed */ -#define SNDRV_CTL_EVENT_MASK_ADD (1<<2) /* element was added */ -#define SNDRV_CTL_EVENT_MASK_REMOVE (~0U) /* element was removed */ - -struct sndrv_ctl_event { - int type; /* event type - SNDRV_CTL_EVENT_* */ - union { - struct { - unsigned int mask; - struct sndrv_ctl_elem_id id; - } elem; - unsigned char data8[60]; - } data; -}; - -/* - * Control names - */ - -#define SNDRV_CTL_NAME_NONE "" -#define SNDRV_CTL_NAME_PLAYBACK "Playback " -#define SNDRV_CTL_NAME_CAPTURE "Capture " - -#define SNDRV_CTL_NAME_IEC958_NONE "" -#define SNDRV_CTL_NAME_IEC958_SWITCH "Switch" -#define SNDRV_CTL_NAME_IEC958_VOLUME "Volume" -#define SNDRV_CTL_NAME_IEC958_DEFAULT "Default" -#define SNDRV_CTL_NAME_IEC958_MASK "Mask" -#define SNDRV_CTL_NAME_IEC958_CON_MASK "Con Mask" -#define SNDRV_CTL_NAME_IEC958_PRO_MASK "Pro Mask" -#define SNDRV_CTL_NAME_IEC958_PCM_STREAM "PCM Stream" -#define SNDRV_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SNDRV_CTL_NAME_##direction SNDRV_CTL_NAME_IEC958_##what - -/* - * - */ - -struct sndrv_xferv { - const struct iovec *vector; - unsigned long count; -}; - -enum { - SNDRV_IOCTL_READV = _IOW('K', 0x00, struct sndrv_xferv), - SNDRV_IOCTL_WRITEV = _IOW('K', 0x01, struct sndrv_xferv), -}; - -#endif /* __SOUND_ASOUND_H */ diff --git a/alsa-lib/include/sound/asound_fm.h b/alsa-lib/include/sound/asound_fm.h deleted file mode 100644 index c2a4b96..0000000 --- a/alsa-lib/include/sound/asound_fm.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef __SOUND_ASOUND_FM_H -#define __SOUND_ASOUND_FM_H - -/* - * Advanced Linux Sound Architecture - ALSA - * - * Interface file between ALSA driver & user space - * Copyright (c) 1994-98 by Jaroslav Kysela <perex@perex.cz>, - * 4Front Technologies - * - * Direct FM control - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#define SNDRV_DM_FM_MODE_OPL2 0x00 -#define SNDRV_DM_FM_MODE_OPL3 0x01 - -struct snd_dm_fm_info { - unsigned char fm_mode; /* OPL mode, see SNDRV_DM_FM_MODE_XXX */ - unsigned char rhythm; /* percussion mode flag */ -}; - -/* - * Data structure composing an FM "note" or sound event. - */ - -struct snd_dm_fm_voice { - unsigned char op; /* operator cell (0 or 1) */ - unsigned char voice; /* FM voice (0 to 17) */ - - unsigned char am; /* amplitude modulation */ - unsigned char vibrato; /* vibrato effect */ - unsigned char do_sustain; /* sustain phase */ - unsigned char kbd_scale; /* keyboard scaling */ - unsigned char harmonic; /* 4 bits: harmonic and multiplier */ - unsigned char scale_level; /* 2 bits: decrease output freq rises */ - unsigned char volume; /* 6 bits: volume */ - - unsigned char attack; /* 4 bits: attack rate */ - unsigned char decay; /* 4 bits: decay rate */ - unsigned char sustain; /* 4 bits: sustain level */ - unsigned char release; /* 4 bits: release rate */ - - unsigned char feedback; /* 3 bits: feedback for op0 */ - unsigned char connection; /* 0 for serial, 1 for parallel */ - unsigned char left; /* stereo left */ - unsigned char right; /* stereo right */ - unsigned char waveform; /* 3 bits: waveform shape */ -}; - -/* - * This describes an FM note by its voice, octave, frequency number (10bit) - * and key on/off. - */ - -struct snd_dm_fm_note { - unsigned char voice; /* 0-17 voice channel */ - unsigned char octave; /* 3 bits: what octave to play */ - unsigned int fnum; /* 10 bits: frequency number */ - unsigned char key_on; /* set for active, clear for silent */ -}; - -/* - * FM parameters that apply globally to all voices, and thus are not "notes" - */ - -struct snd_dm_fm_params { - unsigned char am_depth; /* amplitude modulation depth (1=hi) */ - unsigned char vib_depth; /* vibrato depth (1=hi) */ - unsigned char kbd_split; /* keyboard split */ - unsigned char rhythm; /* percussion mode select */ - - /* This block is the percussion instrument data */ - unsigned char bass; - unsigned char snare; - unsigned char tomtom; - unsigned char cymbal; - unsigned char hihat; -}; - -/* - * FM mode ioctl settings - */ - -#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info) -#define SNDRV_DM_FM_IOCTL_RESET _IO ('H', 0x21) -#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note) -#define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice) -#define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params) -#define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int) -/* for OPL3 only */ -#define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int) -/* SBI patch management */ -#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO ('H', 0x40) - -#define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20 -#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21 -#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22 -#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23 -#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24 -#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25 - -/* - * Patch Record - fixed size for write - */ - -#define FM_KEY_SBI "SBI\032" -#define FM_KEY_2OP "2OP\032" -#define FM_KEY_4OP "4OP\032" - -struct sbi_patch { - unsigned char prog; - unsigned char bank; - char key[4]; - char name[25]; - char extension[7]; - unsigned char data[32]; -}; - -#endif /* __SOUND_ASOUND_FM_H */ diff --git a/alsa-lib/include/sound/asoundef.h b/alsa-lib/include/sound/asoundef.h deleted file mode 100644 index f962c5a..0000000 --- a/alsa-lib/include/sound/asoundef.h +++ /dev/null @@ -1,227 +0,0 @@ -#ifndef __SOUND_ASOUNDEF_H -#define __SOUND_ASOUNDEF_H - -/* - * Advanced Linux Sound Architecture - ALSA - Driver - * Copyright (c) 1994-2000 by Jaroslav Kysela <perex@perex.cz> - * - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -/**************************************************************************** - * * - * Digital audio interface * - * * - ****************************************************************************/ - -/* AES/IEC958 channel status bits */ -#define IEC958_AES0_PROFESSIONAL (1<<0) /* 0 = consumer, 1 = professional */ -#define IEC958_AES0_NONAUDIO (1<<1) /* 0 = audio, 1 = non-audio */ -#define IEC958_AES0_PRO_EMPHASIS (7<<2) /* mask - emphasis */ -#define IEC958_AES0_PRO_EMPHASIS_NOTID (0<<2) /* emphasis not indicated */ -#define IEC958_AES0_PRO_EMPHASIS_NONE (1<<2) /* none emphasis */ -#define IEC958_AES0_PRO_EMPHASIS_5015 (3<<2) /* 50/15us emphasis */ -#define IEC958_AES0_PRO_EMPHASIS_CCITT (7<<2) /* CCITT J.17 emphasis */ -#define IEC958_AES0_PRO_FREQ_UNLOCKED (1<<5) /* source sample frequency: 0 = locked, 1 = unlocked */ -#define IEC958_AES0_PRO_FS (3<<6) /* mask - sample frequency */ -#define IEC958_AES0_PRO_FS_NOTID (0<<6) /* fs not indicated */ -#define IEC958_AES0_PRO_FS_44100 (1<<6) /* 44.1kHz */ -#define IEC958_AES0_PRO_FS_48000 (2<<6) /* 48kHz */ -#define IEC958_AES0_PRO_FS_32000 (3<<6) /* 32kHz */ -#define IEC958_AES0_CON_NOT_COPYRIGHT (1<<2) /* 0 = copyright, 1 = not copyright */ -#define IEC958_AES0_CON_EMPHASIS (7<<3) /* mask - emphasis */ -#define IEC958_AES0_CON_EMPHASIS_NONE (0<<3) /* none emphasis */ -#define IEC958_AES0_CON_EMPHASIS_5015 (1<<3) /* 50/15us emphasis */ -#define IEC958_AES0_CON_MODE (3<<6) /* mask - mode */ -#define IEC958_AES1_PRO_MODE (15<<0) /* mask - channel mode */ -#define IEC958_AES1_PRO_MODE_NOTID (0<<0) /* not indicated */ -#define IEC958_AES1_PRO_MODE_STEREOPHONIC (2<<0) /* stereophonic - ch A is left */ -#define IEC958_AES1_PRO_MODE_SINGLE (4<<0) /* single channel */ -#define IEC958_AES1_PRO_MODE_TWO (8<<0) /* two channels */ -#define IEC958_AES1_PRO_MODE_PRIMARY (12<<0) /* primary/secondary */ -#define IEC958_AES1_PRO_MODE_BYTE3 (15<<0) /* vector to byte 3 */ -#define IEC958_AES1_PRO_USERBITS (15<<4) /* mask - user bits */ -#define IEC958_AES1_PRO_USERBITS_NOTID (0<<4) /* not indicated */ -#define IEC958_AES1_PRO_USERBITS_192 (8<<4) /* 192-bit structure */ -#define IEC958_AES1_PRO_USERBITS_UDEF (12<<4) /* user defined application */ -#define IEC958_AES1_CON_CATEGORY 0x7f -#define IEC958_AES1_CON_GENERAL 0x00 -#define IEC958_AES1_CON_EXPERIMENTAL 0x40 -#define IEC958_AES1_CON_SOLIDMEM_MASK 0x0f -#define IEC958_AES1_CON_SOLIDMEM_ID 0x08 -#define IEC958_AES1_CON_BROADCAST1_MASK 0x07 -#define IEC958_AES1_CON_BROADCAST1_ID 0x04 -#define IEC958_AES1_CON_DIGDIGCONV_MASK 0x07 -#define IEC958_AES1_CON_DIGDIGCONV_ID 0x02 -#define IEC958_AES1_CON_ADC_COPYRIGHT_MASK 0x1f -#define IEC958_AES1_CON_ADC_COPYRIGHT_ID 0x06 -#define IEC958_AES1_CON_ADC_MASK 0x1f -#define IEC958_AES1_CON_ADC_ID 0x16 -#define IEC958_AES1_CON_BROADCAST2_MASK 0x0f -#define IEC958_AES1_CON_BROADCAST2_ID 0x0e -#define IEC958_AES1_CON_LASEROPT_MASK 0x07 -#define IEC958_AES1_CON_LASEROPT_ID 0x01 -#define IEC958_AES1_CON_MUSICAL_MASK 0x07 -#define IEC958_AES1_CON_MUSICAL_ID 0x05 -#define IEC958_AES1_CON_MAGNETIC_MASK 0x07 -#define IEC958_AES1_CON_MAGNETIC_ID 0x03 -#define IEC958_AES1_CON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x00) -#define IEC958_AES1_CON_NON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x08) -#define IEC958_AES1_CON_PCM_CODER (IEC958_AES1_CON_DIGDIGCONV_ID|0x00) -#define IEC958_AES1_CON_SAMPLER (IEC958_AES1_CON_DIGDIGCONV_ID|0x20) -#define IEC958_AES1_CON_MIXER (IEC958_AES1_CON_DIGDIGCONV_ID|0x10) -#define IEC958_AES1_CON_RATE_CONVERTER (IEC958_AES1_CON_DIGDIGCONV_ID|0x18) -#define IEC958_AES1_CON_SYNTHESIZER (IEC958_AES1_CON_MUSICAL_ID|0x00) -#define IEC958_AES1_CON_MICROPHONE (IEC958_AES1_CON_MUSICAL_ID|0x08) -#define IEC958_AES1_CON_DAT (IEC958_AES1_CON_MAGNETIC_ID|0x00) -#define IEC958_AES1_CON_VCR (IEC958_AES1_CON_MAGNETIC_ID|0x08) -#define IEC958_AES1_CON_ORIGINAL (1<<7) /* this bits depends on the category code */ -#define IEC958_AES2_PRO_SBITS (7<<0) /* mask - sample bits */ -#define IEC958_AES2_PRO_SBITS_20 (2<<0) /* 20-bit - coordination */ -#define IEC958_AES2_PRO_SBITS_24 (4<<0) /* 24-bit - main audio */ -#define IEC958_AES2_PRO_SBITS_UDEF (6<<0) /* user defined application */ -#define IEC958_AES2_PRO_WORDLEN (7<<3) /* mask - source word length */ -#define IEC958_AES2_PRO_WORDLEN_NOTID (0<<3) /* not indicated */ -#define IEC958_AES2_PRO_WORDLEN_22_18 (2<<3) /* 22-bit or 18-bit */ -#define IEC958_AES2_PRO_WORDLEN_23_19 (4<<3) /* 23-bit or 19-bit */ -#define IEC958_AES2_PRO_WORDLEN_24_20 (5<<3) /* 24-bit or 20-bit */ -#define IEC958_AES2_PRO_WORDLEN_20_16 (6<<3) /* 20-bit or 16-bit */ -#define IEC958_AES2_CON_SOURCE (15<<0) /* mask - source number */ -#define IEC958_AES2_CON_SOURCE_UNSPEC (0<<0) /* unspecified */ -#define IEC958_AES2_CON_CHANNEL (15<<4) /* mask - channel number */ -#define IEC958_AES2_CON_CHANNEL_UNSPEC (0<<4) /* unspecified */ -#define IEC958_AES3_CON_FS (15<<0) /* mask - sample frequency */ -#define IEC958_AES3_CON_FS_44100 (0<<0) /* 44.1kHz */ -#define IEC958_AES3_CON_FS_48000 (2<<0) /* 48kHz */ -#define IEC958_AES3_CON_FS_32000 (3<<0) /* 32kHz */ -#define IEC958_AES3_CON_CLOCK (3<<4) /* mask - clock accuracy */ -#define IEC958_AES3_CON_CLOCK_1000PPM (0<<4) /* 1000 ppm */ -#define IEC958_AES3_CON_CLOCK_50PPM (1<<4) /* 50 ppm */ -#define IEC958_AES3_CON_CLOCK_VARIABLE (2<<4) /* variable pitch */ - -/***************************************************************************** - * * - * MIDI v1.0 interface * - * * - *****************************************************************************/ - -#define MIDI_CHANNELS 16 -#define MIDI_GM_DRUM_CHANNEL (10-1) - -/* - * MIDI commands - */ - -#define MIDI_CMD_NOTE_OFF 0x80 -#define MIDI_CMD_NOTE_ON 0x90 -#define MIDI_CMD_NOTE_PRESSURE 0xa0 -#define MIDI_CMD_CONTROL 0xb0 -#define MIDI_CMD_PGM_CHANGE 0xc0 -#define MIDI_CMD_CHANNEL_PRESSURE 0xd0 -#define MIDI_CMD_BENDER 0xe0 - -#define MIDI_CMD_COMMON_SYSEX 0xf0 -#define MIDI_CMD_COMMON_MTC_QUARTER 0xf1 -#define MIDI_CMD_COMMON_SONG_POS 0xf2 -#define MIDI_CMD_COMMON_SONG_SELECT 0xf3 -#define MIDI_CMD_COMMON_TUNE_REQUEST 0xf6 -#define MIDI_CMD_COMMON_SYSEX_END 0xf7 -#define MIDI_CMD_COMMON_CLOCK 0xf8 -#define MIDI_CMD_COMMON_START 0xfa -#define MIDI_CMD_COMMON_CONTINUE 0xfb -#define MIDI_CMD_COMMON_STOP 0xfc -#define MIDI_CMD_COMMON_SENSING 0xfe -#define MIDI_CMD_COMMON_RESET 0xff - -/* - * MIDI controllers - */ - -#define MIDI_CTL_MSB_BANK 0x00 -#define MIDI_CTL_MSB_MODWHEEL 0x01 -#define MIDI_CTL_MSB_BREATH 0x02 -#define MIDI_CTL_MSB_FOOT 0x04 -#define MIDI_CTL_MSB_PORTAMENTO_TIME 0x05 -#define MIDI_CTL_MSB_DATA_ENTRY 0x06 -#define MIDI_CTL_MSB_MAIN_VOLUME 0x07 -#define MIDI_CTL_MSB_BALANCE 0x08 -#define MIDI_CTL_MSB_PAN 0x0a -#define MIDI_CTL_MSB_EXPRESSION 0x0b -#define MIDI_CTL_MSB_EFFECT1 0x0c -#define MIDI_CTL_MSB_EFFECT2 0x0d -#define MIDI_CTL_MSB_GENERAL_PURPOSE1 0x10 -#define MIDI_CTL_MSB_GENERAL_PURPOSE2 0x11 -#define MIDI_CTL_MSB_GENERAL_PURPOSE3 0x12 -#define MIDI_CTL_MSB_GENERAL_PURPOSE4 0x13 -#define MIDI_CTL_LSB_BANK 0x20 -#define MIDI_CTL_LSB_MODWHEEL 0x21 -#define MIDI_CTL_LSB_BREATH 0x22 -#define MIDI_CTL_LSB_FOOT 0x24 -#define MIDI_CTL_LSB_PORTAMENTO_TIME 0x25 -#define MIDI_CTL_LSB_DATA_ENTRY 0x26 -#define MIDI_CTL_LSB_MAIN_VOLUME 0x27 -#define MIDI_CTL_LSB_BALANCE 0x28 -#define MIDI_CTL_LSB_PAN 0x2a -#define MIDI_CTL_LSB_EXPRESSION 0x2b -#define MIDI_CTL_LSB_EFFECT1 0x2c -#define MIDI_CTL_LSB_EFFECT2 0x2d -#define MIDI_CTL_LSB_GENERAL_PURPOSE1 0x30 -#define MIDI_CTL_LSB_GENERAL_PURPOSE2 0x31 -#define MIDI_CTL_LSB_GENERAL_PURPOSE3 0x32 -#define MIDI_CTL_LSB_GENERAL_PURPOSE4 0x33 -#define MIDI_CTL_SUSTAIN 0x40 -#define MIDI_CTL_PORTAMENTO 0x41 -#define MIDI_CTL_SUSTENUTO 0x42 -#define MIDI_CTL_SOFT_PEDAL 0x43 -#define MIDI_CTL_LEGATO_FOOTSWITCH 0x44 -#define MIDI_CTL_HOLD2 0x45 -#define MIDI_CTL_SC1_SOUND_VARIATION 0x46 -#define MIDI_CTL_SC2_TIMBRE 0x47 -#define MIDI_CTL_SC3_RELEASE_TIME 0x48 -#define MIDI_CTL_SC4_ATTACK_TIME 0x49 -#define MIDI_CTL_SC5_BRIGHTNESS 0x4a -#define MIDI_CTL_SC6 0x4b -#define MIDI_CTL_SC7 0x4c -#define MIDI_CTL_SC8 0x4d -#define MIDI_CTL_SC9 0x4e -#define MIDI_CTL_SC10 0x4f -#define MIDI_CTL_GENERAL_PURPOSE5 0x50 -#define MIDI_CTL_GENERAL_PURPOSE6 0x51 -#define MIDI_CTL_GENERAL_PURPOSE7 0x52 -#define MIDI_CTL_GENERAL_PURPOSE8 0x53 -#define MIDI_CTL_PORTAMENTO_CONTROL 0x54 -#define MIDI_CTL_E1_REVERB_DEPTH 0x5b -#define MIDI_CTL_E2_TREMOLO_DEPTH 0x5c -#define MIDI_CTL_E3_CHORUS_DEPTH 0x5d -#define MIDI_CTL_E4_DETUNE_DEPTH 0x5e -#define MIDI_CTL_E5_PHASER_DEPTH 0x5f -#define MIDI_CTL_DATA_INCREMENT 0x60 -#define MIDI_CTL_DATA_DECREMENT 0x61 -#define MIDI_CTL_NONREG_PARM_NUM_LSB 0x62 -#define MIDI_CTL_NONREG_PARM_NUM_MSB 0x63 -#define MIDI_CTL_REGIST_PARM_NUM_LSB 0x64 -#define MIDI_CTL_REGIST_PARM_NUM_MSB 0x65 -#define MIDI_CTL_ALL_SOUNDS_OFF 0x78 -#define MIDI_CTL_RESET_CONTROLLERS 0x79 -#define MIDI_CTL_LOCAL_CONTROL_SWITCH 0x7a -#define MIDI_CTL_ALL_NOTES_OFF 0x7b -#define MIDI_CTL_OMNI_OFF 0x7c -#define MIDI_CTL_OMNI_ON 0x7d -#define MIDI_CTL_MONO1 0x7e -#define MIDI_CTL_MONO2 0x7f - -#endif /* __SOUND_ASOUNDEF_H */ diff --git a/alsa-lib/include/sound/emu10k1.h b/alsa-lib/include/sound/emu10k1.h deleted file mode 100644 index 94018b7..0000000 --- a/alsa-lib/include/sound/emu10k1.h +++ /dev/null @@ -1,349 +0,0 @@ -#ifndef __SOUND_EMU10K1_H -#define __SOUND_EMU10K1_H - -/* - * Copyright (c) by Jaroslav Kysela <perex@perex.cz>, - * Creative Labs, Inc. - * Definitions for EMU10K1 (SB Live!) chips - * - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include <stdint.h> - -/* - * ---- FX8010 ---- - */ - -#define EMU10K1_CARD_CREATIVE 0x00000000 -#define EMU10K1_CARD_EMUAPS 0x00000001 - -#define EMU10K1_FX8010_PCM_COUNT 8 - -/* instruction set */ -#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */ -#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */ -#define iMAC2 0x02 /* R = A + (X * Y >> 31) ; wraparound */ -#define iMAC3 0x03 /* R = A + (-X * Y >> 31) ; wraparound */ -#define iMACINT0 0x04 /* R = A + X * Y ; saturation */ -#define iMACINT1 0x05 /* R = A + X * Y ; wraparound (31-bit) */ -#define iACC3 0x06 /* R = A + X + Y ; saturation */ -#define iMACMV 0x07 /* R = A, acc += X * Y >> 31 */ -#define iANDXOR 0x08 /* R = (A & X) ^ Y */ -#define iTSTNEG 0x09 /* R = (A >= Y) ? X : ~X */ -#define iLIMITGE 0x0a /* R = (A >= Y) ? X : Y */ -#define iLIMITLT 0x0b /* R = (A < Y) ? X : Y */ -#define iLOG 0x0c /* R = linear_data, A (log_data), X (max_exp), Y (format_word) */ -#define iEXP 0x0d /* R = log_data, A (linear_data), X (max_exp), Y (format_word) */ -#define iINTERP 0x0e /* R = A + (X * (Y - A) >> 31) ; saturation */ -#define iSKIP 0x0f /* R = A (cc_reg), X (count), Y (cc_test) */ - -/* GPRs */ -#define FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x0f */ -#define EXTIN(x) (0x10 + (x)) /* x = 0x00 - 0x0f */ -#define EXTOUT(x) (0x20 + (x)) /* x = 0x00 - 0x0f */ -#define C_00000000 0x40 -#define C_00000001 0x41 -#define C_00000002 0x42 -#define C_00000003 0x43 -#define C_00000004 0x44 -#define C_00000008 0x45 -#define C_00000010 0x46 -#define C_00000020 0x47 -#define C_00000100 0x48 -#define C_00010000 0x49 -#define C_00080000 0x4a -#define C_10000000 0x4b -#define C_20000000 0x4c -#define C_40000000 0x4d -#define C_80000000 0x4e -#define C_7fffffff 0x4f -#define C_ffffffff 0x50 -#define C_fffffffe 0x51 -#define C_c0000000 0x52 -#define C_4f1bbcdc 0x53 -#define C_5a7ef9db 0x54 -#define C_00100000 0x55 /* ?? */ -#define GPR_ACCU 0x56 /* ACCUM, accumulator */ -#define GPR_COND 0x57 /* CCR, condition register */ -#define GPR_NOISE0 0x58 /* noise source */ -#define GPR_NOISE1 0x59 /* noise source */ -#define GPR_IRQ 0x5a /* IRQ register */ -#define GPR_DBAC 0x5b /* TRAM Delay Base Address Counter */ -#define GPR(x) (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */ -#define ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */ -#define ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */ -#define ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */ -#define ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */ - -#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f? */ -#define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x1f? */ -#define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f? */ -#define A_GPR(x) (A_FXGPREGBASE + (x)) - -/* cc_reg constants */ -#define CC_REG_NORMALIZED C_00000001 -#define CC_REG_BORROW C_00000002 -#define CC_REG_MINUS C_00000004 -#define CC_REG_ZERO C_00000008 -#define CC_REG_SATURATE C_00000010 -#define CC_REG_NONZERO C_00000100 - -/* FX buses */ -#define FXBUS_PCM_LEFT 0x00 -#define FXBUS_PCM_RIGHT 0x01 -#define FXBUS_PCM_LEFT_REAR 0x02 -#define FXBUS_PCM_RIGHT_REAR 0x03 -#define FXBUS_MIDI_LEFT 0x04 -#define FXBUS_MIDI_RIGHT 0x05 -#define FXBUS_PCM_CENTER 0x06 -#define FXBUS_PCM_LFE 0x07 -#define FXBUS_PCM_LEFT_FRONT 0x08 -#define FXBUS_PCM_RIGHT_FRONT 0x09 -#define FXBUS_MIDI_REVERB 0x0c -#define FXBUS_MIDI_CHORUS 0x0d -#define FXBUS_PCM_LEFT_SIDE 0x0e -#define FXBUS_PCM_RIGHT_SIDE 0x0f -#define FXBUS_PT_LEFT 0x14 -#define FXBUS_PT_RIGHT 0x15 - -/* Inputs */ -#define EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */ -#define EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */ -#define EXTIN_SPDIF_CD_L 0x02 /* internal S/PDIF CD - onboard - left */ -#define EXTIN_SPDIF_CD_R 0x03 /* internal S/PDIF CD - onboard - right */ -#define EXTIN_ZOOM_L 0x04 /* Zoom Video I2S - left */ -#define EXTIN_ZOOM_R 0x05 /* Zoom Video I2S - right */ -#define EXTIN_TOSLINK_L 0x06 /* LiveDrive - TOSLink Optical - left */ -#define EXTIN_TOSLINK_R 0x07 /* LiveDrive - TOSLink Optical - right */ -#define EXTIN_LINE1_L 0x08 /* LiveDrive - Line/Mic 1 - left */ -#define EXTIN_LINE1_R 0x09 /* LiveDrive - Line/Mic 1 - right */ -#define EXTIN_COAX_SPDIF_L 0x0a /* LiveDrive - Coaxial S/PDIF - left */ -#define EXTIN_COAX_SPDIF_R 0x0b /* LiveDrive - Coaxial S/PDIF - right */ -#define EXTIN_LINE2_L 0x0c /* LiveDrive - Line/Mic 2 - left */ -#define EXTIN_LINE2_R 0x0d /* LiveDrive - Line/Mic 2 - right */ - -/* Outputs */ -#define EXTOUT_AC97_L 0x00 /* AC'97 playback channel - left */ -#define EXTOUT_AC97_R 0x01 /* AC'97 playback channel - right */ -#define EXTOUT_TOSLINK_L 0x02 /* LiveDrive - TOSLink Optical - left */ -#define EXTOUT_TOSLINK_R 0x03 /* LiveDrive - TOSLink Optical - right */ -#define EXTOUT_AC97_CENTER 0x04 /* SB Live 5.1 - center */ -#define EXTOUT_AC97_LFE 0x05 /* SB Live 5.1 - LFE */ -#define EXTOUT_HEADPHONE_L 0x06 /* LiveDrive - Headphone - left */ -#define EXTOUT_HEADPHONE_R 0x07 /* LiveDrive - Headphone - right */ -#define EXTOUT_REAR_L 0x08 /* Rear channel - left */ -#define EXTOUT_REAR_R 0x09 /* Rear channel - right */ -#define EXTOUT_ADC_CAP_L 0x0a /* ADC Capture buffer - left */ -#define EXTOUT_ADC_CAP_R 0x0b /* ADC Capture buffer - right */ -#define EXTOUT_MIC_CAP 0x0c /* MIC Capture buffer */ -#define EXTOUT_AC97_REAR_L 0x0d /* SB Live 5.1 (c) 2003 - Rear Left */ -#define EXTOUT_AC97_REAR_R 0x0e /* SB Live 5.1 (c) 2003 - Rear Right */ -#define EXTOUT_ACENTER 0x11 /* Analog Center */ -#define EXTOUT_ALFE 0x12 /* Analog LFE */ - -/* Audigy Inputs */ -#define A_EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */ -#define A_EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */ -#define A_EXTIN_SPDIF_CD_L 0x02 /* digital CD left */ -#define A_EXTIN_SPDIF_CD_R 0x03 /* digital CD left */ -#define A_EXTIN_OPT_SPDIF_L 0x04 /* audigy drive Optical SPDIF - left */ -#define A_EXTIN_OPT_SPDIF_R 0x05 /* right */ -#define A_EXTIN_LINE2_L 0x08 /* audigy drive line2/mic2 - left */ -#define A_EXTIN_LINE2_R 0x09 /* right */ -#define A_EXTIN_ADC_L 0x0a /* Philips ADC - left */ -#define A_EXTIN_ADC_R 0x0b /* right */ -#define A_EXTIN_AUX2_L 0x0c /* audigy drive aux2 - left */ -#define A_EXTIN_AUX2_R 0x0d /* - right */ - -/* Audigiy Outputs */ -#define A_EXTOUT_FRONT_L 0x00 /* digital front left */ -#define A_EXTOUT_FRONT_R 0x01 /* right */ -#define A_EXTOUT_CENTER 0x02 /* digital front center */ -#define A_EXTOUT_LFE 0x03 /* digital front lfe */ -#define A_EXTOUT_HEADPHONE_L 0x04 /* headphone audigy drive left */ -#define A_EXTOUT_HEADPHONE_R 0x05 /* right */ -#define A_EXTOUT_REAR_L 0x06 /* digital rear left */ -#define A_EXTOUT_REAR_R 0x07 /* right */ -#define A_EXTOUT_AFRONT_L 0x08 /* analog front left */ -#define A_EXTOUT_AFRONT_R 0x09 /* right */ -#define A_EXTOUT_ACENTER 0x0a /* analog center */ -#define A_EXTOUT_ALFE 0x0b /* analog LFE */ -#define A_EXTOUT_ASIDE_L 0x0c /* analog side left - Audigy 2 ZS */ -#define A_EXTOUT_ASIDE_R 0x0d /* right - Audigy 2 ZS */ -#define A_EXTOUT_AREAR_L 0x0e /* analog rear left */ -#define A_EXTOUT_AREAR_R 0x0f /* right */ -#define A_EXTOUT_AC97_L 0x10 /* AC97 left (front) */ -#define A_EXTOUT_AC97_R 0x11 /* right */ -#define A_EXTOUT_ADC_CAP_L 0x16 /* ADC capture buffer left */ -#define A_EXTOUT_ADC_CAP_R 0x17 /* right */ -#define A_EXTOUT_MIC_CAP 0x18 /* Mic capture buffer */ - -/* Audigy constants */ -#define A_C_00000000 0xc0 -#define A_C_00000001 0xc1 -#define A_C_00000002 0xc2 -#define A_C_00000003 0xc3 -#define A_C_00000004 0xc4 -#define A_C_00000008 0xc5 -#define A_C_00000010 0xc6 -#define A_C_00000020 0xc7 -#define A_C_00000100 0xc8 -#define A_C_00010000 0xc9 -#define A_C_00000800 0xca -#define A_C_10000000 0xcb -#define A_C_20000000 0xcc -#define A_C_40000000 0xcd -#define A_C_80000000 0xce -#define A_C_7fffffff 0xcf -#define A_C_ffffffff 0xd0 -#define A_C_fffffffe 0xd1 -#define A_C_c0000000 0xd2 -#define A_C_4f1bbcdc 0xd3 -#define A_C_5a7ef9db 0xd4 -#define A_C_00100000 0xd5 -#define A_GPR_ACCU 0xd6 /* ACCUM, accumulator */ -#define A_GPR_COND 0xd7 /* CCR, condition register */ -#define A_GPR_NOISE0 0xd8 /* noise source */ -#define A_GPR_NOISE1 0xd9 /* noise source */ -#define A_GPR_IRQ 0xda /* IRQ register */ -#define A_GPR_DBAC 0xdb /* TRAM Delay Base Address Counter - internal */ -#define A_GPR_DBACE 0xde /* TRAM Delay Base Address Counter - external */ - -/* definitions for debug register */ -#define EMU10K1_DBG_ZC 0x80000000 /* zero tram counter */ -#define EMU10K1_DBG_SATURATION_OCCURED 0x02000000 /* saturation control */ -#define EMU10K1_DBG_SATURATION_ADDR 0x01ff0000 /* saturation address */ -#define EMU10K1_DBG_SINGLE_STEP 0x00008000 /* single step mode */ -#define EMU10K1_DBG_STEP 0x00004000 /* start single step */ -#define EMU10K1_DBG_CONDITION_CODE 0x00003e00 /* condition code */ -#define EMU10K1_DBG_SINGLE_STEP_ADDR 0x000001ff /* single step address */ - -/* tank memory address line */ -#ifndef __KERNEL__ -#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */ -#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */ -#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */ -#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */ -#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */ -#endif - -typedef struct { - unsigned int internal_tram_size; /* in samples */ - unsigned int external_tram_size; /* in samples */ - char fxbus_names[16][32]; /* names of FXBUSes */ - char extin_names[16][32]; /* names of external inputs */ - char extout_names[32][32]; /* names of external outputs */ - unsigned int gpr_controls; /* count of GPR controls */ -} emu10k1_fx8010_info_t; - -#define EMU10K1_GPR_TRANSLATION_NONE 0 -#define EMU10K1_GPR_TRANSLATION_TABLE100 1 -#define EMU10K1_GPR_TRANSLATION_BASS 2 -#define EMU10K1_GPR_TRANSLATION_TREBLE 3 -#define EMU10K1_GPR_TRANSLATION_ONOFF 4 - -enum emu10k1_ctl_elem_iface { - EMU10K1_CTL_ELEM_IFACE_MIXER = 2, /* virtual mixer device */ - EMU10K1_CTL_ELEM_IFACE_PCM = 3, /* PCM device */ -}; - -typedef struct { - unsigned int pad; /* don't use */ - int iface; /* interface identifier */ - unsigned int device; /* device/client number */ - unsigned int subdevice; /* subdevice (substream) number */ - unsigned char name[44]; /* ASCII name of item */ - unsigned int index; /* index of item */ -} emu10k1_ctl_elem_id_t; - -typedef struct { - emu10k1_ctl_elem_id_t id; /* full control ID definition */ - unsigned int vcount; /* visible count */ - unsigned int count; /* count of GPR (1..16) */ - unsigned short gpr[32]; /* GPR number(s) */ - unsigned int value[32]; /* initial values */ - unsigned int min; /* minimum range */ - unsigned int max; /* maximum range */ - unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */ - unsigned int *tlv; -} emu10k1_fx8010_control_gpr_t; - -typedef struct { - char name[128]; - - unsigned long gpr_valid[0x200/(sizeof(unsigned long)*8)]; /* bitmask of valid initializers */ - uint32_t *gpr_map; /* initializers */ - - unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */ - emu10k1_fx8010_control_gpr_t *gpr_add_controls; /* GPR controls to add/replace */ - - unsigned int gpr_del_control_count; /* count of GPR controls to remove */ - emu10k1_ctl_elem_id_t *gpr_del_controls; /* IDs of GPR controls to remove */ - - unsigned int gpr_list_control_count; /* count of GPR controls to list */ - unsigned int gpr_list_control_total; /* total count of GPR controls */ - emu10k1_fx8010_control_gpr_t *gpr_list_controls; /* listed GPR controls */ - - unsigned long tram_valid[0x100/(sizeof(unsigned long)*8)]; /* bitmask of valid initializers */ - uint32_t *tram_data_map; /* data initializers */ - uint32_t *tram_addr_map; /* map initializers */ - - unsigned long code_valid[1024/(sizeof(unsigned long)*8)]; /* bitmask of valid instructions */ - uint32_t *code; /* one instruction - 64 bits */ -} emu10k1_fx8010_code_t; - -typedef struct { - unsigned int address; /* 31.bit == 1 -> external TRAM */ - unsigned int size; /* size in samples (4 bytes) */ - unsigned int *samples; /* pointer to samples (20-bit) */ - /* NULL->clear memory */ -} emu10k1_fx8010_tram_t; - -typedef struct { - unsigned int substream; /* substream number */ - unsigned int res1; /* reserved */ - unsigned int channels; /* 16-bit channels count, zero = remove this substream */ - unsigned int tram_start; /* ring buffer position in TRAM (in samples) */ - unsigned int buffer_size; /* count of buffered samples */ - unsigned short gpr_size; /* GPR containing size of ringbuffer in samples (host) */ - unsigned short gpr_ptr; /* GPR containing current pointer in the ring buffer (host = reset, FX8010) */ - unsigned short gpr_count; /* GPR containing count of samples between two interrupts (host) */ - unsigned short gpr_tmpcount; /* GPR containing current count of samples to interrupt (host = set, FX8010) */ - unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */ - unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */ - unsigned char pad; /* reserved */ - unsigned char etram[32]; /* external TRAM address & data (one per channel) */ - unsigned int res2; /* reserved */ -} emu10k1_fx8010_pcm_t; - -#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, emu10k1_fx8010_info_t) -#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, emu10k1_fx8010_code_t) -#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, emu10k1_fx8010_code_t) -#define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int) -#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, emu10k1_fx8010_tram_t) -#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, emu10k1_fx8010_tram_t) -#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, emu10k1_fx8010_pcm_t) -#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, emu10k1_fx8010_pcm_t) -#define SNDRV_EMU10K1_IOCTL_PVERSION _IOR ('H', 0x40, int) -#define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80) -#define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81) -#define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82) -#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int) -#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int) - -#endif /* __SOUND_EMU10K1_H */ diff --git a/alsa-lib/include/sound/hdsp.h b/alsa-lib/include/sound/hdsp.h deleted file mode 100644 index 0fc9e98..0000000 --- a/alsa-lib/include/sound/hdsp.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef __SOUND_HDSP_H -#define __SOUND_HDSP_H - -/* - * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include <stdint.h> - -#define HDSP_MATRIX_MIXER_SIZE 2048 - -typedef enum { - Digiface, - Multiface, - H9652, - H9632, - Undefined, -} HDSP_IO_Type; - -typedef struct _snd_hdsp_peak_rms hdsp_peak_rms_t; - -struct _snd_hdsp_peak_rms { - uint32_t input_peaks[26]; - uint32_t playback_peaks[26]; - uint32_t output_peaks[28]; - uint64_t input_rms[26]; - uint64_t playback_rms[26]; - /* These are only used for H96xx cards */ - uint64_t output_rms[26]; -}; - -#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, hdsp_peak_rms_t) - -typedef struct _snd_hdsp_config_info hdsp_config_info_t; - -struct _snd_hdsp_config_info { - unsigned char pref_sync_ref; - unsigned char wordclock_sync_check; - unsigned char spdif_sync_check; - unsigned char adatsync_sync_check; - unsigned char adat_sync_check[3]; - unsigned char spdif_in; - unsigned char spdif_out; - unsigned char spdif_professional; - unsigned char spdif_emphasis; - unsigned char spdif_nonaudio; - unsigned int spdif_sample_rate; - unsigned int system_sample_rate; - unsigned int autosync_sample_rate; - unsigned char system_clock_mode; - unsigned char clock_source; - unsigned char autosync_ref; - unsigned char line_out; - unsigned char passthru; - unsigned char da_gain; - unsigned char ad_gain; - unsigned char phone_gain; - unsigned char xlr_breakout_cable; - unsigned char analog_extension_board; -}; - -#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, hdsp_config_info_t) - -typedef struct _snd_hdsp_firmware hdsp_firmware_t; - -struct _snd_hdsp_firmware { - void *firmware_data; /* 24413 x 4 bytes */ -}; - -#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, hdsp_firmware_t) - -typedef struct _snd_hdsp_version hdsp_version_t; - -struct _snd_hdsp_version { - HDSP_IO_Type io_type; - unsigned short firmware_rev; -}; - -#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, hdsp_version_t) - -typedef struct _snd_hdsp_mixer hdsp_mixer_t; - -struct _snd_hdsp_mixer { - unsigned short matrix[HDSP_MATRIX_MIXER_SIZE]; -}; - -#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, hdsp_mixer_t) - -typedef struct _snd_hdsp_9632_aeb hdsp_9632_aeb_t; - -struct _snd_hdsp_9632_aeb { - int aebi; - int aebo; -}; - -#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, hdsp_9632_aeb_t) - -#endif /* __SOUND_HDSP_H */ diff --git a/alsa-lib/include/sound/sb16_csp.h b/alsa-lib/include/sound/sb16_csp.h deleted file mode 100644 index 78817b4..0000000 --- a/alsa-lib/include/sound/sb16_csp.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef __SOUND_SB16_CSP_H -#define __SOUND_SB16_CSP_H - -/* - * Copyright (c) 1999 by Uros Bizjak <uros@kss-loka.si> - * Takashi Iwai <tiwai@suse.de> - * - * SB16ASP/AWE32 CSP control - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -/* CSP modes */ -#define SNDRV_SB_CSP_MODE_NONE 0x00 -#define SNDRV_SB_CSP_MODE_DSP_READ 0x01 /* Record from DSP */ -#define SNDRV_SB_CSP_MODE_DSP_WRITE 0x02 /* Play to DSP */ -#define SNDRV_SB_CSP_MODE_QSOUND 0x04 /* QSound */ - -/* CSP load flags */ -#define SNDRV_SB_CSP_LOAD_FROMUSER 0x01 -#define SNDRV_SB_CSP_LOAD_INITBLOCK 0x02 - -/* CSP sample width */ -#define SNDRV_SB_CSP_SAMPLE_8BIT 0x01 -#define SNDRV_SB_CSP_SAMPLE_16BIT 0x02 - -/* CSP channels */ -#define SNDRV_SB_CSP_MONO 0x01 -#define SNDRV_SB_CSP_STEREO 0x02 - -/* CSP rates */ -#define SNDRV_SB_CSP_RATE_8000 0x01 -#define SNDRV_SB_CSP_RATE_11025 0x02 -#define SNDRV_SB_CSP_RATE_22050 0x04 -#define SNDRV_SB_CSP_RATE_44100 0x08 -#define SNDRV_SB_CSP_RATE_ALL 0x0f - -/* CSP running state */ -#define SNDRV_SB_CSP_ST_IDLE 0x00 -#define SNDRV_SB_CSP_ST_LOADED 0x01 -#define SNDRV_SB_CSP_ST_RUNNING 0x02 -#define SNDRV_SB_CSP_ST_PAUSED 0x04 -#define SNDRV_SB_CSP_ST_AUTO 0x08 -#define SNDRV_SB_CSP_ST_QSOUND 0x10 - -/* maximum QSound value (180 degrees right) */ -#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT 0x20 - -/* maximum microcode RIFF file size */ -#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE 0x3000 - -/* microcode header */ -typedef struct snd_sb_csp_mc_header { - char codec_name[16]; /* id name of codec */ - unsigned short func_req; /* requested function */ -} snd_sb_csp_mc_header_t; - -/* microcode to be loaded */ -typedef struct snd_sb_csp_microcode { - snd_sb_csp_mc_header_t info; - unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE]; -} snd_sb_csp_microcode_t; - -/* start CSP with sample_width in mono/stereo */ -typedef struct snd_sb_csp_start { - int sample_width; /* sample width, look above */ - int channels; /* channels, look above */ -} snd_sb_csp_start_t; - -/* CSP information */ -typedef struct snd_sb_csp_info { - char codec_name[16]; /* id name of codec */ - unsigned short func_nr; /* function number */ - unsigned int acc_format; /* accepted PCM formats */ - unsigned short acc_channels; /* accepted channels */ - unsigned short acc_width; /* accepted sample width */ - unsigned short acc_rates; /* accepted sample rates */ - unsigned short csp_mode; /* CSP mode, see above */ - unsigned short run_channels; /* current channels */ - unsigned short run_width; /* current sample width */ - unsigned short version; /* version id: 0x10 - 0x1f */ - unsigned short state; /* state bits */ -} snd_sb_csp_info_t; - -/* HWDEP controls */ -/* get CSP information */ -#define SNDRV_SB_CSP_IOCTL_INFO _IOR('H', 0x10, snd_sb_csp_info_t) -/* load microcode to CSP */ -#define SNDRV_SB_CSP_IOCTL_LOAD_CODE _IOW('H', 0x11, snd_sb_csp_microcode_t) -/* unload microcode from CSP */ -#define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE _IO('H', 0x12) -/* start CSP */ -#define SNDRV_SB_CSP_IOCTL_START _IOW('H', 0x13, snd_sb_csp_start_t) -/* stop CSP */ -#define SNDRV_SB_CSP_IOCTL_STOP _IO('H', 0x14) -/* pause CSP and DMA transfer */ -#define SNDRV_SB_CSP_IOCTL_PAUSE _IO('H', 0x15) -/* restart CSP and DMA transfer */ -#define SNDRV_SB_CSP_IOCTL_RESTART _IO('H', 0x16) - - -#endif /* __SOUND_SB16_CSP */ diff --git a/alsa-lib/include/sound/sscape_ioctl.h b/alsa-lib/include/sound/sscape_ioctl.h deleted file mode 100644 index c6653eb..0000000 --- a/alsa-lib/include/sound/sscape_ioctl.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef SSCAPE_IOCTL_H -#define SSCAPE_IOCTL_H - - -struct sscape_bootblock -{ - unsigned char code[256]; - unsigned version; -}; - -#define SSCAPE_MICROCODE_SIZE 65536 - -struct sscape_microcode -{ - unsigned char *code; -}; - -#define SND_SSCAPE_LOAD_BOOTB _IOWR('P', 100, struct sscape_bootblock) -#define SND_SSCAPE_LOAD_MCODE _IOW ('P', 101, struct sscape_microcode) - -#endif diff --git a/alsa-lib/include/sound/type_compat.h b/alsa-lib/include/sound/type_compat.h deleted file mode 100644 index eec86e4..0000000 --- a/alsa-lib/include/sound/type_compat.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef __TYPE_COMPAT_H -#define __TYPE_COMPAT_H - -#ifndef DOC_HIDDEN -#include <stdint.h> -typedef uint8_t __u8; -typedef uint16_t __u16; -typedef uint32_t __u32; -typedef int8_t __s8; -typedef int16_t __s16; -typedef int32_t __s32; - -#include <endian.h> -#include <byteswap.h> -#if __BYTE_ORDER == __LITTLE_ENDIAN -#define __cpu_to_le32(x) (x) -#define __cpu_to_be32(x) bswap_32(x) -#define __cpu_to_le16(x) (x) -#define __cpu_to_be16(x) bswap_16(x) -#else -#define __cpu_to_le32(x) bswap_32(x) -#define __cpu_to_be32(x) (x) -#define __cpu_to_le16(x) bswap_16(x) -#define __cpu_to_be16(x) (x) -#endif - -#define __le32_to_cpu __cpu_to_le32 -#define __be32_to_cpu __cpu_to_be32 -#define __le16_to_cpu __cpu_to_le16 -#define __be16_to_cpu __cpu_to_be16 - -#define __le64 __u64 -#define __le32 __u32 -#define __le16 __u16 -#define __be64 __u64 -#define __be32 __u32 -#define __be16 __u16 -#endif /* DOC_HIDDEN */ - -#endif /* __TYPE_COMPAT_H */ diff --git a/alsa-lib/include/sys.h b/alsa-lib/include/sys.h deleted file mode 100644 index 47f587c..0000000 --- a/alsa-lib/include/sys.h +++ /dev/null @@ -1,2 +0,0 @@ -#warning This header is deprecated, use <alsa/asoundlib.h> instead. -#include <alsa/asoundlib.h> diff --git a/alsa-lib/include/timer.h b/alsa-lib/include/timer.h deleted file mode 100644 index 4d06e31..0000000 --- a/alsa-lib/include/timer.h +++ /dev/null @@ -1,257 +0,0 @@ -/** - * \file include/timer.h - * \brief Application interface library for the ALSA driver - * \author Jaroslav Kysela <perex@perex.cz> - * \author Abramo Bagnara <abramo@alsa-project.org> - * \author Takashi Iwai <tiwai@suse.de> - * \date 1998-2001 - * - * Application interface library for the ALSA driver - */ -/* - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ALSA_TIMER_H -#define __ALSA_TIMER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup Timer Timer Interface - * Timer Interface. See \ref timer page for more details. - * \{ - */ - -/** dlsym version for interface entry callback */ -#define SND_TIMER_DLSYM_VERSION _dlsym_timer_001 -/** dlsym version for interface entry callback */ -#define SND_TIMER_QUERY_DLSYM_VERSION _dlsym_timer_query_001 - -/** timer identification structure */ -typedef struct _snd_timer_id snd_timer_id_t; -/** timer global info structure */ -typedef struct _snd_timer_ginfo snd_timer_ginfo_t; -/** timer global params structure */ -typedef struct _snd_timer_gparams snd_timer_gparams_t; -/** timer global status structure */ -typedef struct _snd_timer_gstatus snd_timer_gstatus_t; -/** timer info structure */ -typedef struct _snd_timer_info snd_timer_info_t; -/** timer params structure */ -typedef struct _snd_timer_params snd_timer_params_t; -/** timer status structure */ -typedef struct _snd_timer_status snd_timer_status_t; -/** timer master class */ -typedef enum _snd_timer_class { - SND_TIMER_CLASS_NONE = -1, /**< invalid */ - SND_TIMER_CLASS_SLAVE = 0, /**< slave timer */ - SND_TIMER_CLASS_GLOBAL, /**< global timer */ - SND_TIMER_CLASS_CARD, /**< card timer */ - SND_TIMER_CLASS_PCM, /**< PCM timer */ - SND_TIMER_CLASS_LAST = SND_TIMER_CLASS_PCM /**< last timer */ -} snd_timer_class_t; - -/** timer slave class */ -typedef enum _snd_timer_slave_class { - SND_TIMER_SCLASS_NONE = 0, /**< none */ - SND_TIMER_SCLASS_APPLICATION, /**< for internal use */ - SND_TIMER_SCLASS_SEQUENCER, /**< sequencer timer */ - SND_TIMER_SCLASS_OSS_SEQUENCER, /**< OSS sequencer timer */ - SND_TIMER_SCLASS_LAST = SND_TIMER_SCLASS_OSS_SEQUENCER /**< last slave timer */ -} snd_timer_slave_class_t; - -/** timer read event identification */ -typedef enum _snd_timer_event { - SND_TIMER_EVENT_RESOLUTION = 0, /* val = resolution in ns */ - SND_TIMER_EVENT_TICK, /* val = ticks */ - SND_TIMER_EVENT_START, /* val = resolution in ns */ - SND_TIMER_EVENT_STOP, /* val = 0 */ - SND_TIMER_EVENT_CONTINUE, /* val = resolution in ns */ - SND_TIMER_EVENT_PAUSE, /* val = 0 */ - SND_TIMER_EVENT_EARLY, /* val = 0 */ - SND_TIMER_EVENT_SUSPEND, /* val = 0 */ - SND_TIMER_EVENT_RESUME, /* val = resolution in ns */ - /* master timer events for slave timer instances */ - SND_TIMER_EVENT_MSTART = SND_TIMER_EVENT_START + 10, - SND_TIMER_EVENT_MSTOP = SND_TIMER_EVENT_STOP + 10, - SND_TIMER_EVENT_MCONTINUE = SND_TIMER_EVENT_CONTINUE + 10, - SND_TIMER_EVENT_MPAUSE = SND_TIMER_EVENT_PAUSE + 10, - SND_TIMER_EVENT_MSUSPEND = SND_TIMER_EVENT_SUSPEND + 10, - SND_TIMER_EVENT_MRESUME = SND_TIMER_EVENT_RESUME + 10 -} snd_timer_event_t; - -/** timer read structure */ -typedef struct _snd_timer_read { - unsigned int resolution; /**< tick resolution in nanoseconds */ - unsigned int ticks; /**< count of happened ticks */ -} snd_timer_read_t; - -/** timer tstamp + event read structure */ -typedef struct _snd_timer_tread { - snd_timer_event_t event; /**< Timer event */ - snd_htimestamp_t tstamp; /**< Time stamp of each event */ - unsigned int val; /**< Event value */ -} snd_timer_tread_t; - -/** global timer - system */ -#define SND_TIMER_GLOBAL_SYSTEM 0 -/** global timer - RTC */ -#define SND_TIMER_GLOBAL_RTC 1 -/** global timer - HPET */ -#define SND_TIMER_GLOBAL_HPET 2 - -/** timer open mode flag - non-blocking behaviour */ -#define SND_TIMER_OPEN_NONBLOCK (1<<0) -/** use timestamps and event notification - enhanced read */ -#define SND_TIMER_OPEN_TREAD (1<<1) - -/** timer handle type */ -typedef enum _snd_timer_type { - /** Kernel level HwDep */ - SND_TIMER_TYPE_HW = 0, - /** Shared memory client timer (not yet implemented) */ - SND_TIMER_TYPE_SHM, - /** INET client timer (not yet implemented) */ - SND_TIMER_TYPE_INET -} snd_timer_type_t; - -/** timer query handle */ -typedef struct _snd_timer_query snd_timer_query_t; -/** timer handle */ -typedef struct _snd_timer snd_timer_t; - - -int snd_timer_query_open(snd_timer_query_t **handle, const char *name, int mode); -int snd_timer_query_open_lconf(snd_timer_query_t **handle, const char *name, int mode, snd_config_t *lconf); -int snd_timer_query_close(snd_timer_query_t *handle); -int snd_timer_query_next_device(snd_timer_query_t *handle, snd_timer_id_t *tid); -int snd_timer_query_info(snd_timer_query_t *handle, snd_timer_ginfo_t *info); -int snd_timer_query_params(snd_timer_query_t *handle, snd_timer_gparams_t *params); -int snd_timer_query_status(snd_timer_query_t *handle, snd_timer_gstatus_t *status); - -int snd_timer_open(snd_timer_t **handle, const char *name, int mode); -int snd_timer_open_lconf(snd_timer_t **handle, const char *name, int mode, snd_config_t *lconf); -int snd_timer_close(snd_timer_t *handle); -int snd_async_add_timer_handler(snd_async_handler_t **handler, snd_timer_t *timer, - snd_async_callback_t callback, void *private_data); -snd_timer_t *snd_async_handler_get_timer(snd_async_handler_t *handler); -int snd_timer_poll_descriptors_count(snd_timer_t *handle); -int snd_timer_poll_descriptors(snd_timer_t *handle, struct pollfd *pfds, unsigned int space); -int snd_timer_poll_descriptors_revents(snd_timer_t *timer, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); -int snd_timer_info(snd_timer_t *handle, snd_timer_info_t *timer); -int snd_timer_params(snd_timer_t *handle, snd_timer_params_t *params); -int snd_timer_status(snd_timer_t *handle, snd_timer_status_t *status); -int snd_timer_start(snd_timer_t *handle); -int snd_timer_stop(snd_timer_t *handle); -int snd_timer_continue(snd_timer_t *handle); -ssize_t snd_timer_read(snd_timer_t *handle, void *buffer, size_t size); - -size_t snd_timer_id_sizeof(void); -/** allocate #snd_timer_id_t container on stack */ -#define snd_timer_id_alloca(ptr) __snd_alloca(ptr, snd_timer_id) -int snd_timer_id_malloc(snd_timer_id_t **ptr); -void snd_timer_id_free(snd_timer_id_t *obj); -void snd_timer_id_copy(snd_timer_id_t *dst, const snd_timer_id_t *src); - -void snd_timer_id_set_class(snd_timer_id_t *id, int dev_class); -int snd_timer_id_get_class(snd_timer_id_t *id); -void snd_timer_id_set_sclass(snd_timer_id_t *id, int dev_sclass); -int snd_timer_id_get_sclass(snd_timer_id_t *id); -void snd_timer_id_set_card(snd_timer_id_t *id, int card); -int snd_timer_id_get_card(snd_timer_id_t *id); -void snd_timer_id_set_device(snd_timer_id_t *id, int device); -int snd_timer_id_get_device(snd_timer_id_t *id); -void snd_timer_id_set_subdevice(snd_timer_id_t *id, int subdevice); -int snd_timer_id_get_subdevice(snd_timer_id_t *id); - -size_t snd_timer_ginfo_sizeof(void); -/** allocate #snd_timer_ginfo_t container on stack */ -#define snd_timer_ginfo_alloca(ptr) __snd_alloca(ptr, snd_timer_ginfo) -int snd_timer_ginfo_malloc(snd_timer_ginfo_t **ptr); -void snd_timer_ginfo_free(snd_timer_ginfo_t *obj); -void snd_timer_ginfo_copy(snd_timer_ginfo_t *dst, const snd_timer_ginfo_t *src); - -int snd_timer_ginfo_set_tid(snd_timer_ginfo_t *obj, snd_timer_id_t *tid); -snd_timer_id_t *snd_timer_ginfo_get_tid(snd_timer_ginfo_t *obj); -unsigned int snd_timer_ginfo_get_flags(snd_timer_ginfo_t *obj); -int snd_timer_ginfo_get_card(snd_timer_ginfo_t *obj); -char *snd_timer_ginfo_get_id(snd_timer_ginfo_t *obj); -char *snd_timer_ginfo_get_name(snd_timer_ginfo_t *obj); -unsigned long snd_timer_ginfo_get_resolution(snd_timer_ginfo_t *obj); -unsigned long snd_timer_ginfo_get_resolution_min(snd_timer_ginfo_t *obj); -unsigned long snd_timer_ginfo_get_resolution_max(snd_timer_ginfo_t *obj); -unsigned int snd_timer_ginfo_get_clients(snd_timer_ginfo_t *obj); - -size_t snd_timer_info_sizeof(void); -/** allocate #snd_timer_info_t container on stack */ -#define snd_timer_info_alloca(ptr) __snd_alloca(ptr, snd_timer_info) -int snd_timer_info_malloc(snd_timer_info_t **ptr); -void snd_timer_info_free(snd_timer_info_t *obj); -void snd_timer_info_copy(snd_timer_info_t *dst, const snd_timer_info_t *src); - -int snd_timer_info_is_slave(snd_timer_info_t * info); -int snd_timer_info_get_card(snd_timer_info_t * info); -const char *snd_timer_info_get_id(snd_timer_info_t * info); -const char *snd_timer_info_get_name(snd_timer_info_t * info); -long snd_timer_info_get_resolution(snd_timer_info_t * info); - -size_t snd_timer_params_sizeof(void); -/** allocate #snd_timer_params_t container on stack */ -#define snd_timer_params_alloca(ptr) __snd_alloca(ptr, snd_timer_params) -int snd_timer_params_malloc(snd_timer_params_t **ptr); -void snd_timer_params_free(snd_timer_params_t *obj); -void snd_timer_params_copy(snd_timer_params_t *dst, const snd_timer_params_t *src); - -int snd_timer_params_set_auto_start(snd_timer_params_t * params, int auto_start); -int snd_timer_params_get_auto_start(snd_timer_params_t * params); -int snd_timer_params_set_exclusive(snd_timer_params_t * params, int exclusive); -int snd_timer_params_get_exclusive(snd_timer_params_t * params); -int snd_timer_params_set_early_event(snd_timer_params_t * params, int early_event); -int snd_timer_params_get_early_event(snd_timer_params_t * params); -void snd_timer_params_set_ticks(snd_timer_params_t * params, long ticks); -long snd_timer_params_get_ticks(snd_timer_params_t * params); -void snd_timer_params_set_queue_size(snd_timer_params_t * params, long queue_size); -long snd_timer_params_get_queue_size(snd_timer_params_t * params); -void snd_timer_params_set_filter(snd_timer_params_t * params, unsigned int filter); -unsigned int snd_timer_params_get_filter(snd_timer_params_t * params); - -size_t snd_timer_status_sizeof(void); -/** allocate #snd_timer_status_t container on stack */ -#define snd_timer_status_alloca(ptr) __snd_alloca(ptr, snd_timer_status) -int snd_timer_status_malloc(snd_timer_status_t **ptr); -void snd_timer_status_free(snd_timer_status_t *obj); -void snd_timer_status_copy(snd_timer_status_t *dst, const snd_timer_status_t *src); - -snd_htimestamp_t snd_timer_status_get_timestamp(snd_timer_status_t * status); -long snd_timer_status_get_resolution(snd_timer_status_t * status); -long snd_timer_status_get_lost(snd_timer_status_t * status); -long snd_timer_status_get_overrun(snd_timer_status_t * status); -long snd_timer_status_get_queue(snd_timer_status_t * status); - -/* deprecated functions, for compatibility */ -long snd_timer_info_get_ticks(snd_timer_info_t * info); - -/** \} */ - -#ifdef __cplusplus -} -#endif - -#endif /** __ALSA_TIMER_H */ - diff --git a/alsa-lib/include/version.h b/alsa-lib/include/version.h deleted file mode 100644 index 6ac5880..0000000 --- a/alsa-lib/include/version.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * version.h - */ - -#define SND_LIB_MAJOR 1 /**< major number of library version */ -#define SND_LIB_MINOR 0 /**< minor number of library version */ -#define SND_LIB_SUBMINOR 19 /**< subminor number of library version */ -#define SND_LIB_EXTRAVER 1000000 /**< extra version number, used mainly for betas */ -/** library version */ -#define SND_LIB_VERSION ((SND_LIB_MAJOR<<16)|\ - (SND_LIB_MINOR<<8)|\ - SND_LIB_SUBMINOR) -/** library version (string) */ -#define SND_LIB_VERSION_STR "1.0.19" - |