aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2016-05-02 22:30:58 +0300
committerJarkko Koivikko <jarkko.koivikko@code-q.fi>2016-05-15 18:05:18 +0000
commite99680e6577a52fb07096eb45095125bb90cf980 (patch)
treeb6a80ffb1a7b61083f7b34382eeb5a318aadffec
parent8ac53adce34c8da7257435229954225dc8d6d6ff (diff)
Fix lipi plugin install location
Installing plugins into a data path is a very bad idea, even more so when the path disagrees with the non-prefix location. The default LIPI_ROOT contains both the plugins and the projects needed at runtime for handwriting recognition. This change adds new environment variable LIPI_LIB which points to location for plugins only. This allows the separation of the two. Change-Id: Ie50b6871b6d176b2d06ff068743b40e9daa2c5cb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKLipiEngineInterface.h2
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKMacros.h5
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKOSUtil.h4
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKTypes.h2
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.cpp58
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.h9
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiplugin.pri3
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.cpp4
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.h7
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.cpp8
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.h2
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.cpp4
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.h7
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.cpp4
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.h7
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.cpp5
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.h3
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.cpp4
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.h2
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp4
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.h2
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWinCEUtil.h2
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.cpp4
-rw-r--r--src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.h2
-rw-r--r--src/virtualkeyboard/lipisharedrecognizer.cpp29
-rw-r--r--src/virtualkeyboard/lipisharedrecognizer.h1
26 files changed, 154 insertions, 30 deletions
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKLipiEngineInterface.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKLipiEngineInterface.h
index 86d06e83..04d315b9 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKLipiEngineInterface.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKLipiEngineInterface.h
@@ -52,6 +52,8 @@ public:
virtual void setLipiRootPath(const string& appLipiPath)=0;
+ virtual void setLipiLibPath(const string& appLipiLibPath)=0;
+
virtual int setLipiLogFileName(const string& appLipiPath) = 0;
virtual int setLipiLogLevel(const string& appLogLevel)=0;
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKMacros.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKMacros.h
index 3be95ff5..b9cc072d 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKMacros.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKMacros.h
@@ -350,6 +350,11 @@
#define LIPIROOT_ENV_STRING "LIPI_ROOT"
/**
+* @brief Defines the lipi library environment string used in LipiEngine.cfg
+*/
+#define LIPILIB_ENV_STRING "LIPI_LIB"
+
+/**
* @brief Defines the type of project used in LipiEngine.cfg
*/
#define PROJECT_TYPE_STRING "ProjectType"
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKOSUtil.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKOSUtil.h
index 137f9a5a..88a56ac8 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKOSUtil.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKOSUtil.h
@@ -69,11 +69,11 @@ public:
// @}
/** @brief Given library name, this function loads it into the adress space.
- * @param lipiRoot
+ * @param lipiLibPath
* @param sharedLibName : name of the library to be loaded
* @param libHandle: pointer to the library handle
*/
- virtual int loadSharedLib(const string& lipiRoot,
+ virtual int loadSharedLib(const string& lipiLibPath,
const string& sharedLibName,
void** libHandle)=0;
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKTypes.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKTypes.h
index 415c8a9a..6c10ccc2 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKTypes.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/include/LTKTypes.h
@@ -95,6 +95,7 @@ struct LTKControlInfo
string cfgFileName;
string cfgFilePath;
string lipiRoot;
+ string lipiLib;
string toolkitVersion;
// constructor
@@ -104,6 +105,7 @@ struct LTKControlInfo
cfgFileName(""),
cfgFilePath(""),
lipiRoot(""),
+ lipiLib(""),
toolkitVersion("")
{
}
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.cpp
index e91436b6..f5a69788 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.cpp
@@ -126,6 +126,10 @@ int LTKLipiEngineModule::initializeLipiEngine()
{
LTKReturnError(ELIPI_ROOT_PATH_NOT_SET); // PATH not set
}
+ if(m_strLipiLibPath == "")
+ {
+ m_strLipiLibPath = m_strLipiRootPath + SEPARATOR + "lib";
+ }
temp = m_strLipiRootPath + SEPARATOR + "projects" + SEPARATOR +
LIPIENGINE_CFG_STRING;
@@ -273,6 +277,7 @@ int LTKLipiEngineModule::createShapeRecognizer(const string& strProjName,
LTKControlInfo controlInfo;
controlInfo.lipiRoot = m_strLipiRootPath;
+ controlInfo.lipiLib = m_strLipiLibPath;
controlInfo.projectName = strProjectName;
controlInfo.profileName = strProfileName;
controlInfo.toolkitVersion = currentVersion;
@@ -423,6 +428,7 @@ int LTKLipiEngineModule::createWordRecognizer(const string& strProjName,
LTKControlInfo controlInfo;
controlInfo.lipiRoot = m_strLipiRootPath;
+ controlInfo.lipiLib = m_strLipiLibPath;
controlInfo.projectName = strProjectName;
controlInfo.profileName = strProfileName;
controlInfo.toolkitVersion = currentVersion;
@@ -622,6 +628,28 @@ string LTKLipiEngineModule::getLipiRootPath() const
}
/******************************************************************************
+* AUTHOR :
+* DATE :
+* NAME : getLipiLibPath
+* DESCRIPTION : To fetch the value for the environment variable LIPI_LIB
+* ARGUMENTS : None
+* RETURNS : environment string on success & NULL on error
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+******************************************************************************/
+string LTKLipiEngineModule::getLipiLibPath() const
+{
+ LOG(LTKLogger::LTK_LOGLEVEL_INFO)<<
+ "Entering: LTKLipiEngineModule::getLipiLibPath()"<<endl;
+
+ LOG(LTKLogger::LTK_LOGLEVEL_INFO)<<
+ "Exiting: LTKLipiEngineModule::getLipiLibPath()"<<endl;
+
+ return m_strLipiLibPath;
+}
+
+/******************************************************************************
* AUTHOR : Nidhi Sharma
* DATE : 10-JAN-2007
* NAME : setLipiRootPath
@@ -648,6 +676,32 @@ void LTKLipiEngineModule::setLipiRootPath(const string& appLipiPath)
}
/******************************************************************************
+* AUTHOR :
+* DATE :
+* NAME : setLipiLibPath
+* DESCRIPTION : To set the value of LIPI_LIB
+* ARGUMENTS : String
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+******************************************************************************/
+void LTKLipiEngineModule::setLipiLibPath(const string& appLipiLibPath)
+{
+
+ //Dont LOG messages as this may be called before configureLogger()
+
+ if ( appLipiLibPath.empty())
+ {
+ m_strLipiLibPath = m_OSUtilPtr->getEnvVariable(LIPILIB_ENV_STRING);
+ }
+ else
+ {
+ m_strLipiLibPath = appLipiLibPath;
+ }
+}
+
+/******************************************************************************
* AUTHOR : Thanigai
* DATE : 29-JUL-2005
* NAME : mapShapeAlgoModuleFunctions
@@ -1106,7 +1160,7 @@ int LTKLipiEngineModule::loadRecognizerDLL(const string& recognizerName,
string recognizerDLLPath = "";
int returnVal = SUCCESS;
- returnVal = m_OSUtilPtr->loadSharedLib(m_strLipiRootPath, recognizerName, dllHandler);
+ returnVal = m_OSUtilPtr->loadSharedLib(m_strLipiLibPath, recognizerName, dllHandler);
if(returnVal != SUCCESS)
@@ -1310,7 +1364,7 @@ int LTKLipiEngineModule::configureLogger()
}
}
- LTKLoggerUtil::createLogger(m_strLipiRootPath);
+ LTKLoggerUtil::createLogger(m_strLipiLibPath);
LTKLoggerUtil::configureLogger(m_logFileName, m_logLevel);
return SUCCESS;
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.h
index 302b0324..9ccffac3 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiengine/LipiEngineModule.h
@@ -99,6 +99,7 @@ private:
string m_strLipiRootPath; // LIPI_ROOT environment path
+ string m_strLipiLibPath; // LIPI_LIB environment path
string m_logFileName;
@@ -127,10 +128,18 @@ public:
*/
string getLipiRootPath() const;
+ /** @brief Returns LTKLipiEngineModule::m_strLipiLibPath
+ */
+ string getLipiLibPath() const;
+
/** @brief Sets the data member LTKLipiEngineModule::m_strLipiRootPath
*/
void setLipiRootPath(const string& appLipiPath="");
+ /** @brief Sets the data member LTKLipiEngineModule::m_strLipiLibPath
+ */
+ void setLipiLibPath(const string& appLipiLibPath="");
+
/** @brief Returns LTKLipiEngineModule::m_logFileName
*/
string getLogFileName() const;
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiplugin.pri b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiplugin.pri
index a94f0331..3dd51a22 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiplugin.pri
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/lipiplugin.pri
@@ -5,6 +5,5 @@ CONFIG += plugin
DESTDIR = $$MODULE_BASE_OUTDIR/plugins/lipi_toolkit
-### This is a bad install location for arch-specific binaries.
-target.path = $$[QT_INSTALL_DATA]/qtvirtualkeyboard/lipi_toolkit/lib
+target.path = $$[QT_INSTALL_PLUGINS]/lipi_toolkit
INSTALLS += target
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.cpp
index 7a805b81..247f5f98 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.cpp
@@ -161,6 +161,7 @@ m_libHandlerFE(NULL)
assignDefaultValues();
m_lipiRootPath = tmpControlInfo.lipiRoot;
+ m_lipiLibPath = tmpControlInfo.lipiLib;
m_currentVersion = tmpControlInfo.toolkitVersion;
strProjectName = tmpControlInfo.projectName;
strProfileName = tmpControlInfo.profileName;
@@ -4718,6 +4719,7 @@ int ActiveDTWShapeRecognizer::initializeFeatureExtractorInstance(const LTKContro
LTKShapeFeatureExtractorFactory factory;
int errorCode = factory.createFeatureExtractor(m_featureExtractorName,
m_lipiRootPath,
+ m_lipiLibPath,
&m_libHandlerFE,
controlInfo,
&m_ptrFeatureExtractor);
@@ -5059,7 +5061,7 @@ int ActiveDTWShapeRecognizer::initializePreprocessor(const LTKControlInfo& contr
// Load the DLL with path=preprocDLLPath
void* functionHandle = NULL;
- int returnVal = m_OSUtilPtr->loadSharedLib(controlInfo.lipiRoot, PREPROC, &m_libHandler);
+ int returnVal = m_OSUtilPtr->loadSharedLib(controlInfo.lipiLib, PREPROC, &m_libHandler);
if(returnVal != SUCCESS)
{
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.h
index dc3ba171..9459d5c7 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/activedtw/ActiveDTWShapeRecognizer.h
@@ -317,6 +317,13 @@ private:
* </p>
*/
+ string m_lipiLibPath;
+ /**< @brief Path of the Lipi Libraries
+ * <p>
+ * DEFAULT: LipiEngine::getLipiLibPath()
+ * </p>
+ */
+
LTKShapeFeatureExtractor *m_ptrFeatureExtractor;
/**< @brief Pointer to LTKShapeFeatureExtractor class
* <p>
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.cpp
index f1eaa446..07fa2adc 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.cpp
@@ -76,7 +76,8 @@ LTKShapeFeatureExtractorFactory::LTKShapeFeatureExtractorFactory()
int LTKShapeFeatureExtractorFactory::createFeatureExtractor(
const string& featureExtractorName,
const string& lipiRootPath,
- void** m_libHandlerFE,
+ const string& lipiLibPath,
+ void** m_libHandlerFE,
const LTKControlInfo& controlInfo,
LTKShapeFeatureExtractor** outFeatureExtractor)
{
@@ -97,7 +98,7 @@ int LTKShapeFeatureExtractorFactory::createFeatureExtractor(
LTKReturnError(errorCode);
}
- errorCode = getFeatureExtractorInst(lipiRootPath, feName, m_libHandlerFE,
+ errorCode = getFeatureExtractorInst(lipiRootPath, lipiLibPath, feName, m_libHandlerFE,
controlInfo, outFeatureExtractor);
if ( errorCode != SUCCESS)
@@ -129,6 +130,7 @@ int LTKShapeFeatureExtractorFactory::createFeatureExtractor(
*************************************************************************************/
int LTKShapeFeatureExtractorFactory::getFeatureExtractorInst(
const string& lipiRootPath,
+ const string& lipiLibPath,
const string& feName,
void** m_libHandlerFE,
const LTKControlInfo& controlInfo,
@@ -139,7 +141,7 @@ int LTKShapeFeatureExtractorFactory::getFeatureExtractorInst(
LTKOSUtil* utilPtr = LTKOSUtilFactory::getInstance();
- int returnVal = utilPtr->loadSharedLib(lipiRootPath, feName, m_libHandlerFE);
+ int returnVal = utilPtr->loadSharedLib(lipiLibPath, feName, m_libHandlerFE);
if(returnVal != SUCCESS)
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.h
index 6b7a48c1..d178d6ef 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/common/LTKShapeFeatureExtractorFactory.h
@@ -73,11 +73,13 @@ public:
int createFeatureExtractor(const string& featureExtractorType,
const string& lipiRootPath,
+ const string& lipiLibPath,
void** m_libHandlerFE,
const LTKControlInfo& controlInfo,
LTKShapeFeatureExtractor** outFeatureExtractor);
int getFeatureExtractorInst(const string& lipiRootPath,
+ const string& lipiLibPath,
const string& feName,
void** m_libHandlerFE,
const LTKControlInfo& controlInfo,
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.cpp
index 52c0a16c..3c406f68 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.cpp
@@ -128,6 +128,7 @@ m_libHandlerFE(NULL)
assignDefaultValues();
m_lipiRootPath = tmpControlInfo.lipiRoot;
+ m_lipiLibPath = tmpControlInfo.lipiLib;
m_currentVersion = tmpControlInfo.toolkitVersion;
strProjectName = tmpControlInfo.projectName;
strProfileName = tmpControlInfo.profileName;
@@ -1154,7 +1155,7 @@ int NeuralNetShapeRecognizer::initializePreprocessor(const LTKControlInfo& contr
// Load the DLL with path=preprocDLLPath
void* functionHandle = NULL;
- int returnVal = m_OSUtilPtr->loadSharedLib(controlInfo.lipiRoot, PREPROC, &m_libHandler);
+ int returnVal = m_OSUtilPtr->loadSharedLib(controlInfo.lipiLib, PREPROC, &m_libHandler);
if(returnVal != SUCCESS)
@@ -1291,6 +1292,7 @@ int NeuralNetShapeRecognizer::initializeFeatureExtractorInstance(const LTKContro
LTKShapeFeatureExtractorFactory factory;
int errorCode = factory.createFeatureExtractor(m_featureExtractorName,
m_lipiRootPath,
+ m_lipiLibPath,
&m_libHandlerFE,
controlInfo,
&m_ptrFeatureExtractor);
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.h
index 067b3d4c..6e32002a 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/neuralnet/NeuralNetShapeRecognizer.h
@@ -123,6 +123,13 @@ class NeuralNetShapeRecognizer: public LTKShapeRecognizer
* </p>
*/
+ string m_lipiLibPath;
+ /**< @brief Path of the Lipi Libraries
+ * <p>
+ * DEFAULT: LipiEngine::getLipiPath()
+ * </p>
+ */
+
LTKShapeFeatureExtractor *m_ptrFeatureExtractor;
/**< @brief Pointer to LTKShapeFeatureExtractor class
* <p>
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.cpp
index db5b6a1f..78b09e47 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.cpp
@@ -169,6 +169,7 @@ m_libHandlerFE(NULL)
assignDefaultValues();
m_lipiRootPath = tmpControlInfo.lipiRoot;
+ m_lipiLibPath = tmpControlInfo.lipiLib;
m_currentVersion = tmpControlInfo.toolkitVersion;
strProjectName = tmpControlInfo.projectName;
strProfileName = tmpControlInfo.profileName;
@@ -3281,6 +3282,7 @@ int NNShapeRecognizer::initializeFeatureExtractorInstance(const LTKControlInfo&
LTKShapeFeatureExtractorFactory factory;
int errorCode = factory.createFeatureExtractor(m_featureExtractorName,
m_lipiRootPath,
+ m_lipiLibPath,
&m_libHandlerFE,
controlInfo,
&m_ptrFeatureExtractor);
@@ -4223,7 +4225,7 @@ int NNShapeRecognizer::initializePreprocessor(const LTKControlInfo& controlInfo,
// Load the DLL with path=preprocDLLPath
void* functionHandle = NULL;
- int returnVal = m_OSUtilPtr->loadSharedLib(controlInfo.lipiRoot, PREPROC, &m_libHandler);
+ int returnVal = m_OSUtilPtr->loadSharedLib(controlInfo.lipiLib, PREPROC, &m_libHandler);
if(returnVal != SUCCESS)
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.h
index 60b9b857..cce1baf0 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/shaperec/nn/NNShapeRecognizer.h
@@ -249,6 +249,13 @@ class NNShapeRecognizer: public LTKShapeRecognizer
* </p>
*/
+ string m_lipiLibPath;
+ /**< @brief Path of the Lipi Libraries
+ * <p>
+ * DEFAULT: LipiEngine::getLipiLibPath()
+ * </p>
+ */
+
LTKShapeFeatureExtractor *m_ptrFeatureExtractor;
/**< @brief Pointer to LTKShapeFeatureExtractor class
* <p>
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.cpp
index ed40a848..dbcdca58 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.cpp
@@ -89,6 +89,7 @@ m_numTracesProcessed(0),
m_boxedShapeProject(""),
m_boxedShapeProfile(""),
m_lipiRoot(""),
+m_lipiLib(""),
m_boxedConfigFile(""),
m_logFile(""),
m_logLevel(LTKLogger::LTK_LOGLEVEL_ERR),
@@ -124,6 +125,7 @@ m_OSUtilPtr(LTKOSUtilFactory::getInstance())
// initialize the data members
m_lipiRoot = tempControlInfo.lipiRoot;
+ m_lipiLib = tempControlInfo.lipiLib;
m_toolkitVersion = tempControlInfo.toolkitVersion;
@@ -1182,7 +1184,7 @@ int BoxedFieldRecognizer::updateRecognitionResults(const vector<LTKShapeRecoResu
}
m_hAlgoDLLHandle = NULL;
- errorCode = m_OSUtilPtr->loadSharedLib(m_lipiRoot, recognizerName, &m_hAlgoDLLHandle);
+ errorCode = m_OSUtilPtr->loadSharedLib(m_lipiLib, recognizerName, &m_hAlgoDLLHandle);
// Unable to load dll
if(errorCode != SUCCESS)
@@ -1222,6 +1224,7 @@ int BoxedFieldRecognizer::updateRecognitionResults(const vector<LTKShapeRecoResu
controlInfo.projectName = strProjectName;
controlInfo.profileName = strLocalProfileName;
controlInfo.lipiRoot = m_lipiRoot;
+ controlInfo.lipiLib = m_lipiLib;
controlInfo.toolkitVersion = m_toolkitVersion;
*outShapeRecPtr = NULL;
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.h
index d1ccb496..e0703b5a 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/reco/wordrec/boxfld/BoxFieldRecognizer.h
@@ -72,6 +72,9 @@ private:
/** Lipi root */
string m_lipiRoot;
+ /** Lipi libraries */
+ string m_lipiLib;
+
/** Isolated shape recognizer project used for recognizing each box */
string m_boxedShapeProject;
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.cpp
index 99e5fac0..f7f85702 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.cpp
@@ -94,7 +94,7 @@ LTKLinuxUtil::~LTKLinuxUtil()
* CHANGE HISTROY
* Author Date Description
***************************************************************************/
-int LTKLinuxUtil::loadSharedLib(const string & lipiRoot,
+int LTKLinuxUtil::loadSharedLib(const string & lipiLibPath,
const string & sharedLibName,
void * * libHandle)
{
@@ -103,7 +103,7 @@ int LTKLinuxUtil::loadSharedLib(const string & lipiRoot,
string sharedLibraryPath = "";
// construct the path for the recogniser DLL
- sharedLibraryPath = lipiRoot + "/" + "lib" + "/" + "lib" + sharedLibName + ".so";
+ sharedLibraryPath = lipiLibPath + "/" + "lib" + sharedLibName + ".so";
// Load the DLL
*libHandle = dlopen(sharedLibraryPath.c_str(), RTLD_LAZY);
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.h
index 074db044..d8eef6f2 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLinuxUtil.h
@@ -72,7 +72,7 @@ public:
~LTKLinuxUtil();
// @}
- int loadSharedLib(const string& lipiRoot,
+ int loadSharedLib(const string& lipiLibPath,
const string& sharedLibName,
void** libHandle);
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp
index c89ffe47..1971a69d 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp
@@ -93,12 +93,12 @@ LTKLoggerUtil::LTKLoggerUtil(){}
* Author Date Description of change
****************************************************************************/
-int LTKLoggerUtil::createLogger(const string& lipiRoot)
+int LTKLoggerUtil::createLogger(const string& lipiLibPath)
{
void* functionHandle = NULL;
auto_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance());
- int iErrorCode = a_ptrOSUtil->loadSharedLib(lipiRoot,
+ int iErrorCode = a_ptrOSUtil->loadSharedLib(lipiLibPath,
LOGGER_MODULE_STR,
&m_libHandleLogger);
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.h
index 3252d14a..2f09831b 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.h
@@ -100,7 +100,7 @@ public:
* @return SUCCESS on successful split operation
*/
- static int createLogger(const string& lipiRoot);
+ static int createLogger(const string& lipiLibPath);
static int destroyLogger();
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWinCEUtil.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWinCEUtil.h
index cdc761b3..649a2700 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWinCEUtil.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWinCEUtil.h
@@ -74,7 +74,7 @@ public:
~LTKWinCEUtil();
// @}
- int loadSharedLib(const string& lipiRoot,
+ int loadSharedLib(const string& lipiLibPath,
const string& sharedLibName,
void** libHandle);
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.cpp b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.cpp
index 0b72bd51..825ee84c 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.cpp
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.cpp
@@ -90,14 +90,14 @@ LTKWindowsUtil::~LTKWindowsUtil()
* CHANGE HISTROY
* Author Date Description
***************************************************************************/
-int LTKWindowsUtil::loadSharedLib(const string & lipiRoot,
+int LTKWindowsUtil::loadSharedLib(const string & lipiLibPath,
const string & sharedLibName,
void * * libHandle)
{
string sharedLibraryPath = "";
// construct the path for the recogniser DLL
- sharedLibraryPath = lipiRoot + "\\" + "lib" + "\\" + sharedLibName +
+ sharedLibraryPath = lipiLibPath + "\\" + sharedLibName +
#ifndef NDEBUG
"d"
#endif
diff --git a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.h b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.h
index 755fc390..d62350d9 100644
--- a/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.h
+++ b/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKWindowsUtil.h
@@ -74,7 +74,7 @@ public:
~LTKWindowsUtil();
// @}
- int loadSharedLib(const string& lipiRoot,
+ int loadSharedLib(const string& lipiLibPath,
const string& sharedLibName,
void** libHandle);
diff --git a/src/virtualkeyboard/lipisharedrecognizer.cpp b/src/virtualkeyboard/lipisharedrecognizer.cpp
index ab93a343..e75042f8 100644
--- a/src/virtualkeyboard/lipisharedrecognizer.cpp
+++ b/src/virtualkeyboard/lipisharedrecognizer.cpp
@@ -42,6 +42,7 @@ namespace QtVirtualKeyboard {
int LipiSharedRecognizer::s_lipiEngineRefCount = 0;
QString LipiSharedRecognizer::s_lipiRoot;
+QString LipiSharedRecognizer::s_lipiLib;
void *LipiSharedRecognizer::s_lipiEngineHandle = 0;
LipiSharedRecognizer::FN_PTR_CREATELTKLIPIENGINE LipiSharedRecognizer::s_createLTKLipiEngine = 0;
LipiSharedRecognizer::FN_PTR_DELETELTKLIPIENGINE LipiSharedRecognizer::s_deleteLTKLipiEngine = 0;
@@ -173,18 +174,31 @@ int LipiSharedRecognizer::loadLipiInterface()
if (++s_lipiEngineRefCount == 1) {
if (s_lipiRoot.isEmpty()) {
- if (qEnvironmentVariableIsEmpty("LIPI_ROOT")) {
- s_lipiRoot = QDir(QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/lipi_toolkit").absolutePath();
- qputenv("LIPI_ROOT", s_lipiRoot.toLatin1());
- } else {
- s_lipiRoot = qgetenv("LIPI_ROOT");
- }
+ /* LIPI_ROOT defines the root directory for lipi-toolkit project.
+ LIPI_LIB is an extension implemented for QtVirtualKeyboard and
+ allows using different location for lipi-toolkit plugins.
+
+ LIPI_LIB defaults to LIPI_ROOT + "/lib".
+ */
+ bool lipiRootVarIsEmpty = qEnvironmentVariableIsEmpty("LIPI_ROOT");
+ s_lipiRoot = lipiRootVarIsEmpty ?
+ QDir(QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/lipi_toolkit").absolutePath() :
+ qgetenv("LIPI_ROOT");
+
+ bool lipiLibVarIsEmpty = qEnvironmentVariableIsEmpty("LIPI_LIB");
+ if (!lipiLibVarIsEmpty)
+ s_lipiLib = qgetenv("LIPI_LIB");
+ else if (!lipiRootVarIsEmpty)
+ s_lipiLib = s_lipiRoot + "/lib";
+ else
+ s_lipiLib = QDir(QLibraryInfo::location(QLibraryInfo::PluginsPath) + "/lipi_toolkit").absolutePath();
}
QScopedPointer<LTKOSUtil> osUtil(LTKOSUtilFactory::getInstance());
const string lipiRootPath(QDir::toNativeSeparators(s_lipiRoot).toStdString());
+ const string lipiLibPath(QDir::toNativeSeparators(s_lipiLib).toStdString());
- int result = osUtil->loadSharedLib(lipiRootPath, LIPIENGINE_MODULE_STR, &s_lipiEngineHandle);
+ int result = osUtil->loadSharedLib(lipiLibPath, LIPIENGINE_MODULE_STR, &s_lipiEngineHandle);
if (result != SUCCESS) {
qWarning() << QString("Error %1: Could not open shared library for module '%2'").arg(result).arg(LIPIENGINE_MODULE_STR);
return result;
@@ -208,6 +222,7 @@ int LipiSharedRecognizer::loadLipiInterface()
s_lipiEngine = s_createLTKLipiEngine();
s_lipiEngine->setLipiRootPath(lipiRootPath);
+ s_lipiEngine->setLipiLibPath(lipiLibPath);
#if 0
s_lipiEngine->setLipiLogFileName(QDir::toNativeSeparators(QString("%1/lipi.log").arg(s_lipiRoot)).toStdString());
s_lipiEngine->setLipiLogLevel("DEBUG");
diff --git a/src/virtualkeyboard/lipisharedrecognizer.h b/src/virtualkeyboard/lipisharedrecognizer.h
index e43c8163..c82b8f42 100644
--- a/src/virtualkeyboard/lipisharedrecognizer.h
+++ b/src/virtualkeyboard/lipisharedrecognizer.h
@@ -66,6 +66,7 @@ private:
static int s_lipiEngineRefCount;
static QString s_lipiRoot;
+ static QString s_lipiLib;
static void *s_lipiEngineHandle;
static FN_PTR_CREATELTKLIPIENGINE s_createLTKLipiEngine;
static FN_PTR_DELETELTKLIPIENGINE s_deleteLTKLipiEngine;