14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * audioin.h * 34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Copyright 2007, 2008 Nuance Communciations, Inc. * 54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the 'License'); * 74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * you may not use this file except in compliance with the License. * 84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * You may obtain a copy of the License at * 104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 * 114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Unless required by applicable law or agreed to in writing, software * 134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * distributed under the License is distributed on an 'AS IS' BASIS, * 144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * See the License for the specific language governing permissions and * 164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * limitations under the License. * 174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *---------------------------------------------------------------------------*/ 194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef __AUDIOIN_H__ 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __AUDIOIN_H__ 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* -------------------------------------------------------------------------+ 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | ScanSoft Inc. | 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project + -------------------------------------------------------------------------*/ 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* -------------------------------------------------------------------------+ 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | Project : ScanSoft AudioIn component 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | Module : AUDIOIN 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | File name : audioin.h 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | Description : Interface definition for AUDIOIN 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | Reference(s) : wavein, audioin.chm, audioin.doc, audioin.hlp 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | SltGl00001_audioin_gl1.doc 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | Status : Version 1.2 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project + -------------------------------------------------------------------------*/ 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* Oct/8/2002: Fixes for Windows 2000, and memory leaks. Version 1.1 */ 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* PVP Jan/8/2004: Default audio format changed to 16kHz. Version 2.0 */ 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*--------------------------------------------------------------------------*/ 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* @doc AUDIOININTERFACE */ 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "audioinerr.h" 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined( __cplusplus ) 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectextern "C" 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* -------------------------------------------------------------------------+ 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | MACROS | 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project + -------------------------------------------------------------------------*/ 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* none */ 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* -------------------------------------------------------------------------+ 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | TYPE DEFINITIONS | 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project + -------------------------------------------------------------------------*/ 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef short audioinSample; 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* Type Definitions for SCANSOFT-TYPES (re-definition)*/ 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* @type AUDIOIN_H | Handle to an audio-in component. 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @comm Type is declared as a void *. The actual implementation is 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * done by the implementation engineer. */ 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef void * AUDIOIN_H; 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define WAVE_MAPPER 0 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* @enum AUDIOIN_STATUSINFO | Enumerator for the Status Information of the AudioIn component. 724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @comm The information contained in this definition concerns not only to the status of 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * the FIFO but also the general status of the audio component. 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @xref <f lh_audioinGetSamples>(), AudioIn Diagram State */ 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef enum _AUDIOIN_STATUSINFO { 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_NORMAL, /* @emem Normal state of the audio buffer. No problems detected while retrieving 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project samples.*/ 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_TIMEOUT, /* @emem The audio-in component timed out after no audio was received from the 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project audio device. The MMSystem is not providing any more samples, or the 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project lh_audioinGetSamples function may be called much faster than the actual 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project thread filling the buffer (Probable issue with the audio device). This could 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project be fixed by decreasing the number of samples that you want to retrieve or by 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project waiting till samples are available. A time out period is set internally on 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project the audioin implementation. Default of: 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project <nlpar>const DWORD GETSAMPLESTIMEOUT_PERIOD = 10000; (time in milliseconds)*/ 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_HIGHWATERMARK,/* @emem The buffer has been filled out with 75% or more. A high watermark on 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project the audio buffer has been detected and the buffer could be close to an OVERRUN 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project state.*/ 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_FIFOOVERRUN, /* @emem The buffer has been overfilled with audio samples. You can still retrieve 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project samples from the FIFO with the lhs_audioinGetSamples function, but the audio-in 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project component will not buffer any new audio into the FIFO. AudioinStop must be 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project called to reset the audio-in component.*/ 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_FLUSHED, /* @emem The buffer has been overfilled with audio samples. You can no longer retrieve 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project samples from the FIFO, since you already emptied it with lhs_audioinGetSamples. 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project The audio-in component will not buffer any new audio into the FIFO. 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project lhs_audioinStop must be called in the audio-in component since 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project lhs_audioinGetSamples will not longer work.*/ 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_HWOVERRUN, /* @emem The buffer has been overfilled with audio samples inside the device component 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project (audio device). lhs_audioinStop should be called to reset the contents of the 1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project FIFO and the codec. This state is caused by an error in the MMSystem. It is 1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project recommended to initialize the audio-in component before retrieving samples 1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project again.*/ 1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} AUDIOIN_STATUSINFO; 1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* @struct AUDIOIN_INFO | Structure for the AudioIn Information 1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @comm The AUDIOIN_INFO contains information about several parts of the audio-in component. 1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * It gives information about the FIFO buffering audio and at the same time about the audio 1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * component. 1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @xref <f lh_audioinGetSamples>(), AudioIn Diagram State */ 1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct _AUDIOIN_INFO{ 1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_STATUSINFO eStatusInfo; /* @field The state in which the audio Buffer of the audio-in component 1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project is. This is detailed in AUDIOIN_STATUSINFO. */ 1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32SamplesAvailable; /* @field The number of Samples still available in the audio Buffer after 1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project lhs_audioinGetSamples is called. This value can help you to 1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project detect over-runs in the audio buffer.*/ 1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} AUDIOIN_INFO; 1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef AUDIOIN_SUPPORT_CALLBACK 1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef enum _AUDIOIN_MSG { 1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_MSG_OPEN, // audio device was opened 1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_MSG_START, // start audio acquisition 1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_MSG_DATA, // audio samples are available 1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_MSG_STOP, // stop audio acquisition 1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_MSG_CLOSE, // audio device was closed 1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_MSG_INVALID, // bogus 1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} AUDIOIN_MSG; 1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* callback function for "samples ready" notification */ 1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef void (*pCallbackFunc)(AUDIOIN_H hAudioIn, AUDIOIN_MSG uMsg, void* dwInstance, void* dwParam1, void* dwParam2); 1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* data structure passed to callback function; loosely based on Windows' WAVEHDR */ 1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct { 1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void *pData; 1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long nBufferLength; 1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long nBytesRecorded; 1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_STATUSINFO status; 1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} AUDIOIN_WAVEHDR; 1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* -------------------------------------------------------------------------+ 1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project| EXTERNAL DATA (+ meaning) | 1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project+ -------------------------------------------------------------------------*/ 1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* none */ 1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* -------------------------------------------------------------------------+ 1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project| GLOBAL FUNCTION PROTOTYPES | 1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project+ -------------------------------------------------------------------------*/ 1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if 0 1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LHS_AUDIOIN_ERROR lhs_audioinOpenEx ( 1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32AudioInID, /*@parm [in] Audio-in device ID (ranges from 0 to a number of available 1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project devices on the system). You can also use the following flag 1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project instead of a device identifier. 1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project <nl><nl><bold WAVE_MAPPER> = The function selects a 1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project waveform-audio input device capable of recording in the 1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project specified format. <bold Header:> Declared in Mmsystem.h from 1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project the Windows Multimedia: Platform SDK.*/ 1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32Frequency, /*@parm [in] Frequency of the recognition engine in Hz. */ 1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32NbrOfFrames, /*@parm [in] (not used) Number of frames buffered internally */ 1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32SamplesPerFrame, /*@parm [in] Size, in samples, of each individual frame. */ 1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H * phAudioIn /*@parm [out] Handle to the audio-in device */ 1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ); 1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinOpen( 1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32AudioInID, /* [in] audio-in device ID (ranges from 0 to a number of available devices on the 1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project system). You can also use the following flag instead of a device identifier. 1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project <nl><nl><bold WAVE_MAPPER> = The function selects a waveform-audio input 1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project device capable of recording in the specified format. <bold Header:> 1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project Declared in Mmsystem.h from the Windows Multimedia: Platform SDK.*/ 1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32Frequency, /* [in] Frequency of the recognition engine in Hz. */ 1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H * phAudioIn /* [out] Handle to the audio-in device */ 1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef AUDIOIN_SUPPORT_CALLBACK 1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinOpenCallback( 1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32AudioInID, /* [in] audio-in device ID (ranges from 0 to a number of available devices on the 1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project system). You can also use the following flag instead of a device identifier. 1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project <nl><nl><bold WAVE_MAPPER> = The function selects a waveform-audio input 1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project device capable of recording in the specified format. <bold Header:> 1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project Declared in Mmsystem.h from the Windows Multimedia: Platform SDK.*/ 1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32Frequency, /* [in] Frequency of the recognition engine in Hz. */ 1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32NbrOfSamples, /*[in] <nl><bold Input:> Number of samples requested per callback */ 1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project pCallbackFunc pCallback, /* [in] callback function */ 1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void *pCallbackInstance, /* [in] callback instance */ 1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H * phAudioIn /* [out] Handle to the audio-in device */ 1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinClose( 1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H * phAudioIn /*[in] Pointer to the handle of the audio-in device to be closed.*/ 1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinStart( 1994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H hAudioIn /*[in] Handle of the audio-in device */ 2004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 2014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinStop( 2034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H hAudioIn /*[in] Handle of the audio-in device*/ 2044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 2054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinGetSamples ( 2074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H hAudioIn, /*[in] Handle of the audio-in device */ 2084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long * u32NbrOfSamples, /*[in/out] <nl><bold Input:> The requested number of samples to be filled in 2094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project the pAudioBuffer. Note that the memory used for pBuffer should be large enough 2104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project to contain the requested number of samples, also note how the u32NbrOfSamples 2114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project is different than the Buffer size, since each frame has an specific size depending 2124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project on the audio format. 2134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project <nl><bold Output:> The actual number of recorded audio samples written in pBuffer. 2144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project If you pass 0 to this parameter then you may still retrieve the AUDIOIN_STATUSINFO 2154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project on the audio component. */ 2164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void * pAudioBuffer, /*[out] Buffer that contains the recorded samples. The memory used for this 2174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project buffer is allocated by the client. So, it is the responsibility of the client to 2184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project make sure that this memory can contain the requested number of samples. The memory 2194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for this buffer needs also to be freed by the client. */ 2204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_INFO * pAudioInInfo /*[out] Information about the audio internal buffer described in 2214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_INFO.*/ 2224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 2234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinGetVersion( 2264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long * pu32Version /*[out] The version number of the API implementation. */ 2274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 2284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinGetVolume( 2314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H hAudioIn, /*[in] Handle of the audio-in device.*/ 2324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long * pu32Volume /*[out] Pointer to a variable that will be filled with the current volume 2334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project (normally range of 0 - 65535). Depending on the platform the volume 2344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project value may be set to in sizes of 16, 32 or other size, the range also 2354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project depends on the platform (Implementations of this interface may 2364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project change because of the compatibility of the internal function).*/ 2374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 2384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLHS_AUDIOIN_ERROR lhs_audioinSetVolume( 2404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AUDIOIN_H hAudioIn, /*[in] Handle of the audio-in device.*/ 2414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned long u32Volume /*[in] The volume to be set (normal range 0-65535). Depending on the 2424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project platform the volume value may be set to in sizes of 16, 32 or other size, 2434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project the range also depends on the platform. (Implementations of this interface 2444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project may change because of the compatibility of the internal function)*/ 2454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 2464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectconst TCHAR * lhs_audioinErrorGetString( 2494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const LHS_AUDIOIN_ERROR Error /*[in] The Error code.*/ 2504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project); 2514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* -------------------------------------------------------------------------+ 2544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project | END | 2554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project + -------------------------------------------------------------------------*/ 2564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if defined( __cplusplus ) 2584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 2594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 2604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* #ifndef __AUDIOIN_H__ */ 263