Merge "Makefile and source code structure update for LatinIME AOSP build"

This commit is contained in:
Ken Wakasa 2012-07-02 04:43:48 -07:00 committed by Android (Google) Code Review
commit 83649cb400
15 changed files with 120 additions and 120 deletions

View file

@ -50,11 +50,18 @@ LATIN_IME_CORE_SRC_FILES := \
proximity_info.cpp \ proximity_info.cpp \
proximity_info_state.cpp \ proximity_info_state.cpp \
unigram_dictionary.cpp \ unigram_dictionary.cpp \
gesture/build_check.cpp gesture/incremental_decoder_interface.cpp
LATIN_IME_GESTURE_IMPL_SRC_FILES := \
gesture/impl/gesture_decoder_impl.cpp \
gesture/impl/incremental_decoder_impl.cpp \
gesture/impl/token_beam_impl.cpp \
gesture/impl/token_impl.cpp
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
$(LATIN_IME_JNI_SRC_FILES) \ $(LATIN_IME_JNI_SRC_FILES) \
$(addprefix $(LATIN_IME_SRC_DIR)/,$(LATIN_IME_CORE_SRC_FILES)) $(addprefix $(LATIN_IME_SRC_DIR)/, $(LATIN_IME_CORE_SRC_FILES)) \
$(addprefix $(LATIN_IME_SRC_DIR)/, $(LATIN_IME_GESTURE_IMPL_SRC_FILES))
ifeq ($(FLAG_DO_PROFILE), true) ifeq ($(FLAG_DO_PROFILE), true)
$(warning Making profiling version of native library) $(warning Making profiling version of native library)
@ -79,21 +86,16 @@ include $(BUILD_STATIC_LIBRARY)
###################################### ######################################
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_C_INCLUDES += $(LATIN_IME_SRC_FULLPATH_DIR) \ LOCAL_C_INCLUDES = $(LATIN_IME_SRC_FULLPATH_DIR) $(LATIN_IME_SRC_FULLPATH_DIR)/gesture
$(addprefix $(LATIN_IME_SRC_FULLPATH_DIR)/, gesture gesture/impl gesture/impl/header)
LOCAL_CFLAGS += -Werror -Wall LOCAL_CFLAGS += -Werror -Wall
# To suppress compiler warnings for unused variables/functions used for debug features etc. # To suppress compiler warnings for unused variables/functions used for debug features etc.
LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function
LATIN_IME_GESTURE_IMPL_SRC_FILES := \ LOCAL_SRC_FILES := \
gesture/impl/gesture_decoder_impl.cpp \ $(LATIN_IME_JNI_SRC_FILES) \
gesture/impl/incremental_decoder_impl.cpp \ $(addprefix $(LATIN_IME_SRC_DIR)/,$(LATIN_IME_CORE_SRC_FILES))
gesture/impl/token_beam_impl.cpp \
gesture/impl/token_impl.cpp
LOCAL_SRC_FILES := $(addprefix $(LATIN_IME_SRC_DIR)/,$(LATIN_IME_GESTURE_IMPL_SRC_FILES))
ifeq ($(FLAG_DO_PROFILE), true) ifeq ($(FLAG_DO_PROFILE), true)
$(warning Making profiling version of native library) $(warning Making profiling version of native library)
@ -105,7 +107,7 @@ ifeq ($(FLAG_DBG), true)
endif # FLAG_DBG endif # FLAG_DBG
endif # FLAG_DO_PROFILE endif # FLAG_DO_PROFILE
LOCAL_MODULE := libjni_latinime_gesture_impl_static LOCAL_MODULE := libjni_latinime_common_static
LOCAL_MODULE_TAGS := optional LOCAL_MODULE_TAGS := optional
ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system
@ -119,7 +121,7 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS) include $(CLEAR_VARS)
# All code in LOCAL_WHOLE_STATIC_LIBRARIES will be built into this shared library. # All code in LOCAL_WHOLE_STATIC_LIBRARIES will be built into this shared library.
LOCAL_WHOLE_STATIC_LIBRARIES := libjni_latinime_static libjni_latinime_gesture_impl_static LOCAL_WHOLE_STATIC_LIBRARIES := libjni_latinime_static
ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system
LOCAL_SHARED_LIBRARIES := libstlport LOCAL_SHARED_LIBRARIES := libstlport

View file

