diff options
author | 2012-08-06 16:04:07 +0900 | |
---|---|---|
committer | 2012-08-06 16:04:07 +0900 | |
commit | 44456dcbf23c29b54e9372d932b79805957724cb (patch) | |
tree | a8167c70e9d7017f212066cf2364d1ad5b09fdca /native/jni/src/dictionary.cpp | |
parent | 07e4f9eb530a795efd97986e28546c8c5e895c72 (diff) | |
parent | d299bde24b4afd3955fa65c7ab372807a336c6df (diff) | |
download | latinime-44456dcbf23c29b54e9372d932b79805957724cb.tar.gz latinime-44456dcbf23c29b54e9372d932b79805957724cb.tar.xz latinime-44456dcbf23c29b54e9372d932b79805957724cb.zip |
Merge remote-tracking branch 'goog/master' into mergescriptpackage
Conflicts:
java/res/values-af/strings.xml
java/res/values-cs/strings.xml
java/res/values-et/strings.xml
java/res/values-fi/strings.xml
java/res/values-hi/strings.xml
java/res/values-hr/strings.xml
java/res/values-hu/strings.xml
java/res/values-in/strings.xml
java/res/values-ja/strings.xml
java/res/values-ko/strings.xml
java/res/values-lt/strings.xml
java/res/values-lv/strings.xml
java/res/values-ms/strings.xml
java/res/values-pt/strings.xml
java/res/values-ro/strings.xml
java/res/values-ru/strings.xml
java/res/values-sk/strings.xml
java/res/values-sl/strings.xml
java/res/values-sr/strings.xml
java/res/values-sw/strings.xml
java/res/values-tr/strings.xml
java/res/values-vi/strings.xml
java/res/values-zh-rCN/strings.xml
java/res/values-zh-rTW/strings.xml
Change-Id: Ib4141aca0b35148d62d22d4f32309f890c84303a
Diffstat (limited to 'native/jni/src/dictionary.cpp')
-rw-r--r-- | native/jni/src/dictionary.cpp | 70 |
1 files changed, 52 insertions, 18 deletions
diff --git a/native/jni/src/dictionary.cpp b/native/jni/src/dictionary.cpp index f3166e75a..ee55cfa60 100644 --- a/native/jni/src/dictionary.cpp +++ b/native/jni/src/dictionary.cpp @@ -1,28 +1,29 @@ /* -** -** Copyright 2009, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - -#include <stdio.h> + * Copyright (C) 2009, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #define LOG_TAG "LatinIME: dictionary.cpp" +#include <stdint.h> + +#include "bigram_dictionary.h" #include "binary_format.h" #include "defines.h" #include "dictionary.h" #include "gesture_decoder_wrapper.h" +#include "unigram_dictionary.h" namespace latinime { @@ -55,6 +56,40 @@ Dictionary::~Dictionary() { delete mGestureDecoder; } +int Dictionary::getSuggestions(ProximityInfo *proximityInfo, int *xcoordinates, int *ycoordinates, + int *times, int *pointerIds, int *codes, int codesSize, int *prevWordChars, + int prevWordLength, int commitPoint, bool isGesture, + bool useFullEditDistance, unsigned short *outWords, + int *frequencies, int *spaceIndices, int *outputTypes) { + int result = 0; + if (isGesture) { + mGestureDecoder->setPrevWord(prevWordChars, prevWordLength); + result = mGestureDecoder->getSuggestions(proximityInfo, xcoordinates, ycoordinates, + times, pointerIds, codes, codesSize, commitPoint, + outWords, frequencies, spaceIndices, outputTypes); + if (DEBUG_DICT) { + DUMP_RESULT(outWords, frequencies, 18 /* MAX_WORDS */, MAX_WORD_LENGTH_INTERNAL); + } + return result; + } else { + std::map<int, int> bigramMap; + uint8_t bigramFilter[BIGRAM_FILTER_BYTE_SIZE]; + mBigramDictionary->fillBigramAddressToFrequencyMapAndFilter(prevWordChars, + prevWordLength, &bigramMap, bigramFilter); + result = mUnigramDictionary->getSuggestions(proximityInfo, xcoordinates, + ycoordinates, codes, codesSize, &bigramMap, bigramFilter, + useFullEditDistance, outWords, frequencies, outputTypes); + return result; + } +} + +int Dictionary::getBigrams(const int32_t *word, int length, int *codes, int codesSize, + unsigned short *outWords, int *frequencies, int *outputTypes) const { + if (length <= 0) return 0; + return mBigramDictionary->getBigrams(word, length, codes, codesSize, outWords, frequencies, + outputTypes); +} + int Dictionary::getFrequency(const int32_t *word, int length) const { return mUnigramDictionary->getFrequency(word, length); } @@ -63,5 +98,4 @@ bool Dictionary::isValidBigram(const int32_t *word1, int length1, const int32_t int length2) const { return mBigramDictionary->isValidBigram(word1, length1, word2, length2); } - } // namespace latinime |