aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/src')
-rw-r--r--native/jni/src/dictionary.cpp8
-rw-r--r--native/jni/src/dictionary.h4
-rw-r--r--native/jni/src/geometry_utils.h11
-rw-r--r--native/jni/src/gesture/gesture_decoder_wrapper.h66
-rw-r--r--native/jni/src/gesture/incremental_decoder_wrapper.h67
-rw-r--r--native/jni/src/suggest/gesture_suggest.cpp (renamed from native/jni/src/gesture/gesture_decoder_wrapper.cpp)9
-rw-r--r--native/jni/src/suggest/gesture_suggest.h63
-rw-r--r--native/jni/src/suggest/suggest_interface.h (renamed from native/jni/src/gesture/incremental_decoder_interface.h)16
-rw-r--r--native/jni/src/suggest/typing_suggest.cpp (renamed from native/jni/src/gesture/incremental_decoder_wrapper.cpp)9
-rw-r--r--native/jni/src/suggest/typing_suggest.h63
10 files changed, 153 insertions, 163 deletions
diff --git a/native/jni/src/dictionary.cpp b/native/jni/src/dictionary.cpp
index 8210aa0ff..167b36f11 100644
--- a/native/jni/src/dictionary.cpp
+++ b/native/jni/src/dictionary.cpp
@@ -23,7 +23,7 @@
#include "defines.h"
#include "dictionary.h"
#include "dic_traverse_wrapper.h"
-#include "gesture_decoder_wrapper.h"
+#include "gesture_suggest.h"
#include "unigram_dictionary.h"
namespace latinime {
@@ -36,7 +36,7 @@ Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust,
mUnigramDictionary(new UnigramDictionary(mOffsetDict, maxWordLength, maxWords,
BinaryFormat::getFlags(mDict))),
mBigramDictionary(new BigramDictionary(mOffsetDict, maxWordLength, maxPredictions)),
- mGestureDecoder(new GestureDecoderWrapper(maxWordLength, maxWords)) {
+ mGestureSuggest(new GestureSuggest(maxWordLength, maxWords)) {
if (DEBUG_DICT) {
if (MAX_WORD_LENGTH_INTERNAL < maxWordLength) {
AKLOGI("Max word length (%d) is greater than %d",
@@ -49,7 +49,7 @@ Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust,
Dictionary::~Dictionary() {
delete mUnigramDictionary;
delete mBigramDictionary;
- delete mGestureDecoder;
+ delete mGestureSuggest;
}
int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSession,
@@ -61,7 +61,7 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi
if (isGesture) {
DicTraverseWrapper::initDicTraverseSession(
traverseSession, this, prevWordChars, prevWordLength);
- result = mGestureDecoder->getSuggestions(proximityInfo, traverseSession,
+ result = mGestureSuggest->getSuggestions(proximityInfo, traverseSession,
xcoordinates, ycoordinates, times, pointerIds, codes, codesSize, commitPoint,
outWords, frequencies, spaceIndices, outputTypes);
if (DEBUG_DICT) {
diff --git a/native/jni/src/dictionary.h b/native/jni/src/dictionary.h
index e9660002e..26edc4f2f 100644
--- a/native/jni/src/dictionary.h
+++ b/native/jni/src/dictionary.h
@@ -24,8 +24,8 @@
namespace latinime {
class BigramDictionary;
-class IncrementalDecoderInterface;
class ProximityInfo;
+class SuggestInterface;
class UnigramDictionary;
class Dictionary {
@@ -83,7 +83,7 @@ class Dictionary {
const UnigramDictionary *mUnigramDictionary;
const BigramDictionary *mBigramDictionary;
- IncrementalDecoderInterface *mGestureDecoder;
+ SuggestInterface *mGestureSuggest;
};
// public static utility methods
diff --git a/native/jni/src/geometry_utils.h b/native/jni/src/geometry_utils.h
index 38b91cc50..4060a7bd3 100644
--- a/native/jni/src/geometry_utils.h
+++ b/native/jni/src/geometry_utils.h
@@ -54,7 +54,7 @@ static AK_FORCE_INLINE int getDistanceInt(const int x1, const int y1, const int
static AK_FORCE_INLINE float getAngle(const int x1, const int y1, const int x2, const int y2) {
const int dx = x1 - x2;
const int dy = y1 - y2;
- if (dx == 0 && dy == 0) return 0;
+ if (dx == 0 && dy == 0) return 0.0f;
return atan2f(static_cast<float>(dy), static_cast<float>(dx));
}
@@ -96,6 +96,7 @@ static inline float pointToLineSegSquaredDistanceFloat(const float x, const floa
// Normal distribution N(u, sigma^2).
struct NormalDistribution {
+ public:
NormalDistribution(const float u, const float sigma)
: mU(u), mSigma(sigma),
mPreComputedNonExpPart(1.0f / sqrtf(2.0f * M_PI_F * SQUARE_FLOAT(sigma))),
@@ -108,10 +109,10 @@ struct NormalDistribution {
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(NormalDistribution);
- float mU; // mean value
- float mSigma; // standard deviation
- float mPreComputedNonExpPart; // = 1 / sqrt(2 * PI * sigma^2)
- float mPreComputedExponentPart; // = -1 / (2 * sigma^2)
+ const float mU; // mean value
+ const float mSigma; // standard deviation
+ const float mPreComputedNonExpPart; // = 1 / sqrt(2 * PI * sigma^2)
+ const float mPreComputedExponentPart; // = -1 / (2 * sigma^2)
}; // struct NormalDistribution
} // namespace latinime
#endif // LATINIME_GEOMETRY_UTILS_H
diff --git a/native/jni/src/gesture/gesture_decoder_wrapper.h b/native/jni/src/gesture/gesture_decoder_wrapper.h
deleted file mode 100644
index b96814907..000000000
--- a/native/jni/src/gesture/gesture_decoder_wrapper.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#ifndef LATINIME_GESTURE_DECODER_WRAPPER_H
-#define LATINIME_GESTURE_DECODER_WRAPPER_H
-
-#include "defines.h"
-#include "incremental_decoder_interface.h"
-
-namespace latinime {
-
-class UnigramDictionary;
-class BigramDictionary;
-class ProximityInfo;
-
-class GestureDecoderWrapper : public IncrementalDecoderInterface {
- public:
- GestureDecoderWrapper(const int maxWordLength, const int maxWords)
- : mIncrementalDecoderInterface(getGestureDecoderInstance(maxWordLength, maxWords)) {
- }
-
- virtual ~GestureDecoderWrapper();
-
- int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
- int *times, int *pointerIds, int *codes, int inputSize, int commitPoint, int *outWords,
- int *frequencies, int *outputIndices, int *outputTypes) const {
- if (!mIncrementalDecoderInterface) {
- return 0;
- }
- return mIncrementalDecoderInterface->getSuggestions(pInfo, traverseSession, inputXs,
- inputYs, times, pointerIds, codes, inputSize, commitPoint, outWords, frequencies,
- outputIndices, outputTypes);
- }
-
- static void setGestureDecoderFactoryMethod(
- IncrementalDecoderInterface *(*factoryMethod)(int, int)) {
- sGestureDecoderFactoryMethod = factoryMethod;
- }
-
- private:
- DISALLOW_IMPLICIT_CONSTRUCTORS(GestureDecoderWrapper);
- static IncrementalDecoderInterface *getGestureDecoderInstance(int maxWordLength, int maxWords) {
- if (sGestureDecoderFactoryMethod) {
- return sGestureDecoderFactoryMethod(maxWordLength, maxWords);
- }
- return 0;
- }
-
- static IncrementalDecoderInterface *(*sGestureDecoderFactoryMethod)(int, int);
- IncrementalDecoderInterface *mIncrementalDecoderInterface;
-};
-} // namespace latinime
-#endif // LATINIME_GESTURE_DECODER_WRAPPER_H
diff --git a/native/jni/src/gesture/incremental_decoder_wrapper.h b/native/jni/src/gesture/incremental_decoder_wrapper.h
deleted file mode 100644
index c15b439fa..000000000
--- a/native/jni/src/gesture/incremental_decoder_wrapper.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#ifndef LATINIME_INCREMENTAL_DECODER_WRAPPER_H
-#define LATINIME_INCREMENTAL_DECODER_WRAPPER_H
-
-#include "defines.h"
-#include "incremental_decoder_interface.h"
-
-namespace latinime {
-
-class UnigramDictionary;
-class BigramDictionary;
-class ProximityInfo;
-
-class IncrementalDecoderWrapper : public IncrementalDecoderInterface {
- public:
- IncrementalDecoderWrapper(const int maxWordLength, const int maxWords)
- : mIncrementalDecoderInterface(getIncrementalDecoderInstance(maxWordLength, maxWords)) {
- }
-
- virtual ~IncrementalDecoderWrapper();
-
- int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
- int *times, int *pointerIds, int *codes, int inputSize, int commitPoint, int *outWords,
- int *frequencies, int *outputIndices, int *outputTypes) const {
- if (!mIncrementalDecoderInterface) {
- return 0;
- }
- return mIncrementalDecoderInterface->getSuggestions(pInfo, traverseSession, inputXs,
- inputYs, times, pointerIds, codes, inputSize, commitPoint, outWords, frequencies,
- outputIndices, outputTypes);
- }
-
- static void setIncrementalDecoderFactoryMethod(
- IncrementalDecoderInterface *(*factoryMethod)(int, int)) {
- sIncrementalDecoderFactoryMethod = factoryMethod;
- }
-
- private:
- DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalDecoderWrapper);
- static IncrementalDecoderInterface *getIncrementalDecoderInstance(int maxWordLength,
- int maxWords) {
- if (sIncrementalDecoderFactoryMethod) {
- return sIncrementalDecoderFactoryMethod(maxWordLength, maxWords);
- }
- return 0;
- }
-
- static IncrementalDecoderInterface *(*sIncrementalDecoderFactoryMethod)(int, int);
- IncrementalDecoderInterface *mIncrementalDecoderInterface;
-};
-} // namespace latinime
-#endif // LATINIME_INCREMENTAL_DECODER_WRAPPER_H
diff --git a/native/jni/src/gesture/gesture_decoder_wrapper.cpp b/native/jni/src/suggest/gesture_suggest.cpp
index 20ad4a58c..2a604b8ab 100644
--- a/native/jni/src/gesture/gesture_decoder_wrapper.cpp
+++ b/native/jni/src/suggest/gesture_suggest.cpp
@@ -14,13 +14,12 @@
* limitations under the License.
*/
-#include "gesture_decoder_wrapper.h"
+#include "gesture_suggest.h"
namespace latinime {
- IncrementalDecoderInterface *
- (*GestureDecoderWrapper::sGestureDecoderFactoryMethod)(int, int) = 0;
+ SuggestInterface *(*GestureSuggest::sGestureSuggestFactoryMethod)(int, int) = 0;
- GestureDecoderWrapper::~GestureDecoderWrapper() {
- delete mIncrementalDecoderInterface;
+ GestureSuggest::~GestureSuggest() {
+ delete mSuggestInterface;
}
} // namespace latinime
diff --git a/native/jni/src/suggest/gesture_suggest.h b/native/jni/src/suggest/gesture_suggest.h
new file mode 100644
index 000000000..e4af03fb8
--- /dev/null
+++ b/native/jni/src/suggest/gesture_suggest.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+#ifndef LATINIME_GESTURE_SUGGEST_H
+#define LATINIME_GESTURE_SUGGEST_H
+
+#include "defines.h"
+#include "suggest_interface.h"
+
+namespace latinime {
+
+class ProximityInfo;
+
+class GestureSuggest : public SuggestInterface {
+ public:
+ GestureSuggest(const int maxWordLength, const int maxWords)
+ : mSuggestInterface(getGestureSuggestInstance(maxWordLength, maxWords)) {
+ }
+
+ virtual ~GestureSuggest();
+
+ int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
+ int *times, int *pointerIds, int *codes, int inputSize, int commitPoint, int *outWords,
+ int *frequencies, int *outputIndices, int *outputTypes) const {
+ if (!mSuggestInterface) {
+ return 0;
+ }
+ return mSuggestInterface->getSuggestions(pInfo, traverseSession, inputXs, inputYs, times,
+ pointerIds, codes, inputSize, commitPoint, outWords, frequencies, outputIndices,
+ outputTypes);
+ }
+
+ static void setGestureSuggestFactoryMethod(SuggestInterface *(*factoryMethod)(int, int)) {
+ sGestureSuggestFactoryMethod = factoryMethod;
+ }
+
+ private:
+ DISALLOW_IMPLICIT_CONSTRUCTORS(GestureSuggest);
+ static SuggestInterface *getGestureSuggestInstance(int maxWordLength, int maxWords) {
+ if (!sGestureSuggestFactoryMethod) {
+ return 0;
+ }
+ return sGestureSuggestFactoryMethod(maxWordLength, maxWords);
+ }
+
+ static SuggestInterface *(*sGestureSuggestFactoryMethod)(int, int);
+ SuggestInterface *mSuggestInterface;
+};
+} // namespace latinime
+#endif // LATINIME_GESTURE_SUGGEST_H
diff --git a/native/jni/src/gesture/incremental_decoder_interface.h b/native/jni/src/suggest/suggest_interface.h
index ff85adc61..de58e7918 100644
--- a/native/jni/src/gesture/incremental_decoder_interface.h
+++ b/native/jni/src/suggest/suggest_interface.h
@@ -14,26 +14,24 @@
* limitations under the License.
*/
-#ifndef LATINIME_INCREMENTAL_DECODER_INTERFACE_H
-#define LATINIME_INCREMENTAL_DECODER_INTERFACE_H
+#ifndef LATINIME_SUGGEST_INTERFACE_H
+#define LATINIME_SUGGEST_INTERFACE_H
#include "defines.h"
namespace latinime {
-class UnigramDictionary;
-class BigramDictionary;
class ProximityInfo;
-class IncrementalDecoderInterface {
+class SuggestInterface {
public:
virtual int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs,
int *inputYs, int *times, int *pointerIds, int *codes, int inputSize, int commitPoint,
int *outWords, int *frequencies, int *outputIndices, int *outputTypes) const = 0;
- IncrementalDecoderInterface() { };
- virtual ~IncrementalDecoderInterface() { };
+ SuggestInterface() {};
+ virtual ~SuggestInterface() {};
private:
- DISALLOW_COPY_AND_ASSIGN(IncrementalDecoderInterface);
+ DISALLOW_COPY_AND_ASSIGN(SuggestInterface);
};
} // namespace latinime
-#endif // LATINIME_INCREMENTAL_DECODER_INTERFACE_H
+#endif // LATINIME_SUGGEST_INTERFACE_H
diff --git a/native/jni/src/gesture/incremental_decoder_wrapper.cpp b/native/jni/src/suggest/typing_suggest.cpp
index f6e45623a..40d4a98b0 100644
--- a/native/jni/src/gesture/incremental_decoder_wrapper.cpp
+++ b/native/jni/src/suggest/typing_suggest.cpp
@@ -14,13 +14,12 @@
* limitations under the License.
*/
-#include "incremental_decoder_wrapper.h"
+#include "typing_suggest.h"
namespace latinime {
- IncrementalDecoderInterface *
- (*IncrementalDecoderWrapper::sIncrementalDecoderFactoryMethod)(int, int) = 0;
+ SuggestInterface *(*TypingSuggest::sTypingSuggestFactoryMethod)(int, int) = 0;
- IncrementalDecoderWrapper::~IncrementalDecoderWrapper() {
- delete mIncrementalDecoderInterface;
+ TypingSuggest::~TypingSuggest() {
+ delete mSuggestInterface;
}
} // namespace latinime
diff --git a/native/jni/src/suggest/typing_suggest.h b/native/jni/src/suggest/typing_suggest.h
new file mode 100644
index 000000000..9de4158f5
--- /dev/null
+++ b/native/jni/src/suggest/typing_suggest.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+#ifndef LATINIME_TYPING_SUGGEST_H
+#define LATINIME_TYPING_SUGGEST_H
+
+#include "defines.h"
+#include "suggest_interface.h"
+
+namespace latinime {
+
+class ProximityInfo;
+
+class TypingSuggest : public SuggestInterface {
+ public:
+ TypingSuggest(const int maxWordLength, const int maxWords)
+ : mSuggestInterface(getTypingSuggestInstance(maxWordLength, maxWords)) {
+ }
+
+ virtual ~TypingSuggest();
+
+ int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
+ int *times, int *pointerIds, int *codes, int inputSize, int commitPoint, int *outWords,
+ int *frequencies, int *outputIndices, int *outputTypes) const {
+ if (!mSuggestInterface) {
+ return 0;
+ }
+ return mSuggestInterface->getSuggestions(pInfo, traverseSession, inputXs, inputYs, times,
+ pointerIds, codes, inputSize, commitPoint, outWords, frequencies, outputIndices,
+ outputTypes);
+ }
+
+ static void setTypingSuggestFactoryMethod(SuggestInterface *(*factoryMethod)(int, int)) {
+ sTypingSuggestFactoryMethod = factoryMethod;
+ }
+
+ private:
+ DISALLOW_IMPLICIT_CONSTRUCTORS(TypingSuggest);
+ static SuggestInterface *getTypingSuggestInstance(int maxWordLength, int maxWords) {
+ if (!sTypingSuggestFactoryMethod) {
+ return 0;
+ }
+ return sTypingSuggestFactoryMethod(maxWordLength, maxWords);
+ }
+
+ static SuggestInterface *(*sTypingSuggestFactoryMethod)(int, int);
+ SuggestInterface *mSuggestInterface;
+};
+} // namespace latinime
+#endif // LATINIME_TYPING_SUGGEST_H