2 // Open Service Platform
3 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include "FUixVision_QrCodeRecognizerImpl.h"
19 #include "FUixVision_QrCodeObjectImpl.h"
21 namespace Tizen { namespace Uix { namespace Vision
24 _QrCodeRecognizerImpl::_QrCodeRecognizerImpl(void)
27 __objectStorage = _QrCodeObjectImpl::CreateQRCodeObjectStorageN(MAX_TRACKABLE_OBJECTS);
30 _QrCodeRecognizerImpl::~_QrCodeRecognizerImpl(void)
32 _QrCodeObjectImpl::ReleaseQrCodeObjectArray(__objectStorage);
36 _QrCodeRecognizerImpl::SetFrameSize(int width, int height)
40 return __qrCodeRecognizer.setFrameSize(width, height);
44 _QrCodeRecognizerImpl::ProcessFrame(const unsigned char* raw)
46 return __qrCodeRecognizer.processFrame(raw);
50 _QrCodeRecognizerImpl::GetROI(int* roi)
53 static float array[4] = {0.};
54 result r = __qrCodeRecognizer.getROI(array) ? E_SUCCESS : E_FAILURE;
58 roi[0] = ((1. + array[0]) / 2.) * __width;
59 roi[1] = ((1. + array[1]) / 2.) * __height;
60 roi[2] = ((1. + array[2]) / 2.) * __width;
61 roi[3] = ((1. + array[3]) / 2.) * __height;
64 return E_SUCCESS == r;
68 _QrCodeRecognizerImpl::SetSceneTransform(const float* left, const float* right)
70 __qrCodeRecognizer.setSceneTransform(left, right);
74 _QrCodeRecognizerImpl::FillObjectStorage(void)
76 __objectStorageSize = 0;
77 for (const sari2::QRCodeRecognitionInfo *o = __qrCodeRecognizer.objectsBegin(), *e = __qrCodeRecognizer.objectsEnd(); o != e; ++o)
79 Tizen::Uix::Vision::QrCodeObject& to = __objectStorage[__objectStorageSize++];
80 _QrCodeObjectImpl::GetInstance(&to)->SetSariPointer(*o);
85 QrCodeObject* _QrCodeRecognizerImpl::QRCodeObjectsBegin(void)
87 return __objectStorage;
91 QrCodeObject* _QrCodeRecognizerImpl::QRCodeObjectsEnd(void)
93 return __objectStorage + __objectStorageSize;
96 int _QrCodeRecognizerImpl::GetRecognizedObjectsCount(void)
98 return __objectStorageSize;
102 _QrCodeRecognizerImpl::GetQrCodeObject(int index)
105 if (index < __objectStorageSize)
107 return &__objectStorage[index];
111 SetLastResult(E_INVALID_ARG);
116 _QrCodeRecognizerImpl* _QrCodeRecognizerImpl::GetInstance(QrCodeRecognizer* pQrRecognizer)
118 return pQrRecognizer->__pQrCodeRecognizerImpl;
121 const _QrCodeRecognizerImpl* _QrCodeRecognizerImpl::GetInstance(const QrCodeRecognizer* pQrRecognizer)
123 return pQrRecognizer->__pQrCodeRecognizerImpl;
127 _QrCodeRecognizerImpl::Init(void)
129 return __qrCodeRecognizer.init();
133 _QrCodeRecognizerImpl::Destroy(void)
135 return __qrCodeRecognizer.destroy();
138 } } } //Tizen::Uix::Vision