| /* |
| * Copyright (C) 2017 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 ANDROID_EFFECTSFACTORYSTATE_H_ |
| #define ANDROID_EFFECTSFACTORYSTATE_H_ |
| |
| #include "EffectsFactory.h" |
| |
| #if __cplusplus |
| extern "C" { |
| #endif |
| |
| /** @file Contains the state shared with configuration loader of the Effect factory. |
| * This global state should probably be refactor in a structure |
| * provided by the config loader on EffectsFactory init. |
| * This header also contains some helper functions to work on the state. |
| */ |
| |
| extern list_elem_t *gLibraryList; // list of lib_entry_t: all currently loaded libraries |
| // list of effects skipped because of duplicate uuid or invalid version |
| extern list_elem_t *gSkippedEffects; |
| // list of effect_descriptor and list of sub effects : all currently loaded |
| // It does not contain effects without sub effects. |
| extern list_sub_elem_t *gSubEffectList; |
| extern pthread_mutex_t gLibLock; // controls access to gLibraryList |
| |
| extern list_elem_t *gLibraryFailedList; //list of lib_failed_entry_t: libraries failed to load |
| |
| |
| |
| int findEffect(const effect_uuid_t *type, |
| const effect_uuid_t *uuid, |
| lib_entry_t **lib, |
| effect_descriptor_t **desc); |
| |
| int stringToUuid(const char *str, effect_uuid_t *uuid); |
| /** Used to log UUIDs */ |
| int uuidToString(const effect_uuid_t *uuid, char *str, size_t maxLen); |
| |
| /** Used for debuging. */ |
| void dumpEffectDescriptor(effect_descriptor_t *desc, char *str, size_t len, int indent); |
| |
| #if __cplusplus |
| } // extern "C" |
| #endif |
| |
| #endif // ANDROID_EFFECTSFACTORYSTATE_H_ |