| /* |
| * Copyright (C) 2012 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 CTSAUDIO_BUILTINPROCESSING_H |
| #define CTSAUDIO_BUILTINPROCESSING_H |
| |
| #include "task/TaskGeneric.h" |
| |
| class BuiltinProcessing { |
| public: |
| BuiltinProcessing(); |
| |
| typedef TaskGeneric::ExecutionResult \ |
| (BuiltinProcessing::*BuiltinProcessingMemberFn)(void**, void**); |
| struct BuiltinInfo { |
| const char* mName; |
| BuiltinProcessingMemberFn mFunction; |
| size_t mNInput; |
| const bool* mInputTypes; // true: android::sp<Buffer>*, false: Value* |
| size_t mNOutput; |
| const bool* mOutputTypes; |
| }; |
| |
| static const int N_BUILTIN_FNS = 1; |
| static BuiltinInfo BUINTIN_FN_TABLE[N_BUILTIN_FNS]; |
| /** |
| * calculate RMS of given data. The rms is passed to moving average filter |
| * And the averaged RMS should be within passMin to passMax to pass the test. |
| * Otherwise, it will just return EResultOK. |
| * Input: android::sp<Buffer> data, int64_t passMin, int64_t passMax |
| * Output:int64_t rms |
| */ |
| TaskGeneric::ExecutionResult rms_mva(void** inputs, void** outputs); |
| private: |
| static const int RMS_CONTINUOUS_PASSES = 5; |
| int mRMSPasses; |
| }; |
| |
| |
| #endif // CTSAUDIO_BUILTINPROCESSING_H |