1/*---------------------------------------------------------------------------- 2 * 3 * File: 4 * eas_audioconst.h 5 * 6 * Contents and purpose: 7 * Defines audio constants related to the sample rate, bit size, etc. 8 * 9 * 10 * Copyright Sonic Network Inc. 2005 11 12 * Licensed under the Apache License, Version 2.0 (the "License"); 13 * you may not use this file except in compliance with the License. 14 * You may obtain a copy of the License at 15 * 16 * http://www.apache.org/licenses/LICENSE-2.0 17 * 18 * Unless required by applicable law or agreed to in writing, software 19 * distributed under the License is distributed on an "AS IS" BASIS, 20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 * See the License for the specific language governing permissions and 22 * limitations under the License. 23 * 24 *---------------------------------------------------------------------------- 25 * Revision Control: 26 * $Revision: 82 $ 27 * $Date: 2006-07-10 11:45:19 -0700 (Mon, 10 Jul 2006) $ 28 *---------------------------------------------------------------------------- 29*/ 30 31#ifndef _EAS_AUDIOCONST_H 32#define _EAS_AUDIOCONST_H 33 34/*---------------------------------------------------------------------------- 35 * These macros define the various characteristics of the defined sample rates 36 *---------------------------------------------------------------------------- 37 * BUFFER_SIZE_IN_MONO_SAMPLES size of buffer in samples 38 * _OUTPUT_SAMPLE_RATE compiled output sample rate 39 * AUDIO_FRAME_LENGTH length of an audio frame in 256ths of a millisecond 40 * SYNTH_UPDATE_PERIOD_IN_BITS length of an audio frame (2^x samples) 41 *---------------------------------------------------------------------------- 42*/ 43 44#if defined (_SAMPLE_RATE_8000) 45#define BUFFER_SIZE_IN_MONO_SAMPLES 32 46#define _OUTPUT_SAMPLE_RATE 8000 47#define AUDIO_FRAME_LENGTH 1024 48#define SYNTH_UPDATE_PERIOD_IN_BITS 5 49 50#elif defined (_SAMPLE_RATE_16000) 51#define BUFFER_SIZE_IN_MONO_SAMPLES 64 52#define _OUTPUT_SAMPLE_RATE 16000 53#define AUDIO_FRAME_LENGTH 1024 54#define SYNTH_UPDATE_PERIOD_IN_BITS 6 55 56#elif defined (_SAMPLE_RATE_20000) 57#define BUFFER_SIZE_IN_MONO_SAMPLES 128 58#define _OUTPUT_SAMPLE_RATE 20000 59#define AUDIO_FRAME_LENGTH 1638 60#define SYNTH_UPDATE_PERIOD_IN_BITS 7 61 62#elif defined (_SAMPLE_RATE_22050) 63#define BUFFER_SIZE_IN_MONO_SAMPLES 128 64#define _OUTPUT_SAMPLE_RATE 22050 65#define AUDIO_FRAME_LENGTH 1486 66#define SYNTH_UPDATE_PERIOD_IN_BITS 7 67 68#elif defined (_SAMPLE_RATE_24000) 69#define BUFFER_SIZE_IN_MONO_SAMPLES 128 70#define _OUTPUT_SAMPLE_RATE 24000 71#define AUDIO_FRAME_LENGTH 1365 72#define SYNTH_UPDATE_PERIOD_IN_BITS 7 73 74#elif defined (_SAMPLE_RATE_32000) 75#define BUFFER_SIZE_IN_MONO_SAMPLES 128 76#define _OUTPUT_SAMPLE_RATE 32000 77#define AUDIO_FRAME_LENGTH 1024 78#define SYNTH_UPDATE_PERIOD_IN_BITS 7 79 80#elif defined (_SAMPLE_RATE_44100) 81#define BUFFER_SIZE_IN_MONO_SAMPLES 256 82#define _OUTPUT_SAMPLE_RATE 44100 83#define AUDIO_FRAME_LENGTH 1486 84#define SYNTH_UPDATE_PERIOD_IN_BITS 8 85 86#elif defined (_SAMPLE_RATE_48000) 87#define BUFFER_SIZE_IN_MONO_SAMPLES 256 88#define _OUTPUT_SAMPLE_RATE 48000 89#define AUDIO_FRAME_LENGTH 1365 90#define SYNTH_UPDATE_PERIOD_IN_BITS 8 91 92#else 93#error "_SAMPLE_RATE_XXXXX must be defined to valid rate" 94#endif 95 96#endif /* #ifndef _EAS_AUDIOCONST_H */ 97 98