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