@ -22,6 +22,7 @@
#include "binary_format.h" #include "binary_format.h"
#include "defines.h" #include "defines.h"
#include "dictionary.h" #include "dictionary.h"
#include "incremental_decoder_interface.h"
namespace latinime { namespace latinime {
@ -43,7 +44,8 @@ Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust,
mUnigramDictionary = new UnigramDictionary(mDict + headerSize, typedLetterMultiplier, mUnigramDictionary = new UnigramDictionary(mDict + headerSize, typedLetterMultiplier,
fullWordMultiplier, maxWordLength, maxWords, options); fullWordMultiplier, maxWordLength, maxWords, options);
mBigramDictionary = new BigramDictionary(mDict + headerSize, maxWordLength); mBigramDictionary = new BigramDictionary(mDict + headerSize, maxWordLength);
mGestureDecoder = new GestureDecoder(maxWordLength, maxWords); mGestureDecoder = IncrementalDecoderInterface::getGestureDecoderInstance(maxWordLength,
maxWords);
mGestureDecoder->setDict(mUnigramDictionary, mBigramDictionary, mGestureDecoder->setDict(mUnigramDictionary, mBigramDictionary,
mDict + headerSize /* dict root */, 0 /* root pos */); mDict + headerSize /* dict root */, 0 /* root pos */);
} }
@ -51,6 +53,7 @@ Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust,
Dictionary::~Dictionary() { Dictionary::~Dictionary() {
delete mUnigramDictionary; delete mUnigramDictionary;
delete mBigramDictionary; delete mBigramDictionary;
delete mGestureDecoder;
} }
int Dictionary::getFrequency(const int32_t *word, int length) const { int Dictionary::getFrequency(const int32_t *word, int length) const {

View file

@ -22,7 +22,7 @@
#include "bigram_dictionary.h" #include "bigram_dictionary.h"
#include "char_utils.h" #include "char_utils.h"
#include "defines.h" #include "defines.h"
#include "gesture/gesture_decoder.h" #include "incremental_decoder_interface.h"
#include "proximity_info.h" #include "proximity_info.h"
#include "unigram_dictionary.h" #include "unigram_dictionary.h"
#include "words_priority_queue_pool.h" #include "words_priority_queue_pool.h"
@ -87,7 +87,7 @@ class Dictionary {
const UnigramDictionary *mUnigramDictionary; const UnigramDictionary *mUnigramDictionary;
const BigramDictionary *mBigramDictionary; const BigramDictionary *mBigramDictionary;
GestureDecoder *mGestureDecoder; IncrementalDecoderInterface *mGestureDecoder;
}; };
// public static utility methods // public static utility methods

View file

@ -1,37 +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_H
#define LATINIME_GESTURE_DECODER_H
#include "defines.h"
#include "gesture_decoder_impl.h"
namespace latinime {
class GestureDecoder : public GestureDecoderImpl {
public:
GestureDecoder(int maxWordLength, int maxWords) :
GestureDecoderImpl(maxWordLength, maxWords) {
}
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(GestureDecoder);
};
} // namespace latinime
#endif // LATINIME_INCREMENTAL_DECODER_H

View file

@ -15,7 +15,26 @@
*/ */
#include "gesture_decoder_impl.h" #include "gesture_decoder_impl.h"
#include "incremental_decoder_interface.h"
namespace latinime { namespace latinime {
// A factory method for GestureDecoderImpl
static IncrementalDecoderInterface *getDecoderInstance(int maxWordLength, int maxWords) {
return new GestureDecoderImpl(maxWordLength, maxWords);
}
// An ad-hoc internal class to register the factory method defined above
class GestureDecoderFactoryRegisterer {
public:
GestureDecoderFactoryRegisterer() {
IncrementalDecoderInterface::setGestureDecoderFactoryMethod(getDecoderInstance);
}
private:
DISALLOW_COPY_AND_ASSIGN(GestureDecoderFactoryRegisterer);
}; };
// namespace latinime
// To invoke the GestureDecoderFactoryRegisterer constructor in the global constructor
// Not sure, but can be static?
GestureDecoderFactoryRegisterer gestureDecoderFactoryRegisterer;
} // namespace latinime

View file

@ -18,15 +18,14 @@
#define LATINIME_GESTURE_DECODER_IMPL_H #define LATINIME_GESTURE_DECODER_IMPL_H
#include "defines.h" #include "defines.h"
#include "incremental_decoder.h" #include "incremental_decoder_impl.h"
namespace latinime { namespace latinime {
class GestureDecoderImpl : public IncrementalDecoder { class GestureDecoderImpl : public IncrementalDecoderImpl {
public: public:
GestureDecoderImpl(int maxWordLength, int maxWords) : GestureDecoderImpl(int maxWordLength, int maxWords) :
IncrementalDecoder(maxWordLength, maxWords) { IncrementalDecoderImpl(maxWordLength, maxWords) {
} }
int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times, int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times,
@ -39,5 +38,4 @@ class GestureDecoderImpl : public IncrementalDecoder {
DISALLOW_IMPLICIT_CONSTRUCTORS(GestureDecoderImpl); DISALLOW_IMPLICIT_CONSTRUCTORS(GestureDecoderImpl);
}; };
} // namespace latinime } // namespace latinime
#endif // LATINIME_GESTURE_DECODER_IMPL_H #endif // LATINIME_GESTURE_DECODER_IMPL_H

View file

@ -15,7 +15,26 @@
*/ */
#include "incremental_decoder_impl.h" #include "incremental_decoder_impl.h"
#include "incremental_decoder_interface.h"
namespace latinime { namespace latinime {
// A factory method for IncrementalDecoderImpl
static IncrementalDecoderInterface *getDecoderInstance(int maxWordLength, int maxWords) {
return new IncrementalDecoderImpl(maxWordLength, maxWords);
}
// An ad-hoc internal class to register the factory method defined above
class IncrementalDecoderFactoryRegisterer {
public:
IncrementalDecoderFactoryRegisterer() {
IncrementalDecoderInterface::setIncrementalDecoderFactoryMethod(getDecoderInstance);
}
private:
DISALLOW_COPY_AND_ASSIGN(IncrementalDecoderFactoryRegisterer);
}; };
// namespace latinime
// To invoke the IncrementalDecoderFactoryRegisterer constructor in the global constructor
// Not sure, but can be static?
IncrementalDecoderFactoryRegisterer incrementalDecoderFactoryRegisterer;
} // namespace latinime

View file

@ -17,25 +17,30 @@
#ifndef LATINIME_INCREMENTAL_DECODER_IMPL_H #ifndef LATINIME_INCREMENTAL_DECODER_IMPL_H
#define LATINIME_INCREMENTAL_DECODER_IMPL_H #define LATINIME_INCREMENTAL_DECODER_IMPL_H
#include "bigram_dictionary.h"
#include "defines.h" #include "defines.h"
#include "incremental_decoder_interface.h" #include "incremental_decoder_interface.h"
#include "unigram_dictionary.h"
namespace latinime { namespace latinime {
class IncrementalDecoderImpl : IncrementalDecoderInterface { class UnigramDictionary;
class BigramDictionary;
class IncrementalDecoderImpl : public IncrementalDecoderInterface {
public: public:
IncrementalDecoderImpl(int maxWordLength, int maxWords) { }; IncrementalDecoderImpl(int maxWordLength, int maxWords) { };
void setDict(const UnigramDictionary *dict, const BigramDictionary *bigram, void setDict(const UnigramDictionary *dict, const BigramDictionary *bigram,
const uint8_t *dictRoot, int rootPos) { }; const uint8_t *dictRoot, int rootPos) { };
void setPrevWord(const int32_t *prevWord, int prevWordLength) { }; void setPrevWord(const int32_t *prevWord, int prevWordLength) { };
void reset() { }; void reset() { };
int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times,
int *pointerIds, int *codes, int inputSize, int commitPoint,
unsigned short *outWords, int *frequencies, int *outputIndices) {
return 0;
}
private: private:
DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalDecoderImpl); DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalDecoderImpl);
}; };
} // namespace latinime } // namespace latinime
#endif // LATINIME_INCREMENTAL_DECODER_IMPL_H #endif // LATINIME_INCREMENTAL_DECODER_IMPL_H

View file

@ -17,5 +17,4 @@
#include "token_beam_impl.h" #include "token_beam_impl.h"
namespace latinime { namespace latinime {
}; } // namespace latinime
// namespace latinime

View file

@ -26,5 +26,4 @@ class TokenBeamImpl {
DISALLOW_IMPLICIT_CONSTRUCTORS(TokenBeamImpl); DISALLOW_IMPLICIT_CONSTRUCTORS(TokenBeamImpl);
}; };
} // namespace latinime } // namespace latinime
#endif // LATINIME_TOKEN_BEAM_IMPL_H #endif // LATINIME_TOKEN_BEAM_IMPL_H

