/* Copyright 2016 Libaudioverse Developers. See the COPYRIGHT file at the top-level directory of this distribution. Licensed under the mozilla Public License, version 2.0 or the Gbnu General Public License, V3 or later , at your option. All files in the project carrying such notice may not be copied, modified, or distributed except according to those terms. */ #pragma once #include "libaudioverse.h" #ifdef __cplusplus extern "C" { #endif /**This file contains the property enums for Libaudioverse. It is worth keeping separate because it will grow rapidly and contain documentation comments and etc. The standard for naming is: Lav_NODETYPE_PROPNAME Furthermore, all libaudioverse properties are negative. Values below -100 are reserved for standard events and properties on all objects. */ enum lav_STANDARD_PROPERTIES { Lav_NODE_STATE = -100, Lav_NODE_MUL = -101, Lav_NODE_ADD = -102, Lav_NODE_CHANNEL_INTERPRETATION = -104, }; enum Lav_CHANNEL_INTERPRETATIONS { Lav_CHANNEL_INTERPRETATION_DISCRETE = 0, Lav_CHANNEL_INTERPRETATION_SPEAKERS = 1, }; enum Lav_OSCILLATOR_PROPERTIES { Lav_OSCILLATOR_FREQUENCY = -200, Lav_OSCILLATOR_PHASE = -201, Lav_OSCILLATOR_FREQUENCY_MULTIPLIER = -202, }; enum lav_SQUARE_PROPERTIES { Lav_SQUARE_HARMONICS = -1, Lav_SQUARE_DUTY_CYCLE = -2, }; enum lav_TRIANGLE_PROPERTIES { Lav_TRIANGLE_HARMONICS = -3, }; enum lav_SAW_PROPERTIES { Lav_SAW_HARMONICS = -3, }; enum Lav_NOISE_PROPERTIES { Lav_NOISE_NOISE_TYPE = -1, Lav_NOISE_SHOULD_NORMALIZE = -2, }; enum Lav_NOISE_TYPES { Lav_NOISE_TYPE_WHITE = 0, Lav_NOISE_TYPE_PINK = 1, Lav_NOISE_TYPE_BROWN = 2, }; enum Lav_PANNER_PROPERTIES { Lav_PANNER_AZIMUTH = -1, Lav_PANNER_ELEVATION = -2, Lav_PANNER_CHANNEL_MAP = -3, Lav_PANNER_SHOULD_CROSSFADE = -4, Lav_PANNER_STRATEGY = -5, }; enum Lav_PANNER_BANK_PROPERTIES { Lav_PANNER_BANK_SPREAD = -20, Lav_PANNER_BANK_COUNT = -21, Lav_PANNER_BANK_IS_CENTERED =-22, }; enum Lav_PANNING_STRATEGIES { Lav_PANNING_STRATEGY_HRTF, Lav_PANNING_STRATEGY_STEREO, Lav_PANNING_STRATEGY_SURROUND40, Lav_PANNING_STRATEGY_SURROUND51, Lav_PANNING_STRATEGY_SURROUND71, }; enum Lav_MIXER_PROPERTIES { Lav_MIXER_MAX_PARENTS = -1, Lav_MIXER_INPUTS_PER_PARENT = -2, }; enum Lav_DELAY_PROPERTIES { Lav_DELAY_DELAY = -1, Lav_DELAY_DELAY_MAX = -2, Lav_DELAY_FEEDBACK = -3, Lav_DELAY_INTERPOLATION_TIME = -4, }; enum Lav_PUSH_NODE_PROPERTIES { Lav_PUSH_THRESHOLD = -1, }; //biquad objects. enum Lav_BIQUAD_PROPERTIES { Lav_BIQUAD_FILTER_TYPE = -1, Lav_BIQUAD_Q = -2, Lav_BIQUAD_FREQUENCY = -3, Lav_BIQUAD_DBGAIN = -4, }; enum Lav_BIQUAD_TYPES { Lav_BIQUAD_TYPE_LOWPASS = 0, Lav_BIQUAD_TYPE_HIGHPASS = 1, Lav_BIQUAD_TYPE_BANDPASS = 2, Lav_BIQUAD_TYPE_NOTCH = 3, Lav_BIQUAD_TYPE_ALLPASS = 4, Lav_BIQUAD_TYPE_PEAKING = 5, Lav_BIQUAD_TYPE_LOWSHELF = 6, Lav_BIQUAD_TYPE_HIGHSHELF = 7, Lav_BIQUAD_TYPE_IDENTITY = 8, }; //this is for feedback delay networks. We shorten because otherwise it would be insane to actually use these. enum Lav_FEEDBACK_DELAY_NETWORK_PROPERTIES { Lav_FDN_MAX_DELAY = -1, Lav_FDN_OUTPUT_GAINS = -2, Lav_FDN_DELAYS = -3, Lav_FDN_MATRIX = -4, Lav_FDN_FILTER_TYPES = -5, Lav_FDN_FILTER_FREQUENCIES = -6, }; enum Lav_FDN_FILTER_TYPES { Lav_FDN_FILTER_TYPE_DISABLED = 0, Lav_FDN_FILTER_TYPE_LOWPASS = 1, Lav_FDN_FILTER_TYPE_HIGHPASS = 2, }; enum Lav_BUFFER_PROPERTIES { Lav_BUFFER_BUFFER = -1, Lav_BUFFER_POSITION = -2, Lav_BUFFER_RATE = -3, Lav_BUFFER_LOOPING = -4, Lav_BUFFER_ENDED_COUNT = -5, }; enum Lav_CONVOLVER_PROPERTIES { Lav_CONVOLVER_IMPULSE_RESPONSE = -1, }; enum Lav_THREE_BAND_EQ_PROPERTIES { Lav_THREE_BAND_EQ_HIGHBAND_DBGAIN = -1, Lav_THREE_BAND_EQ_HIGHBAND_FREQUENCY = -2, Lav_THREE_BAND_EQ_MIDBAND_DBGAIN = -3, Lav_THREE_BAND_EQ_LOWBAND_DBGAIN = -4, Lav_THREE_BAND_EQ_LOWBAND_FREQUENCY= -5, }; enum Lav_FILTERED_DELAY_PROPERTIES { Lav_FILTERED_DELAY_DELAY = -1, Lav_FILTERED_DELAY_FEEDBACK = -2, Lav_FILTERED_DELAY_INTERPOLATION_TIME = -3, Lav_FILTERED_DELAY_DELAY_MAX = -4, Lav_FILTERED_DELAY_FILTER_TYPE = -5, Lav_FILTERED_DELAY_Q = -6, Lav_FILTERED_DELAY_FREQUENCY = -7, Lav_FILTERED_DELAY_DBGAIN = -8, }; enum Lav_CROSSFADER_PROPERTIES { Lav_CROSSFADER_CURRENT_INPUT = -1, Lav_CROSSFADER_TARGET_INPUT = -2, Lav_CROSSFADER_IS_CROSSFADING = -3, }; enum Lav_ONE_POLE_FILTER_PROPERTIES { Lav_ONE_POLE_FILTER_FREQUENCY = -1, Lav_ONE_POLE_FILTER_IS_HIGHPASS = -2, }; enum Lav_FIRST_ORDER_FILTER_PROPERTIES { Lav_FIRST_ORDER_FILTER_POLE = -1, Lav_FIRST_ORDER_FILTER_ZERO = -2, }; enum Lav_ALLPASS_OPROPERTIES { Lav_ALLPASS_DELAY_SAMPLES = -1, Lav_ALLPASS_DELAY_SAMPLES_MAX = -2, Lav_ALLPASS_INTERPOLATION_TIME = -3, Lav_ALLPASS_COEFFICIENT = -4, }; enum Lav_FDN_REVERB_PROPERTIES { Lav_FDN_REVERB_T60 = -1, Lav_FDN_REVERB_CUTOFF_FREQUENCY = -2, Lav_FDN_REVERB_DENSITY = -3, Lav_FDN_REVERB_DELAY_MODULATION_DEPTH = -4, Lav_FDN_REVERB_DELAY_MODULATION_FREQUENCY = -5, }; enum Lav_BLIT_PROPERTIES { Lav_BLIT_HARMONICS = -1, Lav_BLIT_SHOULD_NORMALIZE = -4, }; enum Lav_LEAKY_INTEGRATOR_PROPERTIES { Lav_LEAKY_INTEGRATOR_LEAKYNESS = -1, }; enum Lav_FILE_STREAMER_PROPERTIES { Lav_FILE_STREAMER_POSITION = -1, Lav_FILE_STREAMER_LOOPING = -2, Lav_FILE_STREAMER_ENDED= -3, }; #ifdef __cplusplus } #endif