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_QrCodeGeneratorImpl.h"
20 namespace Tizen { namespace Uix { namespace Vision
23 _QrCodeGeneratorImpl::_QrCodeGeneratorImpl(void)
28 _QrCodeGeneratorImpl::~_QrCodeGeneratorImpl(void)
34 _QrCodeGeneratorImpl::Encode(const char* message, QrCodeMode mode, QrCodeErrorCorrectionLevel error_level, bool compatibility)
36 sari2::QRCodeMode sariMode(sari2::QR_MODE_UTF8);
37 sari2::QRCodeErrorCorrectionLevel errorLevel(sari2::QR_ECL_Q);
41 case Tizen::Uix::Vision::QR_CODE_MODE_ALPHANUMERIC:
42 sariMode = sari2::QR_MODE_ALPHANUMERIC; break;
43 case Tizen::Uix::Vision::QR_CODE_MODE_BYTE:
44 sariMode = sari2::QR_MODE_BYTE; break;
45 case Tizen::Uix::Vision::QR_CODE_MODE_UTF8:
46 sariMode = sari2::QR_MODE_UTF8; break;
53 case Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_H:
54 errorLevel= sari2::QR_ECL_H; break;
55 case Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_L:
56 errorLevel = sari2::QR_ECL_L; break;
57 case Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_M:
58 errorLevel = sari2::QR_ECL_M; break;
59 case Tizen::Uix::Vision::QR_CODE_ERROR_CORRECTION_LEVEL_Q:
60 errorLevel = sari2::QR_ECL_Q; break;
64 return __qrCodeGenerator.encode(message, sariMode, errorLevel, compatibility);
68 _QrCodeGeneratorImpl::GetSize(int& width, int& height)
70 return __qrCodeGenerator.getSize((unsigned int&)width, (unsigned int&)height);
74 _QrCodeGeneratorImpl::SaveToFile(const Tizen::Base::String& imagepath, Tizen::Media::ImageFormat imageFormat, int& width, int& height)
76 if(!GetSize(width, height))
78 SetLastResult(E_INVALID_ARG);
82 unsigned char* grayBuffer = new unsigned char[(width * height * 3) >> 1];
83 if(!SaveToBuffer(grayBuffer))
85 SetLastResult(E_OPERATION_FAILED); //No proper error returned from SaveToBuffer() Api.
89 memset(grayBuffer + width * height, 128, (width * height) >> 1);
90 Tizen::Media::ImageBuffer imBuf;
91 result r = imBuf.Construct(width, height, Tizen::Media::MEDIA_PIXEL_FORMAT_YUV420P, grayBuffer, (width * height * 3) >> 1);
99 r = imBuf.EncodeToFile(imagepath, imageFormat, true);
110 _QrCodeGeneratorImpl::SaveToBuffer(unsigned char* image)
112 return __qrCodeGenerator.saveToBuffer(image);
115 _QrCodeGeneratorImpl*
116 _QrCodeGeneratorImpl::GetInstance(QrCodeGenerator* pQrGenerator)
118 return pQrGenerator->__pQrCodeGeneratorImpl;
121 const _QrCodeGeneratorImpl*
122 _QrCodeGeneratorImpl::GetInstance(const QrCodeGenerator* pQrGenerator)
124 return pQrGenerator->__pQrCodeGeneratorImpl;
127 } } } //Tizen::Uix::Vision