View file

@ -17,5 +17,4 @@
#include "token_impl.h" #include "token_impl.h"
namespace latinime { namespace latinime {
}; } // namespace latinime
// namespace latinime

View file

@ -26,5 +26,4 @@ struct TokenImpl {
DISALLOW_IMPLICIT_CONSTRUCTORS(TokenImpl); DISALLOW_IMPLICIT_CONSTRUCTORS(TokenImpl);
}; };
} // namespace latinime } // namespace latinime
#endif // LATINIME_TOKEN_IMPL_H #endif // LATINIME_TOKEN_IMPL_H

View file

@ -1,37 +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_H
#define LATINIME_INCREMENTAL_DECODER_H
#include "defines.h"
#include "incremental_decoder_impl.h"
namespace latinime {
class IncrementalDecoder : public IncrementalDecoderImpl {
public:
IncrementalDecoder(int maxWordLength, int maxWords) :
IncrementalDecoderImpl(maxWordLength, maxWords) {
}
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalDecoder);
};
} // namespace latinime
#endif // LATINIME_INCREMENTAL_DECODER_H

View file

@ -14,8 +14,11 @@
* limitations under the License. * limitations under the License.
*/ */
#include "gesture_decoder.h" #include "incremental_decoder_interface.h"
namespace latinime { namespace latinime {
}; IncrementalDecoderInterface *
// namespace latinime (*IncrementalDecoderInterface::sGestureDecoderFactoryMethod)(int, int) = 0;
IncrementalDecoderInterface *
(*IncrementalDecoderInterface::sIncrementalDecoderFactoryMethod)(int, int) = 0;
} // namespace latinime

