添加HGSaneUI工程,实现sane的ui对话框
This commit is contained in:
parent
82168a3b94
commit
529f01d9b2
|
@ -1,90 +0,0 @@
|
|||
#include "dialog_device_scan.h"
|
||||
#include "ui_dialog_device_scan.h"
|
||||
|
||||
Dialog_Device_Scan::Dialog_Device_Scan(HGSaneDevice dev, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog_Device_Scan)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_saneDev = dev;
|
||||
|
||||
connect(this, SIGNAL(eventFunc(unsigned int, QString)), this, SLOT(on_eventFunc(unsigned int, QString)), Qt::QueuedConnection);
|
||||
|
||||
ui->pushButton_Continue->setEnabled(false);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(false);
|
||||
|
||||
on_pushButton_Continue_clicked();
|
||||
}
|
||||
|
||||
Dialog_Device_Scan::~Dialog_Device_Scan()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void HGAPI Dialog_Device_Scan::DeviceEventFunc(HGSaneDevice dev, HGUInt error, const HGChar *errInfo, HGPointer param)
|
||||
{
|
||||
Dialog_Device_Scan *p = (Dialog_Device_Scan*)param;
|
||||
emit p->eventFunc(error, tr(errInfo));
|
||||
}
|
||||
|
||||
void HGAPI Dialog_Device_Scan::DeviceImageFunc(HGSaneDevice dev, HGImage image, HGPointer param)
|
||||
{
|
||||
Dialog_Device_Scan *p = (Dialog_Device_Scan*)param;
|
||||
HGImage image2 = nullptr;
|
||||
HGBase_CloneImage(image, 0, 0, &image2);
|
||||
if (nullptr != image2)
|
||||
{
|
||||
emit p->newImage(image2);
|
||||
}
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_eventFunc(HGUInt error, QString errInfo)
|
||||
{
|
||||
if (HGBASE_ERR_OK == error)
|
||||
ui->label->setText("扫描完成");
|
||||
else
|
||||
ui->label->setText(errInfo);
|
||||
|
||||
HGSane_StopDevice(m_saneDev);
|
||||
|
||||
ui->pushButton_Continue->setEnabled(true);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(true);
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Cancel_clicked()
|
||||
{
|
||||
HGSane_StopDevice(m_saneDev);
|
||||
|
||||
ui->pushButton_Continue->setEnabled(true);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(true);
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Complete_clicked()
|
||||
{
|
||||
accept();
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Continue_clicked()
|
||||
{
|
||||
HGChar errInfo[256];
|
||||
HGResult ret = HGSane_StartDevice(m_saneDev, DeviceEventFunc, this, DeviceImageFunc, this, errInfo, 256);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
ui->pushButton_Continue->setEnabled(true);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(true);
|
||||
|
||||
ui->label->setText(tr(errInfo));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->pushButton_Continue->setEnabled(false);
|
||||
ui->pushButton_Cancel->setEnabled(true);
|
||||
ui->pushButton_Complete->setEnabled(false);
|
||||
|
||||
ui->label->setText("扫描中...");
|
||||
}
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
#include "dialog_device_select.h"
|
||||
#include "ui_dialog_device_select.h"
|
||||
#include <QMessageBox>
|
||||
|
||||
Dialog_Device_Select::Dialog_Device_Select(HGSaneManager saneMgr, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog_Device_Select)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_saneMgr = saneMgr;
|
||||
m_saneDev = nullptr;
|
||||
|
||||
HGUInt count = 0;
|
||||
HGSane_GetDeviceCount(m_saneMgr, &count);
|
||||
for (HGUInt i = 0; i < count; ++i)
|
||||
{
|
||||
HGChar name[256];
|
||||
HGSane_GetDeviceName(m_saneMgr, i, name, 256);
|
||||
ui->listWidget->addItem(name);
|
||||
}
|
||||
}
|
||||
|
||||
Dialog_Device_Select::~Dialog_Device_Select()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
HGSaneDevice Dialog_Device_Select::getSaneDevice()
|
||||
{
|
||||
return m_saneDev;
|
||||
}
|
||||
|
||||
void Dialog_Device_Select::on_buttonBox_accepted()
|
||||
{
|
||||
int index = ui->listWidget->currentRow();
|
||||
if (index >= 0)
|
||||
{
|
||||
HGSaneDevice dev = nullptr;
|
||||
HGChar errInfo[256];
|
||||
HGSane_OpenDevice(m_saneMgr, index, &dev, errInfo, 256);
|
||||
if (nullptr == dev)
|
||||
{
|
||||
QMessageBox msg(QMessageBox::Information, tr("tips"), tr(errInfo), QMessageBox::Ok, this);
|
||||
msg.exec();
|
||||
return;
|
||||
}
|
||||
|
||||
m_saneDev = dev;
|
||||
accept();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,259 @@
|
|||
QT += core gui
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
TEMPLATE = lib
|
||||
|
||||
CONFIG += c++11
|
||||
QMAKE_CXXFLAGS += -std=c++0x
|
||||
# The following define makes your compiler emit warnings if you use
|
||||
# any Qt feature that has been marked deprecated (the exact warnings
|
||||
# depend on your compiler). Please consult the documentation of the
|
||||
# deprecated API in order to know how to port your code away from it.
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
DEFINES += QT_NO_VERSION_TAGGING
|
||||
|
||||
# OEM definition
|
||||
DEFINES += OEM_HUAGAO
|
||||
|
||||
# You can also make your code fail to compile if it uses deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
if (contains(DEFINES, OEM_HANWANG) || contains(DEFINES, OEM_LISICHENG) || contains(DEFINES, OEM_CANGTIAN) || contains(DEFINES, OEM_ZHONGJING) || contains(DEFINES, OEM_ZIGUANG)) {
|
||||
contains(DEFINES, OEM_HANWANG) {
|
||||
TARGET = HWSaneUI
|
||||
}
|
||||
contains(DEFINES, OEM_LISICHENG) {
|
||||
TARGET = LSCSaneUI
|
||||
}
|
||||
contains(DEFINES, OEM_CANGTIAN) {
|
||||
TARGET = CTSSaneUI
|
||||
}
|
||||
contains(DEFINES, OEM_ZHONGJING) {
|
||||
TARGET = ZJSaneUI
|
||||
}
|
||||
contains(DEFINES, OEM_ZIGUANG) {
|
||||
TARGET = ZGSaneUI
|
||||
}
|
||||
} else {
|
||||
TARGET = HGSaneUI
|
||||
}
|
||||
|
||||
win32 {
|
||||
DEFINES += _CRT_SECURE_NO_WARNINGS
|
||||
LIBS += -ladvapi32
|
||||
|
||||
if (contains(DEFINES, OEM_HANWANG) || contains(DEFINES, OEM_LISICHENG) || contains(DEFINES, OEM_CANGTIAN) || contains(DEFINES, OEM_ZHONGJING) || contains(DEFINES, OEM_ZIGUANG)) {
|
||||
contains(DEFINES, OEM_HANWANG) {
|
||||
LIBS += -lHWBase -lHWImgFmt -lHWImgProc
|
||||
contains(QT_ARCH, i386) {
|
||||
LIBS += -L../../../../sdk/lib/win/x86/OEM/hanvon -lsane -llang
|
||||
}
|
||||
contains(QT_ARCH, x86_64){
|
||||
LIBS += -L../../../../sdk/lib/win/x64/OEM/hanvon -lsane -llang
|
||||
}
|
||||
}
|
||||
contains(DEFINES, OEM_LISICHENG) {
|
||||
LIBS += -lLSCBase -lLSCImgFmt -lLSCImgProc
|
||||
contains(QT_ARCH, i386) {
|
||||
LIBS += -L../../../../sdk/lib/win/x86/OEM/lanxum -lsane -llang
|
||||
}
|
||||
contains(QT_ARCH, x86_64){
|
||||
LIBS += -L../../../../sdk/lib/win/x64/OEM/lanxum -lsane -llang
|
||||
}
|
||||
}
|
||||
contains(DEFINES, OEM_CANGTIAN) {
|
||||
LIBS += -lCTSBase -lCTSImgFmt -lCTSImgProc
|
||||
contains(QT_ARCH, i386) {
|
||||
LIBS += -L../../../../sdk/lib/win/x86/OEM/cumtenn -lsane -llang
|
||||
}
|
||||
contains(QT_ARCH, x86_64){
|
||||
LIBS += -L../../../../sdk/lib/win/x64/OEM/cumtenn -lsane -llang
|
||||
}
|
||||
}
|
||||
contains(DEFINES, OEM_ZHONGJING) {
|
||||
LIBS += -lZJBase -lZJImgFmt -lZJImgProc
|
||||
contains(QT_ARCH, i386) {
|
||||
LIBS += -L../../../../sdk/lib/win/x86/OEM/microtek -lsane -llang
|
||||
}
|
||||
contains(QT_ARCH, x86_64){
|
||||
LIBS += -L../../../../sdk/lib/win/x64/OEM/microtek -lsane -llang
|
||||
}
|
||||
}
|
||||
contains(DEFINES, OEM_ZIGUANG) {
|
||||
LIBS += -lZGBase -lZGImgFmt -lZGImgProc
|
||||
contains(QT_ARCH, i386) {
|
||||
LIBS += -L../../../../sdk/lib/win/x86/OEM/unis -lsane -llang
|
||||
}
|
||||
contains(QT_ARCH, x86_64){
|
||||
LIBS += -L../../../../sdk/lib/win/x64/OEM/unis -lsane -llang
|
||||
}
|
||||
}
|
||||
} else {
|
||||
LIBS += -lHGBase -lHGImgFmt -lHGImgProc
|
||||
contains(QT_ARCH, i386) {
|
||||
LIBS += -L../../../../sdk/lib/win/x86/OEM/huagao -lsane -llang
|
||||
}
|
||||
contains(QT_ARCH, x86_64){
|
||||
LIBS += -L../../../../sdk/lib/win/x64/OEM/huagao -lsane -llang
|
||||
}
|
||||
}
|
||||
|
||||
contains(QT_ARCH, i386) {
|
||||
LIBS += -L../../../../sdk/lib/win/x86/Release
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/win/x86/Release/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
}
|
||||
}
|
||||
contains(QT_ARCH, x86_64){
|
||||
LIBS += -L../../../../sdk/lib/win/x64/Release
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/win/x64/Release/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unix {
|
||||
LIBS += -llang
|
||||
QMAKE_LFLAGS += -static-libstdc++ -static-libgcc
|
||||
DISTRIBUTION = $$system(cat /etc/issue | cut -d\' \' -f1)
|
||||
message($$DISTRIBUTION)
|
||||
ARCH = $$system(arch)
|
||||
message($$ARCH)
|
||||
QMAKE_LFLAGS += -Wl,-rpath=\'\$\$ORIGIN\'
|
||||
|
||||
if (contains(DEFINES, OEM_HANWANG) || contains(DEFINES, OEM_LISICHENG) || contains(DEFINES, OEM_CANGTIAN) || contains(DEFINES, OEM_ZHONGJING) || contains(DEFINES, OEM_ZIGUANG)) {
|
||||
contains(DEFINES, OEM_HANWANG){
|
||||
LIBS += -lHwBase -lHwImgFmt -lHwImgProc -lsane-hwsane -lhwdriver
|
||||
}
|
||||
contains(DEFINES, OEM_LISICHENG){
|
||||
LIBS += -lLscBase -lLscImgFmt -lLscImgProc -lsane-lscsane -llscdriver
|
||||
}
|
||||
contains(DEFINES, OEM_CANGTIAN){
|
||||
LIBS += -lCtsBase -lCtsImgFmt -lCtsImgProc -lsane-ctssane -lctsdriver
|
||||
}
|
||||
contains(DEFINES, OEM_ZHONGJING){
|
||||
LIBS += -lZjBase -lZjImgFmt -lZjImgProc -lsane-zjsane -lzjdriver
|
||||
}
|
||||
contains(DEFINES, OEM_ZIGUANG){
|
||||
LIBS += -lZgBase -lZgImgFmt -lZgImgProc -lsane-zgsane -lzgdriver
|
||||
}
|
||||
} else {
|
||||
LIBS += -lHGBase -lHGImgFmt -lHGImgProc -lsane-hgsane -lhgdriver
|
||||
}
|
||||
|
||||
contains(DISTRIBUTION, UnionTech){
|
||||
message('UOS')
|
||||
|
||||
contains(ARCH, x86_64){
|
||||
DEFINES += x86_64
|
||||
LIBS += -L../../../../release/uos/x86_64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/uos/x86_64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
contains(ARCH, aarch64){
|
||||
DEFINES += aarch64
|
||||
LIBS += -L../../../../release/uos/aarch64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/uos/aarch64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
contains(ARCH, mips64){
|
||||
DEFINES += mips64
|
||||
LIBS += -L../../../../release/uos/mips64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/uos/mips64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
contains(ARCH, loongarch64){
|
||||
DEFINES += loongarch64
|
||||
LIBS += -L../../../../release/uos/loongarch64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/uos/loongarch64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
message('KYLIN')
|
||||
|
||||
contains(ARCH, x86_64){
|
||||
DEFINES += x86_64
|
||||
LIBS += -L../../../../release/kylin/x86_64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/kylin/x86_64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
contains(ARCH, aarch64){
|
||||
DEFINES += aarch64
|
||||
LIBS += -L../../../../release/kylin/aarch64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/kylin/aarch64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
contains(ARCH, mips64){
|
||||
DEFINES += mips64
|
||||
LIBS += -L../../../../release/kylin/mips64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/kylin/mips64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
contains(ARCH, loongarch64){
|
||||
DEFINES += loongarch64
|
||||
LIBS += -L../../../../release/kylin/loongarch64
|
||||
CONFIG(release, debug|release) {
|
||||
DESTDIR = ../../../../release/kylin/loongarch64/
|
||||
}
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDEPATH += $$PWD/../../../modules/saneui/
|
||||
INCLUDEPATH += $$PWD/../../../utility/
|
||||
INCLUDEPATH += $$PWD/../../../modules/
|
||||
INCLUDEPATH += $$PWD/../../../../sdk/include/
|
||||
|
||||
FORMS += \
|
||||
../../../modules/saneui/dialog_device_scan.ui \
|
||||
../../../modules/saneui/dialog_device_select.ui
|
||||
|
||||
HEADERS += \
|
||||
../../../modules/saneui/HGSaneUI.h \
|
||||
../../../modules/saneui/dialog_device_scan.h \
|
||||
../../../modules/saneui/dialog_device_select.h
|
||||
|
||||
SOURCES += \
|
||||
../../../modules/saneui/HGSaneUI.cpp \
|
||||
../../../modules/saneui/dialog_device_scan.cpp \
|
||||
../../../modules/saneui/dialog_device_select.cpp
|
||||
|
||||
|
|
@ -283,7 +283,7 @@
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -305,7 +305,7 @@
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -336,7 +336,7 @@ copy $(OutDir)HGSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -367,7 +367,7 @@ copy $(OutDir)HWSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -398,7 +398,7 @@ copy $(OutDir)ZGSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -429,7 +429,7 @@ copy $(OutDir)ZJSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -460,7 +460,7 @@ copy $(OutDir)LSCSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</C
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -489,7 +489,7 @@ copy $(OutDir)CTSSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</C
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -511,7 +511,7 @@ copy $(OutDir)CTSSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</C
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -542,7 +542,7 @@ copy $(OutDir)HGSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -573,7 +573,7 @@ copy $(OutDir)HWSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -604,7 +604,7 @@ copy $(OutDir)ZGSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -635,7 +635,7 @@ copy $(OutDir)ZJSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Co
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
@ -666,7 +666,7 @@ copy $(OutDir)LSCSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</C
|
|||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../../../third_party/sane/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../../sdk/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
|
|
@ -18,6 +18,7 @@ HGSaneManagerImpl::HGSaneManagerImpl()
|
|||
m_f_sane_get_parameters = NULL;
|
||||
m_f_sane_get_option_descriptor = NULL;
|
||||
m_f_sane_control_option = NULL;
|
||||
memset(&m_saneApi, 0, sizeof(SANEAPI));
|
||||
|
||||
m_saneDlgDll = NULL;
|
||||
m_f_show_devlist_ui = NULL;
|
||||
|
@ -48,7 +49,7 @@ HGResult HGSaneManagerImpl::Create(const HGChar* sanePath)
|
|||
return ret;
|
||||
}
|
||||
|
||||
HGBase_CreateDll("HGSaneDlg.dll", &m_saneDlgDll);
|
||||
HGBase_CreateDll("HGSaneUI.dll", &m_saneDlgDll);
|
||||
if (NULL != m_saneDlgDll)
|
||||
{
|
||||
HGBase_GetDllProcAddress(m_saneDlgDll, "show_devlist_ui", (HGPointer*)&m_f_show_devlist_ui);
|
||||
|
@ -182,23 +183,7 @@ HGResult HGSaneManagerImpl::OpenSelectedDevice(HGWindow parent, class HGSaneDevi
|
|||
return HGBASE_ERR_FAIL;
|
||||
}
|
||||
|
||||
const SANE_Device** device_list;
|
||||
if (SANE_STATUS_GOOD != m_f_sane_get_devices(&device_list, SANE_TRUE))
|
||||
{
|
||||
return HGSANE_ERR_FAIL;
|
||||
}
|
||||
|
||||
HGUInt count = 0;
|
||||
const SANE_Device** p;
|
||||
for (p = device_list; *p != NULL; ++p)
|
||||
++count;
|
||||
|
||||
const char** devNameList = new const char*[count + 1];
|
||||
for (HGUInt i = 0; i < count; ++i)
|
||||
devNameList[i] = device_list[i]->name;
|
||||
devNameList[count] = 0;
|
||||
SANE_Handle handle = m_f_show_devlist_ui(devNameList, parent);
|
||||
delete []devNameList;
|
||||
SANE_Handle handle = m_f_show_devlist_ui(&m_saneApi, parent);
|
||||
if (NULL == handle)
|
||||
{
|
||||
return HGSANE_ERR_FAIL;
|
||||
|
@ -277,6 +262,17 @@ HGResult HGSaneManagerImpl::FindFunctions()
|
|||
|
||||
} while (0);
|
||||
|
||||
m_saneApi.sane_get_devices_api = m_f_sane_get_devices;
|
||||
m_saneApi.sane_open_api = m_f_sane_open;
|
||||
m_saneApi.sane_close_api = m_f_sane_close;
|
||||
m_saneApi.sane_start_api = m_f_sane_start;
|
||||
m_saneApi.sane_read_api = m_f_sane_read;
|
||||
m_saneApi.sane_cancel_api = m_f_sane_cancel;
|
||||
m_saneApi.sane_set_io_mode_api = m_f_sane_set_io_mode;
|
||||
m_saneApi.sane_strstatus_api = m_f_sane_strstatus;
|
||||
m_saneApi.sane_get_parameters_api = m_f_sane_get_parameters;
|
||||
m_saneApi.sane_get_option_descriptor_api = m_f_sane_get_option_descriptor;
|
||||
m_saneApi.sane_control_option_api = m_f_sane_control_option;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -377,7 +373,7 @@ HGResult HGSaneDeviceImpl::ShowSettingDlg(HGWindow parent)
|
|||
return HGBASE_ERR_FAIL;
|
||||
}
|
||||
|
||||
m_mgrImpl->m_f_show_setting_ui(m_devHandle, parent);
|
||||
m_mgrImpl->m_f_show_setting_ui(&m_mgrImpl->m_saneApi, m_devHandle, parent);
|
||||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
|
@ -480,7 +476,7 @@ HGResult HGSaneDeviceImpl::StartWithUI(HGWindow parent, HGSane_DeviceImageFunc i
|
|||
m_dpi = GetDpi();
|
||||
m_imageFunc = imageFunc;
|
||||
m_imageParam = imageParam;
|
||||
m_mgrImpl->m_f_show_scan_ui(m_devHandle, parent, ShowScanImageCallback, this);
|
||||
m_mgrImpl->m_f_show_scan_ui(&m_mgrImpl->m_saneApi, m_devHandle, parent, ShowScanImageCallback, this);
|
||||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
|
@ -499,7 +495,7 @@ HGUInt HGSaneDeviceImpl::GetDpi()
|
|||
{
|
||||
SANE_Int value = 0;
|
||||
m_mgrImpl->m_f_sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, NULL);
|
||||
if (0 == strcmp(desp->name, SANE_NAME_SCAN_RESOLUTION))
|
||||
if (0 == strcmp(desp->name, "resolution"))
|
||||
{
|
||||
dpi = (HGUInt)value;
|
||||
break;
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
#include "../base/HGDll.h"
|
||||
#include "../base/HGThread.h"
|
||||
#include "../base/HGLock.h"
|
||||
#include "sane.h"
|
||||
#include "saneopts.h"
|
||||
#include "sane/sane_ex.h"
|
||||
#include <list>
|
||||
#include <vector>
|
||||
|
||||
|
@ -22,13 +21,13 @@ typedef void (*f_sane_cancel)(SANE_Handle handle);
|
|||
typedef SANE_Status (*f_sane_set_io_mode)(SANE_Handle handle, SANE_Bool non_blocking);
|
||||
typedef SANE_String_Const (*f_sane_strstatus)(SANE_Status status);
|
||||
typedef SANE_Status (*f_sane_get_parameters)(SANE_Handle handle, SANE_Parameters* params);
|
||||
typedef SANE_Option_Descriptor* (*f_sane_get_option_descriptor)(SANE_Handle handle, SANE_Int option);
|
||||
typedef const SANE_Option_Descriptor* (*f_sane_get_option_descriptor)(SANE_Handle handle, SANE_Int option);
|
||||
typedef SANE_Status (*f_sane_control_option)(SANE_Handle handle, SANE_Int option, SANE_Action action, void* value, SANE_Int* info);
|
||||
|
||||
typedef SANE_Handle (*f_show_devlist_ui)(const char **devNameList, HGWindow parent);
|
||||
typedef void (*f_show_setting_ui)(SANE_Handle handle, HGWindow parent);
|
||||
typedef SANE_Handle (*f_show_devlist_ui)(SANEAPI* saneApi, HGWindow parent);
|
||||
typedef void (*f_show_setting_ui)(SANEAPI* saneApi, SANE_Handle handle, HGWindow parent);
|
||||
typedef void (*f_show_scan_ui_image_callback)(const SANE_Parameters *imageFormat, const SANE_Byte *imageData, void * callbackParam);
|
||||
typedef void (*f_show_scan_ui)(SANE_Handle handle, HGWindow parent, f_show_scan_ui_image_callback callback, void *callbackParam);
|
||||
typedef void (*f_show_scan_ui)(SANEAPI* saneApi, SANE_Handle handle, HGWindow parent, f_show_scan_ui_image_callback callback, void *callbackParam);
|
||||
|
||||
class HGSaneManagerImpl
|
||||
{
|
||||
|
@ -63,6 +62,7 @@ private:
|
|||
f_sane_get_parameters m_f_sane_get_parameters;
|
||||
f_sane_get_option_descriptor m_f_sane_get_option_descriptor;
|
||||
f_sane_control_option m_f_sane_control_option;
|
||||
SANEAPI m_saneApi;
|
||||
|
||||
HGDll m_saneDlgDll;
|
||||
f_show_devlist_ui m_f_show_devlist_ui;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#include "HGSaneUI.h"
|
||||
|
||||
SANE_Handle show_devlist_ui(SANEAPI* saneApi, HGWindow parent)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void show_setting_ui(SANEAPI* saneApi, SANE_Handle handle, HGWindow parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void show_scan_ui(SANEAPI* saneApi, SANE_Handle handle, HGWindow parent, show_scan_ui_image_callback callback, void *callbackParam)
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef SANE_UI_H
|
||||
#define SANE_UI_H
|
||||
|
||||
#include "base/HGDef.h"
|
||||
#include "sane/sane_ex.h"
|
||||
|
||||
typedef void (*show_scan_ui_image_callback)(const SANE_Parameters *imageFormat, const SANE_Byte *imageData, void * callbackParam);
|
||||
|
||||
HGEXPORT SANE_Handle show_devlist_ui(SANEAPI* saneApi, HGWindow parent);
|
||||
HGEXPORT void show_setting_ui(SANEAPI* saneApi, SANE_Handle handle, HGWindow parent);
|
||||
HGEXPORT void show_scan_ui(SANEAPI* saneApi, SANE_Handle handle, HGWindow parent, show_scan_ui_image_callback callback, void *callbackParam);
|
||||
|
||||
#endif
|
|
@ -0,0 +1,43 @@
|
|||
#include "dialog_device_scan.h"
|
||||
#include "ui_dialog_device_scan.h"
|
||||
|
||||
Dialog_Device_Scan::Dialog_Device_Scan(SANE_Handle dev, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog_Device_Scan)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_saneDev = dev;
|
||||
|
||||
connect(this, SIGNAL(eventFunc(unsigned int, QString)), this, SLOT(on_eventFunc(unsigned int, QString)), Qt::QueuedConnection);
|
||||
|
||||
ui->pushButton_Continue->setEnabled(false);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(false);
|
||||
|
||||
on_pushButton_Continue_clicked();
|
||||
}
|
||||
|
||||
Dialog_Device_Scan::~Dialog_Device_Scan()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_eventFunc(HGUInt error, QString errInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Cancel_clicked()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Complete_clicked()
|
||||
{
|
||||
accept();
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Continue_clicked()
|
||||
{
|
||||
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
#define DIALOG_DEVICE_SCAN_H
|
||||
|
||||
#include "base/HGDef.h"
|
||||
#include "sane_user/HGSane.h"
|
||||
#include "sane.h"
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
|
@ -14,7 +14,7 @@ class Dialog_Device_Scan : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Dialog_Device_Scan(HGSaneDevice dev, QWidget *parent = nullptr);
|
||||
explicit Dialog_Device_Scan(SANE_Handle dev, QWidget *parent = nullptr);
|
||||
~Dialog_Device_Scan();
|
||||
|
||||
signals:
|
||||
|
@ -30,13 +30,9 @@ private slots:
|
|||
|
||||
void on_pushButton_Continue_clicked();
|
||||
|
||||
private:
|
||||
static void HGAPI DeviceEventFunc(HGSaneDevice dev, HGUInt error, const HGChar *errInfo, HGPointer param);
|
||||
static void HGAPI DeviceImageFunc(HGSaneDevice dev, HGImage image, HGPointer param);
|
||||
|
||||
private:
|
||||
Ui::Dialog_Device_Scan *ui;
|
||||
HGSaneDevice m_saneDev;
|
||||
SANE_Handle m_saneDev;
|
||||
};
|
||||
|
||||
#endif // DIALOG_DEVICE_SCAN_H
|
|
@ -0,0 +1,20 @@
|
|||
#include "dialog_device_select.h"
|
||||
#include "ui_dialog_device_select.h"
|
||||
#include <QMessageBox>
|
||||
|
||||
Dialog_Device_Select::Dialog_Device_Select(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog_Device_Select)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
Dialog_Device_Select::~Dialog_Device_Select()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void Dialog_Device_Select::on_buttonBox_accepted()
|
||||
{
|
||||
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
#define DIALOG_DEVICE_SELECT_H
|
||||
|
||||
#include "base/HGDef.h"
|
||||
#include "sane_user/HGSane.h"
|
||||
#include "sane.h"
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
|
@ -14,18 +14,14 @@ class Dialog_Device_Select : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Dialog_Device_Select(HGSaneManager saneMgr, QWidget *parent = nullptr);
|
||||
Dialog_Device_Select(QWidget *parent = nullptr);
|
||||
~Dialog_Device_Select();
|
||||
|
||||
HGSaneDevice getSaneDevice();
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
private:
|
||||
Ui::Dialog_Device_Select *ui;
|
||||
HGSaneManager m_saneMgr;
|
||||
HGSaneDevice m_saneDev;
|
||||
};
|
||||
|
||||
#endif // DIALOG_DEVICE_SELECT_H
|
Loading…
Reference in New Issue