Home | History | Annotate | Download | only in include
      1 /*---------------------------------------------------------------------------*
      2  *  SR_VocabularyImpl.h  *
      3  *                                                                           *
      4  *  Copyright 2007, 2008 Nuance Communciations, Inc.                               *
      5  *                                                                           *
      6  *  Licensed under the Apache License, Version 2.0 (the 'License');          *
      7  *  you may not use this file except in compliance with the License.         *
      8  *                                                                           *
      9  *  You may obtain a copy of the License at                                  *
     10  *      http://www.apache.org/licenses/LICENSE-2.0                           *
     11  *                                                                           *
     12  *  Unless required by applicable law or agreed to in writing, software      *
     13  *  distributed under the License is distributed on an 'AS IS' BASIS,        *
     14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
     15  *  See the License for the specific language governing permissions and      *
     16  *  limitations under the License.                                           *
     17  *                                                                           *
     18  *---------------------------------------------------------------------------*/
     19 
     20 #ifndef __SR_VOCABULARYIMPL_H
     21 #define __SR_VOCABULARYIMPL_H
     22 
     23 
     24 
     25 #include <stdlib.h>
     26 #include "ESR_ReturnCode.h"
     27 #include "HashMap.h"
     28 #ifdef USE_TTP
     29 #include "SWIslts.h"
     30 #endif /* USE_TTP */
     31 
     32 
     33 #include "simapi.h"
     34 
     35 /**
     36  * Vocabulary implementation.
     37  */
     38 typedef struct SR_VocabularyImpl_t
     39 {
     40   /**
     41    * Interface functions that must be implemented.
     42    */
     43   SR_Vocabulary Interface;
     44   /**
     45    * Legacy CREC vocabulary.
     46    */
     47   LCHAR* filename;
     48   CA_Vocab* vocabulary;
     49   /**
     50    * Vocabulary locale.
     51    */
     52   ESR_Locale locale;
     53   /**
     54    * String to identify TTP language associated with locale.
     55    */
     56   LCHAR *ttp_lang;
     57 
     58 #ifdef USE_TTP
     59   /**
     60    * Handle to a TTP engine.
     61    */
     62   SWIsltsHand hSlts;
     63 #endif /* USE_TTP */
     64 }
     65 SR_VocabularyImpl;
     66 
     67 
     68 /**
     69  * Default implementation.
     70  */
     71 ESR_ReturnCode SR_VocabularyCreateImpl(SR_Vocabulary** self);
     72 /**
     73  * Default implementation.
     74  */
     75 ESR_ReturnCode SR_VocabularyLoadImpl(const LCHAR* filename, SR_Vocabulary** self);
     76 /**
     77  * Default implementation.
     78  */
     79 ESR_ReturnCode SR_VocabularySaveImpl(SR_Vocabulary* self, const LCHAR* filename);
     80 /**
     81  * Default implementation.
     82  */
     83 ESR_ReturnCode SR_VocabularyAddWordImpl(SR_Vocabulary* self, const LCHAR* word);
     84 /**
     85  * Default implementation.
     86  */
     87 ESR_ReturnCode SR_VocabularyDeleteWordImpl(SR_Vocabulary* self, const LCHAR* word);
     88 /**
     89  * Default implementation.
     90  */
     91 ESR_ReturnCode SR_VocabularyContainsWordImpl(SR_Vocabulary* self, const LCHAR* word, ESR_BOOL* result);
     92 /**
     93  * Default implementation.
     94  */
     95 ESR_ReturnCode SR_VocabularyGetPronunciationImpl(SR_Vocabulary* self, const LCHAR* word, LCHAR* phoneme, size_t* len);
     96 /**
     97  * Default implementation.
     98  */
     99 ESR_ReturnCode SR_VocabularyGetLanguageImpl(SR_Vocabulary* self, ESR_Locale* locale);
    100 /**
    101  * Default implementation.
    102  */
    103 ESR_ReturnCode SR_VocabularyDestroyImpl(SR_Vocabulary* self);
    104 /**
    105  * Default implementation.
    106  */
    107 ESR_ReturnCode SR_CreateG2P(SR_Vocabulary* self);
    108 /**
    109  * Default implementation.
    110  */
    111 ESR_ReturnCode SR_DestroyG2P(SR_Vocabulary* self);
    112 
    113 /* TODO change this later if we get other languages to support*/
    114 #define TTP_LANG(locale) locale == ESR_LOCALE_EN_US ? L("enu") : \
    115                          locale == ESR_LOCALE_FR_FR ? L("fra") : \
    116                          locale == ESR_LOCALE_DE_DE ? L("deu") : \
    117                          locale == ESR_LOCALE_EN_GB ? L("eng") : \
    118                          locale == ESR_LOCALE_JA_JP ? L("jpn") : \
    119                          locale == ESR_LOCALE_NL_NL ? L("nln") : \
    120                          locale == ESR_LOCALE_IT_IT ? L("ita") : \
    121                          locale == ESR_LOCALE_ES_ES ? L("esp") : \
    122                          locale == ESR_LOCALE_PT_PT ? L("ptp") : \
    123                          L("enu")  /* en-us is default */
    124 
    125 #endif /* __SR_VOCABULARYIMPL_H */
    126