eas_audioconst.h revision 7df30109963092559d3760c0661a020f9daf1030
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*---------------------------------------------------------------------------- 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * File: 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * eas_audioconst.h 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contents and purpose: 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Defines audio constants related to the sample rate, bit size, etc. 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Copyright Sonic Network Inc. 2005 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License"); 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * you may not use this file except in compliance with the License. 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * You may obtain a copy of the License at 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.apache.org/licenses/LICENSE-2.0 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Unless required by applicable law or agreed to in writing, software 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * See the License for the specific language governing permissions and 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * limitations under the License. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *---------------------------------------------------------------------------- 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Revision Control: 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * $Revision: 82 $ 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * $Date: 2006-07-10 11:45:19 -0700 (Mon, 10 Jul 2006) $ 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *---------------------------------------------------------------------------- 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)*/ 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef _EAS_AUDIOCONST_H 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _EAS_AUDIOCONST_H 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*---------------------------------------------------------------------------- 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * These macros define the various characteristics of the defined sample rates 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci *---------------------------------------------------------------------------- 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * BUFFER_SIZE_IN_MONO_SAMPLES size of buffer in samples 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * _OUTPUT_SAMPLE_RATE compiled output sample rate 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * AUDIO_FRAME_LENGTH length of an audio frame in 256ths of a millisecond 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * SYNTH_UPDATE_PERIOD_IN_BITS length of an audio frame (2^x samples) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *---------------------------------------------------------------------------- 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (_SAMPLE_RATE_8000) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 32 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 8000 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define AUDIO_FRAME_LENGTH 1024 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 5 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#elif defined (_SAMPLE_RATE_16000) 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 64 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 16000 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define AUDIO_FRAME_LENGTH 1024 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 6 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#elif defined (_SAMPLE_RATE_20000) 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 128 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 20000 59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define AUDIO_FRAME_LENGTH 1638 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 7 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#elif defined (_SAMPLE_RATE_22050) 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 128 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 22050 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define AUDIO_FRAME_LENGTH 1486 66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 7 67f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 68f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#elif defined (_SAMPLE_RATE_24000) 69f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 128 70f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 24000 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define AUDIO_FRAME_LENGTH 1365 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 7 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#elif defined (_SAMPLE_RATE_32000) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 128 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 32000 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define AUDIO_FRAME_LENGTH 1024 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 7 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined (_SAMPLE_RATE_44100) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 256 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 44100 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define AUDIO_FRAME_LENGTH 1486 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 8 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined (_SAMPLE_RATE_48000) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BUFFER_SIZE_IN_MONO_SAMPLES 256 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _OUTPUT_SAMPLE_RATE 48000 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define AUDIO_FRAME_LENGTH 1365 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SYNTH_UPDATE_PERIOD_IN_BITS 8 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#error "_SAMPLE_RATE_XXXXX must be defined to valid rate" 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* #ifndef _EAS_AUDIOCONST_H */ 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)