File: BnOpenCVEngine.cpp

package info (click to toggle)
opencv 2.4.9.1%2Bdfsg-1%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 126,800 kB
  • ctags: 62,729
  • sloc: xml: 509,055; cpp: 490,794; lisp: 23,208; python: 21,174; java: 19,317; ansic: 1,038; sh: 128; makefile: 72
file content (72 lines) | stat: -rw-r--r-- 2,626 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "EngineCommon.h"
#include "IOpenCVEngine.h"
#include "BnOpenCVEngine.h"
#include <utils/Log.h>
#include <utils/String8.h>
#include <utils/String16.h>

using namespace android;

BnOpenCVEngine::~BnOpenCVEngine()
{
}

// Notes about data transaction:
// Java Binder Wrapper call readInt32 before reading return data
// It treet this in value as exception code
// OnTransact method support this feature
status_t BnOpenCVEngine::onTransact(uint32_t code, const Parcel& data, android::Parcel* reply, uint32_t flags)
{
    LOGD("OpenCVEngine::OnTransact(%u,%u)", code, flags);

    switch(code)
    {
        case OCVE_GET_ENGINE_VERSION:
        {
            LOGD("OpenCVEngine OCVE_GET_ENGINE_VERSION request");
            CHECK_INTERFACE(IOpenCVEngine, data, reply);
            LOGD("OpenCVEngine::GetVersion()");
            reply->writeInt32(0);
            return reply->writeInt32(GetVersion());
        } break;
        case OCVE_GET_LIB_PATH_BY_VERSION:
        {
            LOGD("OpenCVEngine OCVE_GET_LIB_PATH_BY_VERSION request");
            CHECK_INTERFACE(IOpenCVEngine, data, reply);
            const String16 version = data.readString16();
            LOGD("OpenCVEngine::GetLibPathByVersion(%s)", String8(version).string());
            String16 path = GetLibPathByVersion(version);
            reply->writeInt32(0);
            return reply->writeString16(path);
        } break;
        case OCVE_GET_LIB_LIST:
        {
            LOGD("OpenCVEngine OCVE_GET_LIB_LIST request");
            CHECK_INTERFACE(IOpenCVEngine, data, reply);
            const String16 version = data.readString16();
            LOGD("OpenCVEngine::GetLibraryList(%s)", String8(version).string());
            String16 path = GetLibraryList(version);
            reply->writeInt32(0);
            return reply->writeString16(path);
        } break;
        case OCVE_INSTALL_VERSION:
        {
            LOGD("OpenCVEngine OCVE_INSTALL_VERSION request");
            CHECK_INTERFACE(IOpenCVEngine, data, reply);
            const String16 version = data.readString16();
            LOGD("OpenCVEngine::InstallVersion(%s)", String8(version).string());
            bool result = InstallVersion(version);
            reply->writeInt32(0);
            int res = reply->writeInt32(static_cast<int32_t>(result));
            LOGD("InstallVersion call to Binder finished with res %d", res);
            return res;
        } break;
        default:
        {
            LOGD("OpenCVEngine unknown request");
            return BBinder::onTransact(code, data, reply, flags);
        }
    }

    return android::NO_ERROR;
}