From 4348b63eeec5662fedfc39be6fc78b62e2e26467 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Thu, 21 Mar 2013 16:57:30 +0800 Subject: write phrases methods --- src/libpinyin.ver | 2 ++ src/pinyin.cpp | 21 +++++++++++++++++++++ src/pinyin.h | 5 +++++ 3 files changed, 28 insertions(+) (limited to 'src') diff --git a/src/libpinyin.ver b/src/libpinyin.ver index 59d16bc..ce53cff 100644 --- a/src/libpinyin.ver +++ b/src/libpinyin.ver @@ -50,6 +50,8 @@ LIBPINYIN { pinyin_get_key_rest_positions; pinyin_get_key_rest_length; pinyin_get_raw_full_pinyin; + pinyin_get_n_phrase; + pinyin_get_phrase_token; local: *; diff --git a/src/pinyin.cpp b/src/pinyin.cpp index c857ae5..6a463e0 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -2009,6 +2009,27 @@ bool pinyin_get_raw_full_pinyin(pinyin_instance_t * instance, return true; } +bool pinyin_get_n_phrase(pinyin_instance_t * instance, + guint * num) { + *num = instance->m_match_results->len; + return true; +} + +bool pinyin_get_phrase_token(pinyin_instance_t * instance, + guint index, + phrase_token_t * token){ + MatchResults & match_results = instance->m_match_results; + + *token = null_token; + + if (index >= match_results->len) + return false; + + *token = g_array_index(match_results, phrase_token_t, index); + + return true; +} + /** * Note: prefix is the text before the pre-edit string. diff --git a/src/pinyin.h b/src/pinyin.h index d8863ac..3a9a16e 100644 --- a/src/pinyin.h +++ b/src/pinyin.h @@ -600,7 +600,12 @@ bool pinyin_get_key_rest_length(pinyin_instance_t * instance, bool pinyin_get_raw_full_pinyin(pinyin_instance_t * instance, const gchar ** utf8_str); +bool pinyin_get_n_phrase(pinyin_instance_t * instance, + guint * num); +bool pinyin_get_phrase_token(pinyin_instance_t * instance, + guint index, + phrase_token_t * token); /* hack here. */ typedef ChewingKey PinyinKey; -- cgit