diff --git a/ohos/arm64-v8a/bin/alrecord b/ohos/arm64-v8a/bin/alrecord new file mode 100755 index 00000000..c73ff808 Binary files /dev/null and b/ohos/arm64-v8a/bin/alrecord differ diff --git a/ohos/arm64-v8a/bin/altonegen b/ohos/arm64-v8a/bin/altonegen new file mode 100755 index 00000000..0e2c6483 Binary files /dev/null and b/ohos/arm64-v8a/bin/altonegen differ diff --git a/ohos/arm64-v8a/bin/openal-info b/ohos/arm64-v8a/bin/openal-info new file mode 100755 index 00000000..4d8a8fcd Binary files /dev/null and b/ohos/arm64-v8a/bin/openal-info differ diff --git a/ohos/arm64-v8a/lib/cmake/OpenAL/OpenALConfig-release.cmake b/ohos/arm64-v8a/lib/cmake/OpenAL/OpenALConfig-release.cmake new file mode 100644 index 00000000..7845070f --- /dev/null +++ b/ohos/arm64-v8a/lib/cmake/OpenAL/OpenALConfig-release.cmake @@ -0,0 +1,19 @@ +#---------------------------------------------------------------- +# Generated CMake target import file for configuration "Release". +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Import target "OpenAL::OpenAL" for configuration "Release" +set_property(TARGET OpenAL::OpenAL APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(OpenAL::OpenAL PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libopenal.a" + ) + +list(APPEND _IMPORT_CHECK_TARGETS OpenAL::OpenAL ) +list(APPEND _IMPORT_CHECK_FILES_FOR_OpenAL::OpenAL "${_IMPORT_PREFIX}/lib/libopenal.a" ) + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) diff --git a/ohos/arm64-v8a/lib/cmake/OpenAL/OpenALConfig.cmake b/ohos/arm64-v8a/lib/cmake/OpenAL/OpenALConfig.cmake new file mode 100644 index 00000000..851805b7 --- /dev/null +++ b/ohos/arm64-v8a/lib/cmake/OpenAL/OpenALConfig.cmake @@ -0,0 +1,100 @@ +# Generated by CMake + +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5) + message(FATAL_ERROR "CMake >= 2.6.0 required") +endif() +cmake_policy(PUSH) +cmake_policy(VERSION 2.6...3.17) +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Protect against multiple inclusion, which would fail when already imported targets are added once more. +set(_targetsDefined) +set(_targetsNotDefined) +set(_expectedTargets) +foreach(_expectedTarget OpenAL::OpenAL) + list(APPEND _expectedTargets ${_expectedTarget}) + if(NOT TARGET ${_expectedTarget}) + list(APPEND _targetsNotDefined ${_expectedTarget}) + endif() + if(TARGET ${_expectedTarget}) + list(APPEND _targetsDefined ${_expectedTarget}) + endif() +endforeach() +if("${_targetsDefined}" STREQUAL "${_expectedTargets}") + unset(_targetsDefined) + unset(_targetsNotDefined) + unset(_expectedTargets) + set(CMAKE_IMPORT_FILE_VERSION) + cmake_policy(POP) + return() +endif() +if(NOT "${_targetsDefined}" STREQUAL "") + message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n") +endif() +unset(_targetsDefined) +unset(_targetsNotDefined) +unset(_expectedTargets) + + +# Compute the installation prefix relative to this file. +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +# Create imported target OpenAL::OpenAL +add_library(OpenAL::OpenAL STATIC IMPORTED) + +set_target_properties(OpenAL::OpenAL PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "AL_LIBTYPE_STATIC" + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include/AL" + INTERFACE_LINK_LIBRARIES "\$;\$;\$;\$" +) + +if(CMAKE_VERSION VERSION_LESS 2.8.12) + message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.") +endif() + +# Load information for each installed configuration. +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(GLOB CONFIG_FILES "${_DIR}/OpenALConfig-*.cmake") +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() + +# Cleanup temporary variables. +set(_IMPORT_PREFIX) + +# Loop over all imported files and verify that they actually exist +foreach(target ${_IMPORT_CHECK_TARGETS} ) + foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} ) + if(NOT EXISTS "${file}" ) + message(FATAL_ERROR "The imported target \"${target}\" references the file + \"${file}\" +but this file does not exist. Possible reasons include: +* The file was deleted, renamed, or moved to another location. +* An install or uninstall procedure did not complete successfully. +* The installation package was faulty and contained + \"${CMAKE_CURRENT_LIST_FILE}\" +but not all the files it references. +") + endif() + endforeach() + unset(_IMPORT_CHECK_FILES_FOR_${target}) +endforeach() +unset(_IMPORT_CHECK_TARGETS) + +# This file does not depend on other imported targets which have +# been exported from the same project but in a separate export set. + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) +cmake_policy(POP) diff --git a/ohos/arm64-v8a/lib/libopenal.a b/ohos/arm64-v8a/lib/libopenal.a index b6502d03..4d6997c7 100644 Binary files a/ohos/arm64-v8a/lib/libopenal.a and b/ohos/arm64-v8a/lib/libopenal.a differ diff --git a/ohos/arm64-v8a/lib/pkgconfig/openal.pc b/ohos/arm64-v8a/lib/pkgconfig/openal.pc index 572e76b6..c6857ff7 100644 --- a/ohos/arm64-v8a/lib/pkgconfig/openal.pc +++ b/ohos/arm64-v8a/lib/pkgconfig/openal.pc @@ -8,5 +8,5 @@ Description: OpenAL is a cross-platform 3D audio API Requires: Version: 1.21.1 Libs: -L${libdir} -lopenal -Libs.private: -pthread -ldl -lm +Libs.private: -pthread -lOpenSLES -ldl -lm Cflags: -I${includedir} -I${includedir}/AL -DAL_LIBTYPE_STATIC diff --git a/ohos/arm64-v8a/share/openal/alsoftrc.sample b/ohos/arm64-v8a/share/openal/alsoftrc.sample new file mode 100644 index 00000000..3c964ada --- /dev/null +++ b/ohos/arm64-v8a/share/openal/alsoftrc.sample @@ -0,0 +1,553 @@ +# OpenAL config file. +# +# Option blocks may appear multiple times, and duplicated options will take the +# last value specified. Environment variables may be specified within option +# values, and are automatically substituted when the config file is loaded. +# Environment variable names may only contain alpha-numeric characters (a-z, +# A-Z, 0-9) and underscores (_), and are prefixed with $. For example, +# specifying "$HOME/file.ext" would typically result in something like +# "/home/user/file.ext". To specify an actual "$" character, use "$$". +# +# Device-specific values may be specified by including the device name in the +# block name, with "general" replaced by the device name. That is, general +# options for the device "Name of Device" would be in the [Name of Device] +# block, while ALSA options would be in the [alsa/Name of Device] block. +# Options marked as "(global)" are not influenced by the device. +# +# The system-wide settings can be put in /etc/openal/alsoft.conf and user- +# specific override settings in $HOME/.alsoftrc. +# For Windows, these settings should go into $AppData\alsoft.ini +# +# Option and block names are case-senstive. The supplied values are only hints +# and may not be honored (though generally it'll try to get as close as +# possible). Note: options that are left unset may default to app- or system- +# specified values. These are the current available settings: + +## +## General stuff +## +[general] + +## disable-cpu-exts: (global) +# Disables use of specialized methods that use specific CPU intrinsics. +# Certain methods may utilize CPU extensions for improved performance, and +# this option is useful for preventing some or all of those methods from being +# used. The available extensions are: sse, sse2, sse3, sse4.1, and neon. +# Specifying 'all' disables use of all such specialized methods. +#disable-cpu-exts = + +## drivers: (global) +# Sets the backend driver list order, comma-seperated. Unknown backends and +# duplicated names are ignored. Unlisted backends won't be considered for use +# unless the list is ended with a comma (e.g. 'oss,' will try OSS first before +# other backends, while 'oss' will try OSS only). Backends prepended with - +# won't be considered for use (e.g. '-oss,' will try all available backends +# except OSS). An empty list means to try all backends. +#drivers = + +## channels: +# Sets the output channel configuration. If left unspecified, one will try to +# be detected from the system, and defaulting to stereo. The available values +# are: mono, stereo, quad, surround51, surround51rear, surround61, surround71, +# ambi1, ambi2, ambi3. Note that the ambi* configurations provide ambisonic +# channels of the given order (using ACN ordering and SN3D normalization by +# default), which need to be decoded to play correctly on speakers. +#channels = + +## sample-type: +# Sets the output sample type. Currently, all mixing is done with 32-bit float +# and converted to the output sample type as needed. Available values are: +# int8 - signed 8-bit int +# uint8 - unsigned 8-bit int +# int16 - signed 16-bit int +# uint16 - unsigned 16-bit int +# int32 - signed 32-bit int +# uint32 - unsigned 32-bit int +# float32 - 32-bit float +#sample-type = float32 + +## frequency: +# Sets the output frequency. If left unspecified it will try to detect a +# default from the system, otherwise it will default to 44100. +#frequency = + +## period_size: +# Sets the update period size, in sample frames. This is the number of frames +# needed for each mixing update. Acceptable values range between 64 and 8192. +# If left unspecified it will default to 1/50th of the frequency (20ms, or 882 +# for 44100, 960 for 48000, etc). +#period_size = + +## periods: +# Sets the number of update periods. Higher values create a larger mix ahead, +# which helps protect against skips when the CPU is under load, but increases +# the delay between a sound getting mixed and being heard. Acceptable values +# range between 2 and 16. +#periods = 3 + +## stereo-mode: +# Specifies if stereo output is treated as being headphones or speakers. With +# headphones, HRTF or crossfeed filters may be used for better audio quality. +# Valid settings are auto, speakers, and headphones. +#stereo-mode = auto + +## stereo-encoding: +# Specifies the encoding method for non-HRTF stereo output. 'panpot' (default) +# uses standard amplitude panning (aka pair-wise, stereo pair, etc) between +# -30 and +30 degrees, while 'uhj' creates stereo-compatible two-channel UHJ +# output, which encodes some surround sound information into stereo output +# that can be decoded with a surround sound receiver. If crossfeed filters are +# used, UHJ is disabled. +#stereo-encoding = panpot + +## ambi-format: +# Specifies the channel order and normalization for the "ambi*" set of channel +# configurations. Valid settings are: fuma, ambix (or acn+sn3d), acn+n3d +#ambi-format = ambix + +## hrtf: +# Controls HRTF processing. These filters provide better spatialization of +# sounds while using headphones, but do require a bit more CPU power. While +# HRTF is used, the cf_level option is ignored. Setting this to auto (default) +# will allow HRTF to be used when headphones are detected or the app requests +# it, while setting true or false will forcefully enable or disable HRTF +# respectively. +#hrtf = auto + +## hrtf-mode: +# Specifies the rendering mode for HRTF processing. Setting the mode to full +# (default) applies a unique HRIR filter to each source given its relative +# location, providing the clearest directional response at the cost of the +# highest CPU usage. Setting the mode to ambi1, ambi2, or ambi3 will instead +# mix to a first-, second-, or third-order ambisonic buffer respectively, then +# decode that buffer with HRTF filters. Ambi1 has the lowest CPU usage, +# replacing the per-source HRIR filter for a simple 4-channel panning mix, but +# retains full 3D placement at the cost of a more diffuse response. Ambi2 and +# ambi3 increasingly improve the directional clarity, at the cost of more CPU +# usage (still less than "full", given some number of active sources). +#hrtf-mode = full + +## hrtf-size: +# Specifies the impulse response size, in samples, for the HRTF filter. Larger +# values increase the filter quality, while smaller values reduce processing +# cost. A value of 0 (default) uses the full filter size in the dataset, and +# the default dataset has a filter size of 32 samples at 44.1khz. +#hrtf-size = 0 + +## default-hrtf: +# Specifies the default HRTF to use. When multiple HRTFs are available, this +# determines the preferred one to use if none are specifically requested. Note +# that this is the enumerated HRTF name, not necessarily the filename. +#default-hrtf = + +## hrtf-paths: +# Specifies a comma-separated list of paths containing HRTF data sets. The +# format of the files are described in docs/hrtf.txt. The files within the +# directories must have the .mhr file extension to be recognized. By default, +# OS-dependent data paths will be used. They will also be used if the list +# ends with a comma. On Windows this is: +# $AppData\openal\hrtf +# And on other systems, it's (in order): +# $XDG_DATA_HOME/openal/hrtf (defaults to $HOME/.local/share/openal/hrtf) +# $XDG_DATA_DIRS/openal/hrtf (defaults to /usr/local/share/openal/hrtf and +# /usr/share/openal/hrtf) +#hrtf-paths = + +## cf_level: +# Sets the crossfeed level for stereo output. Valid values are: +# 0 - No crossfeed +# 1 - Low crossfeed +# 2 - Middle crossfeed +# 3 - High crossfeed (virtual speakers are closer to itself) +# 4 - Low easy crossfeed +# 5 - Middle easy crossfeed +# 6 - High easy crossfeed +# Users of headphones may want to try various settings. Has no effect on non- +# stereo modes. +#cf_level = 0 + +## resampler: (global) +# Selects the default resampler used when mixing sources. Valid values are: +# point - nearest sample, no interpolation +# linear - extrapolates samples using a linear slope between samples +# cubic - extrapolates samples using a Catmull-Rom spline +# bsinc12 - extrapolates samples using a band-limited Sinc filter (varying +# between 12 and 24 points, with anti-aliasing) +# fast_bsinc12 - same as bsinc12, except without interpolation between down- +# sampling scales +# bsinc24 - extrapolates samples using a band-limited Sinc filter (varying +# between 24 and 48 points, with anti-aliasing) +# fast_bsinc24 - same as bsinc24, except without interpolation between down- +# sampling scales +#resampler = linear + +## rt-prio: (global) +# Sets real-time priority for the mixing thread. Not all drivers may use this +# (eg. PortAudio) as they already control the priority of the mixing thread. +# 0 and negative values will disable it. Note that this may constitute a +# security risk since a real-time priority thread can indefinitely block +# normal-priority threads if it fails to wait. Disable this if it turns out to +# be a problem. +#rt-prio = 1 + +## sources: +# Sets the maximum number of allocatable sources. Lower values may help for +# systems with apps that try to play more sounds than the CPU can handle. +#sources = 256 + +## slots: +# Sets the maximum number of Auxiliary Effect Slots an app can create. A slot +# can use a non-negligible amount of CPU time if an effect is set on it even +# if no sources are feeding it, so this may help when apps use more than the +# system can handle. +#slots = 64 + +## sends: +# Limits the number of auxiliary sends allowed per source. Setting this higher +# than the default has no effect. +#sends = 6 + +## front-stablizer: +# Applies filters to "stablize" front sound imaging. A psychoacoustic method +# is used to generate a front-center channel signal from the front-left and +# front-right channels, improving the front response by reducing the combing +# artifacts and phase errors. Consequently, it will only work with channel +# configurations that include front-left, front-right, and front-center. +#front-stablizer = false + +## output-limiter: +# Applies a gain limiter on the final mixed output. This reduces the volume +# when the output samples would otherwise clamp, avoiding excessive clipping +# noise. +#output-limiter = true + +## dither: +# Applies dithering on the final mix, for 8- and 16-bit output by default. +# This replaces the distortion created by nearest-value quantization with low- +# level whitenoise. +#dither = true + +## dither-depth: +# Quantization bit-depth for dithered output. A value of 0 (or less) will +# match the output sample depth. For int32, uint32, and float32 output, 0 will +# disable dithering because they're at or beyond the rendered precision. The +# maximum dither depth is 24. +#dither-depth = 0 + +## volume-adjust: +# A global volume adjustment for source output, expressed in decibels. The +# value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will +# be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A +# value of 0 means no change. +#volume-adjust = 0 + +## excludefx: (global) +# Sets which effects to exclude, preventing apps from using them. This can +# help for apps that try to use effects which are too CPU intensive for the +# system to handle. Available effects are: eaxreverb,reverb,autowah,chorus, +# compressor,distortion,echo,equalizer,flanger,modulator,dedicated,pshifter, +# fshifter,vmorpher. +#excludefx = + +## default-reverb: (global) +# A reverb preset that applies by default to all sources on send 0 +# (applications that set their own slots on send 0 will override this). +# Available presets are: None, Generic, PaddedCell, Room, Bathroom, +# Livingroom, Stoneroom, Auditorium, ConcertHall, Cave, Arena, Hangar, +# CarpetedHallway, Hallway, StoneCorridor, Alley, Forest, City, Moutains, +# Quarry, Plain, ParkingLot, SewerPipe, Underwater, Drugged, Dizzy, Psychotic. +#default-reverb = + +## trap-alc-error: (global) +# Generates a SIGTRAP signal when an ALC device error is generated, on systems +# that support it. This helps when debugging, while trying to find the cause +# of a device error. On Windows, a breakpoint exception is generated. +#trap-alc-error = false + +## trap-al-error: (global) +# Generates a SIGTRAP signal when an AL context error is generated, on systems +# that support it. This helps when debugging, while trying to find the cause +# of a context error. On Windows, a breakpoint exception is generated. +#trap-al-error = false + +## +## Ambisonic decoder stuff +## +[decoder] + +## hq-mode: +# Enables a high-quality ambisonic decoder. This mode is capable of frequency- +# dependent processing, creating a better reproduction of 3D sound rendering +# over surround sound speakers. Enabling this also requires specifying decoder +# configuration files for the appropriate speaker configuration you intend to +# use (see the quad, surround51, etc options below). Currently, up to third- +# order decoding is supported. +#hq-mode = true + +## distance-comp: +# Enables compensation for the speakers' relative distances to the listener. +# This applies the necessary delays and attenuation to make the speakers +# behave as though they are all equidistant, which is important for proper +# playback of 3D sound rendering. Requires the proper distances to be +# specified in the decoder configuration file. +#distance-comp = true + +## nfc: +# Enables near-field control filters. This simulates and compensates for low- +# frequency effects caused by the curvature of nearby sound-waves, which +# creates a more realistic perception of sound distance. Note that the effect +# may be stronger or weaker than intended if the application doesn't use or +# specify an appropriate unit scale, or if incorrect speaker distances are set +# in the decoder configuration file. +#nfc = false + +## nfc-ref-delay +# Specifies the reference delay value for ambisonic output when NFC filters +# are enabled. If channels is set to one of the ambi* formats, this option +# enables NFC-HOA output with the specified Reference Delay parameter. The +# specified value can then be shared with an appropriate NFC-HOA decoder to +# reproduce correct near-field effects. Keep in mind that despite being +# designed for higher-order ambisonics, this also applies to first-order +# output. When left unset, normal output is created with no near-field +# simulation. Requires the nfc option to also be enabled. +#nfc-ref-delay = + +## quad: +# Decoder configuration file for Quadraphonic channel output. See +# docs/ambdec.txt for a description of the file format. +#quad = + +## surround51: +# Decoder configuration file for 5.1 Surround (Side and Rear) channel output. +# See docs/ambdec.txt for a description of the file format. +#surround51 = + +## surround61: +# Decoder configuration file for 6.1 Surround channel output. See +# docs/ambdec.txt for a description of the file format. +#surround61 = + +## surround71: +# Decoder configuration file for 7.1 Surround channel output. See +# docs/ambdec.txt for a description of the file format. Note: This can be used +# to enable 3D7.1 with the appropriate configuration and speaker placement, +# see docs/3D7.1.txt. +#surround71 = + +## +## Reverb effect stuff (includes EAX reverb) +## +[reverb] + +## boost: (global) +# A global amplification for reverb output, expressed in decibels. The value +# is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a +# scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A +# value of 0 means no change. +#boost = 0 + +## +## PulseAudio backend stuff +## +[pulse] + +## spawn-server: (global) +# Attempts to autospawn a PulseAudio server whenever needed (initializing the +# backend, enumerating devices, etc). Setting autospawn to false in Pulse's +# client.conf will still prevent autospawning even if this is set to true. +#spawn-server = true + +## allow-moves: (global) +# Allows PulseAudio to move active streams to different devices. Note that the +# device specifier (seen by applications) will not be updated when this +# occurs, and neither will the AL device configuration (sample rate, format, +# etc). +#allow-moves = true + +## fix-rate: +# Specifies whether to match the playback stream's sample rate to the device's +# sample rate. Enabling this forces OpenAL Soft to mix sources and effects +# directly to the actual output rate, avoiding a second resample pass by the +# PulseAudio server. +#fix-rate = false + +## adjust-latency: +# Attempts to adjust the overall latency of device playback. Note that this +# may have adverse effects on the resulting internal buffer sizes and mixing +# updates, leading to performance problems and drop-outs. However, if the +# PulseAudio server is creating a lot of latency, enabling this may help make +# it more manageable. +#adjust-latency = false + +## +## ALSA backend stuff +## +[alsa] + +## device: (global) +# Sets the device name for the default playback device. +#device = default + +## device-prefix: (global) +# Sets the prefix used by the discovered (non-default) playback devices. This +# will be appended with "CARD=c,DEV=d", where c is the card id and d is the +# device index for the requested device name. +#device-prefix = plughw: + +## device-prefix-*: (global) +# Card- and device-specific prefixes may be used to override the device-prefix +# option. The option may specify the card id (eg, device-prefix-NVidia), or +# the card id and device index (eg, device-prefix-NVidia-0). The card id is +# case-sensitive. +#device-prefix- = + +## custom-devices: (global) +# Specifies a list of enumerated playback devices and the ALSA devices they +# refer to. The list pattern is "Display Name=ALSA device;...". The display +# names will be returned for device enumeration, and the ALSA device is the +# device name to open for each enumerated device. +#custom-devices = + +## capture: (global) +# Sets the device name for the default capture device. +#capture = default + +## capture-prefix: (global) +# Sets the prefix used by the discovered (non-default) capture devices. This +# will be appended with "CARD=c,DEV=d", where c is the card id and d is the +# device number for the requested device name. +#capture-prefix = plughw: + +## capture-prefix-*: (global) +# Card- and device-specific prefixes may be used to override the +# capture-prefix option. The option may specify the card id (eg, +# capture-prefix-NVidia), or the card id and device index (eg, +# capture-prefix-NVidia-0). The card id is case-sensitive. +#capture-prefix- = + +## custom-captures: (global) +# Specifies a list of enumerated capture devices and the ALSA devices they +# refer to. The list pattern is "Display Name=ALSA device;...". The display +# names will be returned for device enumeration, and the ALSA device is the +# device name to open for each enumerated device. +#custom-captures = + +## mmap: +# Sets whether to try using mmap mode (helps reduce latencies and CPU +# consumption). If mmap isn't available, it will automatically fall back to +# non-mmap mode. True, yes, on, and non-0 values will attempt to use mmap. 0 +# and anything else will force mmap off. +#mmap = true + +## allow-resampler: +# Specifies whether to allow ALSA's built-in resampler. Enabling this will +# allow the playback device to be set to a different sample rate than the +# actual output, causing ALSA to apply its own resampling pass after OpenAL +# Soft resamples and mixes the sources and effects for output. +#allow-resampler = false + +## +## OSS backend stuff +## +[oss] + +## device: (global) +# Sets the device name for OSS output. +#device = /dev/dsp + +## capture: (global) +# Sets the device name for OSS capture. +#capture = /dev/dsp + +## +## Solaris backend stuff +## +[solaris] + +## device: (global) +# Sets the device name for Solaris output. +#device = /dev/audio + +## +## QSA backend stuff +## +[qsa] + +## +## JACK backend stuff +## +[jack] + +## spawn-server: (global) +# Attempts to autospawn a JACK server whenever needed (initializing the +# backend, opening devices, etc). +#spawn-server = false + +## custom-devices: (global) +# Specifies a list of enumerated devices and the ports they connect to. The +# list pattern is "Display Name=ports regex;Display Name=ports regex;...". The +# display names will be returned for device enumeration, and the ports regex +# is the regular expression to identify the target ports on the server (as +# given by the jack_get_ports function) for each enumerated device. +#custom-devices = + +## connect-ports: +# Attempts to automatically connect the client ports to physical server ports. +# Client ports that fail to connect will leave the remaining channels +# unconnected and silent (the device format won't change to accommodate). +#connect-ports = true + +## buffer-size: +# Sets the update buffer size, in samples, that the backend will keep buffered +# to handle the server's real-time processing requests. This value must be a +# power of 2, or else it will be rounded up to the next power of 2. If it is +# less than JACK's buffer update size, it will be clamped. This option may +# be useful in case the server's update size is too small and doesn't give the +# mixer time to keep enough audio available for the processing requests. +#buffer-size = 0 + +## +## WASAPI backend stuff +## +[wasapi] + +## +## DirectSound backend stuff +## +[dsound] + +## +## Windows Multimedia backend stuff +## +[winmm] + +## +## PortAudio backend stuff +## +[port] + +## device: (global) +# Sets the device index for output. Negative values will use the default as +# given by PortAudio itself. +#device = -1 + +## capture: (global) +# Sets the device index for capture. Negative values will use the default as +# given by PortAudio itself. +#capture = -1 + +## +## Wave File Writer stuff +## +[wave] + +## file: (global) +# Sets the filename of the wave file to write to. An empty name prevents the +# backend from opening, even when explicitly requested. +# THIS WILL OVERWRITE EXISTING FILES WITHOUT QUESTION! +#file = + +## bformat: (global) +# Creates AMB format files using first-order ambisonics instead of a standard +# single- or multi-channel .wav file. +#bformat = false diff --git a/ohos/arm64-v8a/share/openal/hrtf/Default HRTF.mhr b/ohos/arm64-v8a/share/openal/hrtf/Default HRTF.mhr new file mode 100644 index 00000000..516a6786 Binary files /dev/null and b/ohos/arm64-v8a/share/openal/hrtf/Default HRTF.mhr differ diff --git a/ohos/arm64-v8a/share/openal/presets/3D7.1.ambdec b/ohos/arm64-v8a/share/openal/presets/3D7.1.ambdec new file mode 100644 index 00000000..42b6a0bb --- /dev/null +++ b/ohos/arm64-v8a/share/openal/presets/3D7.1.ambdec @@ -0,0 +1,43 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description 3D7_2h1v_allrad_5200_rE_max_1_band + +/version 3 + +/dec/chan_mask 1bf +/dec/freq_bands 1 +/dec/speakers 7 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp output +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.500000 51.000000 24.000000 +add_spkr RF 1.500000 -51.000000 24.000000 +add_spkr CE 1.500000 0.000000 0.000000 +add_spkr LB 1.500000 180.000000 55.000000 +add_spkr RB 1.500000 0.000000 -55.000000 +add_spkr LS 1.500000 129.000000 -24.000000 +add_spkr RS 1.500000 -129.000000 -24.000000 +/} + +/matrix/{ +order_gain 1.000000 0.774597 0.400000 0.000000 +add_row 0.325031 0.357638 0.206500 0.234037 0.202440 0.135692 0.116927 -0.098768 +add_row 0.325036 -0.357619 0.206537 0.234033 -0.202427 -0.135680 0.116934 -0.098768 +add_row 0.080073 -0.000010 -0.000296 0.155843 -0.000016 -0.000011 -0.000623 0.163306 +add_row 0.353556 0.000002 0.408453 -0.288377 -0.000004 -0.000003 -0.221039 0.077297 +add_row 0.325297 0.000008 -0.414018 0.232789 0.000004 0.000003 -0.232940 0.018311 +add_row 0.353558 0.352704 -0.203542 -0.290124 -0.191868 -0.134582 0.110616 -0.038294 +add_row 0.353556 -0.352691 -0.203576 -0.290115 0.191871 0.134585 0.110612 -0.038293 +/} + +/end diff --git a/ohos/arm64-v8a/share/openal/presets/hexagon.ambdec b/ohos/arm64-v8a/share/openal/presets/hexagon.ambdec new file mode 100644 index 00000000..d45f2732 --- /dev/null +++ b/ohos/arm64-v8a/share/openal/presets/hexagon.ambdec @@ -0,0 +1,51 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description Hexagon_2h0p_pinv_match_rV_max_rE_2_band + +/version 3 + +/dec/chan_mask 11b +/dec/freq_bands 2 +/dec/speakers 6 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp input +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.000000 30.000000 0.000000 +add_spkr RF 1.000000 -30.000000 0.000000 +add_spkr RS 1.000000 -90.000000 0.000000 +add_spkr RB 1.000000 -150.000000 0.000000 +add_spkr LB 1.000000 150.000000 0.000000 +add_spkr LS 1.000000 90.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 1.000000 0.000000 +add_row 0.235702 0.166667 0.288675 0.288675 0.166667 +add_row 0.235702 -0.166667 0.288675 -0.288675 0.166667 +add_row 0.235702 -0.333333 0.000000 -0.000000 -0.333333 +add_row 0.235702 -0.166667 -0.288675 0.288675 0.166667 +add_row 0.235702 0.166667 -0.288675 -0.288675 0.166667 +add_row 0.235702 0.333333 0.000000 -0.000000 -0.333333 +/} + +/hfmatrix/{ +order_gain 1.414214 1.224745 0.707107 0.000000 +add_row 0.235702 0.166667 0.288675 0.288675 0.166667 +add_row 0.235702 -0.166667 0.288675 -0.288675 0.166667 +add_row 0.235702 -0.333333 0.000000 -0.000000 -0.333333 +add_row 0.235702 -0.166667 -0.288675 0.288675 0.166667 +add_row 0.235702 0.166667 -0.288675 -0.288675 0.166667 +add_row 0.235702 0.333333 0.000000 -0.000000 -0.333333 +/} + +/end diff --git a/ohos/arm64-v8a/share/openal/presets/itu5.1-nocenter.ambdec b/ohos/arm64-v8a/share/openal/presets/itu5.1-nocenter.ambdec new file mode 100644 index 00000000..23839d0e --- /dev/null +++ b/ohos/arm64-v8a/share/openal/presets/itu5.1-nocenter.ambdec @@ -0,0 +1,46 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +# input channel order: WYXVU + +/description itu50-noCenter_2h0p_allrad_5200_rE_max_1_band + +# Although unused in this configuration, the front-center is declared here so +# that an appropriate distance may be set (for proper delaying or attenuating +# of dialog and such which feed it directly). It otherwise does not contribute +# to positional sound output. + +/version 3 + +/dec/chan_mask 11b +/dec/freq_bands 1 +/dec/speakers 5 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp input +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LS 1.000000 110.000000 0.000000 system:playback_3 +add_spkr LF 1.000000 30.000000 0.000000 system:playback_1 +add_spkr CE 1.000000 0.000000 0.000000 system:playback_5 +add_spkr RF 1.000000 -30.000000 0.000000 system:playback_2 +add_spkr RS 1.000000 -110.000000 0.000000 system:playback_4 +/} + +/matrix/{ +order_gain 1.00000000e+00 8.66025404e-01 5.00000000e-01 0.000000 +add_row 4.70934222e-01 3.78169605e-01 -4.00084750e-01 -8.22264454e-02 -4.43765986e-02 +add_row 2.66639870e-01 2.55418584e-01 3.32591390e-01 2.82949132e-01 8.16816772e-02 +add_row 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 +add_row 2.66634915e-01 -2.55421639e-01 3.32586482e-01 -2.82947688e-01 8.16782588e-02 +add_row 4.70935891e-01 -3.78173080e-01 -4.00080588e-01 8.22279700e-02 -4.43716394e-02 +/} + +/end diff --git a/ohos/arm64-v8a/share/openal/presets/itu5.1.ambdec b/ohos/arm64-v8a/share/openal/presets/itu5.1.ambdec new file mode 100644 index 00000000..74386034 --- /dev/null +++ b/ohos/arm64-v8a/share/openal/presets/itu5.1.ambdec @@ -0,0 +1,48 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description itu50_2h0p_allrad_5200_rE_max_1_band + +/version 3 + +/dec/chan_mask 11b +/dec/freq_bands 2 +/dec/speakers 5 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp output +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 3.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LS 1.000000 110.000000 0.000000 +add_spkr LF 1.000000 30.000000 0.000000 +add_spkr CE 1.000000 0.000000 0.000000 +add_spkr RF 1.000000 -30.000000 0.000000 +add_spkr RS 1.000000 -110.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 1.000000 0.000000 +add_row 0.420330 0.330200 -0.312250 0.019350 -0.027010 +add_row 0.197700 0.288820 0.287820 0.049110 0.007420 +add_row 0.058030 0.000000 0.205970 0.000000 0.050790 +add_row 0.197700 -0.288820 0.287820 -0.049110 0.007420 +add_row 0.420330 -0.330200 -0.312250 -0.019350 -0.027010 +/} + +/hfmatrix/{ +order_gain 1.000000 0.866025 0.500000 0.000000 +add_row 0.470934 0.378170 -0.400085 -0.082226 -0.044377 +add_row 0.208954 0.257988 0.230383 0.288520 -0.025085 +add_row 0.109403 -0.000002 0.194278 -0.000003 0.200863 +add_row 0.208950 -0.257989 0.230379 -0.288516 -0.025088 +add_row 0.470936 -0.378173 -0.400081 0.082228 -0.044372 +/} + +/end diff --git a/ohos/arm64-v8a/share/openal/presets/presets.txt b/ohos/arm64-v8a/share/openal/presets/presets.txt new file mode 100644 index 00000000..541416e2 --- /dev/null +++ b/ohos/arm64-v8a/share/openal/presets/presets.txt @@ -0,0 +1,42 @@ +Ambisonic decoder configuration presets are provided here for common surround +sound speaker layouts. The presets are prepared to work with OpenAL Soft's high +quality decoder. By default all of the speaker distances within a preset are +set to the same value, which results in no effect from distance compensation. +If this doesn't match your physical speaker setup, it may be worth copying the +preset and modifying the distance values to match (note that modifying the +azimuth and elevation values in the presets will not have any effect; the +specified angles do not change the decoder behavior). + +Details of the individual presets are as follows. + +square.ambdec +Specifies a basic square speaker setup for Quadraphonic output, with identical +width and depth. Front speakers are placed at +45 and -45 degrees, and back +speakers are placed at +135 and -135 degrees. + +rectangle.ambdec +Specifies a narrower speaker setup for Quadraphonic output, with a little less +width but a little more depth over a basic square setup. Front speakers are +placed at +30 and -30 degrees, providing a bit more compatibility for existing +stereo content, with back speakers at +150 and -150 degrees. + +itu5.1.ambdec +Specifies a standard ITU 5.0/5.1 setup for 5.1 Surround output. The front- +center speaker is placed directly in front at 0 degrees, with the front-left +and front-right at +30 and -30 degrees, and the surround speakers (side or +back) at +110 and -110 degrees. + +hexagon.ambdec +Specifies a flat-front hexagonal speaker setup for 7.1 Surround output. The +front left and right speakers are placed at +30 and -30 degrees, the side +speakers are placed at +90 and -90 degrees, and the back speakers are placed at ++150 and -150 degrees. Although this is for 7.1 output, no front-center speaker +is defined for the decoder, meaning that speaker will be silent for 3D sound +(however it may still be used with AL_SOFT_direct_channels or ALC_EXT_DEDICATED +output). A "proper" 7.1 decoder may be provided in the future, but due to the +nature of the speaker configuration will have trade-offs. + +3D7.1.ambdec +Specifies a 3D7.1 speaker setup for 7.1 Surround output. Although it's for 7.1 +output, the speakers for such a configuration need to be placed in different +positions for proper results. Please see docs/3D7.1.txt for more information. diff --git a/ohos/arm64-v8a/share/openal/presets/rectangle.ambdec b/ohos/arm64-v8a/share/openal/presets/rectangle.ambdec new file mode 100644 index 00000000..caf72318 --- /dev/null +++ b/ohos/arm64-v8a/share/openal/presets/rectangle.ambdec @@ -0,0 +1,45 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description Rectangle_1h0p_pinv_match_rV_max_rE_2_band + +/version 3 + +/dec/chan_mask b +/dec/freq_bands 2 +/dec/speakers 4 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp input +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.000000 30.000000 0.000000 +add_spkr RF 1.000000 -30.000000 0.000000 +add_spkr RB 1.000000 -150.000000 0.000000 +add_spkr LB 1.000000 150.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 0.000000 0.000000 +add_row 0.353553 0.500000 0.288675 +add_row 0.353553 -0.500000 0.288675 +add_row 0.353553 -0.500000 -0.288675 +add_row 0.353553 0.500000 -0.288675 +/} + +/hfmatrix/{ +order_gain 1.414214 1.000000 0.000000 0.000000 +add_row 0.353553 0.500000 0.288675 +add_row 0.353553 -0.500000 0.288675 +add_row 0.353553 -0.500000 -0.288675 +add_row 0.353553 0.500000 -0.288675 +/} + +/end diff --git a/ohos/arm64-v8a/share/openal/presets/square.ambdec b/ohos/arm64-v8a/share/openal/presets/square.ambdec new file mode 100644 index 00000000..547ed367 --- /dev/null +++ b/ohos/arm64-v8a/share/openal/presets/square.ambdec @@ -0,0 +1,45 @@ +# AmbDec configuration +# Written by Ambisonic Decoder Toolbox, version 8.0 + +/description Square_1h0p_pinv_match_rV_max_rE_2_band + +/version 3 + +/dec/chan_mask b +/dec/freq_bands 2 +/dec/speakers 4 +/dec/coeff_scale fuma + +/opt/input_scale fuma +/opt/nfeff_comp input +/opt/delay_comp on +/opt/level_comp on +/opt/xover_freq 400.000000 +/opt/xover_ratio 0.000000 + +/speakers/{ +# id dist azim elev conn +#----------------------------------------------------------------------- +add_spkr LF 1.000000 45.000000 0.000000 +add_spkr RF 1.000000 -45.000000 0.000000 +add_spkr RB 1.000000 -135.000000 0.000000 +add_spkr LB 1.000000 135.000000 0.000000 +/} + +/lfmatrix/{ +order_gain 1.000000 1.000000 0.000000 0.000000 +add_row 0.353553 0.353553 0.353553 +add_row 0.353553 -0.353553 0.353553 +add_row 0.353553 -0.353553 -0.353553 +add_row 0.353553 0.353553 -0.353553 +/} + +/hfmatrix/{ +order_gain 1.414214 1.000000 0.000000 0.000000 +add_row 0.353553 0.353553 0.353553 +add_row 0.353553 -0.353553 0.353553 +add_row 0.353553 -0.353553 -0.353553 +add_row 0.353553 0.353553 -0.353553 +/} + +/end