Initialize Tizen 2.3
[framework/osp/vision.git] / src / FUixVision_QrCodeObjectImpl.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #include "FUixVision_QrCodeObjectImpl.h"
19
20 namespace Tizen { namespace Uix { namespace Vision
21 {
22
23 _QrCodeObjectImpl::_QrCodeObjectImpl(void)
24     : __qrCodeObject()
25     , __pRectangleList(null)
26     , __Matrix(null)
27 {
28     __pRectangleList = new Tizen::Base::Collection::ArrayListT<Tizen::Graphics::FloatPoint>();
29     __Matrix = new Tizen::Graphics::FloatMatrix4();
30
31 }
32
33 _QrCodeObjectImpl::~_QrCodeObjectImpl(void)
34 {
35     delete __pRectangleList;
36     delete __Matrix;
37 }
38
39 int
40 _QrCodeObjectImpl::GetId(void) const
41 {
42     return __qrCodeObject.id();
43 }
44
45 unsigned char
46 _QrCodeObjectImpl::GetVersion(void) const
47 {
48     return __qrCodeObject.version();
49 }
50
51 Tizen::Uix::Vision::QrCodeErrorCorrectionLevel
52 _QrCodeObjectImpl::GetErrorCorrectionLevel(void)
53 {
54     switch(__qrCodeObject.errorCorrectionLevel())
55     {
56     case sari2::QR_ECL_L:
57         __qrCodeErrorCorrectionLevel = Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_L;
58         break;
59     case sari2::QR_ECL_M:
60         __qrCodeErrorCorrectionLevel = Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_M;
61         break;
62     case sari2::QR_ECL_Q:
63         __qrCodeErrorCorrectionLevel = Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_Q;
64         break;
65     case sari2::QR_ECL_H:
66         __qrCodeErrorCorrectionLevel = Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_H;
67         break;
68     }
69
70     return __qrCodeErrorCorrectionLevel;
71 }
72
73 Tizen::Base::String
74 _QrCodeObjectImpl::GetText(void) const
75 {
76     return Tizen::Base::String(__qrCodeObject.text());
77 }
78
79 const Tizen::Graphics::FloatMatrix4*
80 _QrCodeObjectImpl::GetTransformMatrix(void) const
81 {
82     float* dst = (float*)__Matrix->matrix;
83     const float* src = __qrCodeObject.transform();
84     memcpy(dst, src, 16*sizeof(float));
85     return __Matrix;
86 }
87
88 const Tizen::Base::Collection::ArrayListT<Tizen::Graphics::FloatPoint>*
89 _QrCodeObjectImpl::GetRectangle(void) const
90 {
91     __pRectangleList->RemoveAll();
92     static float coordinates[8] = {0.f};
93     __qrCodeObject.rectangle(coordinates);
94
95     for (int i = 0; i < 4; ++i)
96     {
97         __pRectangleList->Add(Tizen::Graphics::FloatPoint(coordinates[2 * i], coordinates[(2 * i) + 1]));
98     }
99
100     return __pRectangleList;
101
102 }
103
104 void
105 _QrCodeObjectImpl::SetSariPointer(const sari2::QRCodeRecognitionInfo& sari)
106 {
107     __qrCodeObject = sari;
108 }
109
110 _QrCodeObjectImpl*
111 _QrCodeObjectImpl::GetInstance(QrCodeObject* pQrObject)
112 {
113     return pQrObject->__pQrCodeObjectImpl;
114 }
115
116 const _QrCodeObjectImpl*
117 _QrCodeObjectImpl::GetInstance(const QrCodeObject* pQrObject)
118 {
119     return pQrObject->__pQrCodeObjectImpl;
120 }
121
122 void
123 _QrCodeObjectImpl::ReleaseQrCodeObject(QrCodeObject* pQrCodeObject)
124 {
125     delete pQrCodeObject;
126 }
127
128 void
129 _QrCodeObjectImpl::ReleaseQrCodeObjectArray(QrCodeObject* pQrCodeObject)
130 {
131     delete[] pQrCodeObject;
132 }
133
134 Tizen::Uix::Vision::QrCodeObject*
135 _QrCodeObjectImpl::CreateQRCodeObjectStorageN(const unsigned int size)
136 {
137     Tizen::Uix::Vision::QrCodeObject* objectStorage = new Tizen::Uix::Vision::QrCodeObject[size];
138     return objectStorage;
139 }
140
141 Tizen::Uix::Vision::QrCodeObject*
142 _QrCodeObjectImpl::CreateQRCodeObjectN()
143 {
144     Tizen::Uix::Vision::QrCodeObject* object = new Tizen::Uix::Vision::QrCodeObject;
145     return object;
146 }
147
148 } } } //Tizen::Uix::Vision