1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef VOICE_ENGINE_MAIN_TEST_AUTO_TEST_FAKE_MEDIA_PROCESS_H_ 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define VOICE_ENGINE_MAIN_TEST_AUTO_TEST_FAKE_MEDIA_PROCESS_H_ 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 133f45c2e0ac4cb280f941efa3a3476895795e3dd6pbos@webrtc.org#include <math.h> 14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass FakeMediaProcess : public webrtc::VoEMediaProcess { 16b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org public: 176a4acb9ec855d75fc9d23e4111f319396403647apbos@webrtc.org FakeMediaProcess() : frequency(0) {} 18ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org virtual void Process(int channel, 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const webrtc::ProcessingTypes type, 2054f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org int16_t audio_10ms[], 21ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org int length, 22ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org int sampling_freq_hz, 23ca7a9a2696d2f73f543241093c4faeb4c608678cpbos@webrtc.org bool stereo) { 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for (int i = 0; i < length; i++) { 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (!stereo) { 2654f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org audio_10ms[i] = static_cast<int16_t>(audio_10ms[i] * 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org sin(2.0 * 3.14 * frequency * 400.0 / sampling_freq_hz)); 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } else { 29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Interleaved stereo. 3054f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org audio_10ms[2 * i] = static_cast<int16_t> ( 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org audio_10ms[2 * i] * sin(2.0 * 3.14 * 32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org frequency * 400.0 / sampling_freq_hz)); 3354f03bc96c30337a3a97af7262cfb5148063b162pbos@webrtc.org audio_10ms[2 * i + 1] = static_cast<int16_t> ( 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org audio_10ms[2 * i + 1] * sin(2.0 * 3.14 * 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org frequency * 400.0 / sampling_freq_hz)); 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org frequency++; 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org private: 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int frequency; 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}; 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif // VOICE_ENGINE_MAIN_TEST_AUTO_TEST_FAKE_MEDIA_PROCESS_H_ 46