/*******************************************************************************
;*******************************************************************************
;**                                                                           **
;**                  COPYRIGHT 2001-2012 NUANCE COMMUNICATIONS                **
;**                                                                           **
;**               NUANCE COMMUNICATIONS PROPRIETARY INFORMATION               **
;**                                                                           **
;**     This software is supplied under the terms of a license agreement      **
;**     or non-disclosure agreement with Nuance Communications and may not    **
;**     be copied or disclosed except in accordance with the terms of that    **
;**     agreement.                                                            **
;**                                                                           **
;*******************************************************************************
;**                                                                           **
;**     FileName: et9adb.h                                                    **
;**                                                                           **
;**  Description: Alphabetic supplemental database routines     .             **
;**                                                                           **
;*******************************************************************************
;******************************************************************************/

#ifndef ET9ADB_H
#define ET9ADB_H    1

#include "et9api.h"
#ifdef ET9_ALPHABETIC_MODULE
#include "et9arudb.h"

/* don't mangle the function name if compile under C++ */
#if defined(__cplusplus)
extern "C" {
#endif


#define ET9SUPPDB_ALL_SOURCES       0xFF
#define ET9SUPPDB_AS_SOURCES        0x01
#define ET9SUPPDB_NONAS_SOURCES     0x02
#define ET9SUPPDB_GDB_SOURCES       0x04

typedef enum _ET9_Processing_e
{
    _ET9_Processing_use     = 1,
    _ET9_Processing_space,
    _ET9_Processing_both

} _ET9_Processing;


ET9PRIVATE ET9STATUS ET9FARCALL _ET9AWSuppDBSelListBuild(ET9AWLingInfo           * const pLingInfo,
                                                         const ET9U16                    wIndex,
                                                         const ET9U16                    wLength,
                                                         ET9U8                   * const pbSuppEntries,
                                                         const ET9_FREQ_DESIGNATION      bFreqIndicator,
                                                         const ET9U8                     bSourceTypes,
                                                         const ET9U8                     bSpcMode);

ET9PRIVATE ET9STATUS ET9FARCALL _ET9AWSuppDBAddSelection(ET9AWLingInfo          * const pLingInfo,
                                                         ET9SYMB * const                pText,
                                                         const ET9U16                   wSize,
                                                         const ET9U8                    bWordSrc,
                                                         const ET9U8                    bLangIndex,
                                                         const _ET9_Processing          eProcessType,
                                                         const ET9BOOL                  bInhibitNewWord);

/* TUDB */

ET9PRIVATE ET9STATUS ET9FARCALL _ET9TUdbReadData(ET9U8 ET9FARDATA  *pbTo,
                                                 ET9U16             wSize,
                                                 ET9U8 ET9FARDATA  *pTUdb,
                                                 ET9U32             dwOffset,
                                                 ET9ReadTUDB_f      ET9ReadTUDB);

ET9PRIVATE ET9STATUS ET9FARCALL _ET9TUdbReadWord(ET9U16            *pwWord,
                                                 ET9U8 ET9FARDATA  *pTUdb,
                                                 ET9U32             dwTUdbOffset,
                                                 ET9ReadTUDB_f      ET9ReadTUDB);

ET9PRIVATE ET9STATUS ET9FARCALL _ET9TUdbWriteData(ET9U8 ET9FARDATA  *pbFrom,
                                                  ET9U16             wSize,
                                                  ET9U8 ET9FARDATA  *pTUdb,
                                                  ET9U32             dwOffset,
                                                  ET9WriteTUDB_f     ET9WriteTUDB);

ET9PRIVATE ET9STATUS ET9FARCALL _ET9TUdbWriteWord(ET9U16             wWord,
                                                  ET9U8 ET9FARDATA  *pTUdb,
                                                  ET9U32             dwTUdbOffset,
                                                  ET9WriteTUDB_f     ET9WriteTUDB);


/* End don't mangle the function name if compile under C++ */
#if defined (__cplusplus)
    }
#endif

#endif /* ET9_ALPHABETIC_MODULE */
#endif /* !ET9ADB_H */
/* ----------------------------------< eof >--------------------------------- */
