summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2011-08-16 15:11:08 +0800
committerPeng Wu <alexepico@gmail.com>2011-08-16 15:11:08 +0800
commit96a7737277ae60adf8e724e482199d2f4f3cba84 (patch)
tree9fc2fe9a496186e7a477541b1ed49bfa4e6ee4d9
parent90c1b73881e53373052889364b1c9cdb512f2bfd (diff)
downloadlibpinyin-96a7737277ae60adf8e724e482199d2f4f3cba84.tar.gz
libpinyin-96a7737277ae60adf8e724e482199d2f4f3cba84.tar.xz
libpinyin-96a7737277ae60adf8e724e482199d2f4f3cba84.zip
write pinyin apis in progress
-rw-r--r--src/pinyin.cpp22
1 files changed, 19 insertions, 3 deletions
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);