Latest update at Qt based ZXing wrapper => QZXing V1.2. Supports Windows Mingw compiler, Symbian, Maemo-Harmattan.
By V1.2 support to Aztec codes is added. It now fully supports Qt Quick. Symbian Examples are updated to comply with the changes. git-svn-id: https://zxing.googlecode.com/svn/trunk@2296 59b500cc-1b3d-0410-9834-0bbf25fbcc57
|
@ -1,7 +1,8 @@
|
|||
#ifndef QZXING_GLOBAL_H
|
||||
#define QZXING_GLOBAL_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
#include <QtCore>
|
||||
#include <qglobal.h>
|
||||
|
||||
#if defined(QZXING_LIBRARY)
|
||||
# define QZXINGSHARED_EXPORT Q_DECL_EXPORT
|
||||
|
|
|
@ -32,7 +32,8 @@ public:
|
|||
DecoderFormat_EAN_13 = 32,
|
||||
DecoderFormat_CODE_128 = 64,
|
||||
DecoderFormat_CODE_39 = 128,
|
||||
DecoderFormat_ITF = 256
|
||||
DecoderFormat_ITF = 256,
|
||||
DecoderFormat_Aztec = 512
|
||||
} ;
|
||||
typedef unsigned int DecoderFormatType;
|
||||
|
||||
|
@ -49,7 +50,7 @@ public:
|
|||
#if QT_VERSION >= 0x040700
|
||||
static void registerQMLTypes()
|
||||
{
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 0, "QZXing");
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -60,6 +61,19 @@ public slots:
|
|||
*/
|
||||
QString decodeImage(QImage image);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML
|
||||
*/
|
||||
QString decodeImageQML(QObject *item);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML. Able to set the decoding
|
||||
* of a portion of the image.
|
||||
*/
|
||||
QString decodeSubImageQML(QObject* item,
|
||||
const double offsetX = 0 , const double offsetY = 0,
|
||||
const double width = 0, const double height = 0);
|
||||
|
||||
signals:
|
||||
void decodingStarted();
|
||||
void decodingFinished(bool succeeded);
|
||||
|
@ -68,6 +82,7 @@ signals:
|
|||
private:
|
||||
void* decoder;
|
||||
DecoderFormatType supportedFormats;
|
||||
QObject* imageHandler;
|
||||
};
|
||||
|
||||
#endif // QZXING_H
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
libQZXing.rar is compressed to save space. Decompress to use.
|
|
@ -32,7 +32,8 @@ public:
|
|||
DecoderFormat_EAN_13 = 32,
|
||||
DecoderFormat_CODE_128 = 64,
|
||||
DecoderFormat_CODE_39 = 128,
|
||||
DecoderFormat_ITF = 256
|
||||
DecoderFormat_ITF = 256,
|
||||
DecoderFormat_Aztec = 512
|
||||
} ;
|
||||
typedef unsigned int DecoderFormatType;
|
||||
|
||||
|
@ -49,7 +50,7 @@ public:
|
|||
#if QT_VERSION >= 0x040700
|
||||
static void registerQMLTypes()
|
||||
{
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 0, "QZXing");
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -60,6 +61,19 @@ public slots:
|
|||
*/
|
||||
QString decodeImage(QImage image);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML
|
||||
*/
|
||||
QString decodeImageQML(QObject *item);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML. Able to set the decoding
|
||||
* of a portion of the image.
|
||||
*/
|
||||
QString decodeSubImageQML(QObject* item,
|
||||
const double offsetX = 0 , const double offsetY = 0,
|
||||
const double width = 0, const double height = 0);
|
||||
|
||||
signals:
|
||||
void decodingStarted();
|
||||
void decodingFinished(bool succeeded);
|
||||
|
@ -68,6 +82,7 @@ signals:
|
|||
private:
|
||||
void* decoder;
|
||||
DecoderFormatType supportedFormats;
|
||||
QObject* imageHandler;
|
||||
};
|
||||
|
||||
#endif // QZXING_H
|
||||
|
|
|
@ -32,7 +32,8 @@ public:
|
|||
DecoderFormat_EAN_13 = 32,
|
||||
DecoderFormat_CODE_128 = 64,
|
||||
DecoderFormat_CODE_39 = 128,
|
||||
DecoderFormat_ITF = 256
|
||||
DecoderFormat_ITF = 256,
|
||||
DecoderFormat_Aztec = 512
|
||||
} ;
|
||||
typedef unsigned int DecoderFormatType;
|
||||
|
||||
|
@ -49,7 +50,7 @@ public:
|
|||
#if QT_VERSION >= 0x040700
|
||||
static void registerQMLTypes()
|
||||
{
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 0, "QZXing");
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -60,6 +61,19 @@ public slots:
|
|||
*/
|
||||
QString decodeImage(QImage image);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML
|
||||
*/
|
||||
QString decodeImageQML(QObject *item);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML. Able to set the decoding
|
||||
* of a portion of the image.
|
||||
*/
|
||||
QString decodeSubImageQML(QObject* item,
|
||||
const double offsetX = 0 , const double offsetY = 0,
|
||||
const double width = 0, const double height = 0);
|
||||
|
||||
signals:
|
||||
void decodingStarted();
|
||||
void decodingFinished(bool succeeded);
|
||||
|
@ -68,6 +82,7 @@ signals:
|
|||
private:
|
||||
void* decoder;
|
||||
DecoderFormatType supportedFormats;
|
||||
QObject* imageHandler;
|
||||
};
|
||||
|
||||
#endif // QZXING_H
|
||||
|
|
BIN
symbian/QZXing/binary/Qt_4.7.4_Desktop_Mingw/QZXing1.dll
Normal file
|
@ -1 +0,0 @@
|
|||
QZXing1.rar is compressed to save space. Decompress to use.
|
|
@ -47,7 +47,7 @@ FocusScope {
|
|||
|
||||
property alias whiteBalance : wbModesButton.value
|
||||
property alias flashMode : flashModesButton.value
|
||||
property alias exposureCompensation : exposureCompensationButton.value
|
||||
//property alias exposureCompensation : exposureCompensationButton.value
|
||||
|
||||
property int buttonsPanelWidth: buttonPaneShadow.width
|
||||
|
||||
|
@ -84,7 +84,7 @@ FocusScope {
|
|||
}
|
||||
|
||||
CameraButton {
|
||||
text: "Capture"
|
||||
text: "Decode"
|
||||
onClicked: camera.captureImage()
|
||||
}
|
||||
|
||||
|
@ -147,9 +147,9 @@ FocusScope {
|
|||
}
|
||||
}
|
||||
|
||||
ExposureCompensationButton {
|
||||
id : exposureCompensationButton
|
||||
}
|
||||
// ExposureCompensationButton {
|
||||
// id : exposureCompensationButton
|
||||
// }
|
||||
|
||||
CameraButton {
|
||||
text: "View"
|
23
symbian/QZXing/examples/QMLBarcodeScanner/MessageDialog.qml
Normal file
|
@ -0,0 +1,23 @@
|
|||
import QtQuick 1.1
|
||||
import com.nokia.symbian 1.1
|
||||
|
||||
CommonDialog {
|
||||
id: dialog
|
||||
titleText: "Decoded message"
|
||||
//titleIcon: "images/QrButton_toolbar.svg"
|
||||
buttonTexts: ["OK"]
|
||||
|
||||
property alias text: messageLabel.text
|
||||
|
||||
content: Rectangle {
|
||||
height: messageLabel.height
|
||||
width: messageLabel.width
|
||||
color: "#ff000000"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Text{
|
||||
id: messageLabel
|
||||
color: "white"
|
||||
}
|
||||
}
|
||||
}
|
62
symbian/QZXing/examples/QMLBarcodeScanner/PhotoPreview.qml
Normal file
|
@ -0,0 +1,62 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** All rights reserved.
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the examples of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** You may use this file under the terms of the BSD license as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
|
||||
** the names of its contributors may be used to endorse or promote
|
||||
** products derived from this software without specific prior written
|
||||
** permission.
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import Qt 4.7
|
||||
import QtMultimediaKit 1.1
|
||||
|
||||
Item {
|
||||
property alias source : preview.source
|
||||
signal closed
|
||||
|
||||
Image {
|
||||
id: preview
|
||||
anchors.fill : parent
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
parent.closed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
TEMPLATE=app
|
||||
|
||||
VERSION = 1.1.0
|
||||
|
||||
QT += declarative network
|
||||
|
||||
!maemo5 {
|
||||
contains(QT_CONFIG, opengl) {
|
||||
# QT += opengl
|
||||
}
|
||||
}
|
||||
|
||||
win32 {
|
||||
#required by Qt SDK to resolve Mobility libraries
|
||||
CONFIG+=mobility
|
||||
MOBILITY+=multimedia
|
||||
}
|
||||
|
||||
SOURCES += $$PWD/qmlcamera.cpp
|
||||
!mac:TARGET = QMLBarcodeReader
|
||||
else:TARGET = QMLBarcodeReader
|
||||
|
||||
RESOURCES += declarative-camera.qrc
|
||||
|
||||
symbian {
|
||||
TARGET.CAPABILITY = UserEnvironment NetworkServices Location ReadUserData WriteUserData
|
||||
TARGET.EPOCHEAPSIZE = 0x20000 0x3000000
|
||||
|
||||
LIBS += -lqzxing
|
||||
|
||||
customrules.pkg_prerules = \
|
||||
";QZXing" \
|
||||
"@\"$$(EPOCROOT)Epoc32/InstallToDevice/QZXing_selfsigned.sis\",(0xE618743C)"\
|
||||
" "
|
||||
DEPLOYMENT += customrules
|
||||
}
|
||||
|
||||
ICON = QMLBarcodeReader.svg
|
|
@ -0,0 +1,22 @@
|
|||
// ============================================================================
|
||||
// * Generated by qmake (2.01a) (Qt 4.7.4) on: 2012-05-19T19:03:01
|
||||
// * This file is generated by qmake and should not be modified by the
|
||||
// * user.
|
||||
// ============================================================================
|
||||
|
||||
CHARACTER_SET UTF8
|
||||
#include <appinfo.rh>
|
||||
#include "QMLBarcodeReader.loc"
|
||||
|
||||
RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
|
||||
{
|
||||
short_caption = STRING_r_short_caption;
|
||||
caption_and_icon =
|
||||
CAPTION_AND_ICON_INFO
|
||||
{
|
||||
caption = STRING_r_caption;
|
||||
number_of_icons = 0;
|
||||
icon_file = "\\resource\\apps\\QMLBarcodeReader.mif";
|
||||
};
|
||||
}
|
||||
|
BIN
symbian/QZXing/examples/QMLBarcodeScanner/QMLBarcodeReader.sis
Normal file
426
symbian/QZXing/examples/QMLBarcodeScanner/QMLBarcodeReader.svg
Normal file
After Width: | Height: | Size: 38 KiB |
|
@ -1,52 +0,0 @@
|
|||
# Add more folders to ship with the application, here
|
||||
folder_01.source = qml/QMLBarcodeScanner
|
||||
folder_01.target = qml
|
||||
DEPLOYMENTFOLDERS = folder_01
|
||||
|
||||
# Additional import path used to resolve QML modules in Creator's code model
|
||||
QML_IMPORT_PATH =
|
||||
|
||||
symbian:TARGET.UID3 = 0xE35E8B99
|
||||
|
||||
# Smart Installer package's UID
|
||||
# This UID is from the protected range and therefore the package will
|
||||
# fail to install if self-signed. By default qmake uses the unprotected
|
||||
# range value if unprotected UID is defined for the application and
|
||||
# 0x2002CCCF value if protected UID is given to the application
|
||||
#symbian:DEPLOYMENT.installer_header = 0x2002CCCF
|
||||
|
||||
# Allow network access on Symbian
|
||||
#symbian:TARGET.CAPABILITY += NetworkServices
|
||||
|
||||
# If your application uses the Qt Mobility libraries, uncomment the following
|
||||
# lines and add the respective components to the MOBILITY variable.
|
||||
# CONFIG += mobility
|
||||
# MOBILITY +=
|
||||
|
||||
# Speed up launching on MeeGo/Harmattan when using applauncherd daemon
|
||||
# CONFIG += qdeclarative-boostable
|
||||
|
||||
# Add dependency to Symbian components
|
||||
# CONFIG += qt-components
|
||||
|
||||
# The .cpp file which was generated for your project. Feel free to hack it.
|
||||
SOURCES += main.cpp
|
||||
|
||||
symbian{
|
||||
LIBS += -lqzxing
|
||||
customrules.pkg_prerules = \
|
||||
";QZXing" \
|
||||
"@\"$$(EPOCROOT)Epoc32/InstallToDevice/QZXing_selfsigned.sis\",(0xE618743C)"\
|
||||
" "
|
||||
DEPLOYMENT += customrules
|
||||
}
|
||||
|
||||
win32{
|
||||
LIBS += -LC:/QtSDKProjects/QMLBarcodeScanner/Qt_4.7.4_Desktop_Mingw \
|
||||
-lQZXing
|
||||
}
|
||||
|
||||
# Please do not modify the following two lines. Required for deployment.
|
||||
include(qmlapplicationviewer/qmlapplicationviewer.pri)
|
||||
qtcAddDeployment()
|
||||
|
|
@ -1,716 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by Qt Creator 2.3.1, 2011-11-16T18:00:58. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="bool" key="AlignAssignments">false</value>
|
||||
<value type="QString" key="CurrentFallback">CppGlobal</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">false</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">1</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">System</value>
|
||||
<value type="QString" key="EditorConfiguration.CurrentFallback">Project</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.SmartBackspace">false</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.Tab.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="bool" key="AutoIndent">true</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="QString" key="CurrentFallback">CppGlobal</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="int" key="PaddingMode">1</value>
|
||||
<value type="bool" key="SmartBackspace">false</value>
|
||||
<value type="bool" key="SpacesForTabs">true</value>
|
||||
<value type="int" key="TabKeyBehavior">0</value>
|
||||
<value type="int" key="TabSize">8</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.Tab.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="bool" key="AutoIndent">true</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="QString" key="CurrentFallback">QmlJSGlobal</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="int" key="PaddingMode">1</value>
|
||||
<value type="bool" key="SmartBackspace">false</value>
|
||||
<value type="bool" key="SpacesForTabs">true</value>
|
||||
<value type="int" key="TabKeyBehavior">0</value>
|
||||
<value type="int" key="TabSize">8</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.Tab.Count">2</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Symbian Device</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Symbian Device</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.S60DeviceTarget</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.7.4 for Symbian Anna (Qt SDK) Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">28</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.7.4 for Symbian Anna (Qt SDK) Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">28</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.7.3 for Symbian^1 (Qt SDK) (2) Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">5</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.3">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.7.3 for Symbian^1 (Qt SDK) (2) Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">5</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.4">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.7.3 for S60 5th Edition (Qt SDK) Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">30</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.5">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.7.3 for S60 5th Edition (Qt SDK) Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">30</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.6">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.6.3 for Symbian^1 (Qt SDK) (2) Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">15</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.7">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.6.3 for Symbian^1 (Qt SDK) (2) Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">15</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.8">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.6.3 for Symbian^1 (Qt SDK) Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">31</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.9">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">Qt4ProjectManager.ToolChain.GCCE:C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe.arm-symbian-device-elf-32bit.C:/QtSDK/pythongdb/python_2.7based/gdb-arm-none-symbianelf.exe</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.6.3 for Symbian^1 (Qt SDK) Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/QtSDKProjects/QZXing/examples/QMLBarcodeScanner</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">31</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">10</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Create SIS Package</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60SignBuildStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.S60CreatePackageStep.Certificate"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.S60CreatePackageStep.Keyfile"></value>
|
||||
<value type="int" key="Qt4ProjectManager.S60CreatePackageStep.SignMode">0</value>
|
||||
<value type="bool" key="Qt4ProjectManager.S60CreatorPackageStep.SmartInstaller">false</value>
|
||||
<value type="bool" key="Qt4ProjectManager.S60CreatorPackageStep.SuppressPatchWarningDialog">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60DeployStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy QMLBarcodeScanner to Symbian device</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60DeployConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.S60DeployConfiguration.CommunicationChannel">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.S60DeployConfiguration.DeviceAddress"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.S60DeployConfiguration.DevicePort">65029</value>
|
||||
<value type="QChar" key="Qt4ProjectManager.S60DeployConfiguration.InstallationDriveLetter">C</value>
|
||||
<value type="QString" key="Qt4ProjectManager.S60DeployConfiguration.SerialPortName"></value>
|
||||
<value type="bool" key="Qt4ProjectManager.S60DeployConfiguration.SilentInstall">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
|
||||
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">QMLBarcodeScanner on Symbian Device</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60DeviceRunConfiguration</value>
|
||||
<value type="QString" key="Qt4ProjectManager.S60DeviceRunConfiguration.CommandLineArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.S60DeviceRunConfiguration.ProFile">QMLBarcodeScanner.pro</value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
|
||||
<value type="QString">{167d5df2-461a-41e0-a9f8-c131845c1f19}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">10</value>
|
||||
</data>
|
||||
</qtcreator>
|
|
@ -1,345 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="612px" height="792px" viewBox="0 0 612 792" enable-background="new 0 0 612 792" xml:space="preserve">
|
||||
<image overflow="visible" width="135" height="135" xlink:href="data:image/png;base64,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" transform="matrix(0.9999 0 0 0.9999 239 329)">
|
||||
</image>
|
||||
</svg>
|
Before Width: | Height: | Size: 26 KiB |
|
@ -1,201 +0,0 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
import Qt 4.7
|
||||
import QtMultimediaKit 1.1
|
||||
import QZXing 1.0
|
||||
import QZXing 1.2
|
||||
|
||||
Rectangle {
|
||||
id : cameraUI
|
||||
|
@ -57,88 +57,34 @@ Rectangle {
|
|||
|
||||
flashMode: stillControls.flashMode
|
||||
whiteBalanceMode: stillControls.whiteBalance
|
||||
exposureCompensation: stillControls.exposureCompensation
|
||||
// exposureCompensation: stillControls.exposureCompensation
|
||||
|
||||
onImageCaptured : {
|
||||
decoder.decodeImage(preview);
|
||||
imageToDecode.source = preview
|
||||
decoder.decodeImageQML(imageToDecode);
|
||||
}
|
||||
}
|
||||
|
||||
Image{
|
||||
id: imageToDecode
|
||||
visible: false
|
||||
}
|
||||
|
||||
CaptureControls {
|
||||
id: stillControls
|
||||
anchors.fill: parent
|
||||
camera: camera
|
||||
}
|
||||
|
||||
MessageDialog{
|
||||
id:dialog
|
||||
}
|
||||
|
||||
QZXing{
|
||||
id: decoder
|
||||
onTagFound: {
|
||||
messageBox.setText(tag)
|
||||
messageBox.state = "visible"
|
||||
}
|
||||
|
||||
function enableQrCodeAndEAN()
|
||||
{
|
||||
setDecoder(DecoderFormat_QR_CODE | DecoderFormat_EAN_13);
|
||||
dialog.text = tag
|
||||
dialog.open();
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
id: messageBox
|
||||
anchors.left: cameraUI.left
|
||||
anchors.leftMargin: 10
|
||||
anchors.right: cameraUI.right
|
||||
anchors.rightMargin: 10
|
||||
y: cameraUI.height / 4
|
||||
height: cameraUI.height/2
|
||||
|
||||
state: "hidden"
|
||||
|
||||
function setText(str)
|
||||
{
|
||||
textArea.text = str;
|
||||
}
|
||||
|
||||
Text{
|
||||
id: textArea
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
border.width: 2
|
||||
width: tagLabel.width
|
||||
height: tagLabel.height
|
||||
anchors.bottom: messageBox.bottom
|
||||
anchors.bottomMargin: 5
|
||||
anchors.right: messageBox.right
|
||||
anchors.rightMargin: 5
|
||||
|
||||
Text{
|
||||
id: tagLabel
|
||||
text: "close"
|
||||
}
|
||||
MouseArea{
|
||||
anchors.fill: parent
|
||||
onClicked: messageBox.state = "hidden"
|
||||
}
|
||||
}
|
||||
|
||||
states:[
|
||||
State{
|
||||
name: "visible"
|
||||
PropertyChanges {
|
||||
target: messageBox
|
||||
opacity: 1
|
||||
}
|
||||
},
|
||||
State{
|
||||
name: "hidden"
|
||||
PropertyChanges {
|
||||
target: messageBox
|
||||
opacity: 0
|
||||
}
|
||||
}
|
||||
]
|
||||
Behavior on opacity{NumberAnimation{duration:100}}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
/* File generated by QtCreator */
|
||||
|
||||
import QmlProject 1.0
|
||||
|
||||
Project {
|
||||
/* Include .qml, .js, and image files from current directory and subdirectories */
|
||||
QmlFiles {
|
||||
directory: "."
|
||||
}
|
||||
JavaScriptFiles {
|
||||
directory: "."
|
||||
}
|
||||
ImageFiles {
|
||||
directory: "."
|
||||
}
|
||||
/* List of plugin directories passed to QML runtime */
|
||||
// importPaths: [ "../exampleplugin" ]
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>declarative-camera.qml</file>
|
||||
<file>CameraButton.qml</file>
|
||||
<file>CameraPropertyPopup.qml</file>
|
||||
<file>CameraPropertyButton.qml</file>
|
||||
<file>CaptureControls.qml</file>
|
||||
<file>ExposureCompensationButton.qml</file>
|
||||
<file>FlickableList.qml</file>
|
||||
<file>FocusButton.qml</file>
|
||||
<file>PhotoPreview.qml</file>
|
||||
<file>ZoomControl.qml</file>
|
||||
<file>images/camera_auto_mode.png</file>
|
||||
<file>images/camera_camera_setting.png</file>
|
||||
<file>images/camera_flash_auto.png</file>
|
||||
<file>images/camera_flash_fill.png</file>
|
||||
<file>images/camera_flash_off.png</file>
|
||||
<file>images/camera_flash_redeye.png</file>
|
||||
<file>images/camera_white_balance_cloudy.png</file>
|
||||
<file>images/camera_white_balance_flourescent.png</file>
|
||||
<file>images/camera_white_balance_incandescent.png</file>
|
||||
<file>images/camera_white_balance_sunny.png</file>
|
||||
<file>images/toolbutton.png</file>
|
||||
<file>images/toolbutton.sci</file>
|
||||
<file>MessageDialog.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
Before Width: | Height: | Size: 778 B After Width: | Height: | Size: 778 B |
Before Width: | Height: | Size: 717 B After Width: | Height: | Size: 717 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 610 B After Width: | Height: | Size: 610 B |
Before Width: | Height: | Size: 717 B After Width: | Height: | Size: 717 B |
Before Width: | Height: | Size: 945 B After Width: | Height: | Size: 945 B |
Before Width: | Height: | Size: 625 B After Width: | Height: | Size: 625 B |
Before Width: | Height: | Size: 554 B After Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 600 B After Width: | Height: | Size: 600 B |
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
@ -1,17 +0,0 @@
|
|||
#include <QtGui/QApplication>
|
||||
#include <QZXing.h>
|
||||
#include "qmlapplicationviewer.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QScopedPointer<QApplication> app(createApplication(argc, argv));
|
||||
QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
|
||||
|
||||
QZXing::registerQMLTypes();
|
||||
|
||||
viewer->setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
|
||||
viewer->setMainQmlFile(QLatin1String("qml/QMLBarcodeScanner/declarative-camera.qml"));
|
||||
viewer->showExpanded();
|
||||
|
||||
return app->exec();
|
||||
}
|
|
@ -1,200 +0,0 @@
|
|||
// checksum 0x78c version 0x60010
|
||||
/*
|
||||
This file was generated by the Qt Quick Application wizard of Qt Creator.
|
||||
QmlApplicationViewer is a convenience class containing mobile device specific
|
||||
code such as screen orientation handling. Also QML paths and debugging are
|
||||
handled here.
|
||||
It is recommended not to modify this file, since newer versions of Qt Creator
|
||||
may offer an updated version of it.
|
||||
*/
|
||||
|
||||
#include "qmlapplicationviewer.h"
|
||||
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtDeclarative/QDeclarativeComponent>
|
||||
#include <QtDeclarative/QDeclarativeEngine>
|
||||
#include <QtDeclarative/QDeclarativeContext>
|
||||
#include <QtGui/QApplication>
|
||||
|
||||
#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
|
||||
|
||||
#ifdef HARMATTAN_BOOSTER
|
||||
#include <MDeclarativeCache>
|
||||
#endif
|
||||
|
||||
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
|
||||
|
||||
#include <qt_private/qdeclarativedebughelper_p.h>
|
||||
|
||||
#if !defined(NO_JSDEBUGGER)
|
||||
#include <jsdebuggeragent.h>
|
||||
#endif
|
||||
#if !defined(NO_QMLOBSERVER)
|
||||
#include <qdeclarativeviewobserver.h>
|
||||
#endif
|
||||
|
||||
// Enable debugging before any QDeclarativeEngine is created
|
||||
struct QmlJsDebuggingEnabler
|
||||
{
|
||||
QmlJsDebuggingEnabler()
|
||||
{
|
||||
QDeclarativeDebugHelper::enableDebugging();
|
||||
}
|
||||
};
|
||||
|
||||
// Execute code in constructor before first QDeclarativeEngine is instantiated
|
||||
static QmlJsDebuggingEnabler enableDebuggingHelper;
|
||||
|
||||
#endif // QMLJSDEBUGGER
|
||||
|
||||
class QmlApplicationViewerPrivate
|
||||
{
|
||||
QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {}
|
||||
|
||||
QString mainQmlFile;
|
||||
QDeclarativeView *view;
|
||||
friend class QmlApplicationViewer;
|
||||
QString adjustPath(const QString &path);
|
||||
};
|
||||
|
||||
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
|
||||
{
|
||||
#ifdef Q_OS_UNIX
|
||||
#ifdef Q_OS_MAC
|
||||
if (!QDir::isAbsolutePath(path))
|
||||
return QCoreApplication::applicationDirPath()
|
||||
+ QLatin1String("/../Resources/") + path;
|
||||
#else
|
||||
QString pathInInstallDir;
|
||||
const QString applicationDirPath = QCoreApplication::applicationDirPath();
|
||||
pathInInstallDir = QString::fromAscii("%1/../%2").arg(applicationDirPath, path);
|
||||
|
||||
if (QFileInfo(pathInInstallDir).exists())
|
||||
return pathInInstallDir;
|
||||
#endif
|
||||
#endif
|
||||
return path;
|
||||
}
|
||||
|
||||
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
|
||||
: QDeclarativeView(parent)
|
||||
, d(new QmlApplicationViewerPrivate(this))
|
||||
{
|
||||
connect(engine(), SIGNAL(quit()), SLOT(close()));
|
||||
setResizeMode(QDeclarativeView::SizeRootObjectToView);
|
||||
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
|
||||
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
|
||||
#if !defined(NO_JSDEBUGGER)
|
||||
new QmlJSDebugger::JSDebuggerAgent(d->view->engine());
|
||||
#endif
|
||||
#if !defined(NO_QMLOBSERVER)
|
||||
new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
QmlApplicationViewer::QmlApplicationViewer(QDeclarativeView *view, QWidget *parent)
|
||||
: QDeclarativeView(parent)
|
||||
, d(new QmlApplicationViewerPrivate(view))
|
||||
{
|
||||
connect(view->engine(), SIGNAL(quit()), view, SLOT(close()));
|
||||
view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
|
||||
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
|
||||
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
|
||||
#if !defined(NO_JSDEBUGGER)
|
||||
new QmlJSDebugger::JSDebuggerAgent(d->view->engine());
|
||||
#endif
|
||||
#if !defined(NO_QMLOBSERVER)
|
||||
new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
QmlApplicationViewer::~QmlApplicationViewer()
|
||||
{
|
||||
delete d;
|
||||
}
|
||||
|
||||
QmlApplicationViewer *QmlApplicationViewer::create()
|
||||
{
|
||||
#ifdef HARMATTAN_BOOSTER
|
||||
return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0);
|
||||
#else
|
||||
return new QmlApplicationViewer();
|
||||
#endif
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::setMainQmlFile(const QString &file)
|
||||
{
|
||||
d->mainQmlFile = d->adjustPath(file);
|
||||
d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::addImportPath(const QString &path)
|
||||
{
|
||||
d->view->engine()->addImportPath(d->adjustPath(path));
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
|
||||
{
|
||||
#if defined(Q_OS_SYMBIAN)
|
||||
// If the version of Qt on the device is < 4.7.2, that attribute won't work
|
||||
if (orientation != ScreenOrientationAuto) {
|
||||
const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
|
||||
if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
|
||||
qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif // Q_OS_SYMBIAN
|
||||
|
||||
Qt::WidgetAttribute attribute;
|
||||
switch (orientation) {
|
||||
#if QT_VERSION < 0x040702
|
||||
// Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
|
||||
case ScreenOrientationLockPortrait:
|
||||
attribute = static_cast<Qt::WidgetAttribute>(128);
|
||||
break;
|
||||
case ScreenOrientationLockLandscape:
|
||||
attribute = static_cast<Qt::WidgetAttribute>(129);
|
||||
break;
|
||||
default:
|
||||
case ScreenOrientationAuto:
|
||||
attribute = static_cast<Qt::WidgetAttribute>(130);
|
||||
break;
|
||||
#else // QT_VERSION < 0x040702
|
||||
case ScreenOrientationLockPortrait:
|
||||
attribute = Qt::WA_LockPortraitOrientation;
|
||||
break;
|
||||
case ScreenOrientationLockLandscape:
|
||||
attribute = Qt::WA_LockLandscapeOrientation;
|
||||
break;
|
||||
default:
|
||||
case ScreenOrientationAuto:
|
||||
attribute = Qt::WA_AutoOrientation;
|
||||
break;
|
||||
#endif // QT_VERSION < 0x040702
|
||||
};
|
||||
setAttribute(attribute, true);
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::showExpanded()
|
||||
{
|
||||
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
|
||||
d->view->showFullScreen();
|
||||
#elif defined(Q_WS_MAEMO_5)
|
||||
d->view->showMaximized();
|
||||
#else
|
||||
d->view->show();
|
||||
#endif
|
||||
}
|
||||
|
||||
QApplication *createApplication(int &argc, char **argv)
|
||||
{
|
||||
#ifdef HARMATTAN_BOOSTER
|
||||
return MDeclarativeCache::qApplication(argc, argv);
|
||||
#else
|
||||
return new QApplication(argc, argv);
|
||||
#endif
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
// checksum 0x82ed version 0x60010
|
||||
/*
|
||||
This file was generated by the Qt Quick Application wizard of Qt Creator.
|
||||
QmlApplicationViewer is a convenience class containing mobile device specific
|
||||
code such as screen orientation handling. Also QML paths and debugging are
|
||||
handled here.
|
||||
It is recommended not to modify this file, since newer versions of Qt Creator
|
||||
may offer an updated version of it.
|
||||
*/
|
||||
|
||||
#ifndef QMLAPPLICATIONVIEWER_H
|
||||
#define QMLAPPLICATIONVIEWER_H
|
||||
|
||||
#include <QtDeclarative/QDeclarativeView>
|
||||
|
||||
class QmlApplicationViewer : public QDeclarativeView
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum ScreenOrientation {
|
||||
ScreenOrientationLockPortrait,
|
||||
ScreenOrientationLockLandscape,
|
||||
ScreenOrientationAuto
|
||||
};
|
||||
|
||||
explicit QmlApplicationViewer(QWidget *parent = 0);
|
||||
virtual ~QmlApplicationViewer();
|
||||
|
||||
static QmlApplicationViewer *create();
|
||||
|
||||
void setMainQmlFile(const QString &file);
|
||||
void addImportPath(const QString &path);
|
||||
|
||||
// Note that this will only have an effect on Symbian and Fremantle.
|
||||
void setOrientation(ScreenOrientation orientation);
|
||||
|
||||
void showExpanded();
|
||||
|
||||
private:
|
||||
explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent);
|
||||
class QmlApplicationViewerPrivate *d;
|
||||
};
|
||||
|
||||
QApplication *createApplication(int &argc, char **argv);
|
||||
|
||||
#endif // QMLAPPLICATIONVIEWER_H
|
|
@ -1,146 +0,0 @@
|
|||
# checksum 0x368d version 0x60010
|
||||
# This file was generated by the Qt Quick Application wizard of Qt Creator.
|
||||
# The code below adds the QmlApplicationViewer to the project and handles the
|
||||
# activation of QML debugging.
|
||||
# It is recommended not to modify this file, since newer versions of Qt Creator
|
||||
# may offer an updated version of it.
|
||||
|
||||
QT += declarative
|
||||
|
||||
SOURCES += $$PWD/qmlapplicationviewer.cpp
|
||||
HEADERS += $$PWD/qmlapplicationviewer.h
|
||||
INCLUDEPATH += $$PWD
|
||||
|
||||
# Include JS debugger library if QMLJSDEBUGGER_PATH is set
|
||||
!isEmpty(QMLJSDEBUGGER_PATH) {
|
||||
include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
|
||||
} else {
|
||||
DEFINES -= QMLJSDEBUGGER
|
||||
}
|
||||
|
||||
contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) {
|
||||
DEFINES += HARMATTAN_BOOSTER
|
||||
}
|
||||
# This file was generated by an application wizard of Qt Creator.
|
||||
# The code below handles deployment to Symbian and Maemo, aswell as copying
|
||||
# of the application data to shadow build directories on desktop.
|
||||
# It is recommended not to modify this file, since newer versions of Qt Creator
|
||||
# may offer an updated version of it.
|
||||
|
||||
defineTest(qtcAddDeployment) {
|
||||
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||
item = item$${deploymentfolder}
|
||||
itemsources = $${item}.sources
|
||||
$$itemsources = $$eval($${deploymentfolder}.source)
|
||||
itempath = $${item}.path
|
||||
$$itempath= $$eval($${deploymentfolder}.target)
|
||||
export($$itemsources)
|
||||
export($$itempath)
|
||||
DEPLOYMENT += $$item
|
||||
}
|
||||
|
||||
MAINPROFILEPWD = $$PWD
|
||||
|
||||
symbian {
|
||||
isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg
|
||||
isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
|
||||
} else:win32 {
|
||||
copyCommand =
|
||||
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||
source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
|
||||
source = $$replace(source, /, \\)
|
||||
sourcePathSegments = $$split(source, \\)
|
||||
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
|
||||
target = $$replace(target, /, \\)
|
||||
!isEqual(source,$$target) {
|
||||
!isEmpty(copyCommand):copyCommand += &&
|
||||
isEqual(QMAKE_DIR_SEP, \\) {
|
||||
copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
|
||||
} else {
|
||||
source = $$replace(source, \\\\, /)
|
||||
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
|
||||
target = $$replace(target, \\\\, /)
|
||||
copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
|
||||
}
|
||||
}
|
||||
}
|
||||
!isEmpty(copyCommand) {
|
||||
copyCommand = @echo Copying application data... && $$copyCommand
|
||||
copydeploymentfolders.commands = $$copyCommand
|
||||
first.depends = $(first) copydeploymentfolders
|
||||
export(first.depends)
|
||||
export(copydeploymentfolders.commands)
|
||||
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
|
||||
}
|
||||
} else:unix {
|
||||
maemo5 {
|
||||
desktopfile.files = $${TARGET}.desktop
|
||||
desktopfile.path = /usr/share/applications/hildon
|
||||
icon.files = $${TARGET}64.png
|
||||
icon.path = /usr/share/icons/hicolor/64x64/apps
|
||||
} else:!isEmpty(MEEGO_VERSION_MAJOR) {
|
||||
desktopfile.files = $${TARGET}_harmattan.desktop
|
||||
desktopfile.path = /usr/share/applications
|
||||
icon.files = $${TARGET}80.png
|
||||
icon.path = /usr/share/icons/hicolor/80x80/apps
|
||||
} else { # Assumed to be a Desktop Unix
|
||||
copyCommand =
|
||||
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||
source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
|
||||
source = $$replace(source, \\\\, /)
|
||||
macx {
|
||||
target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
|
||||
} else {
|
||||
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
|
||||
}
|
||||
target = $$replace(target, \\\\, /)
|
||||
sourcePathSegments = $$split(source, /)
|
||||
targetFullPath = $$target/$$last(sourcePathSegments)
|
||||
!isEqual(source,$$targetFullPath) {
|
||||
!isEmpty(copyCommand):copyCommand += &&
|
||||
copyCommand += $(MKDIR) \"$$target\"
|
||||
copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
|
||||
}
|
||||
}
|
||||
!isEmpty(copyCommand) {
|
||||
copyCommand = @echo Copying application data... && $$copyCommand
|
||||
copydeploymentfolders.commands = $$copyCommand
|
||||
first.depends = $(first) copydeploymentfolders
|
||||
export(first.depends)
|
||||
export(copydeploymentfolders.commands)
|
||||
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
|
||||
}
|
||||
}
|
||||
installPrefix = /opt/$${TARGET}
|
||||
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||
item = item$${deploymentfolder}
|
||||
itemfiles = $${item}.files
|
||||
$$itemfiles = $$eval($${deploymentfolder}.source)
|
||||
itempath = $${item}.path
|
||||
$$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
|
||||
export($$itemfiles)
|
||||
export($$itempath)
|
||||
INSTALLS += $$item
|
||||
}
|
||||
|
||||
!isEmpty(desktopfile.path) {
|
||||
export(icon.files)
|
||||
export(icon.path)
|
||||
export(desktopfile.files)
|
||||
export(desktopfile.path)
|
||||
INSTALLS += icon desktopfile
|
||||
}
|
||||
|
||||
target.path = $${installPrefix}/bin
|
||||
export(target.path)
|
||||
INSTALLS += target
|
||||
}
|
||||
|
||||
export (ICON)
|
||||
export (INSTALLS)
|
||||
export (DEPLOYMENT)
|
||||
export (TARGET.EPOCHEAPSIZE)
|
||||
export (TARGET.CAPABILITY)
|
||||
export (LIBS)
|
||||
export (QMAKE_EXTRA_TARGETS)
|
||||
}
|
92
symbian/QZXing/examples/QMLBarcodeScanner/qmlcamera.cpp
Normal file
|
@ -0,0 +1,92 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** All rights reserved.
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the examples of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** You may use this file under the terms of the BSD license as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
|
||||
** the names of its contributors may be used to endorse or promote
|
||||
** products derived from this software without specific prior written
|
||||
** permission.
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QDesktopWidget>
|
||||
#include <QtDeclarative/QDeclarativeView>
|
||||
#include <QtDeclarative/QDeclarativeEngine>
|
||||
|
||||
#include <QZXing.h>
|
||||
|
||||
#if !defined(QT_NO_OPENGL)
|
||||
#include <QtOpenGL/QGLWidget>
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
||||
QZXing::registerQMLTypes();
|
||||
|
||||
#if defined (Q_WS_X11) || defined (Q_WS_MAC) || defined (Q_OS_SYMBIAN)
|
||||
//### default to using raster graphics backend for now
|
||||
bool gsSpecified = false;
|
||||
for (int i = 0; i < argc; ++i) {
|
||||
QString arg = argv[i];
|
||||
if (arg == "-graphicssystem") {
|
||||
gsSpecified = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!gsSpecified)
|
||||
QApplication::setGraphicsSystem("raster");
|
||||
#endif
|
||||
|
||||
QApplication application(argc, argv);
|
||||
const QString mainQmlApp = QLatin1String("qrc:/declarative-camera.qml");
|
||||
QDeclarativeView view;
|
||||
#if !defined(QT_NO_OPENGL) && !defined(Q_WS_MAEMO_5) && !defined(Q_WS_S60)
|
||||
view.setViewport(new QGLWidget);
|
||||
#endif
|
||||
view.setSource(QUrl(mainQmlApp));
|
||||
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
|
||||
// Qt.quit() called in embedded .qml by default only emits
|
||||
// quit() signal, so do this (optionally use Qt.exit()).
|
||||
QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit()));
|
||||
#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
|
||||
view.setGeometry(application.desktop()->screenGeometry());
|
||||
view.showFullScreen();
|
||||
#else
|
||||
view.setGeometry(QRect(100, 100, 800, 480));
|
||||
view.show();
|
||||
#endif
|
||||
return application.exec();
|
||||
}
|
||||
|
14
symbian/QZXing/examples/QQrDecoder/.gitignore
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
moc/
|
||||
obj/
|
||||
rcc/
|
||||
tmp/
|
||||
ui/
|
||||
.make.cache
|
||||
*.BAT
|
||||
*.inf
|
||||
Makefile
|
||||
*.mk
|
||||
*.loc
|
||||
*.user
|
||||
*.mmp
|
||||
*.pkg
|
|
@ -71,6 +71,7 @@ QList<QVideoFrame::PixelFormat> MyVideoSurface::supportedPixelFormats(
|
|||
{
|
||||
if (handleType == QAbstractVideoBuffer::NoHandle) {
|
||||
return QList<QVideoFrame::PixelFormat>()
|
||||
<< QVideoFrame::Format_UYVY
|
||||
<< QVideoFrame::Format_RGB32
|
||||
<< QVideoFrame::Format_ARGB32
|
||||
<< QVideoFrame::Format_ARGB32_Premultiplied
|
||||
|
|
39
symbian/QZXing/examples/QQrDecoder/Nokia_Licence.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** All rights reserved.
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the demonstration applications of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** You may use this file under the terms of the BSD license as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
|
||||
** the names of its contributors may be used to endorse or promote
|
||||
** products derived from this software without specific prior written
|
||||
** permission.
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
|
@ -153,6 +153,8 @@ QCameraControllerWidget::~QCameraControllerWidget()
|
|||
|
||||
void QCameraControllerWidget::enableCamera()
|
||||
{
|
||||
|
||||
//QVideoFrame::Format_UYVY;
|
||||
m_camera = new QCamera();
|
||||
m_camera->setCaptureMode(QCamera::CaptureStillImage);
|
||||
connect(m_camera, SIGNAL(error(QCamera::Error)), this, SLOT(error(QCamera::Error)));
|
||||
|
|
|
@ -44,7 +44,7 @@ QQrDecoder::QQrDecoder(QWidget *parent): QMainWindow(parent), decoder(this)
|
|||
|
||||
//by default all decoders available are enabled
|
||||
//decoder.setDecoder( QZXing::DecoderFormat_DATA_MATRIX);
|
||||
//decoder.setDecoder( DecoderFormat_QR_CODE | DecoderFormat_EAN_13 );
|
||||
//decoder.setDecoder( QZXing::DecoderFormat_Aztec );
|
||||
}
|
||||
|
||||
QQrDecoder::~QQrDecoder()
|
||||
|
|
|
@ -4,7 +4,7 @@ QT += core \
|
|||
gui \
|
||||
declarative
|
||||
|
||||
VERSION = 1.2.1
|
||||
VERSION = 1.3.0
|
||||
|
||||
CONFIG += mobility
|
||||
MOBILITY = multimedia #\
|
||||
|
|
22
symbian/QZXing/examples/QQrDecoder/QQrDecoder.rss
Normal file
|
@ -0,0 +1,22 @@
|
|||
// ============================================================================
|
||||
// * Generated by qmake (2.01a) (Qt 4.7.3) on: 2012-05-14T15:44:30
|
||||
// * This file is generated by qmake and should not be modified by the
|
||||
// * user.
|
||||
// ============================================================================
|
||||
|
||||
CHARACTER_SET UTF8
|
||||
#include <appinfo.rh>
|
||||
#include "QQrDecoder.loc"
|
||||
|
||||
RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
|
||||
{
|
||||
short_caption = STRING_r_short_caption;
|
||||
caption_and_icon =
|
||||
CAPTION_AND_ICON_INFO
|
||||
{
|
||||
caption = STRING_r_caption;
|
||||
number_of_icons = 1;
|
||||
icon_file = "\\resource\\apps\\QQrDecoder.mif";
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 38 KiB |
18
symbian/QZXing/examples/QQrDecoder/QQrDecoder_reg.rss
Normal file
|
@ -0,0 +1,18 @@
|
|||
// ============================================================================
|
||||
// * Generated by qmake (2.01a) (Qt 4.7.3) on: 2012-05-14T15:44:30
|
||||
// * This file is generated by qmake and should not be modified by the
|
||||
// * user.
|
||||
// ============================================================================
|
||||
|
||||
#include <QQrDecoder.rsg>
|
||||
#include <appinfo.rh>
|
||||
|
||||
UID2 KUidAppRegistrationResourceFile
|
||||
UID3 0xEF2CE79D
|
||||
|
||||
RESOURCE APP_REGISTRATION_INFO
|
||||
{
|
||||
app_file="QQrDecoder";
|
||||
localisable_resource_file="\\resource\\apps\\QQrDecoder";
|
||||
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
QQrDecoder project is developed entirely in Qt SDK + using the CPP part of the ZXing library.
|
||||
It supports the latest version of Qt in Symbian (4.7.x) and the camera is controled using the Camera APIs from Qt Mobility project.
|
||||
Thus we reasure the compatibility with future releases of Qt and the compatibility with newer device with Symbian^3, Belle and Anna (and S60 5th).
|
||||
|
||||
The project's folder contains the code as well as the an installation file in case you want try it out without compiling the project.
|
||||
|
||||
NOTE: this project, since it uses Camera APIs from Qt Mobility breaks the backward compatibility with non touch-screen devices. So this project
|
||||
can't be used at device with OS: S60 3rd.
|
||||
|
||||
== Prerequisities to compile ==
|
||||
|
||||
* Have Qt SDK installed. This will give you all the tools needed such as the Qt SDK, Qt Mobility APIs and the Qt Creator IDE.
|
||||
http://qt.nokia.com/downloads/
|
||||
|
||||
== Prerequisities to install and run to device ==
|
||||
|
||||
* Have Qt 4.7.3 (and newer) binaries installed to the device.
|
||||
* Have Qt Mobility 1.1.0 (and newer) binaries installed to the device.
|
||||
|
||||
NOTE: those binaries, if Qt SDK is installed, can be found under the path \QtSDK\Symbian\sis\Symbian^X\
|
||||
|
||||
== Importing the project ==
|
||||
|
||||
For this step, Qt Creator IDE will be used (contained in Qt SDK). The project can be imported/opened with 2 ways.
|
||||
|
||||
NOTE: The project folder must be placed under the same drive letter as the installed Qt SDK. For example "C:\QtSDK" and "C:\QtProjects\QQrDecoder"
|
||||
|
||||
# Go the the project's folder and double-click the QQrDecoder.pro file. This will result the Qt Creator to open. (This requires that Qt Creator is
|
||||
selected as the predefined program to open such files which is automatically set when installing Qt SDK.)
|
||||
# Alternatively, open Qt Creator manualy, and go under: "File" -> "Open File or Project...", go to the project's folder and select once again the
|
||||
QQrDecoder.pro.
|
||||
|
||||
Whichever step from the above you have followed, now you are led to screen named "Project Setup". Here you select the Target Platform.
|
||||
You can select "Symbian Device" to target directly for a physical device, or "Qt Simulator" to first test it to the build-in simulator.
|
||||
|
||||
== Building the project ==
|
||||
|
||||
At this point you have imported the project and you are ready to compile it. At the left toolbar in Qt Creator, above the green arrow you can see the
|
||||
current target platform selected. Press to select which you want.
|
||||
|
||||
Now by pressing Ctrl+B or the "hammer icon" on the left at the bottom. Normaly this should be completed without errors (might be lots of wrning though
|
||||
which we selectively reject them from our mind :P )
|
||||
|
||||
This step compiles the project BUT doesn't produces the .sis file (the installation file). To create the installation file you have to press the "Run button".
|
||||
It that "Green arrow" on your left, or by simply pressing Ctrl+R. Regardless if you have a device or not, the .sis file will be created.
|
||||
|
||||
Now you can install it to your device.
|
||||
|
||||
== Additional information ==
|
||||
For afew more details about the implementation you can see the following page:
|
||||
http://wiki.forum.nokia.com/index.php/Qr_Decoder_in_Qt
|
||||
|
||||
== The same project in Symbian C++ ==
|
||||
|
||||
In case you are interested in using this project with only Symbian C++, take a look at ZXingBarcodeReader folder.
|
14
symbian/QZXing/source/.gitignore
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
moc/
|
||||
obj/
|
||||
rcc/
|
||||
tmp/
|
||||
ui/
|
||||
.make.cache
|
||||
*.BAT
|
||||
*.inf
|
||||
Makefile
|
||||
*.mk
|
||||
*.loc
|
||||
*.user
|
||||
*.mmp
|
||||
*.pkg
|
|
@ -6,182 +6,204 @@
|
|||
|
||||
QT += core gui
|
||||
|
||||
VERSION = 1.1
|
||||
VERSION = 1.2
|
||||
|
||||
greaterThan(QT_VERSION, 4.7): QT += declarative
|
||||
|
||||
TARGET = QZXing
|
||||
TEMPLATE = lib
|
||||
|
||||
# CONFIG += staticlib
|
||||
|
||||
DEFINES += QZXING_LIBRARY \
|
||||
ZXING_ICONV_CONST
|
||||
|
||||
INCLUDEPATH += ./
|
||||
|
||||
|
||||
HEADERS += zxing/BarcodeFormat.h \
|
||||
zxing/Binarizer.h \
|
||||
zxing/BinaryBitmap.h \
|
||||
zxing/DecodeHints.h \
|
||||
zxing/Exception.h \
|
||||
zxing/LuminanceSource.h \
|
||||
zxing/MultiFormatReader.h \
|
||||
zxing/Reader.h \
|
||||
zxing/ReaderException.h \
|
||||
zxing/Result.h \
|
||||
zxing/ResultPoint.h \
|
||||
HEADERS += QZXing_global.h \
|
||||
CameraImageWrapper.h \
|
||||
imagehandler.h \
|
||||
qzxing.h \
|
||||
zxing/ResultPointCallback.h \
|
||||
zxing/FormatException.h \
|
||||
zxing/ResultPoint.h \
|
||||
zxing/Result.h \
|
||||
zxing/ReaderException.h \
|
||||
zxing/Reader.h \
|
||||
zxing/NotFoundException.h \
|
||||
zxing/MultiFormatReader.h \
|
||||
zxing/LuminanceSource.h \
|
||||
zxing/FormatException.h \
|
||||
zxing/Exception.h \
|
||||
zxing/DecodeHints.h \
|
||||
zxing/BinaryBitmap.h \
|
||||
zxing/Binarizer.h \
|
||||
zxing/BarcodeFormat.h \
|
||||
zxing/aztec/AztecReader.h \
|
||||
zxing/aztec/AztecDetectorResult.h \
|
||||
zxing/aztec/decoder/Decoder.h \
|
||||
zxing/aztec/detector/Detector.h \
|
||||
zxing/common/StringUtils.h \
|
||||
zxing/common/CharacterSetECI.h \
|
||||
zxing/common/ECI.h \
|
||||
zxing/common/Array.h \
|
||||
zxing/common/BitArray.h \
|
||||
zxing/common/BitMatrix.h \
|
||||
zxing/common/BitSource.h \
|
||||
zxing/common/Counted.h \
|
||||
zxing/common/DecoderResult.h \
|
||||
zxing/common/DetectorResult.h \
|
||||
zxing/common/EdgeDetector.h \
|
||||
zxing/common/GlobalHistogramBinarizer.h \
|
||||
zxing/common/GreyscaleLuminanceSource.h \
|
||||
zxing/common/GreyscaleRotatedLuminanceSource.h \
|
||||
zxing/common/GridSampler.h \
|
||||
zxing/common/HybridBinarizer.h \
|
||||
zxing/common/IllegalArgumentException.h \
|
||||
zxing/common/PerspectiveTransform.h \
|
||||
zxing/common/Point.h \
|
||||
zxing/common/Str.h \
|
||||
zxing/common/reedsolomon/GF256.h \
|
||||
zxing/common/reedsolomon/GF256Poly.h \
|
||||
zxing/common/reedsolomon/ReedSolomonDecoder.h \
|
||||
zxing/common/reedsolomon/ReedSolomonException.h \
|
||||
zxing/common/detector/MonochromeRectangleDetector.h \
|
||||
zxing/common/Point.h \
|
||||
zxing/common/PerspectiveTransform.h \
|
||||
zxing/common/IllegalArgumentException.h \
|
||||
zxing/common/HybridBinarizer.h \
|
||||
zxing/common/GridSampler.h \
|
||||
zxing/common/GreyscaleRotatedLuminanceSource.h \
|
||||
zxing/common/GreyscaleLuminanceSource.h \
|
||||
zxing/common/GlobalHistogramBinarizer.h \
|
||||
zxing/common/EdgeDetector.h \
|
||||
zxing/common/DetectorResult.h \
|
||||
zxing/common/DecoderResult.h \
|
||||
zxing/common/Counted.h \
|
||||
zxing/common/CharacterSetECI.h \
|
||||
zxing/common/BitSource.h \
|
||||
zxing/common/BitMatrix.h \
|
||||
zxing/common/BitArray.h \
|
||||
zxing/common/Array.h \
|
||||
zxing/common/detector/WhiteRectangleDetector.h \
|
||||
zxing/oned/Code128Reader.h \
|
||||
zxing/oned/Code39Reader.h \
|
||||
zxing/common/detector/MonochromeRectangleDetector.h \
|
||||
zxing/common/reedsolomon/ReedSolomonException.h \
|
||||
zxing/common/reedsolomon/ReedSolomonDecoder.h \
|
||||
zxing/common/reedsolomon/GenericGFPoly.h \
|
||||
zxing/common/reedsolomon/GenericGF.h \
|
||||
zxing/datamatrix/Version.h \
|
||||
zxing/datamatrix/DataMatrixReader.h \
|
||||
zxing/datamatrix/decoder/Decoder.h \
|
||||
zxing/datamatrix/decoder/DecodedBitStreamParser.h \
|
||||
zxing/datamatrix/decoder/DataBlock.h \
|
||||
zxing/datamatrix/decoder/BitMatrixParser.h \
|
||||
zxing/datamatrix/detector/MonochromeRectangleDetector.h \
|
||||
zxing/datamatrix/detector/DetectorException.h \
|
||||
zxing/datamatrix/detector/Detector.h \
|
||||
zxing/datamatrix/detector/CornerPoint.h \
|
||||
zxing/oned/UPCEReader.h \
|
||||
zxing/oned/UPCEANReader.h \
|
||||
zxing/oned/UPCAReader.h \
|
||||
zxing/oned/OneDResultPoint.h \
|
||||
zxing/oned/OneDReader.h \
|
||||
zxing/oned/MultiFormatUPCEANReader.h \
|
||||
zxing/oned/MultiFormatOneDReader.h \
|
||||
zxing/oned/ITFReader.h \
|
||||
zxing/oned/EAN13Reader.h \
|
||||
zxing/oned/EAN8Reader.h \
|
||||
zxing/oned/ITFReader.h \
|
||||
zxing/oned/MultiFormatOneDReader.h \
|
||||
zxing/oned/MultiFormatUPCEANReader.h \
|
||||
zxing/oned/OneDReader.h \
|
||||
zxing/oned/OneDResultPoint.h \
|
||||
zxing/oned/UPCAReader.h \
|
||||
zxing/oned/UPCEANReader.h \
|
||||
zxing/oned/UPCEReader.h \
|
||||
zxing/qrcode/ErrorCorrectionLevel.h \
|
||||
zxing/qrcode/FormatInformation.h \
|
||||
zxing/qrcode/QRCodeReader.h \
|
||||
zxing/oned/Code128Reader.h \
|
||||
zxing/oned/Code39Reader.h \
|
||||
zxing/qrcode/Version.h \
|
||||
zxing/qrcode/decoder/BitMatrixParser.h \
|
||||
zxing/qrcode/decoder/DataBlock.h \
|
||||
zxing/qrcode/decoder/DataMask.h \
|
||||
zxing/qrcode/decoder/DecodedBitStreamParser.h \
|
||||
zxing/qrcode/decoder/Decoder.h \
|
||||
zxing/qrcode/QRCodeReader.h \
|
||||
zxing/qrcode/FormatInformation.h \
|
||||
zxing/qrcode/ErrorCorrectionLevel.h \
|
||||
zxing/qrcode/decoder/Mode.h \
|
||||
zxing/qrcode/detector/AlignmentPattern.h \
|
||||
zxing/qrcode/detector/AlignmentPatternFinder.h \
|
||||
zxing/qrcode/detector/Detector.h \
|
||||
zxing/qrcode/detector/FinderPattern.h \
|
||||
zxing/qrcode/detector/FinderPatternFinder.h \
|
||||
zxing/qrcode/detector/FinderPatternInfo.h \
|
||||
zxing/qrcode/decoder/Decoder.h \
|
||||
zxing/qrcode/decoder/DecodedBitStreamParser.h \
|
||||
zxing/qrcode/decoder/DataMask.h \
|
||||
zxing/qrcode/decoder/DataBlock.h \
|
||||
zxing/qrcode/decoder/BitMatrixParser.h \
|
||||
zxing/qrcode/detector/QREdgeDetector.h \
|
||||
zxing/datamatrix/VersionDM.h \
|
||||
zxing/datamatrix/DataMatrixReader.h \
|
||||
zxing/datamatrix/decoder/BitMatrixParserDM.h \
|
||||
zxing/datamatrix/decoder/DataBlockDM.h \
|
||||
zxing/datamatrix/decoder/DecodedBitStreamParserDM.h \
|
||||
zxing/datamatrix/decoder/DecoderDM.h \
|
||||
zxing/datamatrix/detector/CornerPoint.h \
|
||||
zxing/datamatrix/detector/DetectorDM.h \
|
||||
zxing/datamatrix/detector/DetectorException.h \
|
||||
zxing/datamatrix/detector/MonochromeRectangleDetectorDM.h \
|
||||
QZXing_global.h \
|
||||
CameraImageWrapper.h \
|
||||
qzxing.h
|
||||
zxing/qrcode/detector/FinderPatternInfo.h \
|
||||
zxing/qrcode/detector/FinderPatternFinder.h \
|
||||
zxing/qrcode/detector/FinderPattern.h \
|
||||
zxing/qrcode/detector/Detector.h \
|
||||
zxing/qrcode/detector/AlignmentPatternFinder.h \
|
||||
zxing/qrcode/detector/AlignmentPattern.h \
|
||||
zxing/multi/MultipleBarcodeReader.h \
|
||||
zxing/multi/GenericMultipleBarcodeReader.h \
|
||||
zxing/multi/ByQuadrantReader.h \
|
||||
zxing/multi/qrcode/QRCodeMultiReader.h \
|
||||
zxing/multi/qrcode/detector/MultiFinderPatternFinder.h \
|
||||
zxing/multi/qrcode/detector/MultiDetector.h
|
||||
|
||||
SOURCES += zxing/BarcodeFormat.cpp \
|
||||
zxing/Binarizer.cpp \
|
||||
zxing/BinaryBitmap.cpp \
|
||||
zxing/DecodeHints.cpp \
|
||||
zxing/Exception.cpp \
|
||||
zxing/LuminanceSource.cpp \
|
||||
zxing/MultiFormatReader.cpp \
|
||||
zxing/Reader.cpp \
|
||||
zxing/ReaderException.cpp \
|
||||
zxing/Result.cpp \
|
||||
zxing/ResultPoint.cpp \
|
||||
SOURCES += CameraImageWrapper.cpp \
|
||||
qzxing.cpp \
|
||||
imagehandler.cpp \
|
||||
zxing/ResultPointCallback.cpp \
|
||||
zxing/FormatException.cpp \
|
||||
zxing/ResultPoint.cpp \
|
||||
zxing/Result.cpp \
|
||||
zxing/ReaderException.cpp \
|
||||
zxing/Reader.cpp \
|
||||
zxing/NotFoundException.cpp \
|
||||
zxing/MultiFormatReader.cpp \
|
||||
zxing/LuminanceSource.cpp \
|
||||
zxing/FormatException.cpp \
|
||||
zxing/Exception.cpp \
|
||||
zxing/DecodeHints.cpp \
|
||||
zxing/BinaryBitmap.cpp \
|
||||
zxing/Binarizer.cpp \
|
||||
zxing/BarcodeFormat.cpp \
|
||||
zxing/aztec/AztecReader.cpp \
|
||||
zxing/aztec/AztecDetectorResult.cpp \
|
||||
zxing/common/StringUtils.cpp \
|
||||
zxing/common/CharacterSetECI.cpp \
|
||||
zxing/common/ECI.cpp \
|
||||
zxing/common/Array.cpp \
|
||||
zxing/common/BitArray.cpp \
|
||||
zxing/common/BitMatrix.cpp \
|
||||
zxing/common/BitSource.cpp \
|
||||
zxing/common/Counted.cpp \
|
||||
zxing/common/DecoderResult.cpp \
|
||||
zxing/common/DetectorResult.cpp \
|
||||
zxing/common/EdgeDetector.cpp \
|
||||
zxing/common/GlobalHistogramBinarizer.cpp \
|
||||
zxing/common/GreyscaleLuminanceSource.cpp \
|
||||
zxing/common/GreyscaleRotatedLuminanceSource.cpp \
|
||||
zxing/common/GridSampler.cpp \
|
||||
zxing/common/HybridBinarizer.cpp \
|
||||
zxing/common/IllegalArgumentException.cpp \
|
||||
zxing/common/PerspectiveTransform.cpp \
|
||||
zxing/common/Str.cpp \
|
||||
zxing/common/reedsolomon/GF256.cpp \
|
||||
zxing/common/reedsolomon/GF256Poly.cpp \
|
||||
zxing/common/reedsolomon/ReedSolomonDecoder.cpp \
|
||||
zxing/common/reedsolomon/ReedSolomonException.cpp \
|
||||
zxing/common/detector/MonochromeRectangleDetector.cpp \
|
||||
zxing/common/PerspectiveTransform.cpp \
|
||||
zxing/common/IllegalArgumentException.cpp \
|
||||
zxing/common/HybridBinarizer.cpp \
|
||||
zxing/common/GridSampler.cpp \
|
||||
zxing/common/GreyscaleRotatedLuminanceSource.cpp \
|
||||
zxing/common/GreyscaleLuminanceSource.cpp \
|
||||
zxing/common/GlobalHistogramBinarizer.cpp \
|
||||
zxing/common/EdgeDetector.cpp \
|
||||
zxing/common/DetectorResult.cpp \
|
||||
zxing/common/DecoderResult.cpp \
|
||||
zxing/common/Counted.cpp \
|
||||
zxing/common/CharacterSetECI.cpp \
|
||||
zxing/common/BitSource.cpp \
|
||||
zxing/common/BitMatrix.cpp \
|
||||
zxing/common/BitArray.cpp \
|
||||
zxing/common/Array.cpp \
|
||||
zxing/common/detector/WhiteRectangleDetector.cpp \
|
||||
zxing/oned/Code128Reader.cpp \
|
||||
zxing/oned/Code39Reader.cpp \
|
||||
zxing/common/detector/MonochromeRectangleDetector.cpp \
|
||||
zxing/common/reedsolomon/ReedSolomonException.cpp \
|
||||
zxing/common/reedsolomon/ReedSolomonDecoder.cpp \
|
||||
zxing/common/reedsolomon/GenericGFPoly.cpp \
|
||||
zxing/common/reedsolomon/GenericGF.cpp \
|
||||
zxing/datamatrix/DataMatrixReader.cpp \
|
||||
zxing/oned/UPCEReader.cpp \
|
||||
zxing/oned/UPCEANReader.cpp \
|
||||
zxing/oned/UPCAReader.cpp \
|
||||
zxing/oned/OneDResultPoint.cpp \
|
||||
zxing/oned/OneDReader.cpp \
|
||||
zxing/oned/MultiFormatUPCEANReader.cpp \
|
||||
zxing/oned/MultiFormatOneDReader.cpp \
|
||||
zxing/oned/ITFReader.cpp \
|
||||
zxing/oned/EAN13Reader.cpp \
|
||||
zxing/oned/EAN8Reader.cpp \
|
||||
zxing/oned/ITFReader.cpp \
|
||||
zxing/oned/MultiFormatOneDReader.cpp \
|
||||
zxing/oned/MultiFormatUPCEANReader.cpp \
|
||||
zxing/oned/OneDReader.cpp \
|
||||
zxing/oned/OneDResultPoint.cpp \
|
||||
zxing/oned/UPCAReader.cpp \
|
||||
zxing/oned/UPCEANReader.cpp \
|
||||
zxing/oned/UPCEReader.cpp \
|
||||
zxing/qrcode/ErrorCorrectionLevel.cpp \
|
||||
zxing/qrcode/FormatInformation.cpp \
|
||||
zxing/oned/Code128Reader.cpp \
|
||||
zxing/oned/Code39Reader.cpp \
|
||||
zxing/qrcode/QRCodeReader.cpp \
|
||||
zxing/qrcode/Version.cpp \
|
||||
zxing/qrcode/decoder/BitMatrixParser.cpp \
|
||||
zxing/qrcode/decoder/DataBlock.cpp \
|
||||
zxing/qrcode/decoder/DataMask.cpp \
|
||||
zxing/qrcode/decoder/DecodedBitStreamParser.cpp \
|
||||
zxing/qrcode/decoder/Decoder.cpp \
|
||||
zxing/qrcode/decoder/Mode.cpp \
|
||||
zxing/qrcode/detector/AlignmentPattern.cpp \
|
||||
zxing/qrcode/detector/AlignmentPatternFinder.cpp \
|
||||
zxing/qrcode/detector/Detector.cpp \
|
||||
zxing/qrcode/detector/FinderPattern.cpp \
|
||||
zxing/qrcode/detector/FinderPatternFinder.cpp \
|
||||
zxing/qrcode/detector/FinderPatternInfo.cpp \
|
||||
zxing/qrcode/detector/QREdgeDetector.cpp \
|
||||
zxing/datamatrix/VersionDM.cpp \
|
||||
zxing/datamatrix/DataMatrixReader.cpp \
|
||||
zxing/datamatrix/decoder/BitMatrixParserDM.cpp \
|
||||
zxing/datamatrix/decoder/DataBlockDM.cpp\
|
||||
zxing/datamatrix/decoder/DecodedBitStreamParserDM.cpp \
|
||||
zxing/datamatrix/decoder/DecoderDM.cpp \
|
||||
zxing/datamatrix/detector/CornerPoint.cpp \
|
||||
zxing/datamatrix/detector/DetectorDM.cpp \
|
||||
zxing/datamatrix/detector/DetectorException.cpp \
|
||||
zxing/datamatrix/detector/MonochromeRectangleDetectorDM.cpp \
|
||||
CameraImageWrapper.cpp \
|
||||
qzxing.cpp
|
||||
zxing/multi/MultipleBarcodeReader.cpp \
|
||||
zxing/multi/GenericMultipleBarcodeReader.cpp \
|
||||
zxing/multi/ByQuadrantReader.cpp \
|
||||
zxing/multi/qrcode/QRCodeMultiReader.cpp \
|
||||
zxing/multi/qrcode/detector/MultiFinderPatternFinder.cpp \
|
||||
zxing/multi/qrcode/detector/MultiDetector.cpp \
|
||||
zxing/aztec/decoder/AztecDecoder.cpp \
|
||||
zxing/aztec/detector/AztecDetector.cpp \
|
||||
zxing/datamatrix/DataMatrixVersion.cpp \
|
||||
zxing/datamatrix/decoder/DataMatrixDecoder.cpp \
|
||||
zxing/datamatrix/decoder/DataMatrixBitMatrixParser.cpp \
|
||||
zxing/datamatrix/decoder/DataMatrixDataBlock.cpp \
|
||||
zxing/datamatrix/decoder/DataMatrixDecodedBitStreamParser.cpp \
|
||||
zxing/datamatrix/detector/DataMatrixCornerPoint.cpp \
|
||||
zxing/datamatrix/detector/DataMatrixDetector.cpp \
|
||||
zxing/datamatrix/detector/DataMatrixDetectorException.cpp \
|
||||
zxing/datamatrix/detector/DataMatrixMonochromeRectangleDetector.cpp \
|
||||
zxing/qrcode/decoder/QRBitMatrixParser.cpp \
|
||||
zxing/qrcode/decoder/QRDataBlock.cpp \
|
||||
zxing/qrcode/decoder/QRDataMask.cpp \
|
||||
zxing/qrcode/decoder/QRDecodedBitStreamParser.cpp \
|
||||
zxing/qrcode/decoder/QRDecoder.cpp \
|
||||
zxing/qrcode/decoder/QRMode.cpp \
|
||||
zxing/qrcode/detector/QRAlignmentPattern.cpp \
|
||||
zxing/qrcode/detector/QRAlignmentPatternFinder.cpp \
|
||||
zxing/qrcode/detector/QRDetector.cpp \
|
||||
zxing/qrcode/detector/QRFinderPattern.cpp \
|
||||
zxing/qrcode/detector/QRFinderPatternFinder.cpp \
|
||||
zxing/qrcode/detector/QRFinderPatternInfo.cpp \
|
||||
zxing/qrcode/QRVersion.cpp \
|
||||
zxing/qrcode/QRFormatInformation.cpp \
|
||||
zxing/qrcode/QRErrorCorrectionLevel.cpp
|
||||
|
||||
symbian {
|
||||
TARGET.UID3 = 0xE618743C
|
||||
|
@ -189,13 +211,13 @@ symbian {
|
|||
addFiles.sources = QZXing.dll
|
||||
addFiles.path = !:/sys/bin
|
||||
DEPLOYMENT += addFiles
|
||||
#TARGET.CAPABILITY = All -TCB -AllFiles -DRM
|
||||
TARGET.CAPABILITY += NetworkServices \
|
||||
ReadUserData \
|
||||
WriteUserData \
|
||||
LocalServices \
|
||||
UserEnvironment \
|
||||
Location
|
||||
TARGET.CAPABILITY = All -TCB -AllFiles -DRM
|
||||
# TARGET.CAPABILITY += NetworkServices \
|
||||
# ReadUserData \
|
||||
# WriteUserData \
|
||||
# LocalServices \
|
||||
# UserEnvironment \
|
||||
# Location
|
||||
}
|
||||
|
||||
unix:!symbian {
|
||||
|
@ -214,18 +236,18 @@ win32{
|
|||
}
|
||||
|
||||
OTHER_FILES += \
|
||||
qtc_packaging/debian_fremantle/rules \
|
||||
qtc_packaging/debian_fremantle/README \
|
||||
qtc_packaging/debian_fremantle/copyright \
|
||||
qtc_packaging/debian_fremantle/control \
|
||||
qtc_packaging/debian_fremantle/compat \
|
||||
qtc_packaging/debian_fremantle/changelog \
|
||||
qtc_packaging/debian_harmattan/rules \
|
||||
qtc_packaging/debian_harmattan/README \
|
||||
qtc_packaging/debian_harmattan/manifest.aegis \
|
||||
qtc_packaging/debian_harmattan/copyright \
|
||||
qtc_packaging/debian_harmattan/control \
|
||||
qtc_packaging/debian_harmattan/compat \
|
||||
qtc_packaging/debian_harmattan/changelog \
|
||||
qtc_packaging/debian_fremantle/rules \
|
||||
qtc_packaging/debian_fremantle/README \
|
||||
qtc_packaging/debian_fremantle/copyright \
|
||||
qtc_packaging/debian_fremantle/control \
|
||||
qtc_packaging/debian_fremantle/compat \
|
||||
qtc_packaging/debian_fremantle/changelog
|
||||
qtc_packaging/debian_harmattan/changelog
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#ifndef QZXING_GLOBAL_H
|
||||
#define QZXING_GLOBAL_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
#include <QtCore>
|
||||
#include <qglobal.h>
|
||||
|
||||
#if defined(QZXING_LIBRARY)
|
||||
# define QZXINGSHARED_EXPORT Q_DECL_EXPORT
|
||||
|
|
BIN
symbian/QZXing/source/QZXing_unsigned.sis
Normal file
|
@ -3,100 +3,116 @@ EXPORTS
|
|||
_ZN6QZXing11decodeImageE6QImage @ 2 NONAME
|
||||
_ZN6QZXing11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME
|
||||
_ZN6QZXing11qt_metacastEPKc @ 4 NONAME
|
||||
_ZN6QZXing15decodingStartedEv @ 5 NONAME
|
||||
_ZN6QZXing16decodingFinishedEb @ 6 NONAME
|
||||
_ZN6QZXing16staticMetaObjectE @ 7 NONAME DATA 16
|
||||
_ZN6QZXing19getStaticMetaObjectEv @ 8 NONAME
|
||||
_ZN6QZXing8tagFoundE7QString @ 9 NONAME
|
||||
_ZN6QZXingC1EP7QObject @ 10 NONAME
|
||||
_ZN6QZXingC2EP7QObject @ 11 NONAME
|
||||
_ZNK6QZXing10metaObjectEv @ 12 NONAME
|
||||
_ZTI18CameraImageWrapper @ 13 NONAME
|
||||
_ZTI6QZXing @ 14 NONAME
|
||||
_ZTIN5zxing10datamatrix16DataMatrixReaderE @ 15 NONAME
|
||||
_ZTIN5zxing10datamatrix17DetectorExceptionE @ 16 NONAME
|
||||
_ZTIN5zxing10datamatrix7VersionE @ 17 NONAME
|
||||
_ZTIN5zxing10datamatrix8DetectorE @ 18 NONAME
|
||||
_ZTIN5zxing11ResultPointE @ 19 NONAME
|
||||
_ZTIN5zxing12BinaryBitmapE @ 20 NONAME
|
||||
_ZTIN5zxing15FormatExceptionE @ 21 NONAME
|
||||
_ZTIN5zxing15HybridBinarizerE @ 22 NONAME
|
||||
_ZTIN5zxing15LuminanceSourceE @ 23 NONAME
|
||||
_ZTIN5zxing15ReaderExceptionE @ 24 NONAME
|
||||
_ZTIN5zxing17MultiFormatReaderE @ 25 NONAME
|
||||
_ZTIN5zxing17NotFoundExceptionE @ 26 NONAME
|
||||
_ZTIN5zxing19ResultPointCallbackE @ 27 NONAME
|
||||
_ZTIN5zxing20ReedSolomonExceptionE @ 28 NONAME
|
||||
_ZTIN5zxing24GlobalHistogramBinarizerE @ 29 NONAME
|
||||
_ZTIN5zxing24GreyscaleLuminanceSourceE @ 30 NONAME
|
||||
_ZTIN5zxing24IllegalArgumentExceptionE @ 31 NONAME
|
||||
_ZTIN5zxing31GreyscaleRotatedLuminanceSourceE @ 32 NONAME
|
||||
_ZTIN5zxing4oned10EAN8ReaderE @ 33 NONAME
|
||||
_ZTIN5zxing4oned10OneDReaderE @ 34 NONAME
|
||||
_ZTIN5zxing4oned10UPCAReaderE @ 35 NONAME
|
||||
_ZTIN5zxing4oned10UPCEReaderE @ 36 NONAME
|
||||
_ZTIN5zxing4oned11EAN13ReaderE @ 37 NONAME
|
||||
_ZTIN5zxing4oned12Code39ReaderE @ 38 NONAME
|
||||
_ZTIN5zxing4oned12UPCEANReaderE @ 39 NONAME
|
||||
_ZTIN5zxing4oned13Code128ReaderE @ 40 NONAME
|
||||
_ZTIN5zxing4oned21MultiFormatOneDReaderE @ 41 NONAME
|
||||
_ZTIN5zxing4oned23MultiFormatUPCEANReaderE @ 42 NONAME
|
||||
_ZTIN5zxing4oned9ITFReaderE @ 43 NONAME
|
||||
_ZTIN5zxing6ReaderE @ 44 NONAME
|
||||
_ZTIN5zxing6ResultE @ 45 NONAME
|
||||
_ZTIN5zxing6qrcode12QRCodeReaderE @ 46 NONAME
|
||||
_ZTIN5zxing6qrcode14QREdgeDetectorE @ 47 NONAME
|
||||
_ZTIN5zxing6qrcode22AlignmentPatternFinderE @ 48 NONAME
|
||||
_ZTIN5zxing6qrcode7VersionE @ 49 NONAME
|
||||
_ZTIN5zxing6qrcode8DataMaskE @ 50 NONAME
|
||||
_ZTIN5zxing6qrcode8DetectorE @ 51 NONAME
|
||||
_ZTIN5zxing8BitArrayE @ 52 NONAME
|
||||
_ZTIN5zxing9BinarizerE @ 53 NONAME
|
||||
_ZTIN5zxing9BitMatrixE @ 54 NONAME
|
||||
_ZTIN5zxing9ExceptionE @ 55 NONAME
|
||||
_ZTIN5zxing9GF256PolyE @ 56 NONAME
|
||||
_ZTV18CameraImageWrapper @ 57 NONAME
|
||||
_ZTV6QZXing @ 58 NONAME
|
||||
_ZTVN5zxing10datamatrix16DataMatrixReaderE @ 59 NONAME
|
||||
_ZTVN5zxing10datamatrix17DetectorExceptionE @ 60 NONAME
|
||||
_ZTVN5zxing10datamatrix7VersionE @ 61 NONAME
|
||||
_ZTVN5zxing10datamatrix8DetectorE @ 62 NONAME
|
||||
_ZTVN5zxing11ResultPointE @ 63 NONAME
|
||||
_ZTVN5zxing12BinaryBitmapE @ 64 NONAME
|
||||
_ZTVN5zxing15FormatExceptionE @ 65 NONAME
|
||||
_ZTVN5zxing15HybridBinarizerE @ 66 NONAME
|
||||
_ZTVN5zxing15LuminanceSourceE @ 67 NONAME
|
||||
_ZTVN5zxing15ReaderExceptionE @ 68 NONAME
|
||||
_ZTVN5zxing17MultiFormatReaderE @ 69 NONAME
|
||||
_ZTVN5zxing17NotFoundExceptionE @ 70 NONAME
|
||||
_ZTVN5zxing19ResultPointCallbackE @ 71 NONAME
|
||||
_ZTVN5zxing20ReedSolomonExceptionE @ 72 NONAME
|
||||
_ZTVN5zxing24GlobalHistogramBinarizerE @ 73 NONAME
|
||||
_ZTVN5zxing24GreyscaleLuminanceSourceE @ 74 NONAME
|
||||
_ZTVN5zxing24IllegalArgumentExceptionE @ 75 NONAME
|
||||
_ZTVN5zxing31GreyscaleRotatedLuminanceSourceE @ 76 NONAME
|
||||
_ZTVN5zxing4oned10EAN8ReaderE @ 77 NONAME
|
||||
_ZTVN5zxing4oned10OneDReaderE @ 78 NONAME
|
||||
_ZTVN5zxing4oned10UPCAReaderE @ 79 NONAME
|
||||
_ZTVN5zxing4oned10UPCEReaderE @ 80 NONAME
|
||||
_ZTVN5zxing4oned11EAN13ReaderE @ 81 NONAME
|
||||
_ZTVN5zxing4oned12Code39ReaderE @ 82 NONAME
|
||||
_ZTVN5zxing4oned12UPCEANReaderE @ 83 NONAME
|
||||
_ZTVN5zxing4oned13Code128ReaderE @ 84 NONAME
|
||||
_ZTVN5zxing4oned21MultiFormatOneDReaderE @ 85 NONAME
|
||||
_ZTVN5zxing4oned23MultiFormatUPCEANReaderE @ 86 NONAME
|
||||
_ZTVN5zxing4oned9ITFReaderE @ 87 NONAME
|
||||
_ZTVN5zxing6ReaderE @ 88 NONAME
|
||||
_ZTVN5zxing6ResultE @ 89 NONAME
|
||||
_ZTVN5zxing6qrcode12QRCodeReaderE @ 90 NONAME
|
||||
_ZTVN5zxing6qrcode14QREdgeDetectorE @ 91 NONAME
|
||||
_ZTVN5zxing6qrcode22AlignmentPatternFinderE @ 92 NONAME
|
||||
_ZTVN5zxing6qrcode7VersionE @ 93 NONAME
|
||||
_ZTVN5zxing6qrcode8DataMaskE @ 94 NONAME
|
||||
_ZTVN5zxing6qrcode8DetectorE @ 95 NONAME
|
||||
_ZTVN5zxing8BitArrayE @ 96 NONAME
|
||||
_ZTVN5zxing9BinarizerE @ 97 NONAME
|
||||
_ZTVN5zxing9BitMatrixE @ 98 NONAME
|
||||
_ZTVN5zxing9ExceptionE @ 99 NONAME
|
||||
_ZTVN5zxing9GF256PolyE @ 100 NONAME
|
||||
_ZN6QZXing14decodeImageQMLEP7QObject @ 5 NONAME
|
||||
_ZN6QZXing15decodingStartedEv @ 6 NONAME
|
||||
_ZN6QZXing16decodingFinishedEb @ 7 NONAME
|
||||
_ZN6QZXing16staticMetaObjectE @ 8 NONAME DATA 16
|
||||
_ZN6QZXing17decodeSubImageQMLEP7QObjectdddd @ 9 NONAME
|
||||
_ZN6QZXing19getStaticMetaObjectEv @ 10 NONAME
|
||||
_ZN6QZXing8tagFoundE7QString @ 11 NONAME
|
||||
_ZN6QZXingC1EP7QObject @ 12 NONAME
|
||||
_ZN6QZXingC2EP7QObject @ 13 NONAME
|
||||
_ZNK6QZXing10metaObjectEv @ 14 NONAME
|
||||
_ZTI12ImageHandler @ 15 NONAME
|
||||
_ZTI18CameraImageWrapper @ 16 NONAME
|
||||
_ZTI6QZXing @ 17 NONAME
|
||||
_ZTIN5zxing10datamatrix16DataMatrixReaderE @ 18 NONAME
|
||||
_ZTIN5zxing10datamatrix17DetectorExceptionE @ 19 NONAME
|
||||
_ZTIN5zxing10datamatrix7VersionE @ 20 NONAME
|
||||
_ZTIN5zxing10datamatrix8DetectorE @ 21 NONAME
|
||||
_ZTIN5zxing11ResultPointE @ 22 NONAME
|
||||
_ZTIN5zxing12BinaryBitmapE @ 23 NONAME
|
||||
_ZTIN5zxing15FormatExceptionE @ 24 NONAME
|
||||
_ZTIN5zxing15HybridBinarizerE @ 25 NONAME
|
||||
_ZTIN5zxing15LuminanceSourceE @ 26 NONAME
|
||||
_ZTIN5zxing15ReaderExceptionE @ 27 NONAME
|
||||
_ZTIN5zxing17MultiFormatReaderE @ 28 NONAME
|
||||
_ZTIN5zxing17NotFoundExceptionE @ 29 NONAME
|
||||
_ZTIN5zxing19ResultPointCallbackE @ 30 NONAME
|
||||
_ZTIN5zxing20ReedSolomonExceptionE @ 31 NONAME
|
||||
_ZTIN5zxing24GlobalHistogramBinarizerE @ 32 NONAME
|
||||
_ZTIN5zxing24GreyscaleLuminanceSourceE @ 33 NONAME
|
||||
_ZTIN5zxing24IllegalArgumentExceptionE @ 34 NONAME
|
||||
_ZTIN5zxing31GreyscaleRotatedLuminanceSourceE @ 35 NONAME
|
||||
_ZTIN5zxing4oned10EAN8ReaderE @ 36 NONAME
|
||||
_ZTIN5zxing4oned10OneDReaderE @ 37 NONAME
|
||||
_ZTIN5zxing4oned10UPCAReaderE @ 38 NONAME
|
||||
_ZTIN5zxing4oned10UPCEReaderE @ 39 NONAME
|
||||
_ZTIN5zxing4oned11EAN13ReaderE @ 40 NONAME
|
||||
_ZTIN5zxing4oned12Code39ReaderE @ 41 NONAME
|
||||
_ZTIN5zxing4oned12UPCEANReaderE @ 42 NONAME
|
||||
_ZTIN5zxing4oned13Code128ReaderE @ 43 NONAME
|
||||
_ZTIN5zxing4oned21MultiFormatOneDReaderE @ 44 NONAME
|
||||
_ZTIN5zxing4oned23MultiFormatUPCEANReaderE @ 45 NONAME
|
||||
_ZTIN5zxing4oned9ITFReaderE @ 46 NONAME
|
||||
_ZTIN5zxing5aztec11AztecReaderE @ 47 NONAME
|
||||
_ZTIN5zxing5multi13MultiDetectorE @ 48 NONAME
|
||||
_ZTIN5zxing5multi16ByQuadrantReaderE @ 49 NONAME
|
||||
_ZTIN5zxing5multi17QRCodeMultiReaderE @ 50 NONAME
|
||||
_ZTIN5zxing5multi21MultipleBarcodeReaderE @ 51 NONAME
|
||||
_ZTIN5zxing5multi24MultiFinderPatternFinderE @ 52 NONAME
|
||||
_ZTIN5zxing5multi28GenericMultipleBarcodeReaderE @ 53 NONAME
|
||||
_ZTIN5zxing6ReaderE @ 54 NONAME
|
||||
_ZTIN5zxing6ResultE @ 55 NONAME
|
||||
_ZTIN5zxing6qrcode12QRCodeReaderE @ 56 NONAME
|
||||
_ZTIN5zxing6qrcode14QREdgeDetectorE @ 57 NONAME
|
||||
_ZTIN5zxing6qrcode22AlignmentPatternFinderE @ 58 NONAME
|
||||
_ZTIN5zxing6qrcode7VersionE @ 59 NONAME
|
||||
_ZTIN5zxing6qrcode8DataMaskE @ 60 NONAME
|
||||
_ZTIN5zxing6qrcode8DetectorE @ 61 NONAME
|
||||
_ZTIN5zxing8BitArrayE @ 62 NONAME
|
||||
_ZTIN5zxing9BinarizerE @ 63 NONAME
|
||||
_ZTIN5zxing9BitMatrixE @ 64 NONAME
|
||||
_ZTIN5zxing9ExceptionE @ 65 NONAME
|
||||
_ZTV12ImageHandler @ 66 NONAME
|
||||
_ZTV18CameraImageWrapper @ 67 NONAME
|
||||
_ZTV6QZXing @ 68 NONAME
|
||||
_ZTVN5zxing10datamatrix16DataMatrixReaderE @ 69 NONAME
|
||||
_ZTVN5zxing10datamatrix17DetectorExceptionE @ 70 NONAME
|
||||
_ZTVN5zxing10datamatrix7VersionE @ 71 NONAME
|
||||
_ZTVN5zxing10datamatrix8DetectorE @ 72 NONAME
|
||||
_ZTVN5zxing11ResultPointE @ 73 NONAME
|
||||
_ZTVN5zxing12BinaryBitmapE @ 74 NONAME
|
||||
_ZTVN5zxing15FormatExceptionE @ 75 NONAME
|
||||
_ZTVN5zxing15HybridBinarizerE @ 76 NONAME
|
||||
_ZTVN5zxing15LuminanceSourceE @ 77 NONAME
|
||||
_ZTVN5zxing15ReaderExceptionE @ 78 NONAME
|
||||
_ZTVN5zxing17MultiFormatReaderE @ 79 NONAME
|
||||
_ZTVN5zxing17NotFoundExceptionE @ 80 NONAME
|
||||
_ZTVN5zxing19ResultPointCallbackE @ 81 NONAME
|
||||
_ZTVN5zxing20ReedSolomonExceptionE @ 82 NONAME
|
||||
_ZTVN5zxing24GlobalHistogramBinarizerE @ 83 NONAME
|
||||
_ZTVN5zxing24GreyscaleLuminanceSourceE @ 84 NONAME
|
||||
_ZTVN5zxing24IllegalArgumentExceptionE @ 85 NONAME
|
||||
_ZTVN5zxing31GreyscaleRotatedLuminanceSourceE @ 86 NONAME
|
||||
_ZTVN5zxing4oned10EAN8ReaderE @ 87 NONAME
|
||||
_ZTVN5zxing4oned10OneDReaderE @ 88 NONAME
|
||||
_ZTVN5zxing4oned10UPCAReaderE @ 89 NONAME
|
||||
_ZTVN5zxing4oned10UPCEReaderE @ 90 NONAME
|
||||
_ZTVN5zxing4oned11EAN13ReaderE @ 91 NONAME
|
||||
_ZTVN5zxing4oned12Code39ReaderE @ 92 NONAME
|
||||
_ZTVN5zxing4oned12UPCEANReaderE @ 93 NONAME
|
||||
_ZTVN5zxing4oned13Code128ReaderE @ 94 NONAME
|
||||
_ZTVN5zxing4oned21MultiFormatOneDReaderE @ 95 NONAME
|
||||
_ZTVN5zxing4oned23MultiFormatUPCEANReaderE @ 96 NONAME
|
||||
_ZTVN5zxing4oned9ITFReaderE @ 97 NONAME
|
||||
_ZTVN5zxing5aztec11AztecReaderE @ 98 NONAME
|
||||
_ZTVN5zxing5multi13MultiDetectorE @ 99 NONAME
|
||||
_ZTVN5zxing5multi16ByQuadrantReaderE @ 100 NONAME
|
||||
_ZTVN5zxing5multi17QRCodeMultiReaderE @ 101 NONAME
|
||||
_ZTVN5zxing5multi21MultipleBarcodeReaderE @ 102 NONAME
|
||||
_ZTVN5zxing5multi24MultiFinderPatternFinderE @ 103 NONAME
|
||||
_ZTVN5zxing5multi28GenericMultipleBarcodeReaderE @ 104 NONAME
|
||||
_ZTVN5zxing6ReaderE @ 105 NONAME
|
||||
_ZTVN5zxing6ResultE @ 106 NONAME
|
||||
_ZTVN5zxing6qrcode12QRCodeReaderE @ 107 NONAME
|
||||
_ZTVN5zxing6qrcode14QREdgeDetectorE @ 108 NONAME
|
||||
_ZTVN5zxing6qrcode22AlignmentPatternFinderE @ 109 NONAME
|
||||
_ZTVN5zxing6qrcode7VersionE @ 110 NONAME
|
||||
_ZTVN5zxing6qrcode8DataMaskE @ 111 NONAME
|
||||
_ZTVN5zxing6qrcode8DetectorE @ 112 NONAME
|
||||
_ZTVN5zxing8BitArrayE @ 113 NONAME
|
||||
_ZTVN5zxing9BinarizerE @ 114 NONAME
|
||||
_ZTVN5zxing9BitMatrixE @ 115 NONAME
|
||||
_ZTVN5zxing9ExceptionE @ 116 NONAME
|
||||
|
||||
|
|
44
symbian/QZXing/source/imagehandler.cpp
Normal file
|
@ -0,0 +1,44 @@
|
|||
#include "imagehandler.h"
|
||||
#include <QGraphicsObject>
|
||||
#include <QImage>
|
||||
#include <QPainter>
|
||||
#include <QStyleOptionGraphicsItem>
|
||||
#include <QDebug>
|
||||
|
||||
ImageHandler::ImageHandler(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
QImage ImageHandler::extractQImage(QObject *imageObj,
|
||||
const double offsetX, const double offsetY,
|
||||
const double width, const double height)
|
||||
{
|
||||
QGraphicsObject *item = qobject_cast<QGraphicsObject*>(imageObj);
|
||||
|
||||
if (!item) {
|
||||
qDebug() << "Item is NULL";
|
||||
return QImage();
|
||||
}
|
||||
|
||||
QImage img(item->boundingRect().size().toSize(), QImage::Format_RGB32);
|
||||
img.fill(QColor(255, 255, 255).rgb());
|
||||
QPainter painter(&img);
|
||||
QStyleOptionGraphicsItem styleOption;
|
||||
item->paint(&painter, &styleOption);
|
||||
|
||||
if(offsetX == 0 && offsetY == 0 && width == 0 && height == 0)
|
||||
return img;
|
||||
else
|
||||
{
|
||||
return img.copy(offsetX, offsetY, width, height);
|
||||
}
|
||||
}
|
||||
|
||||
void ImageHandler::save(QObject *imageObj, const QString &path,
|
||||
const double offsetX, const double offsetY,
|
||||
const double width, const double height)
|
||||
{
|
||||
QImage img = extractQImage(imageObj, offsetX, offsetY, width, height);
|
||||
img.save(path);
|
||||
}
|
23
symbian/QZXing/source/imagehandler.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
#ifndef IMAGEHANDLER_H
|
||||
#define IMAGEHANDLER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QImage>
|
||||
|
||||
class ImageHandler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ImageHandler(QObject *parent = 0);
|
||||
|
||||
QImage extractQImage(QObject *imageObj,
|
||||
const double offsetX = 0 , const double offsetY = 0,
|
||||
const double width = 0, const double height = 0);
|
||||
|
||||
public slots:
|
||||
void save(QObject *item, const QString &path,
|
||||
const double offsetX = 0, const double offsetY = 0,
|
||||
const double width = 0, const double height = 0);
|
||||
};
|
||||
|
||||
#endif // IMAGEHANDLER_H
|
|
@ -3,4 +3,4 @@ The Debian Package qzxing
|
|||
|
||||
Comments regarding the Package
|
||||
|
||||
-- unknown <> Wed, 16 Nov 2011 18:02:42 +0200
|
||||
-- unknown <> Mon, 14 May 2012 15:23:23 +0300
|
||||
|
|
|
@ -2,4 +2,4 @@ qzxing (0.0.1) unstable; urgency=low
|
|||
|
||||
* Initial Release.
|
||||
|
||||
-- unknown <> Wed, 16 Nov 2011 18:02:42 +0200
|
||||
-- unknown <> Mon, 14 May 2012 15:23:23 +0300
|
||||
|
|
|
@ -12,4 +12,3 @@ Depends: ${shlibs:Depends}, ${misc:Depends}
|
|||
Description: <insert up to 60 chars description>
|
||||
<insert long description, indented with spaces>
|
||||
XSBC-Maemo-Display-Name: QZXing
|
||||
XB-Maemo-Icon-26:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
This package was debianized by unknown <> on
|
||||
Wed, 16 Nov 2011 18:02:42 +0200.
|
||||
Mon, 14 May 2012 15:23:23 +0300.
|
||||
|
||||
It was downloaded from <url://example.com>
|
||||
|
||||
|
@ -32,7 +32,7 @@ License:
|
|||
On Debian systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||
|
||||
The Debian packaging is (C) 2011, unknown <> and
|
||||
The Debian packaging is (C) 2012, unknown <> and
|
||||
is licensed under the GPL, see above.
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
AutoGenerateAegisFile
|
||||
<!-- Aegis manifest declares the security credentials required by an
|
||||
application to run correctly. By default, a manifest file will be
|
||||
created or updated automatically as a part of build.
|
||||
|
||||
The detection of required credentials is based on static scan of
|
||||
application binaries. In some cases, the scan may not be able to
|
||||
detect the correct set of permissions. If this is the case, you must
|
||||
declare the credentials required by your application in this file.
|
||||
|
||||
To create a manifest file automatically as a part of build (DEFAULT):
|
||||
|
||||
* Make sure this file starts with the string "AutoGenerateAegisFile" (without quotes).
|
||||
* Alternatively, it can also be completely empty.
|
||||
|
||||
To provide a manifest yourself:
|
||||
|
||||
* List the correct credentials for the application in this file.
|
||||
* Some commented-out examples of often required tokens are provided.
|
||||
* Ensure the path to your application binary given in
|
||||
'<for path="/path/to/app" />' is correct.
|
||||
* Please do not request more credentials than what your application
|
||||
actually requires.
|
||||
|
||||
To disable manifest file:
|
||||
|
||||
* Replace this file with a file starting with the string "NoAegisFile" (without quotes).
|
||||
* Final application package will not contain a manifest.
|
||||
|
||||
-->
|
||||
<aegis>
|
||||
<request policy="add">
|
||||
|
||||
<!-- Make a GSM call, send text messages (SMS). -->
|
||||
<!--
|
||||
<credential name="Cellular" />
|
||||
-->
|
||||
|
||||
<!-- Access Facebook social data. -->
|
||||
<!--
|
||||
<credential name="FacebookSocial" />
|
||||
-->
|
||||
|
||||
<!-- Read access to data stored in tracker. -->
|
||||
<!--
|
||||
<credential name="TrackerReadAccess" />
|
||||
-->
|
||||
|
||||
<!-- Read and write access to data stored in tracker. -->
|
||||
<!--
|
||||
<credential name="TrackerWriteAccess" />
|
||||
-->
|
||||
|
||||
<!-- Read Location information. -->
|
||||
<!--
|
||||
<credential name="Location" />
|
||||
-->
|
||||
|
||||
<!-- Access to Audio, Multimedia and Camera. -->
|
||||
<!--
|
||||
<credential name="GRP::pulse-access" />
|
||||
<credential name="GRP::video" />
|
||||
<credential name="GRP::audio" />
|
||||
-->
|
||||
|
||||
</request>
|
||||
|
||||
<for path="/opt/QZXing/bin/QZXing" />
|
||||
<for path="applauncherd-launcher::/usr/bin/applauncherd.bin" id="" />
|
||||
</aegis>
|
|
@ -6,6 +6,7 @@
|
|||
#include <zxing/MultiFormatReader.h>
|
||||
#include <zxing/DecodeHints.h>
|
||||
#include "CameraImageWrapper.h"
|
||||
#include "imagehandler.h"
|
||||
|
||||
using namespace zxing;
|
||||
|
||||
|
@ -20,7 +21,9 @@ QZXing::QZXing(QObject *parent) : QObject(parent)
|
|||
DecoderFormat_EAN_13 |
|
||||
DecoderFormat_CODE_128 |
|
||||
DecoderFormat_CODE_39 |
|
||||
DecoderFormat_ITF);
|
||||
DecoderFormat_ITF |
|
||||
DecoderFormat_Aztec);
|
||||
imageHandler = new ImageHandler();
|
||||
}
|
||||
|
||||
void QZXing::setDecoder(DecoderFormatType hint)
|
||||
|
@ -54,6 +57,9 @@ void QZXing::setDecoder(DecoderFormatType hint)
|
|||
if(hint & DecoderFormat_ITF)
|
||||
newHints.addFormat((BarcodeFormat)BarcodeFormat_ITF);
|
||||
|
||||
if(hint & DecoderFormat_Aztec)
|
||||
newHints.addFormat((BarcodeFormat)BarcodeFormat_AZTEC);
|
||||
|
||||
supportedFormats = newHints.getCurrentHint();
|
||||
}
|
||||
|
||||
|
@ -84,3 +90,25 @@ QString QZXing::decodeImage(QImage image)
|
|||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
QString QZXing::decodeImageQML(QObject *item)
|
||||
{
|
||||
return decodeSubImageQML(item);
|
||||
}
|
||||
|
||||
QString QZXing::decodeSubImageQML(QObject* item,
|
||||
const double offsetX, const double offsetY,
|
||||
const double width, const double height)
|
||||
{
|
||||
if(item == NULL)
|
||||
{
|
||||
emit decodingFinished(false);
|
||||
return "";
|
||||
}
|
||||
|
||||
QImage img = ((ImageHandler*)imageHandler)->extractQImage(item, offsetX, offsetY, width, height);
|
||||
|
||||
return decodeImage(img);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -32,7 +32,8 @@ public:
|
|||
DecoderFormat_EAN_13 = 32,
|
||||
DecoderFormat_CODE_128 = 64,
|
||||
DecoderFormat_CODE_39 = 128,
|
||||
DecoderFormat_ITF = 256
|
||||
DecoderFormat_ITF = 256,
|
||||
DecoderFormat_Aztec = 512
|
||||
} ;
|
||||
typedef unsigned int DecoderFormatType;
|
||||
|
||||
|
@ -49,7 +50,7 @@ public:
|
|||
#if QT_VERSION >= 0x040700
|
||||
static void registerQMLTypes()
|
||||
{
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 0, "QZXing");
|
||||
qmlRegisterType<QZXing>("QZXing", 1, 2, "QZXing");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -60,6 +61,19 @@ public slots:
|
|||
*/
|
||||
QString decodeImage(QImage image);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML
|
||||
*/
|
||||
QString decodeImageQML(QObject *item);
|
||||
|
||||
/**
|
||||
* The decoding function accessible from QML. Able to set the decoding
|
||||
* of a portion of the image.
|
||||
*/
|
||||
QString decodeSubImageQML(QObject* item,
|
||||
const double offsetX = 0 , const double offsetY = 0,
|
||||
const double width = 0, const double height = 0);
|
||||
|
||||
signals:
|
||||
void decodingStarted();
|
||||
void decodingFinished(bool succeeded);
|
||||
|
@ -68,6 +82,7 @@ signals:
|
|||
private:
|
||||
void* decoder;
|
||||
DecoderFormatType supportedFormats;
|
||||
QObject* imageHandler;
|
||||
};
|
||||
|
||||
#endif // QZXING_H
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* BarcodeFormat.cpp
|
||||
* zxing
|
||||
*
|
||||
* Created by Christian Brunschen on 13/05/2008.
|
||||
* Copyright 2008 ZXing authors All rights reserved.
|
||||
*
|
||||
|
@ -32,7 +30,8 @@ const char *barcodeFormatNames[] = {
|
|||
"EAN_13",
|
||||
"CODE_128",
|
||||
"CODE_39",
|
||||
"ITF"
|
||||
"ITF",
|
||||
"AZTEC"
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
#ifndef __BARCODE_FORMAT_H__
|
||||
#define __BARCODE_FORMAT_H__
|
||||
|
||||
|
@ -32,7 +33,8 @@ namespace zxing {
|
|||
BarcodeFormat_EAN_13,
|
||||
BarcodeFormat_CODE_128,
|
||||
BarcodeFormat_CODE_39,
|
||||
BarcodeFormat_ITF
|
||||
BarcodeFormat_ITF,
|
||||
BarcodeFormat_AZTEC
|
||||
} BarcodeFormat;
|
||||
|
||||
/* if you update the enum, please update the name in BarcodeFormat.cpp */
|
||||
|
|
|
@ -47,6 +47,7 @@ const DecodeHints DecodeHints::DEFAULT_HINT(
|
|||
BARCODEFORMAT_CODE_39_HINT |
|
||||
BARCODEFORMAT_ITF_HINT |
|
||||
BARCODEFORMAT_DATA_MATRIX_HINT |
|
||||
BARCODEFORMAT_AZTEC_HINT |
|
||||
BARCODEFORMAT_QR_CODE_HINT);
|
||||
|
||||
DecodeHints::DecodeHints() {
|
||||
|
@ -59,6 +60,7 @@ DecodeHints::DecodeHints(DecodeHintType init) {
|
|||
|
||||
void DecodeHints::addFormat(BarcodeFormat toadd) {
|
||||
switch (toadd) {
|
||||
case BarcodeFormat_AZTEC: hints |= BARCODEFORMAT_AZTEC_HINT; break;
|
||||
case BarcodeFormat_QR_CODE: hints |= BARCODEFORMAT_QR_CODE_HINT; break;
|
||||
case BarcodeFormat_DATA_MATRIX: hints |= BARCODEFORMAT_DATA_MATRIX_HINT; break;
|
||||
case BarcodeFormat_UPC_E: hints |= BARCODEFORMAT_UPC_E_HINT; break;
|
||||
|
@ -75,6 +77,7 @@ void DecodeHints::addFormat(BarcodeFormat toadd) {
|
|||
bool DecodeHints::containsFormat(BarcodeFormat tocheck) const {
|
||||
DecodeHintType checkAgainst;
|
||||
switch (tocheck) {
|
||||
case BarcodeFormat_AZTEC: checkAgainst = BARCODEFORMAT_AZTEC_HINT; break;
|
||||
case BarcodeFormat_QR_CODE: checkAgainst = BARCODEFORMAT_QR_CODE_HINT; break;
|
||||
case BarcodeFormat_DATA_MATRIX: checkAgainst = BARCODEFORMAT_DATA_MATRIX_HINT; break;
|
||||
case BarcodeFormat_UPC_E: checkAgainst = BARCODEFORMAT_UPC_E_HINT; break;
|
||||
|
|
|
@ -45,6 +45,7 @@ class DecodeHints {
|
|||
static const DecodeHintType BARCODEFORMAT_CODE_128_HINT = 1 << BarcodeFormat_CODE_128;
|
||||
static const DecodeHintType BARCODEFORMAT_CODE_39_HINT = 1 << BarcodeFormat_CODE_39;
|
||||
static const DecodeHintType BARCODEFORMAT_ITF_HINT = 1 << BarcodeFormat_ITF;
|
||||
static const DecodeHintType BARCODEFORMAT_AZTEC_HINT = 1 << BarcodeFormat_AZTEC;
|
||||
static const DecodeHintType CHARACTER_SET = 1 << 30;
|
||||
static const DecodeHintType TRYHARDER_HINT = 1 << 31;
|
||||
|
||||
|
|
|
@ -35,6 +35,10 @@ bool LuminanceSource::isCropSupported() const {
|
|||
}
|
||||
|
||||
Ref<LuminanceSource> LuminanceSource::crop(int left, int top, int width, int height) {
|
||||
(void)left;
|
||||
(void)top;
|
||||
(void)width;
|
||||
(void)height;
|
||||
throw IllegalArgumentException("This luminance source does not support cropping.");
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <zxing/MultiFormatReader.h>
|
||||
#include <zxing/qrcode/QRCodeReader.h>
|
||||
#include <zxing/datamatrix/DataMatrixReader.h>
|
||||
#include <zxing/aztec/AztecReader.h>
|
||||
#include <zxing/oned/MultiFormatUPCEANReader.h>
|
||||
#include <zxing/oned/MultiFormatOneDReader.h>
|
||||
#include <zxing/ReaderException.h>
|
||||
|
@ -70,6 +71,9 @@ namespace zxing {
|
|||
if (hints.containsFormat(BarcodeFormat_DATA_MATRIX)) {
|
||||
readers_.push_back(Ref<Reader>(new zxing::datamatrix::DataMatrixReader()));
|
||||
}
|
||||
if (hints.containsFormat(BarcodeFormat_AZTEC)) {
|
||||
readers_.push_back(Ref<Reader>(new zxing::aztec::AztecReader()));
|
||||
}
|
||||
//TODO: add PDF417 here once PDF417 reader is implemented
|
||||
if (addOneDReader && tryHarder) {
|
||||
readers_.push_back(Ref<Reader>(new zxing::oned::MultiFormatOneDReader(hints)));
|
||||
|
|
45
symbian/QZXing/source/zxing/aztec/AztecDetectorResult.cpp
Normal file
|
@ -0,0 +1,45 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* AtztecDetecorResult.cpp
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <zxing/aztec/AztecDetectorResult.h>
|
||||
|
||||
namespace zxing {
|
||||
namespace aztec {
|
||||
AztecDetectorResult::AztecDetectorResult(Ref<BitMatrix> bits, std::vector<Ref<ResultPoint> > points, bool compact, int nbDatablocks, int nbLayers)
|
||||
: DetectorResult(bits, points),
|
||||
compact_(compact),
|
||||
nbDatablocks_(nbDatablocks),
|
||||
nbLayers_(nbLayers) {
|
||||
}
|
||||
|
||||
bool AztecDetectorResult::isCompact() {
|
||||
return compact_;
|
||||
}
|
||||
|
||||
int AztecDetectorResult::getNBDatablocks() {
|
||||
return nbDatablocks_;
|
||||
}
|
||||
|
||||
int AztecDetectorResult::getNBLayers() {
|
||||
return nbLayers_;
|
||||
}
|
||||
}
|
||||
}
|
42
symbian/QZXing/source/zxing/aztec/AztecDetectorResult.h
Normal file
|
@ -0,0 +1,42 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* AtztecDetecorResult.h
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <zxing/common/DetectorResult.h>
|
||||
|
||||
#ifndef ZXingWidget_AtztecDetecorResult_h
|
||||
#define ZXingWidget_AtztecDetecorResult_h
|
||||
|
||||
namespace zxing {
|
||||
namespace aztec {
|
||||
class AztecDetectorResult : public DetectorResult {
|
||||
private:
|
||||
bool compact_;
|
||||
int nbDatablocks_, nbLayers_;
|
||||
public:
|
||||
AztecDetectorResult(Ref<BitMatrix> bits, std::vector<Ref<ResultPoint> > points, bool compact, int nbDatablocks, int nbLayers);
|
||||
bool isCompact();
|
||||
int getNBDatablocks();
|
||||
int getNBLayers();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
64
symbian/QZXing/source/zxing/aztec/AztecReader.cpp
Normal file
|
@ -0,0 +1,64 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* AztecReader.cpp
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <zxing/aztec/AztecReader.h>
|
||||
#include <zxing/aztec/detector/Detector.h>
|
||||
#include <iostream>
|
||||
|
||||
namespace zxing {
|
||||
namespace aztec {
|
||||
|
||||
AztecReader::AztecReader() : decoder_() {
|
||||
// nothing
|
||||
}
|
||||
|
||||
Ref<Result> AztecReader::decode(Ref<zxing::BinaryBitmap> image) {
|
||||
Detector detector(image->getBlackMatrix());
|
||||
|
||||
Ref<AztecDetectorResult> detectorResult(detector.detect());
|
||||
|
||||
std::vector<Ref<ResultPoint> > points(detectorResult->getPoints());
|
||||
|
||||
Ref<DecoderResult> decoderResult(decoder_.decode(detectorResult));
|
||||
|
||||
Ref<Result> result(new Result(decoderResult->getText(),
|
||||
decoderResult->getRawBytes(),
|
||||
points,
|
||||
BarcodeFormat_AZTEC));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Ref<Result> AztecReader::decode(Ref<BinaryBitmap> image, DecodeHints) {
|
||||
//cout << "decoding with hints not supported for aztec" << "\n" << flush;
|
||||
return this->decode(image);
|
||||
}
|
||||
|
||||
AztecReader::~AztecReader() {
|
||||
// nothing
|
||||
}
|
||||
|
||||
Decoder& AztecReader::getDecoder() {
|
||||
return decoder_;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
49
symbian/QZXing/source/zxing/aztec/AztecReader.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* AztecReader.h
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <zxing/Reader.h>
|
||||
#include <zxing/aztec/decoder/Decoder.h>
|
||||
#include <zxing/DecodeHints.h>
|
||||
|
||||
#ifndef ZXingWidget_AztecReader_h
|
||||
#define ZXingWidget_AztecReader_h
|
||||
|
||||
namespace zxing {
|
||||
namespace aztec {
|
||||
|
||||
class AztecReader : public Reader {
|
||||
private:
|
||||
Decoder decoder_;
|
||||
|
||||
protected:
|
||||
Decoder &getDecoder();
|
||||
|
||||
public:
|
||||
AztecReader();
|
||||
virtual Ref<Result> decode(Ref<BinaryBitmap> image);
|
||||
virtual Ref<Result> decode(Ref<BinaryBitmap> image, DecodeHints hints);
|
||||
virtual ~AztecReader();
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
496
symbian/QZXing/source/zxing/aztec/decoder/AztecDecoder.cpp
Normal file
|
@ -0,0 +1,496 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* Decoder.cpp
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <zxing/aztec/decoder/Decoder.h>
|
||||
#ifndef NO_ICONV
|
||||
#include <iconv.h>
|
||||
#endif
|
||||
#include <iostream>
|
||||
#include <zxing/FormatException.h>
|
||||
#include <zxing/common/reedsolomon/ReedSolomonDecoder.h>
|
||||
#include <zxing/common/reedsolomon/ReedSolomonException.h>
|
||||
#include <zxing/common/reedsolomon/GenericGF.h>
|
||||
#include <zxing/common/IllegalArgumentException.h>
|
||||
|
||||
#include <qglobal.h>
|
||||
|
||||
using zxing::aztec::Decoder;
|
||||
using zxing::DecoderResult;
|
||||
using zxing::String;
|
||||
using zxing::BitArray;
|
||||
using zxing::BitMatrix;
|
||||
using zxing::Ref;
|
||||
|
||||
using std::string;
|
||||
|
||||
namespace {
|
||||
void add(string& result, unsigned char character) {
|
||||
#ifndef NO_ICONV
|
||||
char s[] = { character & 0xff };
|
||||
char* ss = s;
|
||||
size_t sl = sizeof(s);
|
||||
char d[4];
|
||||
char* ds = d;
|
||||
size_t dl = sizeof(d);
|
||||
iconv_t ic = iconv_open("UTF-8", "ISO-8859-1");
|
||||
|
||||
|
||||
#if defined(Q_OS_SYMBIAN)
|
||||
iconv(ic, (const char**)&ss, &sl, &ds, &dl); // for Symbian and Mingw
|
||||
#else
|
||||
iconv(ic, (char**)&ss, &sl, &ds, &dl); // for Harmattan
|
||||
#endif
|
||||
iconv_close(ic);
|
||||
d[sizeof(d)-dl] = 0;
|
||||
result.append(d);
|
||||
#else
|
||||
result.push_back(character);
|
||||
#endif
|
||||
}
|
||||
|
||||
const int NB_BITS_COMPACT[] = {
|
||||
0, 104, 240, 408, 608
|
||||
};
|
||||
|
||||
const int NB_BITS[] = {
|
||||
0, 128, 288, 480, 704, 960, 1248, 1568, 1920, 2304, 2720, 3168, 3648, 4160, 4704, 5280, 5888, 6528,
|
||||
7200, 7904, 8640, 9408, 10208, 11040, 11904, 12800, 13728, 14688, 15680, 16704, 17760, 18848, 19968
|
||||
};
|
||||
|
||||
const int NB_DATABLOCK_COMPACT[] = {
|
||||
0, 17, 40, 51, 76
|
||||
};
|
||||
|
||||
const int NB_DATABLOCK[] = {
|
||||
0, 21, 48, 60, 88, 120, 156, 196, 240, 230, 272, 316, 364, 416, 470, 528, 588, 652, 720, 790, 864,
|
||||
940, 1020, 920, 992, 1066, 1144, 1224, 1306, 1392, 1480, 1570, 1664
|
||||
};
|
||||
|
||||
const char* UPPER_TABLE[] = {
|
||||
"CTRL_PS", " ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
|
||||
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "CTRL_LL", "CTRL_ML", "CTRL_DL", "CTRL_BS"
|
||||
};
|
||||
|
||||
const char* LOWER_TABLE[] = {
|
||||
"CTRL_PS", " ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
|
||||
"q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "CTRL_US", "CTRL_ML", "CTRL_DL", "CTRL_BS"
|
||||
};
|
||||
|
||||
const char* MIXED_TABLE[] = {
|
||||
"CTRL_PS", " ", "\1", "\2", "\3", "\4", "\5", "\6", "\7", "\b", "\t", "\n",
|
||||
"\13", "\f", "\r", "\33", "\34", "\35", "\36", "\37", "@", "\\", "^", "_",
|
||||
"`", "|", "~", "\177", "CTRL_LL", "CTRL_UL", "CTRL_PL", "CTRL_BS"
|
||||
};
|
||||
|
||||
const char* PUNCT_TABLE[] = {
|
||||
"", "\r", "\r\n", ". ", ", ", ": ", "!", "\"", "#", "$", "%", "&", "'", "(", ")",
|
||||
"*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "?", "[", "]", "{", "}", "CTRL_UL"
|
||||
};
|
||||
|
||||
const char* DIGIT_TABLE[] = {
|
||||
"CTRL_PS", " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ",", ".", "CTRL_UL", "CTRL_US"
|
||||
};
|
||||
}
|
||||
|
||||
Decoder::Table Decoder::getTable(char t) {
|
||||
switch (t) {
|
||||
case 'L':
|
||||
return LOWER;
|
||||
case 'P':
|
||||
return PUNCT;
|
||||
case 'M':
|
||||
return MIXED;
|
||||
case 'D':
|
||||
return DIGIT;
|
||||
case 'B':
|
||||
return BINARY;
|
||||
case 'U':
|
||||
default:
|
||||
return UPPER;
|
||||
}
|
||||
}
|
||||
|
||||
const char* Decoder::getCharacter(zxing::aztec::Decoder::Table table, int code) {
|
||||
switch (table) {
|
||||
case UPPER:
|
||||
return UPPER_TABLE[code];
|
||||
case LOWER:
|
||||
return LOWER_TABLE[code];
|
||||
case MIXED:
|
||||
return MIXED_TABLE[code];
|
||||
case PUNCT:
|
||||
return PUNCT_TABLE[code];
|
||||
case DIGIT:
|
||||
return DIGIT_TABLE[code];
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
Decoder::Decoder() {
|
||||
// nothing
|
||||
}
|
||||
|
||||
Ref<DecoderResult> Decoder::decode(Ref<zxing::aztec::AztecDetectorResult> detectorResult) {
|
||||
ddata_ = detectorResult;
|
||||
|
||||
// std::printf("getting bits\n");
|
||||
|
||||
Ref<BitMatrix> matrix = detectorResult->getBits();
|
||||
|
||||
if (!ddata_->isCompact()) {
|
||||
// std::printf("removing lines\n");
|
||||
matrix = removeDashedLines(ddata_->getBits());
|
||||
}
|
||||
|
||||
// std::printf("extracting bits\n");
|
||||
Ref<BitArray> rawbits = extractBits(matrix);
|
||||
|
||||
// std::printf("correcting bits\n");
|
||||
Ref<BitArray> aCorrectedBits = correctBits(rawbits);
|
||||
|
||||
// std::printf("decoding bits\n");
|
||||
Ref<String> result = getEncodedData(aCorrectedBits);
|
||||
|
||||
// std::printf("constructing array\n");
|
||||
ArrayRef<unsigned char> arrayOut(aCorrectedBits->getSize());
|
||||
for (int i = 0; i < aCorrectedBits->count(); i++) {
|
||||
arrayOut[i] = (unsigned char)aCorrectedBits->get(i);
|
||||
}
|
||||
|
||||
// std::printf("returning\n");
|
||||
|
||||
return Ref<DecoderResult>(new DecoderResult(arrayOut, result));
|
||||
}
|
||||
|
||||
Ref<String> Decoder::getEncodedData(Ref<zxing::BitArray> correctedBits) {
|
||||
int endIndex = codewordSize_ * ddata_->getNBDatablocks() - invertedBitCount_;
|
||||
if (endIndex > (int)correctedBits->getSize()) {
|
||||
// std::printf("invalid input\n");
|
||||
throw FormatException("invalid input data");
|
||||
}
|
||||
|
||||
Table lastTable = UPPER;
|
||||
Table table = UPPER;
|
||||
int startIndex = 0;
|
||||
std::string result;
|
||||
bool end = false;
|
||||
bool shift = false;
|
||||
bool switchShift = false;
|
||||
bool binaryShift = false;
|
||||
|
||||
while (!end) {
|
||||
// std::printf("decoooooding\n");
|
||||
|
||||
if (shift) {
|
||||
switchShift = true;
|
||||
} else {
|
||||
lastTable = table;
|
||||
}
|
||||
|
||||
int code;
|
||||
if (binaryShift) {
|
||||
if (endIndex - startIndex < 5) {
|
||||
break;
|
||||
}
|
||||
|
||||
int length = readCode(correctedBits, startIndex, 5);
|
||||
startIndex += 5;
|
||||
if (length == 0) {
|
||||
if (endIndex - startIndex < 11) {
|
||||
break;
|
||||
}
|
||||
|
||||
length = readCode(correctedBits, startIndex, 11) + 31;
|
||||
startIndex += 11;
|
||||
}
|
||||
for (int charCount = 0; charCount < length; charCount++) {
|
||||
if (endIndex - startIndex < 8) {
|
||||
end = true;
|
||||
break;
|
||||
}
|
||||
|
||||
code = readCode(correctedBits, startIndex, 8);
|
||||
add(result, code);
|
||||
startIndex += 8;
|
||||
}
|
||||
binaryShift = false;
|
||||
} else {
|
||||
if (table == BINARY) {
|
||||
if (endIndex - startIndex < 8) {
|
||||
end = true;
|
||||
break;
|
||||
}
|
||||
code = readCode(correctedBits, startIndex, 8);
|
||||
startIndex += 8;
|
||||
|
||||
add(result, code);
|
||||
} else {
|
||||
int size = 5;
|
||||
|
||||
if (table == DIGIT) {
|
||||
size = 4;
|
||||
}
|
||||
|
||||
if (endIndex - startIndex < size) {
|
||||
end = true;
|
||||
break;
|
||||
}
|
||||
|
||||
code = readCode(correctedBits, startIndex, size);
|
||||
startIndex += size;
|
||||
|
||||
const char *str = getCharacter(table, code);
|
||||
std::string string(str);
|
||||
if ((int)string.find("CTRL_") != -1) {
|
||||
table = getTable(str[5]);
|
||||
|
||||
if (str[6] == 'S') {
|
||||
shift = true;
|
||||
if (str[5] == 'B') {
|
||||
binaryShift = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
result.append(string);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (switchShift) {
|
||||
table = lastTable;
|
||||
shift = false;
|
||||
switchShift = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return Ref<String>(new String(result));
|
||||
|
||||
}
|
||||
|
||||
Ref<zxing::BitArray> Decoder::correctBits(Ref<zxing::BitArray> rawbits) {
|
||||
//return rawbits;
|
||||
// std::printf("decoding stuff:%d datablocks in %d layers\n", ddata_->getNBDatablocks(), ddata_->getNBLayers());
|
||||
|
||||
Ref<GenericGF> gf = GenericGF::AZTEC_DATA_6;
|
||||
|
||||
if (ddata_->getNBLayers() <= 2) {
|
||||
codewordSize_ = 6;
|
||||
gf = GenericGF::AZTEC_DATA_6;
|
||||
} else if (ddata_->getNBLayers() <= 8) {
|
||||
codewordSize_ = 8;
|
||||
gf = GenericGF::AZTEC_DATA_8;
|
||||
} else if (ddata_->getNBLayers() <= 22) {
|
||||
codewordSize_ = 10;
|
||||
gf = GenericGF::AZTEC_DATA_10;
|
||||
} else {
|
||||
codewordSize_ = 12;
|
||||
gf = GenericGF::AZTEC_DATA_12;
|
||||
}
|
||||
|
||||
int numDataCodewords = ddata_->getNBDatablocks();
|
||||
int numECCodewords;
|
||||
int offset;
|
||||
|
||||
if (ddata_->isCompact()) {
|
||||
offset = NB_BITS_COMPACT[ddata_->getNBLayers()] - numCodewords_ * codewordSize_;
|
||||
numECCodewords = NB_DATABLOCK_COMPACT[ddata_->getNBLayers()] - numDataCodewords;
|
||||
} else {
|
||||
offset = NB_BITS[ddata_->getNBLayers()] - numCodewords_ * codewordSize_;
|
||||
numECCodewords = NB_DATABLOCK[ddata_->getNBLayers()] - numDataCodewords;
|
||||
}
|
||||
|
||||
ArrayRef<int> dataWords(numCodewords_);
|
||||
|
||||
for (int i = 0; i < numCodewords_; i++) {
|
||||
int flag = 1;
|
||||
for (int j = 1; j <= codewordSize_; j++) {
|
||||
if (rawbits->get(codewordSize_ * i + codewordSize_ - j + offset)) {
|
||||
dataWords[i] += flag;
|
||||
}
|
||||
flag <<= 1;
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
}
|
||||
|
||||
try {
|
||||
// std::printf("trying reed solomon, numECCodewords:%d\n", numECCodewords);
|
||||
ReedSolomonDecoder rsDecoder(gf);
|
||||
rsDecoder.decode(dataWords, numECCodewords);
|
||||
} catch (ReedSolomonException& rse) {
|
||||
// std::printf("got reed solomon exception:%s, throwing formatexception\n", rse.what());
|
||||
throw FormatException("rs decoding failed");
|
||||
} catch (IllegalArgumentException& iae) {
|
||||
// std::printf("illegal argument exception: %s", iae.what());
|
||||
}
|
||||
|
||||
offset = 0;
|
||||
invertedBitCount_ = 0;
|
||||
|
||||
Ref<BitArray> correctedBits(new BitArray(numDataCodewords * codewordSize_));
|
||||
for (int i = 0; i < numDataCodewords; i++) {
|
||||
|
||||
bool seriesColor = false;
|
||||
int seriesCount = 0;
|
||||
int flag = 1 << (codewordSize_ - 1);
|
||||
|
||||
for (int j = 0; j < codewordSize_; j++) {
|
||||
|
||||
bool color = (dataWords[i] & flag) == flag;
|
||||
|
||||
if (seriesCount == codewordSize_ - 1) {
|
||||
|
||||
if (color == seriesColor) {
|
||||
throw FormatException("bit was not inverted");
|
||||
}
|
||||
|
||||
seriesColor = false;
|
||||
seriesCount = 0;
|
||||
offset++;
|
||||
invertedBitCount_++;
|
||||
|
||||
} else {
|
||||
|
||||
if (seriesColor == color) {
|
||||
seriesCount++;
|
||||
} else {
|
||||
seriesCount = 1;
|
||||
seriesColor = color;
|
||||
}
|
||||
|
||||
if (color) correctedBits->set(i * codewordSize_ + j - offset);
|
||||
|
||||
}
|
||||
|
||||
flag = (unsigned int)flag >> 1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return correctedBits;
|
||||
}
|
||||
|
||||
Ref<BitArray> Decoder::extractBits(Ref<zxing::BitMatrix> matrix) {
|
||||
std::vector<bool> rawbits;
|
||||
|
||||
if (ddata_->isCompact()) {
|
||||
if (ddata_->getNBLayers() > 5) { //NB_BITS_COMPACT length
|
||||
throw FormatException("data is too long");
|
||||
}
|
||||
rawbits = std::vector<bool>(NB_BITS_COMPACT[ddata_->getNBLayers()]);
|
||||
numCodewords_ = NB_DATABLOCK_COMPACT[ddata_->getNBLayers()];
|
||||
} else {
|
||||
if (ddata_->getNBLayers() > 33) { //NB_BITS length
|
||||
throw FormatException("data is too long");
|
||||
}
|
||||
rawbits = std::vector<bool>(NB_BITS[ddata_->getNBLayers()]);
|
||||
numCodewords_ = NB_DATABLOCK[ddata_->getNBLayers()];
|
||||
}
|
||||
|
||||
int layer = ddata_->getNBLayers();
|
||||
int size = matrix->getHeight();
|
||||
int rawbitsOffset = 0;
|
||||
int matrixOffset = 0;
|
||||
|
||||
|
||||
while (layer != 0) {
|
||||
|
||||
int flip = 0;
|
||||
for (int i = 0; i < 2 * size - 4; i++) {
|
||||
rawbits[rawbitsOffset + i] = matrix->get(matrixOffset + flip, matrixOffset + i / 2);
|
||||
rawbits[rawbitsOffset + 2 * size - 4 + i] = matrix->get(matrixOffset + i / 2, matrixOffset + size - 1 - flip);
|
||||
flip = (flip + 1) % 2;
|
||||
}
|
||||
|
||||
flip = 0;
|
||||
for (int i = 2 * size + 1; i > 5; i--) {
|
||||
rawbits[rawbitsOffset + 4 * size - 8 + (2 * size - i) + 1] =
|
||||
matrix->get(matrixOffset + size - 1 - flip, matrixOffset + i / 2 - 1);
|
||||
rawbits[rawbitsOffset + 6 * size - 12 + (2 * size - i) + 1] =
|
||||
matrix->get(matrixOffset + i / 2 - 1, matrixOffset + flip);
|
||||
flip = (flip + 1) % 2;
|
||||
}
|
||||
|
||||
matrixOffset += 2;
|
||||
rawbitsOffset += 8 * size - 16;
|
||||
layer--;
|
||||
size -= 4;
|
||||
|
||||
}
|
||||
|
||||
Ref<BitArray> returnValue(new BitArray(rawbits.size()));
|
||||
for (int i = 0; i < (int)rawbits.size(); i++) {
|
||||
if (rawbits[i]) returnValue->set(i);
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
|
||||
}
|
||||
|
||||
Ref<BitMatrix> Decoder::removeDashedLines(Ref<zxing::BitMatrix> matrix) {
|
||||
int nbDashed = 1 + 2 * ((matrix->getWidth() - 1) / 2 / 16);
|
||||
Ref<BitMatrix> newMatrix(new BitMatrix(matrix->getWidth() - nbDashed, matrix->getHeight() - nbDashed));
|
||||
|
||||
int nx = 0;
|
||||
|
||||
for (int x = 0; x < (int)matrix->getWidth(); x++) {
|
||||
|
||||
if ((matrix->getWidth() / 2 - x) % 16 == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int ny = 0;
|
||||
for (int y = 0; y < (int)matrix->getHeight(); y++) {
|
||||
|
||||
if ((matrix->getWidth() / 2 - y) % 16 == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (matrix->get(x, y)) {
|
||||
newMatrix->set(nx, ny);
|
||||
}
|
||||
ny++;
|
||||
|
||||
}
|
||||
nx++;
|
||||
|
||||
}
|
||||
return newMatrix;
|
||||
}
|
||||
|
||||
int Decoder::readCode(Ref<zxing::BitArray> rawbits, int startIndex, int length) {
|
||||
int res = 0;
|
||||
|
||||
for (int i = startIndex; i < startIndex + length; i++) {
|
||||
res <<= 1;
|
||||
if (rawbits->get(i)) {
|
||||
res ++;
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
63
symbian/QZXing/source/zxing/aztec/decoder/Decoder.h
Normal file
|
@ -0,0 +1,63 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* Decoder.h
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <zxing/common/DecoderResult.h>
|
||||
#include <zxing/common/BitMatrix.h>
|
||||
#include <zxing/common/Str.h>
|
||||
#include <zxing/aztec/AztecDetectorResult.h>
|
||||
|
||||
namespace zxing {
|
||||
namespace aztec {
|
||||
|
||||
class Decoder : public Counted {
|
||||
private:
|
||||
enum Table {
|
||||
UPPER,
|
||||
LOWER,
|
||||
MIXED,
|
||||
DIGIT,
|
||||
PUNCT,
|
||||
BINARY
|
||||
};
|
||||
|
||||
static Table getTable(char t);
|
||||
static const char* getCharacter(Table table, int code);
|
||||
|
||||
int numCodewords_;
|
||||
int codewordSize_;
|
||||
Ref<AztecDetectorResult> ddata_;
|
||||
int invertedBitCount_;
|
||||
|
||||
Ref<String> getEncodedData(Ref<BitArray> correctedBits);
|
||||
Ref<BitArray> correctBits(Ref<BitArray> rawbits);
|
||||
Ref<BitArray> extractBits(Ref<BitMatrix> matrix);
|
||||
static Ref<BitMatrix> removeDashedLines(Ref<BitMatrix> matrix);
|
||||
static int readCode(Ref<BitArray> rawbits, int startIndex, int length);
|
||||
|
||||
|
||||
public:
|
||||
Decoder();
|
||||
Ref<DecoderResult> decode(Ref<AztecDetectorResult> detectorResult);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
541
symbian/QZXing/source/zxing/aztec/detector/AztecDetector.cpp
Normal file
|
@ -0,0 +1,541 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* Detector.cpp
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <zxing/aztec/detector/Detector.h>
|
||||
#include <zxing/common/GridSampler.h>
|
||||
#include <zxing/common/detector/WhiteRectangleDetector.h>
|
||||
#include <zxing/common/reedsolomon/ReedSolomonDecoder.h>
|
||||
#include <zxing/common/reedsolomon/ReedSolomonException.h>
|
||||
#include <zxing/common/reedsolomon/GenericGF.h>
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
#include <zxing/NotFoundException.h>
|
||||
|
||||
using zxing::aztec::Detector;
|
||||
using zxing::aztec::Point;
|
||||
using zxing::aztec::AztecDetectorResult;
|
||||
using zxing::Ref;
|
||||
using zxing::ResultPoint;
|
||||
using zxing::BitArray;
|
||||
using zxing::BitMatrix;
|
||||
|
||||
Detector::Detector(Ref<BitMatrix> image):
|
||||
image_(image),
|
||||
nbLayers_(0),
|
||||
nbDataBlocks_(0),
|
||||
nbCenterLayers_(0) {
|
||||
|
||||
}
|
||||
|
||||
// using namespace std;
|
||||
|
||||
Ref<AztecDetectorResult> Detector::detect() {
|
||||
Ref<Point> pCenter = getMatrixCenter();
|
||||
|
||||
std::vector<Ref<Point> > bullEyeCornerPoints = getBullEyeCornerPoints(pCenter);
|
||||
|
||||
extractParameters(bullEyeCornerPoints);
|
||||
|
||||
std::vector<Ref<ResultPoint> > corners = getMatrixCornerPoints(bullEyeCornerPoints);
|
||||
|
||||
Ref<BitMatrix> bits = sampleGrid(image_, corners[shift_%4], corners[(shift_+3)%4], corners[(shift_+2)%4], corners[(shift_+1)%4]);
|
||||
|
||||
// std::printf("------------\ndetected: compact:%s, nbDataBlocks:%d, nbLayers:%d\n------------\n",compact_?"YES":"NO", nbDataBlocks_, nbLayers_);
|
||||
|
||||
return Ref<AztecDetectorResult>(new AztecDetectorResult(bits, corners, compact_, nbDataBlocks_, nbLayers_));
|
||||
}
|
||||
|
||||
void Detector::extractParameters(std::vector<Ref<Point> > bullEyeCornerPoints) {
|
||||
// get the bits around the bull's eye
|
||||
Ref<BitArray> resab = sampleLine(bullEyeCornerPoints[0], bullEyeCornerPoints[1], 2*nbCenterLayers_+1);
|
||||
Ref<BitArray> resbc = sampleLine(bullEyeCornerPoints[1], bullEyeCornerPoints[2], 2*nbCenterLayers_+1);
|
||||
Ref<BitArray> rescd = sampleLine(bullEyeCornerPoints[2], bullEyeCornerPoints[3], 2*nbCenterLayers_+1);
|
||||
Ref<BitArray> resda = sampleLine(bullEyeCornerPoints[3], bullEyeCornerPoints[0], 2*nbCenterLayers_+1);
|
||||
|
||||
// determin the orientation of the matrix
|
||||
if (resab->get(0) && resab->get(2 * nbCenterLayers_)) {
|
||||
shift_ = 0;
|
||||
} else if (resbc->get(0) && resbc->get(2 * nbCenterLayers_)) {
|
||||
shift_ = 1;
|
||||
} else if (rescd->get(0) && rescd->get(2 * nbCenterLayers_)) {
|
||||
shift_ = 2;
|
||||
} else if (resda->get(0) && resda->get(2 * nbCenterLayers_)) {
|
||||
shift_ = 3;
|
||||
} else {
|
||||
// std::printf("could not detemine orientation\n");
|
||||
throw ReaderException("could not determine orientation");
|
||||
}
|
||||
|
||||
//d a
|
||||
//
|
||||
//c b
|
||||
|
||||
//flatten the bits in a single array
|
||||
Ref<BitArray> parameterData(new BitArray(compact_?28:40));
|
||||
Ref<BitArray> shiftedParameterData(new BitArray(compact_?28:40));
|
||||
|
||||
if (compact_) {
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (resab->get(2+i)) shiftedParameterData->set(i);
|
||||
if (resbc->get(2+i)) shiftedParameterData->set(i+7);
|
||||
if (rescd->get(2+i)) shiftedParameterData->set(i+14);
|
||||
if (resda->get(2+i)) shiftedParameterData->set(i+21);
|
||||
}
|
||||
for (int i = 0; i < 28; i++) {
|
||||
if (shiftedParameterData->get((i+shift_*7)%28)) parameterData->set(i);
|
||||
}
|
||||
|
||||
} else {
|
||||
for (int i = 0; i < 11; i++) {
|
||||
if (i < 5) {
|
||||
if (resab->get(2+i)) shiftedParameterData->set(i);
|
||||
if (resbc->get(2+i)) shiftedParameterData->set(i+10);
|
||||
if (rescd->get(2+i)) shiftedParameterData->set(i+20);
|
||||
if (resda->get(2+i)) shiftedParameterData->set(i+30);
|
||||
}
|
||||
if (i > 5) {
|
||||
if (resab->get(2+i)) shiftedParameterData->set(i-1);
|
||||
if (resbc->get(2+i)) shiftedParameterData->set(i+10-1);
|
||||
if (rescd->get(2+i)) shiftedParameterData->set(i+20-1);
|
||||
if (resda->get(2+i)) shiftedParameterData->set(i+30-1);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 40; i++) {
|
||||
if (shiftedParameterData->get((i+shift_*10)%40)) parameterData->set(i);
|
||||
}
|
||||
}
|
||||
|
||||
correctParameterData(parameterData, compact_);
|
||||
|
||||
getParameters(parameterData);
|
||||
}
|
||||
|
||||
std::vector<Ref<ResultPoint> > Detector::getMatrixCornerPoints(std::vector<Ref<Point> > bullEyeCornerPoints) {
|
||||
float ratio = (2 * nbLayers_ + (nbLayers_ > 4 ? 1 : 0) + (nbLayers_ - 4) / 8) / (2.0f * nbCenterLayers_);
|
||||
|
||||
int dx = bullEyeCornerPoints[0]->x - bullEyeCornerPoints[2]->x;
|
||||
dx += dx > 0 ? 1 : -1;
|
||||
int dy = bullEyeCornerPoints[0]->y - bullEyeCornerPoints[2]->y;
|
||||
dy += dy > 0 ? 1 : -1;
|
||||
|
||||
int targetcx = ROUND(bullEyeCornerPoints[2]->x - ratio * dx);
|
||||
int targetcy = ROUND(bullEyeCornerPoints[2]->y - ratio * dy);
|
||||
|
||||
int targetax = ROUND(bullEyeCornerPoints[0]->x + ratio * dx);
|
||||
int targetay = ROUND(bullEyeCornerPoints[0]->y + ratio * dy);
|
||||
|
||||
dx = bullEyeCornerPoints[1]->x - bullEyeCornerPoints[3]->x;
|
||||
dx += dx > 0 ? 1 : -1;
|
||||
dy = bullEyeCornerPoints[1]->y - bullEyeCornerPoints[3]->y;
|
||||
dy += dy > 0 ? 1 : -1;
|
||||
|
||||
int targetdx = ROUND(bullEyeCornerPoints[3]->x - ratio * dx);
|
||||
int targetdy = ROUND(bullEyeCornerPoints[3]->y - ratio * dy);
|
||||
int targetbx = ROUND(bullEyeCornerPoints[1]->x + ratio * dx);
|
||||
int targetby = ROUND(bullEyeCornerPoints[1]->y + ratio * dy);
|
||||
|
||||
if (!isValid(targetax, targetay) ||
|
||||
!isValid(targetbx, targetby) ||
|
||||
!isValid(targetcx, targetcy) ||
|
||||
!isValid(targetdx, targetdy)) {
|
||||
throw ReaderException("matrix extends over image bounds");
|
||||
}
|
||||
std::vector<Ref<ResultPoint> > returnValue;
|
||||
returnValue.push_back(Ref<ResultPoint>(new ResultPoint(targetax, targetay)));
|
||||
returnValue.push_back(Ref<ResultPoint>(new ResultPoint(targetbx, targetby)));
|
||||
returnValue.push_back(Ref<ResultPoint>(new ResultPoint(targetcx, targetcy)));
|
||||
returnValue.push_back(Ref<ResultPoint>(new ResultPoint(targetdx, targetdy)));
|
||||
|
||||
return returnValue;
|
||||
|
||||
}
|
||||
|
||||
void Detector::correctParameterData(Ref<zxing::BitArray> parameterData, bool compact) {
|
||||
int numCodewords;
|
||||
int numDataCodewords;
|
||||
|
||||
if (compact) {
|
||||
numCodewords = 7;
|
||||
numDataCodewords = 2;
|
||||
} else {
|
||||
numCodewords = 10;
|
||||
numDataCodewords = 4;
|
||||
}
|
||||
|
||||
int numECCodewords = numCodewords - numDataCodewords;
|
||||
|
||||
ArrayRef<int> parameterWords(new Array<int>(numCodewords));
|
||||
|
||||
int codewordSize = 4;
|
||||
for (int i = 0; i < numCodewords; i++) {
|
||||
int flag = 1;
|
||||
for (int j = 1; j <= codewordSize; j++) {
|
||||
if (parameterData->get(codewordSize*i + codewordSize - j)) {
|
||||
parameterWords[i] += flag;
|
||||
}
|
||||
flag <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
// std::printf("parameter data reed solomon\n");
|
||||
ReedSolomonDecoder rsDecoder(GenericGF::AZTEC_PARAM);
|
||||
rsDecoder.decode(parameterWords, numECCodewords);
|
||||
} catch (ReedSolomonException& e) {
|
||||
// std::printf("reed solomon decoding failed\n");
|
||||
throw ReaderException("failed to decode parameter data");
|
||||
}
|
||||
|
||||
parameterData->clear();
|
||||
for (int i = 0; i < numDataCodewords; i++) {
|
||||
int flag = 1;
|
||||
for (int j = 1; j <= codewordSize; j++) {
|
||||
if ((parameterWords[i] & flag) == flag) {
|
||||
parameterData->set(i*codewordSize+codewordSize-j);
|
||||
}
|
||||
flag <<= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<Ref<Point> > Detector::getBullEyeCornerPoints(Ref<zxing::aztec::Point> pCenter) {
|
||||
Ref<Point> pina = pCenter;
|
||||
Ref<Point> pinb = pCenter;
|
||||
Ref<Point> pinc = pCenter;
|
||||
Ref<Point> pind = pCenter;
|
||||
|
||||
bool color = true;
|
||||
|
||||
for (nbCenterLayers_ = 1; nbCenterLayers_ < 9; nbCenterLayers_++) {
|
||||
Ref<Point> pouta = getFirstDifferent(pina, color, 1, -1);
|
||||
Ref<Point> poutb = getFirstDifferent(pinb, color, 1, 1);
|
||||
Ref<Point> poutc = getFirstDifferent(pinc, color, -1, 1);
|
||||
Ref<Point> poutd = getFirstDifferent(pind, color, -1, -1);
|
||||
|
||||
//d a
|
||||
//
|
||||
//c b
|
||||
|
||||
if (nbCenterLayers_ > 2) {
|
||||
float q = distance(poutd, pouta) * nbCenterLayers_ / (distance(pind, pina) * (nbCenterLayers_ + 2));
|
||||
if (q < 0.75 || q > 1.25 || !isWhiteOrBlackRectangle(pouta, poutb, poutc, poutd)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
pina = pouta;
|
||||
pinb = poutb;
|
||||
pinc = poutc;
|
||||
pind = poutd;
|
||||
|
||||
color = !color;
|
||||
}
|
||||
|
||||
if (nbCenterLayers_ != 5 && nbCenterLayers_ != 7) {
|
||||
throw ReaderException("encountered wrong bullseye ring count");
|
||||
}
|
||||
|
||||
compact_ = nbCenterLayers_ == 5;
|
||||
|
||||
|
||||
|
||||
float ratio = 0.75f*2 / (2*nbCenterLayers_-3);
|
||||
|
||||
int dx = pina->x - pind->x;
|
||||
int dy = pina->y - pinc->y;
|
||||
|
||||
int targetcx = ROUND(pinc->x - ratio * dx);
|
||||
int targetcy = ROUND(pinc->y - ratio * dy);
|
||||
int targetax = ROUND(pina->x + ratio * dx);
|
||||
int targetay = ROUND(pina->y + ratio * dy);
|
||||
|
||||
dx = pinb->x - pind->x;
|
||||
dy = pinb->y - pind->y;
|
||||
|
||||
int targetdx = ROUND(pind->x - ratio * dx);
|
||||
int targetdy = ROUND(pind->y - ratio * dy);
|
||||
int targetbx = ROUND(pinb->x + ratio * dx);
|
||||
int targetby = ROUND(pinb->y + ratio * dy);
|
||||
|
||||
if (!isValid(targetax, targetay) ||
|
||||
!isValid(targetbx, targetby) ||
|
||||
!isValid(targetcx, targetcy) ||
|
||||
!isValid(targetdx, targetdy)) {
|
||||
throw ReaderException("bullseye extends over image bounds");
|
||||
}
|
||||
|
||||
std::vector<Ref<Point> > returnValue;
|
||||
returnValue.push_back(Ref<Point>(new Point(targetax, targetay)));
|
||||
returnValue.push_back(Ref<Point>(new Point(targetbx, targetby)));
|
||||
returnValue.push_back(Ref<Point>(new Point(targetcx, targetcy)));
|
||||
returnValue.push_back(Ref<Point>(new Point(targetdx, targetdy)));
|
||||
|
||||
return returnValue;
|
||||
|
||||
}
|
||||
|
||||
Ref<Point> Detector::getMatrixCenter() {
|
||||
Ref<ResultPoint> pointA, pointB, pointC, pointD;
|
||||
try {
|
||||
|
||||
std::vector<Ref<ResultPoint> > cornerPoints = WhiteRectangleDetector(image_).detect();
|
||||
pointA = cornerPoints[0];
|
||||
pointB = cornerPoints[1];
|
||||
pointC = cornerPoints[2];
|
||||
pointD = cornerPoints[3];
|
||||
|
||||
} catch (NotFoundException& e) {
|
||||
|
||||
int cx = image_->getWidth() / 2;
|
||||
int cy = image_->getHeight() / 2;
|
||||
|
||||
pointA = getFirstDifferent(Ref<Point>(new Point(cx+15/2, cy-15/2)), false, 1, -1)->toResultPoint();
|
||||
pointB = getFirstDifferent(Ref<Point>(new Point(cx+15/2, cy+15/2)), false, 1, 1)->toResultPoint();
|
||||
pointC = getFirstDifferent(Ref<Point>(new Point(cx-15/2, cy+15/2)), false, -1, -1)->toResultPoint();
|
||||
pointD = getFirstDifferent(Ref<Point>(new Point(cx-15/2, cy-15/2)), false, -1, -1)->toResultPoint();
|
||||
|
||||
}
|
||||
|
||||
int cx = ROUND((pointA->getX() + pointD->getX() + pointB->getX() + pointC->getX()) / 4);
|
||||
int cy = ROUND((pointA->getY() + pointD->getY() + pointB->getY() + pointC->getY()) / 4);
|
||||
|
||||
try {
|
||||
|
||||
std::vector<Ref<ResultPoint> > cornerPoints = WhiteRectangleDetector(image_, 15, cx, cy).detect();
|
||||
pointA = cornerPoints[0];
|
||||
pointB = cornerPoints[1];
|
||||
pointC = cornerPoints[2];
|
||||
pointD = cornerPoints[3];
|
||||
|
||||
} catch (NotFoundException& e) {
|
||||
|
||||
pointA = getFirstDifferent(Ref<Point>(new Point(cx+15/2, cy-15/2)), false, 1, -1)->toResultPoint();
|
||||
pointB = getFirstDifferent(Ref<Point>(new Point(cx+15/2, cy+15/2)), false, 1, 1)->toResultPoint();
|
||||
pointC = getFirstDifferent(Ref<Point>(new Point(cx-15/2, cy+15/2)), false, -1, -1)->toResultPoint();
|
||||
pointD = getFirstDifferent(Ref<Point>(new Point(cx-15/2, cy-15/2)), false, -1, -1)->toResultPoint();
|
||||
|
||||
}
|
||||
|
||||
cx = ROUND((pointA->getX() + pointD->getX() + pointB->getX() + pointC->getX()) / 4);
|
||||
cy = ROUND((pointA->getY() + pointD->getY() + pointB->getY() + pointC->getY()) / 4);
|
||||
|
||||
return Ref<Point>(new Point(cx, cy));
|
||||
|
||||
}
|
||||
|
||||
Ref<BitMatrix> Detector::sampleGrid(Ref<zxing::BitMatrix> image,
|
||||
Ref<zxing::ResultPoint> topLeft,
|
||||
Ref<zxing::ResultPoint> bottomLeft,
|
||||
Ref<zxing::ResultPoint> bottomRight,
|
||||
Ref<zxing::ResultPoint> topRight) {
|
||||
int dimension;
|
||||
if (compact_) {
|
||||
dimension = 4 * nbLayers_+11;
|
||||
} else {
|
||||
if (nbLayers_ <= 4) {
|
||||
dimension = 4 * nbLayers_ + 15;
|
||||
} else {
|
||||
dimension = 4 * nbLayers_ + 2 * ((nbLayers_-4)/8 + 1) + 15;
|
||||
}
|
||||
}
|
||||
|
||||
GridSampler sampler = GridSampler::getInstance();
|
||||
|
||||
return sampler.sampleGrid(image,
|
||||
dimension,
|
||||
0.5f,
|
||||
0.5f,
|
||||
dimension - 0.5f,
|
||||
0.5f,
|
||||
dimension - 0.5f,
|
||||
dimension - 0.5f,
|
||||
0.5f,
|
||||
dimension - 0.5f,
|
||||
topLeft->getX(),
|
||||
topLeft->getY(),
|
||||
topRight->getX(),
|
||||
topRight->getY(),
|
||||
bottomRight->getX(),
|
||||
bottomRight->getY(),
|
||||
bottomLeft->getX(),
|
||||
bottomLeft->getY());
|
||||
}
|
||||
|
||||
void Detector::getParameters(Ref<zxing::BitArray> parameterData) {
|
||||
nbLayers_ = 0;
|
||||
nbDataBlocks_ = 0;
|
||||
|
||||
int nbBitsForNbLayers;
|
||||
int nbBitsForNbDatablocks;
|
||||
|
||||
if (compact_) {
|
||||
nbBitsForNbLayers = 2;
|
||||
nbBitsForNbDatablocks = 6;
|
||||
} else {
|
||||
nbBitsForNbLayers = 5;
|
||||
nbBitsForNbDatablocks = 11;
|
||||
}
|
||||
|
||||
for (int i = 0; i < nbBitsForNbLayers; i++) {
|
||||
nbLayers_ <<= 1;
|
||||
if (parameterData->get(i)) {
|
||||
nbLayers_ += 1;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = nbBitsForNbLayers; i < nbBitsForNbLayers + nbBitsForNbDatablocks; i++) {
|
||||
nbDataBlocks_ <<= 1;
|
||||
if (parameterData->get(i)) {
|
||||
nbDataBlocks_ += 1;
|
||||
}
|
||||
}
|
||||
|
||||
nbLayers_ ++;
|
||||
nbDataBlocks_ ++;
|
||||
}
|
||||
|
||||
Ref<BitArray> Detector::sampleLine(Ref<zxing::aztec::Point> p1, Ref<zxing::aztec::Point> p2, int size) {
|
||||
Ref<BitArray> res(new BitArray(size));
|
||||
|
||||
float d = distance(p1, p2);
|
||||
float moduleSize = d / (size-1);
|
||||
float dx = moduleSize * (p2->x - p1->x)/d;
|
||||
float dy = moduleSize * (p2->y - p1->y)/d;
|
||||
|
||||
float px = p1->x;
|
||||
float py = p1->y;
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
if (image_->get(ROUND(px), ROUND(py))) res->set(i);
|
||||
px += dx;
|
||||
py += dy;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
bool Detector::isWhiteOrBlackRectangle(Ref<zxing::aztec::Point> p1,
|
||||
Ref<zxing::aztec::Point> p2,
|
||||
Ref<zxing::aztec::Point> p3,
|
||||
Ref<zxing::aztec::Point> p4) {
|
||||
int corr = 3;
|
||||
|
||||
p1 = new Point(p1->x - corr, p1->y + corr);
|
||||
p2 = new Point(p2->x - corr, p2->y - corr);
|
||||
p3 = new Point(p3->x + corr, p3->y - corr);
|
||||
p4 = new Point(p4->x + corr, p4->y + corr);
|
||||
|
||||
int cInit = getColor(p4, p1);
|
||||
|
||||
if (cInit == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int c = getColor(p1, p2);
|
||||
|
||||
if (c != cInit) {
|
||||
return false;
|
||||
}
|
||||
|
||||
c = getColor(p2, p3);
|
||||
|
||||
if (c != cInit) {
|
||||
return false;
|
||||
}
|
||||
|
||||
c = getColor(p3, p4);
|
||||
|
||||
if (c != cInit) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int Detector::getColor(Ref<zxing::aztec::Point> p1, Ref<zxing::aztec::Point> p2) {
|
||||
float d = distance(p1, p2);
|
||||
|
||||
float dx = (p2->x - p1->x) / d;
|
||||
float dy = (p2->y - p1->y) / d;
|
||||
|
||||
int error = 0;
|
||||
|
||||
float px = p1->x;
|
||||
float py = p1->y;
|
||||
|
||||
bool colorModel = image_->get(p1->x, p1->y);
|
||||
|
||||
for (int i = 0; i < d; i++) {
|
||||
px += dx;
|
||||
py += dy;
|
||||
if (image_->get(ROUND(px), ROUND(py)) != colorModel) {
|
||||
error ++;
|
||||
}
|
||||
}
|
||||
|
||||
float errRatio = (float)error/d;
|
||||
|
||||
|
||||
if (errRatio > 0.1 && errRatio < 0.9) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (errRatio <= 0.1) {
|
||||
return colorModel?1:-1;
|
||||
} else {
|
||||
return colorModel?-1:1;
|
||||
}
|
||||
}
|
||||
|
||||
Ref<Point> Detector::getFirstDifferent(Ref<zxing::aztec::Point> init, bool color, int dx, int dy) {
|
||||
int x = init->x + dx;
|
||||
int y = init->y + dy;
|
||||
|
||||
while (isValid(x, y) && image_->get(x, y) == color) {
|
||||
x += dx;
|
||||
y += dy;
|
||||
}
|
||||
|
||||
x -= dx;
|
||||
y -= dy;
|
||||
|
||||
while (isValid(x, y) && image_->get(x, y) == color) {
|
||||
x += dx;
|
||||
}
|
||||
|
||||
x -= dx;
|
||||
|
||||
while (isValid(x, y) && image_->get(x, y) == color) {
|
||||
y += dy;
|
||||
}
|
||||
|
||||
y -= dy;
|
||||
|
||||
return Ref<Point>(new Point(x, y));
|
||||
}
|
||||
|
||||
bool Detector::isValid(int x, int y) {
|
||||
return x >= 0 && x < (int)image_->getWidth() && y > 0 && y < (int)image_->getHeight();
|
||||
}
|
||||
|
||||
float Detector::distance(Ref<zxing::aztec::Point> a, Ref<zxing::aztec::Point> b) {
|
||||
return sqrtf((float)((a->x - b->x) * (a->x - b->x) + (a->y - b->y) * (a->y - b->y)));
|
||||
}
|
87
symbian/QZXing/source/zxing/aztec/detector/Detector.h
Normal file
|
@ -0,0 +1,87 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* Detector.h
|
||||
* zxing
|
||||
*
|
||||
* Created by Lukas Stabe on 08/02/2012.
|
||||
* Copyright 2012 ZXing authors All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <zxing/common/BitArray.h>
|
||||
#include <zxing/ResultPoint.h>
|
||||
#include <zxing/common/BitMatrix.h>
|
||||
#include <zxing/DecodeHints.h>
|
||||
#include <zxing/aztec/AztecDetectorResult.h>
|
||||
|
||||
#define ROUND(a) ((int)(a + 0.5f))
|
||||
|
||||
namespace zxing {
|
||||
namespace aztec {
|
||||
|
||||
class Point : public Counted {
|
||||
public:
|
||||
int x;
|
||||
int y;
|
||||
|
||||
Ref<ResultPoint> toResultPoint() {
|
||||
return Ref<ResultPoint>(new ResultPoint(x, y));
|
||||
}
|
||||
|
||||
Point(int ax, int ay):x(ax),y(ay) {};
|
||||
|
||||
};
|
||||
|
||||
class Detector : public Counted {
|
||||
|
||||
private:
|
||||
Ref<BitMatrix> image_;
|
||||
|
||||
bool compact_;
|
||||
int nbLayers_;
|
||||
int nbDataBlocks_;
|
||||
int nbCenterLayers_;
|
||||
int shift_;
|
||||
|
||||
void extractParameters(std::vector<Ref<Point> > bullEyeCornerPoints);
|
||||
std::vector<Ref<ResultPoint> > getMatrixCornerPoints(std::vector<Ref<Point> > bullEyeCornerPoints);
|
||||
static void correctParameterData(Ref<BitArray> parameterData, bool compact);
|
||||
std::vector<Ref<Point> > getBullEyeCornerPoints(Ref<Point> pCenter);
|
||||
Ref<Point> getMatrixCenter();
|
||||
Ref<BitMatrix> sampleGrid(Ref<BitMatrix> image,
|
||||
Ref<ResultPoint> topLeft,
|
||||
Ref<ResultPoint> bottomLeft,
|
||||
Ref<ResultPoint> bottomRight,
|
||||
Ref<ResultPoint> topRight);
|
||||
void getParameters(Ref<BitArray> parameterData);
|
||||
Ref<BitArray> sampleLine(Ref<Point> p1, Ref<Point> p2, int size);
|
||||
bool isWhiteOrBlackRectangle(Ref<Point> p1,
|
||||
Ref<Point> p2,
|
||||
Ref<Point> p3,
|
||||
Ref<Point> p4);
|
||||
int getColor(Ref<Point> p1, Ref<Point> p2);
|
||||
Ref<Point> getFirstDifferent(Ref<Point> init, bool color, int dx, int dy);
|
||||
bool isValid(int x, int y);
|
||||
static float distance(Ref<Point> a, Ref<Point> b);
|
||||
|
||||
public:
|
||||
Detector(Ref<BitMatrix> image);
|
||||
Ref<AztecDetectorResult> detect();
|
||||
};
|
||||
|
||||
}
|
||||
}
|
|
@ -1,8 +1,5 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* BitArray.cpp
|
||||
* zxing
|
||||
*
|
||||
* Copyright 2010 ZXing authors. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
@ -19,32 +16,14 @@
|
|||
*/
|
||||
|
||||
#include <zxing/common/BitArray.h>
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace zxing {
|
||||
|
||||
static unsigned int logDigits(unsigned digits) {
|
||||
unsigned log = 0;
|
||||
unsigned val = 1;
|
||||
while (val < digits) {
|
||||
log++;
|
||||
val <<= 1;
|
||||
}
|
||||
return log;
|
||||
}
|
||||
|
||||
const unsigned int BitArray::bitsPerWord_ = numeric_limits<unsigned int>::digits;
|
||||
const unsigned int BitArray::logBits_ = logDigits(bitsPerWord_);
|
||||
const unsigned int BitArray::bitsMask_ = (1 << logBits_) - 1;
|
||||
|
||||
size_t BitArray::wordsForBits(size_t bits) {
|
||||
int arraySize = bits >> logBits_;
|
||||
if (bits - (arraySize << logBits_) != 0) {
|
||||
arraySize++;
|
||||
}
|
||||
int arraySize = (bits + bitsPerWord_ - 1) >> logBits_;
|
||||
return arraySize;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
#define __BIT_ARRAY_H__
|
||||
|
||||
/*
|
||||
* BitArray.h
|
||||
* zxing
|
||||
*
|
||||
* Copyright 2010 ZXing authors. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
@ -24,17 +21,26 @@
|
|||
#include <zxing/common/Counted.h>
|
||||
#include <zxing/common/IllegalArgumentException.h>
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
|
||||
namespace zxing {
|
||||
|
||||
#define ZX_LOG_DIGITS(digits) \
|
||||
((digits == 8) ? 3 : \
|
||||
((digits == 16) ? 4 : \
|
||||
((digits == 32) ? 5 : \
|
||||
((digits == 64) ? 6 : \
|
||||
((digits == 128) ? 7 : \
|
||||
(-1))))))
|
||||
|
||||
class BitArray : public Counted {
|
||||
private:
|
||||
size_t size_;
|
||||
std::vector<unsigned int> bits_;
|
||||
static const unsigned int bitsPerWord_;
|
||||
static const unsigned int logBits_;
|
||||
static const unsigned int bitsMask_;
|
||||
static const unsigned int bitsPerWord_ =
|
||||
std::numeric_limits<unsigned int>::digits;
|
||||
static const unsigned int logBits_ = ZX_LOG_DIGITS(bitsPerWord_);
|
||||
static const unsigned int bitsMask_ = (1 << logBits_) - 1;
|
||||
static size_t wordsForBits(size_t bits);
|
||||
explicit BitArray();
|
||||
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
// -*- mode:c++; tab-width:2; indent-tabs-mode:nil; c-basic-offset:2 -*-
|
||||
/*
|
||||
* BitMatrix.cpp
|
||||
* zxing
|
||||
*
|
||||
* Copyright 2010 ZXing authors. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
@ -35,26 +32,24 @@ using zxing::Ref;
|
|||
namespace {
|
||||
size_t wordsForSize(size_t width,
|
||||
size_t height,
|
||||
unsigned int bitsPerWord,
|
||||
unsigned int logBits) {
|
||||
size_t bits = width * height;
|
||||
int arraySize = bits >> logBits;
|
||||
if (bits - (arraySize << logBits) != 0) {
|
||||
arraySize++;
|
||||
}
|
||||
int arraySize = (bits + bitsPerWord - 1) >> logBits;
|
||||
return arraySize;
|
||||
}
|
||||
}
|
||||
|
||||
BitMatrix::BitMatrix(size_t dimension) :
|
||||
width_(dimension), height_(dimension), words_(0), bits_(NULL) {
|
||||
words_ = wordsForSize(width_, height_, logBits);
|
||||
words_ = wordsForSize(width_, height_, bitsPerWord, logBits);
|
||||
bits_ = new unsigned int[words_];
|
||||
clear();
|
||||
}
|
||||
|
||||
BitMatrix::BitMatrix(size_t width, size_t height) :
|
||||
width_(width), height_(height), words_(0), bits_(NULL) {
|
||||
words_ = wordsForSize(width_, height_, logBits);
|
||||
words_ = wordsForSize(width_, height_, bitsPerWord, logBits);
|
||||
bits_ = new unsigned int[words_];
|
||||
clear();
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include <zxing/common/CharacterSetECI.h>
|
||||
#include <zxing/common/IllegalArgumentException.h>
|
||||
#include <zxing/FormatException.h>
|
||||
|
||||
using std::string;
|
||||
|
||||
|
@ -28,56 +29,72 @@ std::map<std::string, CharacterSetECI*> CharacterSetECI::NAME_TO_ECI;
|
|||
|
||||
const bool CharacterSetECI::inited = CharacterSetECI::init_tables();
|
||||
|
||||
#define ADD_CHARACTER_SET(VALUES, STRINGS) \
|
||||
{ static int values[] = {VALUES, -1}; \
|
||||
static char const* strings[] = {STRINGS, 0}; \
|
||||
addCharacterSet(values, strings); }
|
||||
|
||||
#define XC ,
|
||||
|
||||
bool CharacterSetECI::init_tables() {
|
||||
addCharacterSet(0, "Cp437");
|
||||
{ char const* s[] = {"ISO8859_1", "ISO-8859-1", 0};
|
||||
addCharacterSet(1, s); }
|
||||
addCharacterSet(2, "Cp437");
|
||||
{ char const* s[] = {"ISO8859_1", "ISO-8859-1", 0};
|
||||
addCharacterSet(3, s); }
|
||||
addCharacterSet(4, "ISO8859_2");
|
||||
addCharacterSet(5, "ISO8859_3");
|
||||
addCharacterSet(6, "ISO8859_4");
|
||||
addCharacterSet(7, "ISO8859_5");
|
||||
addCharacterSet(8, "ISO8859_6");
|
||||
addCharacterSet(9, "ISO8859_7");
|
||||
addCharacterSet(10, "ISO8859_8");
|
||||
addCharacterSet(11, "ISO8859_9");
|
||||
addCharacterSet(12, "ISO8859_10");
|
||||
addCharacterSet(13, "ISO8859_11");
|
||||
addCharacterSet(15, "ISO8859_13");
|
||||
addCharacterSet(16, "ISO8859_14");
|
||||
addCharacterSet(17, "ISO8859_15");
|
||||
addCharacterSet(18, "ISO8859_16");
|
||||
{ char const* s[] = {"SJIS", "Shift_JIS", 0};
|
||||
addCharacterSet(20, s ); }
|
||||
ADD_CHARACTER_SET(0 XC 2, "Cp437");
|
||||
ADD_CHARACTER_SET(1 XC 3, "ISO8859_1" XC "ISO-8859-1");
|
||||
ADD_CHARACTER_SET(4, "ISO8859_2" XC "ISO-8859-2");
|
||||
ADD_CHARACTER_SET(5, "ISO8859_3" XC "ISO-8859-3");
|
||||
ADD_CHARACTER_SET(6, "ISO8859_4" XC "ISO-8859-4");
|
||||
ADD_CHARACTER_SET(7, "ISO8859_5" XC "ISO-8859-5");
|
||||
ADD_CHARACTER_SET(8, "ISO8859_6" XC "ISO-8859-6");
|
||||
ADD_CHARACTER_SET(9, "ISO8859_7" XC "ISO-8859-7");
|
||||
ADD_CHARACTER_SET(10, "ISO8859_8" XC "ISO-8859-8");
|
||||
ADD_CHARACTER_SET(11, "ISO8859_9" XC "ISO-8859-9");
|
||||
ADD_CHARACTER_SET(12, "ISO8859_10" XC "ISO-8859-10");
|
||||
ADD_CHARACTER_SET(13, "ISO8859_11" XC "ISO-8859-11");
|
||||
ADD_CHARACTER_SET(15, "ISO8859_13" XC "ISO-8859-13");
|
||||
ADD_CHARACTER_SET(16, "ISO8859_14" XC "ISO-8859-14");
|
||||
ADD_CHARACTER_SET(17, "ISO8859_15" XC "ISO-8859-15");
|
||||
ADD_CHARACTER_SET(18, "ISO8859_16" XC "ISO-8859-16");
|
||||
ADD_CHARACTER_SET(20, "SJIS" XC "Shift_JIS");
|
||||
ADD_CHARACTER_SET(21, "Cp1250" XC "windows-1250");
|
||||
ADD_CHARACTER_SET(22, "Cp1251" XC "windows-1251");
|
||||
ADD_CHARACTER_SET(23, "Cp1252" XC "windows-1252");
|
||||
ADD_CHARACTER_SET(24, "Cp1256" XC "windows-1256");
|
||||
ADD_CHARACTER_SET(25, "UnicodeBigUnmarked" XC "UTF-16BE" XC "UnicodeBig");
|
||||
ADD_CHARACTER_SET(26, "UTF8" XC "UTF-8");
|
||||
ADD_CHARACTER_SET(27 XC 170, "ASCII" XC "US-ASCII");
|
||||
ADD_CHARACTER_SET(28, "Big5");
|
||||
ADD_CHARACTER_SET(29, "GB18030" XC "GB2312" XC "EUC_CN" XC "GBK");
|
||||
ADD_CHARACTER_SET(30, "EUC_KR" XC "EUC-KR");
|
||||
return true;
|
||||
}
|
||||
|
||||
CharacterSetECI::CharacterSetECI(int value, char const* encodingName_)
|
||||
: ECI(value), encodingName(encodingName_) {}
|
||||
#undef XC
|
||||
|
||||
char const* CharacterSetECI::getEncodingName() {
|
||||
return encodingName;
|
||||
CharacterSetECI::CharacterSetECI(int const* values,
|
||||
char const* const* names)
|
||||
: values_(values), names_(names) {
|
||||
for(int const* values = values_; *values != -1; values++) {
|
||||
VALUE_TO_ECI[*values] = this;
|
||||
}
|
||||
for(char const* const* names = names_; *names; names++) {
|
||||
NAME_TO_ECI[string(*names)] = this;
|
||||
}
|
||||
}
|
||||
|
||||
void CharacterSetECI::addCharacterSet(int value, char const* encodingName) {
|
||||
CharacterSetECI* eci = new CharacterSetECI(value, encodingName);
|
||||
VALUE_TO_ECI[value] = eci; // can't use valueOf
|
||||
NAME_TO_ECI[string(encodingName)] = eci;
|
||||
char const* CharacterSetECI::name() const {
|
||||
return names_[0];
|
||||
}
|
||||
|
||||
void CharacterSetECI::addCharacterSet(int value, char const* const* encodingNames) {
|
||||
CharacterSetECI* eci = new CharacterSetECI(value, encodingNames[0]);
|
||||
VALUE_TO_ECI[value] = eci;
|
||||
for (int i = 0; encodingNames[i]; i++) {
|
||||
NAME_TO_ECI[string(encodingNames[i])] = eci;
|
||||
int CharacterSetECI::getValue() const {
|
||||
return values_[0];
|
||||
}
|
||||
|
||||
void CharacterSetECI::addCharacterSet(int const* values, char const* const* names) {
|
||||
new CharacterSetECI(values, names);
|
||||
}
|
||||
|
||||
CharacterSetECI* CharacterSetECI::getCharacterSetECIByValue(int value) {
|
||||
if (value < 0 || value >= 900) {
|
||||
throw IllegalArgumentException("Bad ECI value: " + value);
|
||||
throw FormatException();
|
||||
}
|
||||
return VALUE_TO_ECI[value];
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
*/
|
||||
|
||||
#include <map>
|
||||
#include <zxing/common/ECI.h>
|
||||
#include <zxing/DecodeHints.h>
|
||||
|
||||
namespace zxing {
|
||||
|
@ -29,22 +28,23 @@ namespace zxing {
|
|||
}
|
||||
}
|
||||
|
||||
class zxing::common::CharacterSetECI : public ECI {
|
||||
class zxing::common::CharacterSetECI {
|
||||
private:
|
||||
static std::map<int, CharacterSetECI*> VALUE_TO_ECI;
|
||||
static std::map<std::string, CharacterSetECI*> NAME_TO_ECI;
|
||||
static const bool inited;
|
||||
static bool init_tables();
|
||||
|
||||
char const* const encodingName;
|
||||
int const* const values_;
|
||||
char const* const* const names_;
|
||||
|
||||
CharacterSetECI(int value, char const* encodingName);
|
||||
CharacterSetECI(int const* values, char const* const* names);
|
||||
|
||||
static void addCharacterSet(int value, char const* encodingName);
|
||||
static void addCharacterSet(int value, char const* const* encodingNames);
|
||||
static void addCharacterSet(int const* value, char const* const* encodingNames);
|
||||
|
||||
public:
|
||||
char const* getEncodingName();
|
||||
char const* name() const;
|
||||
int getValue() const;
|
||||
|
||||
static CharacterSetECI* getCharacterSetECIByValue(int value);
|
||||
static CharacterSetECI* getCharacterSetECIByName(std::string const& name);
|
||||
|
|