From 96a7737277ae60adf8e724e482199d2f4f3cba84 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 16 Aug 2011 15:11:08 +0800 Subject: write pinyin apis in progress --- src/pinyin.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src/pinyin.cpp') diff --git a/src/pinyin.cpp b/src/pinyin.cpp index 2d77a95..9ed172b 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -19,7 +19,7 @@ struct _pinyin_context_t{ PinyinLookup * m_pinyin_lookup; PhraseLookup * m_phrase_lookup; - PinyinKeyVector m_pinyins; + PinyinKeyVector m_pinyin_keys; MatchResults m_match_results; CandidateConstraints m_constraints; @@ -61,12 +61,28 @@ bool pinyin_get_candidates(pinyin_context_t * context, size_t offset, TokenVector tokens); bool pinyin_choose_candidate(pinyin_context_t * context, size_t offset, phrase_token_t token); +bool pinyin_clear_constraints(pinyin_context_t * context); /* the returned word should be freed by g_free. */ bool pinyin_translate_token(pinyin_context_t * context, - phrase_token_t token, char ** word); + phrase_token_t token, char ** word){ + PhraseItem item; + utf16_t buffer[MAX_PHRASE_LENGTH]; + + bool retval = context->m_phrase_index->get_phrase_item(token, item); + m_cache_phrase_item.get_phrase_string(buffer); + guint8 length = m_cache_phrase_item.get_phrase_length(); + *word = g_utf16_to_utf8(buffer, length, NULL, NULL, NULL); + return retval; +} + +bool pinyin_train(pinyin_context_t * context){ + bool retval = context->m_pinyin_lookup->train_result + (context->m_piinyin_keys, context->m_constraints, + context->m_match_results); + return retval; +} -bool pinyin_train(pinyin_context_t * context); bool pinyin_save(pinyin_context_t * context); bool pinyin_reset(pinyin_context_t * context); -- cgit