View file

@ -17,15 +17,16 @@
#ifndef LATINIME_INCREMENTAL_DECODER_INTERFACE_H #ifndef LATINIME_INCREMENTAL_DECODER_INTERFACE_H
#define LATINIME_INCREMENTAL_DECODER_INTERFACE_H #define LATINIME_INCREMENTAL_DECODER_INTERFACE_H
#include "bigram_dictionary.h" #include <stdint.h>
#include "defines.h" #include "defines.h"
#include "proximity_info.h"
#include "unigram_dictionary.h"
namespace latinime { namespace latinime {
class IncrementalDecoderInterface { class UnigramDictionary;
class BigramDictionary;
class ProximityInfo;
class IncrementalDecoderInterface {
public: public:
virtual int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times, virtual int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times,
int *pointerIds, int *codes, int inputSize, int commitPoint, int *pointerIds, int *codes, int inputSize, int commitPoint,
@ -35,7 +36,35 @@ class IncrementalDecoderInterface {
const uint8_t *dictRoot, int rootPos) = 0; const uint8_t *dictRoot, int rootPos) = 0;
virtual void setPrevWord(const int32_t *prevWord, int prevWordLength) = 0; virtual void setPrevWord(const int32_t *prevWord, int prevWordLength) = 0;
virtual ~IncrementalDecoderInterface() { }; virtual ~IncrementalDecoderInterface() { };
static IncrementalDecoderInterface *getGestureDecoderInstance(int maxWordLength, int maxWords) {
if (sGestureDecoderFactoryMethod) {
return sGestureDecoderFactoryMethod(maxWordLength, maxWords);
}
return 0;
}
static IncrementalDecoderInterface *getIncrementalDecoderInstance(int maxWordLength,
int maxWords) {
if (sIncrementalDecoderFactoryMethod) {
return sIncrementalDecoderFactoryMethod(maxWordLength, maxWords);
}
return 0;
}
static void setGestureDecoderFactoryMethod(
IncrementalDecoderInterface *(*factoryMethod)(int, int)) {
sGestureDecoderFactoryMethod = factoryMethod;
}
static void setIncrementalDecoderFactoryMethod(
IncrementalDecoderInterface *(*factoryMethod)(int, int)) {
sIncrementalDecoderFactoryMethod = factoryMethod;
}
private:
static IncrementalDecoderInterface *(*sGestureDecoderFactoryMethod)(int, int);
static IncrementalDecoderInterface *(*sIncrementalDecoderFactoryMethod)(int, int);
}; };
} // namespace latinime } // namespace latinime
#endif // LATINIME_INCREMENTAL_DECODER_INTERFACE_H #endif // LATINIME_INCREMENTAL_DECODER_INTERFACE_H