summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2013-03-21 16:57:30 +0800
committerPeng Wu <alexepico@gmail.com>2013-03-21 16:58:16 +0800
commit4348b63eeec5662fedfc39be6fc78b62e2e26467 (patch)
treef4e5e8f2f46b6df8659908d655b398d99363485f /src
parent9c35f8e85d93356abfa91c08543fff97658ff463 (diff)
downloadlibpinyin-4348b63eeec5662fedfc39be6fc78b62e2e26467.tar.gz
libpinyin-4348b63eeec5662fedfc39be6fc78b62e2e26467.tar.xz
libpinyin-4348b63eeec5662fedfc39be6fc78b62e2e26467.zip
write phrases methods
Diffstat (limited to 'src')
-rw-r--r--src/libpinyin.ver2
-rw-r--r--src/pinyin.cpp21
-rw-r--r--src/pinyin.h5
3 files changed, 28 insertions, 0 deletions
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;