/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef OFFLOAD_REVERB_H_ #define OFFLOAD_REVERB_H_ #include "bundle.h" #define REVERB_DEFAULT_PRESET REVERB_PRESET_NONE extern const effect_descriptor_t aux_env_reverb_descriptor; extern const effect_descriptor_t ins_env_reverb_descriptor; extern const effect_descriptor_t aux_preset_reverb_descriptor; extern const effect_descriptor_t ins_preset_reverb_descriptor; typedef struct reverb_settings_s { int16_t roomLevel; int16_t roomHFLevel; uint32_t decayTime; int16_t decayHFRatio; int16_t reflectionsLevel; uint32_t reflectionsDelay; int16_t reverbLevel; uint32_t reverbDelay; int16_t diffusion; int16_t density; } reverb_settings_t; typedef struct reverb_context_s { effect_context_t common; // Offload vars struct mixer_ctl *ctl; bool auxiliary; bool preset; uint16_t cur_preset; uint16_t next_preset; reverb_settings_t reverb_settings; uint32_t device; struct reverb_params offload_reverb; } reverb_context_t; void reverb_auxiliary_init(reverb_context_t *context); void reverb_preset_init(reverb_context_t *context); void reverb_insert_init(reverb_context_t *context); int reverb_get_parameter(effect_context_t *context, effect_param_t *p, uint32_t *size); int reverb_set_parameter(effect_context_t *context, effect_param_t *p, uint32_t size); int reverb_set_device(effect_context_t *context, uint32_t device); int reverb_reset(effect_context_t *context); int reverb_init(effect_context_t *context); int reverb_enable(effect_context_t *context); int reverb_disable(effect_context_t *context); int reverb_start(effect_context_t *context, output_context_t *output); int reverb_stop(effect_context_t *context, output_context_t *output); #endif /* OFFLOAD_REVERB_H_ */