From 845e52b676443cbaccf0e735e935a63f62a138c8 Mon Sep 17 00:00:00 2001
From: Alexander Smorkalov <alexander.smorkalov@itseez.com>
Date: Thu, 22 Nov 2012 12:39:06 +0400
Subject: [PATCH 1/2] OpenCV Manager headers refactoring.

All constants moved to android independent header file.
---
 android/service/engine/jni/include/EngineCommon.h  | 6 ++++++
 android/service/engine/jni/include/IOpenCVEngine.h | 6 +-----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/android/service/engine/jni/include/EngineCommon.h b/android/service/engine/jni/include/EngineCommon.h
index 67a94e270f..8aa99f8c94 100644
--- a/android/service/engine/jni/include/EngineCommon.h
+++ b/android/service/engine/jni/include/EngineCommon.h
@@ -5,10 +5,16 @@
 #undef LOG_TAG
 #define LOG_TAG "OpenCVEngine"
 
+// OpenCV Engine API version
 #ifndef OPEN_CV_ENGINE_VERSION
     #define OPEN_CV_ENGINE_VERSION 2
 #endif
 
 #define LIB_OPENCV_INFO_NAME "libopencv_info.so"
 
+// OpenCV Manager package name
+#define OPENCV_ENGINE_PACKAGE "org.opencv.engine"
+// Class name of OpenCV engine binder object. Is needned for connection to service
+#define OPECV_ENGINE_CLASSNAME "org.opencv.engine.OpenCVEngineInterface"
+
 #endif
\ No newline at end of file
diff --git a/android/service/engine/jni/include/IOpenCVEngine.h b/android/service/engine/jni/include/IOpenCVEngine.h
index 87ff3b6f99..4dbb251c56 100644
--- a/android/service/engine/jni/include/IOpenCVEngine.h
+++ b/android/service/engine/jni/include/IOpenCVEngine.h
@@ -4,11 +4,7 @@
 #include <binder/IInterface.h>
 #include <binder/Parcel.h>
 #include <utils/String16.h>
-
-// OpenCV Manager package name
-#define OPENCV_ENGINE_PACKAGE "org.opencv.engine"
-// Class name of OpenCV engine binder object. Is needned for connection to service
-#define OPECV_ENGINE_CLASSNAME "org.opencv.engine.OpenCVEngineInterface"
+#include "EngineCommon.h"
 
 enum EngineMethonID
 {

From 3282e08f55463ab203ac39a6dc04565a4b69e533 Mon Sep 17 00:00:00 2001
From: Alexander Smorkalov <alexander.smorkalov@itseez.com>
Date: Thu, 22 Nov 2012 12:40:25 +0400
Subject: [PATCH 2/2] Default native library path for native camera updated.

New versions tries to search library in arm-v7a and Manager packages only.
---
 modules/androidcamera/CMakeLists.txt          |  2 +-
 modules/androidcamera/src/camera_activity.cpp | 10 ++++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/modules/androidcamera/CMakeLists.txt b/modules/androidcamera/CMakeLists.txt
index f55b55136f..d54dd5d208 100644
--- a/modules/androidcamera/CMakeLists.txt
+++ b/modules/androidcamera/CMakeLists.txt
@@ -6,7 +6,7 @@ set(the_description "Auxiliary module for Android native camera support")
 set(OPENCV_MODULE_TYPE STATIC)
 
 ocv_define_module(androidcamera INTERNAL opencv_core log dl)
-ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/camera_wrapper")
+ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/camera_wrapper" "${OpenCV_SOURCE_DIR}/android/service/engine/jni/include")
 
 # Android source tree for native camera
 SET (ANDROID_SOURCE_TREE "ANDROID_SOURCE_TREE-NOTFOUND" CACHE PATH
diff --git a/modules/androidcamera/src/camera_activity.cpp b/modules/androidcamera/src/camera_activity.cpp
index f9925b1170..28e18c479e 100644
--- a/modules/androidcamera/src/camera_activity.cpp
+++ b/modules/androidcamera/src/camera_activity.cpp
@@ -9,6 +9,7 @@
 #include <opencv2/core/version.hpp>
 #include "camera_activity.hpp"
 #include "camera_wrapper.h"
+#include "EngineCommon.h"
 
 #undef LOG_TAG
 #undef LOGE
@@ -267,12 +268,13 @@ void CameraWrapperConnector::fillListWrapperLibs(const string& folderPath, vecto
 
 std::string CameraWrapperConnector::getDefaultPathLibFolder()
 {
-    const string packageList[] = {"tegra3", "armv7a_neon", "armv7a", "armv5", "x86"};
-    for (size_t i = 0; i < 5; i++)
+    #define BIN_PACKAGE_NAME(x) "org.opencv.lib_v" CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION) "_" x
+    const char* const packageList[] = {BIN_PACKAGE_NAME("armv7a"), OPENCV_ENGINE_PACKAGE};
+    for (size_t i = 0; i < sizeof(packageList)/sizeof(packageList[0]); i++)
     {
         char path[128];
-        sprintf(path, "/data/data/org.opencv.lib_v%d%d_%s/lib/", CV_MAJOR_VERSION, CV_MINOR_VERSION, packageList[i].c_str());
-        LOGD("Trying package \"%s\" (\"%s\")", packageList[i].c_str(), path);
+        sprintf(path, "/data/data/%s/lib/", packageList[i]);
+        LOGD("Trying package \"%s\" (\"%s\")", packageList[i], path);
 
         DIR* dir = opendir(path);
         if (!dir)