/*---------------------------------------------------------------------------*
* SWIslts.h *
* *
* Copyright 2007, 2008 Nuance Communciations, Inc. *
* *
* Licensed under the Apache License, Version 2.0 (the 'License'); *
* you may not use this file except in compliance with the License. *
* *
* You may obtain a copy of the License at *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an 'AS IS' BASIS, *
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
* See the License for the specific language governing permissions and *
* limitations under the License. *
* *
*---------------------------------------------------------------------------*/
#ifndef _SWI_SLTS_H__
#define _SWI_SLTS_H__
#ifdef SWISLTS_USE_STATIC_API
#define SWISLTS_FNDECLARE
#else
#ifdef WIN32
#ifdef _IN_SWI_SLTS__
#define SWISLTS_FNDECLARE __declspec(dllexport)
#else
#define SWISLTS_FNDECLARE __declspec(dllimport)
#endif
#else
#define SWISLTS_FNDECLARE
#endif
#endif
typedef void * SWIsltsHand;
typedef enum {
SWIsltsSuccess = 1,
SWIsltsErrAllocResource = 2,
SWIsltsInvalidParam = 3,
SWIsltsMaxInputExceeded = 4,
SWIsltsEmptyPhoneString = 5,
SWIsltsInternalErr = 6,
SSWIsltsUnknownInputChar = 7,
SWIsltsFileOpenErr = 8,
SWIsltsFileReadErr = 9,
SWIsltsFileWriteErr = 10
}SWIsltsResult;
typedef struct SWIsltsTranscription {
void * pBuffer;
size_t nSizeOfBuffer;
} SWIsltsTranscription;
typedef struct SWIsltsWrapper {
SWIsltsResult (*init) (void);
SWIsltsResult (*term) (void);
SWIsltsResult (*open) (SWIsltsHand *phLts,
const char *data_filename);
SWIsltsResult (*close) (SWIsltsHand hLts);
SWIsltsResult (*textToPhone) (SWIsltsHand hLts,
const char *text,
char **output_phone_string,
int *output_phone_len,
int max_phone_len);
} SWIsltsWrapper;
typedef SWIsltsWrapper * SWIsltsWrapperHand;
SWISLTS_FNDECLARE SWIsltsResult SWIsltsGetWrapper(SWIsltsWrapperHand *phLtsWrap);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsReleaseWrapper(SWIsltsWrapperHand hLtsWrap);
typedef SWIsltsResult (*pSWIsltsReleaseWrapper)(SWIsltsWrapperHand);
typedef SWIsltsResult (*pSWIsltsGetWrapper)(SWIsltsWrapperHand *);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsInit(void);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsTerm(void);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsOpen(SWIsltsHand *phLts,
const char *data_filename);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsClose(SWIsltsHand hLts);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsTextToPhone(SWIsltsHand hLts,
const char *text,
char **output_phone_string,
int *output_phone_len,
int max_phone_len);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsG2PGetWordTranscriptions(SWIsltsHand hLts,
const char *text,
SWIsltsTranscription **ppTranscriptions,
int *pnNbrOfTranscriptions);
SWISLTS_FNDECLARE SWIsltsResult SWIsltsG2PFreeWordTranscriptions(SWIsltsHand hLts,
SWIsltsTranscription *pTranscriptions);
#endif /* _SWI_SLTS_H__ */