16cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi/* 26cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * Copyright (C) 2013 The Android Open Source Project 36cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * 46cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License"); 56cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * you may not use this file except in compliance with the License. 66cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * You may obtain a copy of the License at 76cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * 86cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * http://www.apache.org/licenses/LICENSE-2.0 96cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * 106cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * Unless required by applicable law or agreed to in writing, software 116cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS, 126cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * See the License for the specific language governing permissions and 146cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * limitations under the License. 156cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi */ 166cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 176cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#ifndef LE_FX_ENGINE_COMMON_CORE_BASIC_TYPES_H_ 186cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#define LE_FX_ENGINE_COMMON_CORE_BASIC_TYPES_H_ 196cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 206cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include <stddef.h> 216cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include <stdlib.h> 226cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include <string> 236cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Triviusing ::std::string; 246cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Triviusing ::std::basic_string; 256cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include <vector> 266cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Triviusing ::std::vector; 276cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 286cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include "common/core/os.h" 296cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 306cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// ----------------------------------------------------------------------------- 316cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// Definitions of common basic types: 326cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// ----------------------------------------------------------------------------- 336cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 346cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#if !defined(G_COMPILE) && !defined(BASE_INTEGRAL_TYPES_H_) 356cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 366cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivinamespace le_fx { 376cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 386cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef signed char schar; 396cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef signed char int8; 406cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef short int16; 416cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef int int32; 426cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef long long int64; 436cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 446cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef unsigned char uint8; 456cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef unsigned short uint16; 466cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef unsigned int uint32; 476cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitypedef unsigned long long uint64; 486cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 496cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi} // namespace le_fx 506cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 516cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#endif 526cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 536cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivinamespace le_fx { 546cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 556cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivistruct FloatArray { 566cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int length; 576cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi float *data; 586cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 596cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi FloatArray(void) { 606cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi data = NULL; 616cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi length = 0; 626cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi } 636cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi}; 646cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 656cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivistruct Int16Array { 666cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int length; 676cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int16 *data; 686cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 696cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi Int16Array(void) { 706cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi data = NULL; 716cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi length = 0; 726cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi } 736cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi}; 746cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 756cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivistruct Int32Array { 766cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int length; 776cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int32 *data; 786cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 796cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi Int32Array(void) { 806cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi data = NULL; 816cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi length = 0; 826cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi } 836cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi}; 846cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 856cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivistruct Int8Array { 866cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int length; 876cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi uint8 *data; 886cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 896cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi Int8Array(void) { 906cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi data = NULL; 916cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi length = 0; 926cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi } 936cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi}; 946cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 956cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// 966cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// Simple wrapper for waveform data: 976cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// 986cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Triviclass WaveData : public vector<int16> { 996cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi public: 1006cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi WaveData(); 1016cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi ~WaveData(); 1026cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 1036cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi void Set(int number_samples, int sampling_rate, int16 *data); 1046cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int sample_rate(void) const; 1056cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi void set_sample_rate(int sample_rate); 1066cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi bool Equals(const WaveData &wave_data, int threshold = 0) const; 1076cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 1086cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi private: 1096cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int sample_rate_; 1106cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi}; 1116cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 1126cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi} // namespace le_fx 1136cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 1146cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#endif // LE_FX_ENGINE_COMMON_CORE_BASIC_TYPES_H_ 115