156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * File: 456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * eas_pcm.h 556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Contents and purpose: 756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * External function prototypes for eas_pcm.c module 856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 1056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Copyright Sonic Network Inc. 2005 117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project 127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * you may not use this file except in compliance with the License. 147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * You may obtain a copy of the License at 157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * See the License for the specific language governing permissions and 227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * limitations under the License. 2356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 2456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 2556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Revision Control: 2656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Revision: 847 $ 2756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Date: 2007-08-27 21:30:08 -0700 (Mon, 27 Aug 2007) $ 2856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 2956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 3056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef _EAS_PCM_H 3256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define _EAS_PCM_H 3356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* default gain setting - roughly unity gain */ 3556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define PCM_DEFAULT_GAIN_SETTING 0x6000 3656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_pcm_state_tag *EAS_PCM_HANDLE; 3856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef void (*EAS_PCM_CALLBACK) (EAS_DATA_HANDLE pEASData, EAS_VOID_PTR cbInstData, EAS_PCM_HANDLE pcmHandle, EAS_STATE state); 3956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* parameters for EAS_PEOpenStream */ 4156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_pcm_open_params_tag 4256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 4356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_FILE_HANDLE fileHandle; 4456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I32 decoder; 4556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 sampleRate; 4656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I32 size; 4756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 loopStart; 4856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 loopSamples; 4956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I32 blockSize; 5056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 flags; 5156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 envData; 5256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I16 volume; 5356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_PCM_CALLBACK pCallbackFunc; 5456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_VOID_PTR cbInstData; 5556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } S_PCM_OPEN_PARAMS; 5656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 5756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 5856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEInit() 5956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 6056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 6156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Initializes the PCM engine 6256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 6356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 6456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 6556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 6656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 6756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 6856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 6956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 7056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 7156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 7256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 7356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEInit (EAS_DATA_HANDLE pEASData); 7456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 7556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 7656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEShutdown() 7756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 7856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 7956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Shuts down the PCM engine 8056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 8156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 8256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 8356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 8456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 8556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 8656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 8756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 8856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 8956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 9056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 9156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEShutdown (EAS_DATA_HANDLE pEASData); 9256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 9356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 9456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEOpenStream() 9556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 9656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 9756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Starts up a PCM playback 9856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 9956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 10056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 10156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 10256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 10356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 10456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 10556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 10656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 10756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 10856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 10956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEOpenStream (EAS_DATA_HANDLE pEASData, S_PCM_OPEN_PARAMS *pParams, EAS_PCM_HANDLE *pHandle); 11056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 11156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 11256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEContinueStream() 11356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 11456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 11556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Continues a PCM stream 11656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 11756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 11856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 11956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 12056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 12156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 12256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 12356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 12456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 12556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 12656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 12756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEContinueStream (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle, EAS_I32 size); 12856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 12956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 13056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEGetFileHandle() 13156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 13256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 13356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Returns the file handle of a stream 13456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 13556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 13656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 13756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 13856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 13956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 14056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 14156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 14256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 14356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 14456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 14556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEGetFileHandle (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle, EAS_FILE_HANDLE *pFileHandle); 14656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 14756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 14856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PERender() 14956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 15056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 15156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Render a buffer of PCM audio 15256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 15356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 15456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 15556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 15656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 15756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 15856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 15956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 16056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 16156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 16256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 16356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PERender (EAS_DATA_HANDLE pEASData, EAS_I32 numSamples); 16456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 16556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 16656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEUpdateParams() 16756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 16856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 16956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Update the pitch and volume parameters using MIDI controls 17056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 17156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 17256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 17356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 17456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 17556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 17656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 17756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 17856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 17956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 18056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 18156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEUpdateParams (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE pState, EAS_I16 pitch, EAS_I16 gainLeft, EAS_I16 gainRight); 18256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 18356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 18456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PELocate() 18556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 18656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 18756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function seeks to the requested place in the file. Accuracy 18856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * is dependent on the sample rate and block size. 18956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 19056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 19156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to overall EAS data structure 19256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pState - stream handle 19356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * time - media time in milliseconds 19456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 19556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 19656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PELocate (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE pState, EAS_I32 time); 19756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 19856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 19956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEUpdateVolume() 20056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 20156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 20256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Update the volume parameters for a PCM stream 20356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 20456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 20556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to EAS library instance data 20656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * handle - pointer to S_PCM_STATE for this stream 20756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * gainLeft - linear gain multipler in 1.15 fraction format 20856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * gainRight - linear gain multipler in 1.15 fraction format 20956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * initial - initial settings, set current gain 21056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 21156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 21256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 21356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 21456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 21556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 21656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Notes 21756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * In mono mode, leftGain controls the output gain and rightGain is ignored 21856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 21956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 22056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*lint -esym(715, pEASData) reserved for future use */ 22156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEUpdateVolume (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE pState, EAS_I16 volume); 22256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 22356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 22456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEUpdatePitch() 22556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 22656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 22756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Update the pitch parameter for a PCM stream 22856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 22956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 23056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to EAS library instance data 23156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pState - pointer to S_PCM_STATE for this stream 23256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pitch - new pitch value in pitch cents 23356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 23456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 23556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*lint -esym(715, pEASData) reserved for future use */ 23656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEUpdatePitch (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE pState, EAS_I16 pitch); 23756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 23856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 23956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEState() 24056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 24156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 24256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Returns the current state of the stream 24356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 24456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 24556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to overall EAS data structure 24656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * handle - pointer to file handle 24756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pState - pointer to variable to store state 24856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 24956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 25056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 25156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 25256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 25356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 25456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Notes: 25556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This interface is also exposed in the internal library for use by the other modules. 25656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 25756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 25856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEState (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle, EAS_STATE *pState); 25956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 26056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 26156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEClose() 26256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 26356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 26456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Close the file and clean up 26556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 26656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 26756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to overall EAS data structure 26856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * handle - pointer to file handle 26956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 27056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 27156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 27256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 27356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 27456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 27556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 27656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 27756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEClose (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle); 27856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 27956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 28056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEReset() 28156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 28256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 28356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Reset the sequencer. Used for locating backwards in the file. 28456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 28556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 28656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to overall EAS data structure 28756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * handle - pointer to file handle 28856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 28956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 29056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 29156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 29256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 29356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 29456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 29556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 29656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEReset (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle); 29756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 29856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 29956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEPause() 30056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 30156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 30256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Mute and pause rendering a PCM stream. Sets the gain target to zero and stops the playback 30356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * at the end of the next audio frame. 30456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 30556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 30656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to EAS library instance data 30756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * handle - pointer to S_PCM_STATE for this stream 30856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 30956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 31056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 31156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 31256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 31356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 31456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 31556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 31656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEPause (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle); 31756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 31856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 31956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PEResume() 32056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 32156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 32256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Resume rendering a PCM stream. Sets the gain target back to its 32356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * previous setting and restarts playback at the end of the next audio 32456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * frame. 32556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 32656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 32756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to EAS library instance data 32856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * handle - pointer to S_PCM_STATE for this stream 32956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 33056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 33156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 33256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 33356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 33456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 33556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 33656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 33756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PEResume (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle); 33856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 33956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 34056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_PERelease() 34156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 34256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose: 34356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Put the PCM stream envelope into release. 34456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 34556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs: 34656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * pEASData - pointer to EAS library instance data 34756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * handle - pointer to S_PCM_STATE for this stream 34856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 34956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs: 35056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 35156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 35256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Side Effects: 35356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 35456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 35556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 35656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_RESULT EAS_PERelease (EAS_DATA_HANDLE pEASData, EAS_PCM_HANDLE handle); 35756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 35856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif /* end _EAS_PCM_H */ 35956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 360