HGSaneUser增加扫描事件
This commit is contained in:
parent
3ce2281139
commit
8350e95a20
|
@ -27,5 +27,5 @@ HGSane_GetDeviceLogPath
|
||||||
HGSane_ClearDeviceLog
|
HGSane_ClearDeviceLog
|
||||||
HGSane_StartDevice
|
HGSane_StartDevice
|
||||||
HGSane_StopDevice
|
HGSane_StopDevice
|
||||||
HGSane_StartDeviceWithUI
|
HGSane_StartDevice
|
||||||
HGSane_StartDeviceWithSingleScan
|
HGSane_StartDeviceWithSingleScan
|
||||||
|
|
|
@ -53,8 +53,8 @@ win32 {
|
||||||
}
|
}
|
||||||
|
|
||||||
# DEF_FILE = HGSaneUser.def
|
# DEF_FILE = HGSaneUser.def
|
||||||
LIBS += -lgdi32 -lgdiplus -ldbghelp
|
# LIBS += -lgdi32 -lgdiplus -ldbghelp
|
||||||
LIBS += -L$$PWD/../../build/$${MY_OS}/$${OEM_NAME}/$${MY_ARCH}/$${MY_CONFIGURE} -l$${OEM_PREFIX}Base -l$${OEM_PREFIX}SaneUI
|
# LIBS += -L$$PWD/../../build/$${MY_OS}/$${OEM_NAME}/$${MY_ARCH}/$${MY_CONFIGURE} -l$${OEM_PREFIX}Base -l$${OEM_PREFIX}SaneUI
|
||||||
}
|
}
|
||||||
|
|
||||||
unix {
|
unix {
|
||||||
|
|
|
@ -301,7 +301,8 @@ HGResult HGAPI HGSane_ClearDeviceLog(HGSaneDevice dev)
|
||||||
return saneDeviceImpl->ClearDeviceLog();
|
return saneDeviceImpl->ClearDeviceLog();
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGAPI HGSane_StartDeviceWithUI(HGSaneDevice dev, HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam)
|
HGResult HGAPI HGSane_StartDevice(HGSaneDevice dev, HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
|
HGDSImageFunc imageFunc, HGPointer imageParam)
|
||||||
{
|
{
|
||||||
if (NULL == dev)
|
if (NULL == dev)
|
||||||
{
|
{
|
||||||
|
@ -309,10 +310,11 @@ HGResult HGAPI HGSane_StartDeviceWithUI(HGSaneDevice dev, HGWindow parent, HGSan
|
||||||
}
|
}
|
||||||
|
|
||||||
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
||||||
return saneDeviceImpl->StartWithUI(parent, imageFunc, imageParam);
|
return saneDeviceImpl->Start(parent, eventFunc, eventParam, imageFunc, imageParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGAPI HGSane_StartDeviceWithSingleScan(HGSaneDevice dev, HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam)
|
HGResult HGAPI HGSane_StartDeviceWithSingleScan(HGSaneDevice dev, HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
|
HGDSImageFunc imageFunc, HGPointer imageParam)
|
||||||
{
|
{
|
||||||
if (NULL == dev)
|
if (NULL == dev)
|
||||||
{
|
{
|
||||||
|
@ -320,5 +322,5 @@ HGResult HGAPI HGSane_StartDeviceWithSingleScan(HGSaneDevice dev, HGWindow paren
|
||||||
}
|
}
|
||||||
|
|
||||||
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
||||||
return saneDeviceImpl->StartWithSingleScan(parent, imageFunc, imageParam);
|
return saneDeviceImpl->StartWithSingleScan(parent, eventFunc, eventParam, imageFunc, imageParam);
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,8 +90,10 @@ HGEXPORT HGResult HGAPI HGSane_GetDeviceLog(HGSaneDevice dev, const HGChar *file
|
||||||
|
|
||||||
HGEXPORT HGResult HGAPI HGSane_ClearDeviceLog(HGSaneDevice dev);
|
HGEXPORT HGResult HGAPI HGSane_ClearDeviceLog(HGSaneDevice dev);
|
||||||
|
|
||||||
HGEXPORT HGResult HGAPI HGSane_StartDeviceWithUI(HGSaneDevice dev, HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam);
|
HGEXPORT HGResult HGAPI HGSane_StartDevice(HGSaneDevice dev, HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
|
HGDSImageFunc imageFunc, HGPointer imageParam);
|
||||||
|
|
||||||
HGEXPORT HGResult HGAPI HGSane_StartDeviceWithSingleScan(HGSaneDevice dev, HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam);
|
HGEXPORT HGResult HGAPI HGSane_StartDeviceWithSingleScan(HGSaneDevice dev, HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
|
HGDSImageFunc imageFunc, HGPointer imageParam);
|
||||||
|
|
||||||
#endif /* __HGSANE_H__ */
|
#endif /* __HGSANE_H__ */
|
||||||
|
|
|
@ -724,7 +724,8 @@ HGResult HGSaneDeviceImpl::ShowSettingDlg(HGWindow parent)
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGSaneDeviceImpl::StartWithUI(HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam)
|
HGResult HGSaneDeviceImpl::Start(HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
|
HGDSImageFunc imageFunc, HGPointer imageParam)
|
||||||
{
|
{
|
||||||
HGResult ret = GetValueInt32(0x8818, &m_dpi);
|
HGResult ret = GetValueInt32(0x8818, &m_dpi);
|
||||||
if (HGBASE_ERR_OK != ret)
|
if (HGBASE_ERR_OK != ret)
|
||||||
|
@ -732,10 +733,13 @@ HGResult HGSaneDeviceImpl::StartWithUI(HGWindow parent, HGSane_DeviceImageFunc i
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_eventFunc = eventFunc;
|
||||||
|
m_eventParam = eventParam;
|
||||||
m_imageFunc = imageFunc;
|
m_imageFunc = imageFunc;
|
||||||
m_imageParam = imageParam;
|
m_imageParam = imageParam;
|
||||||
|
|
||||||
if (-2 == show_scan_ui(&m_sourceImpl->m_saneApi, m_devHandle, m_devName.c_str(), parent, ShowScanImageCallback, this))
|
if (-2 == show_scan_ui(&m_sourceImpl->m_saneApi, m_devHandle, m_devName.c_str(), parent,
|
||||||
|
show_scan_ui_event_func, this, show_scan_ui_image_func, this))
|
||||||
{
|
{
|
||||||
m_dpi = 0;
|
m_dpi = 0;
|
||||||
return HGBASE_ERR_NOTSUPPORT;
|
return HGBASE_ERR_NOTSUPPORT;
|
||||||
|
@ -744,7 +748,8 @@ HGResult HGSaneDeviceImpl::StartWithUI(HGWindow parent, HGSane_DeviceImageFunc i
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGSaneDeviceImpl::StartWithSingleScan(HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam)
|
HGResult HGSaneDeviceImpl::StartWithSingleScan(HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
|
HGDSImageFunc imageFunc, HGPointer imageParam)
|
||||||
{
|
{
|
||||||
HGChar scanMode[256] = {0};
|
HGChar scanMode[256] = {0};
|
||||||
HGResult ret = GetValueStr256(0x882E, scanMode, 256);
|
HGResult ret = GetValueStr256(0x882E, scanMode, 256);
|
||||||
|
@ -771,10 +776,13 @@ HGResult HGSaneDeviceImpl::StartWithSingleScan(HGWindow parent, HGSane_DeviceIma
|
||||||
SetValueStr256(0x882E, newScanMode);
|
SetValueStr256(0x882E, newScanMode);
|
||||||
SetValueInt32(0x882F, 1);
|
SetValueInt32(0x882F, 1);
|
||||||
|
|
||||||
|
m_eventFunc = eventFunc;
|
||||||
|
m_eventParam = eventParam;
|
||||||
m_imageFunc = imageFunc;
|
m_imageFunc = imageFunc;
|
||||||
m_imageParam = imageParam;
|
m_imageParam = imageParam;
|
||||||
|
|
||||||
if (-2 == show_scan_ui(&m_sourceImpl->m_saneApi, m_devHandle, m_devName.c_str(), parent, ShowScanImageCallback, this))
|
if (-2 == show_scan_ui(&m_sourceImpl->m_saneApi, m_devHandle, m_devName.c_str(), parent,
|
||||||
|
show_scan_ui_event_func, this, show_scan_ui_image_func, this))
|
||||||
{
|
{
|
||||||
SetValueStr256(0x882E, scanMode);
|
SetValueStr256(0x882E, scanMode);
|
||||||
SetValueInt32(0x882F, scanCount);
|
SetValueInt32(0x882F, scanCount);
|
||||||
|
@ -842,34 +850,21 @@ HGResult HGSaneDeviceImpl::GetValueStr256(HGUInt optionId, HGChar *value, HGUInt
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HGSaneDeviceImpl::ShowScanImageCallback(const SANE_Parameters* imageFormat, const SANE_Byte* imageData, void* callbackParam)
|
void HGSaneDeviceImpl::show_scan_ui_event_func(HGUInt event, HGPointer param)
|
||||||
{
|
{
|
||||||
HGSaneDeviceImpl* p = (HGSaneDeviceImpl*)callbackParam;
|
HGSaneDeviceImpl* p = (HGSaneDeviceImpl*)param;
|
||||||
|
if (NULL != p->m_eventFunc)
|
||||||
if (NULL != p->m_imageFunc)
|
{
|
||||||
{
|
p->m_eventFunc((HGSaneDevice)p, event, p->m_eventParam);
|
||||||
HGUInt imgType = 0;
|
}
|
||||||
if (imageFormat->format == SANE_FRAME_GRAY)
|
}
|
||||||
{
|
|
||||||
if (1 == imageFormat->depth)
|
void HGSaneDeviceImpl::show_scan_ui_image_func(HGImage image, HGPointer param)
|
||||||
imgType = HGBASE_IMGTYPE_BINARY;
|
{
|
||||||
else if (8 == imageFormat->depth)
|
HGSaneDeviceImpl* p = (HGSaneDeviceImpl*)param;
|
||||||
imgType = HGBASE_IMGTYPE_GRAY;
|
if (NULL != p->m_imageFunc)
|
||||||
}
|
{
|
||||||
else if (imageFormat->format == SANE_FRAME_RGB)
|
HGBase_SetImageDpi(image, p->m_dpi, p->m_dpi);
|
||||||
{
|
p->m_imageFunc((HGSaneDevice)p, image, p->m_imageParam);
|
||||||
imgType = HGBASE_IMGTYPE_RGB;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
HGImageInfo imgInfo = { (HGUInt)imageFormat->pixels_per_line, (HGUInt)imageFormat->lines,
|
|
||||||
imgType, (HGUInt)imageFormat->bytes_per_line, HGBASE_IMGORIGIN_TOP };
|
|
||||||
HGImage img = NULL;
|
|
||||||
HGBase_CreateImageWithData((HGByte*)imageData, &imgInfo, &img);
|
|
||||||
if (NULL != img)
|
|
||||||
{
|
|
||||||
HGBase_SetImageDpi(img, p->m_dpi, p->m_dpi);
|
|
||||||
p->m_imageFunc((HGSaneDevice)p, img, p->m_imageParam);
|
|
||||||
HGBase_DestroyImage(img);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,15 +82,18 @@ public:
|
||||||
HGResult ClearDriverLog();
|
HGResult ClearDriverLog();
|
||||||
HGResult GetDeviceLog(const HGChar *fileName);
|
HGResult GetDeviceLog(const HGChar *fileName);
|
||||||
HGResult ClearDeviceLog();
|
HGResult ClearDeviceLog();
|
||||||
HGResult StartWithUI(HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam);
|
HGResult Start(HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
HGResult StartWithSingleScan(HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam);
|
HGDSImageFunc imageFunc, HGPointer imageParam);
|
||||||
|
HGResult StartWithSingleScan(HGWindow parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||||
|
HGDSImageFunc imageFunc, HGPointer imageParam);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
HGResult SetValueInt32(HGUInt optionId, HGInt value);
|
HGResult SetValueInt32(HGUInt optionId, HGInt value);
|
||||||
HGResult GetValueInt32(HGUInt optionId, HGInt *value);
|
HGResult GetValueInt32(HGUInt optionId, HGInt *value);
|
||||||
HGResult SetValueStr256(HGUInt optionId, const HGChar *value);
|
HGResult SetValueStr256(HGUInt optionId, const HGChar *value);
|
||||||
HGResult GetValueStr256(HGUInt optionId, HGChar *value, HGUInt maxLen);
|
HGResult GetValueStr256(HGUInt optionId, HGChar *value, HGUInt maxLen);
|
||||||
static void ShowScanImageCallback(const SANE_Parameters* imageFormat, const SANE_Byte* imageData, void* callbackParam);
|
static void show_scan_ui_event_func(HGUInt event, HGPointer param);
|
||||||
|
static void show_scan_ui_image_func(HGImage image, HGPointer param);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
HGSaneSourceImpl* m_sourceImpl;
|
HGSaneSourceImpl* m_sourceImpl;
|
||||||
|
|
|
@ -154,7 +154,8 @@ int show_setting_ui(const SANEAPI* saneApi, SANE_Handle handle, const char *devN
|
||||||
}
|
}
|
||||||
|
|
||||||
int show_scan_ui(const SANEAPI* saneApi, SANE_Handle handle, const char *devName, HGWindow parent,
|
int show_scan_ui(const SANEAPI* saneApi, SANE_Handle handle, const char *devName, HGWindow parent,
|
||||||
show_scan_ui_image_callback callback, void *callbackParam)
|
show_scan_ui_event_callback eventCallback, void *eventParam,
|
||||||
|
show_scan_ui_image_callback imageCallback, void *imageParam)
|
||||||
{
|
{
|
||||||
if (nullptr == saneApi || nullptr == handle)
|
if (nullptr == saneApi || nullptr == handle)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -3,9 +3,14 @@
|
||||||
|
|
||||||
#include "../base/HGDef.h"
|
#include "../base/HGDef.h"
|
||||||
#include "../base/HGDll.h"
|
#include "../base/HGDll.h"
|
||||||
|
#include "../base/HGImage.h"
|
||||||
#include "sane/sane_ex.h"
|
#include "sane/sane_ex.h"
|
||||||
|
|
||||||
typedef void (*show_scan_ui_image_callback)(const SANE_Parameters *imageFormat, const SANE_Byte *imageData, void * callbackParam);
|
#define SHOW_SCAN_UI_EVENT_WORKING 1L
|
||||||
|
#define SHOW_SCAN_UI_EVENT_SCANFINISHED 2L
|
||||||
|
|
||||||
|
typedef void (*show_scan_ui_event_callback)(HGUInt event, void *eventParam);
|
||||||
|
typedef void (*show_scan_ui_image_callback)(HGImage image, void *imageParam);
|
||||||
|
|
||||||
HGEXPORT int show_srclist_ui(const char **manuNames, const char **sanePaths, HGWindow parent, HGDll *dll,
|
HGEXPORT int show_srclist_ui(const char **manuNames, const char **sanePaths, HGWindow parent, HGDll *dll,
|
||||||
SANEAPI* saneApi, char *manuName, unsigned int maxLen);
|
SANEAPI* saneApi, char *manuName, unsigned int maxLen);
|
||||||
|
@ -13,7 +18,8 @@ HGEXPORT int show_devlist_ui(const SANEAPI* saneApi, const char **devNames, HGWi
|
||||||
SANE_Handle *handle, char *devName, unsigned int maxLen);
|
SANE_Handle *handle, char *devName, unsigned int maxLen);
|
||||||
HGEXPORT int show_setting_ui(const SANEAPI* saneApi, SANE_Handle handle, const char *devName, HGWindow parent);
|
HGEXPORT int show_setting_ui(const SANEAPI* saneApi, SANE_Handle handle, const char *devName, HGWindow parent);
|
||||||
HGEXPORT int show_scan_ui(const SANEAPI* saneApi, SANE_Handle handle, const char *devName, HGWindow parent,
|
HGEXPORT int show_scan_ui(const SANEAPI* saneApi, SANE_Handle handle, const char *devName, HGWindow parent,
|
||||||
show_scan_ui_image_callback callback, void *callbackParam);
|
show_scan_ui_event_callback eventCallback, void *eventParam,
|
||||||
|
show_scan_ui_image_callback imageCallback, void *imageParam);
|
||||||
|
|
||||||
HGEXPORT int show_msgbox_info(const char *title, const char *text, HGWindow parent);
|
HGEXPORT int show_msgbox_info(const char *title, const char *text, HGWindow parent);
|
||||||
HGEXPORT int show_msgbox_warning(const char *title, const char *text, HGWindow parent);
|
HGEXPORT int show_msgbox_warning(const char *title, const char *text, HGWindow parent);
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
#include <QCloseEvent>
|
#include <QCloseEvent>
|
||||||
|
|
||||||
Dialog_Device_Scan::Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev, const char *devName,
|
Dialog_Device_Scan::Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev, const char *devName,
|
||||||
show_scan_ui_image_callback callback, void *callbackParam, QWidget *parent) :
|
show_scan_ui_event_callback eventCallback, void *eventParam,
|
||||||
|
show_scan_ui_image_callback imageCallback, void *imageParam, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::Dialog_Device_Scan)
|
ui(new Ui::Dialog_Device_Scan)
|
||||||
{
|
{
|
||||||
|
@ -13,8 +14,10 @@ Dialog_Device_Scan::Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev,
|
||||||
|
|
||||||
memcpy(&m_saneAPI, saneApi, sizeof(SANEAPI));
|
memcpy(&m_saneAPI, saneApi, sizeof(SANEAPI));
|
||||||
m_saneDev = dev;
|
m_saneDev = dev;
|
||||||
m_callback = callback;
|
m_eventCallback = eventCallback;
|
||||||
m_callbackParam = callbackParam;
|
m_eventParam = eventParam;
|
||||||
|
m_imageCallback = imageCallback;
|
||||||
|
m_imageParam = imageParam;
|
||||||
m_buffer = NULL;
|
m_buffer = NULL;
|
||||||
m_bufferSize = 0;
|
m_bufferSize = 0;
|
||||||
m_stopThread = HGFALSE;
|
m_stopThread = HGFALSE;
|
||||||
|
@ -23,10 +26,6 @@ Dialog_Device_Scan::Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev,
|
||||||
setWindowTitle(QString::fromStdString(devName));
|
setWindowTitle(QString::fromStdString(devName));
|
||||||
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
||||||
|
|
||||||
qRegisterMetaType<SANE_Parameters>("SANE_Parameters");
|
|
||||||
qRegisterMetaType<SANE_Byte *>("SANE_Byte *");
|
|
||||||
connect(this, &Dialog_Device_Scan::eventFunc, this, &Dialog_Device_Scan::on_eventFunc, Qt::QueuedConnection);
|
|
||||||
|
|
||||||
ui->pushButton_Continue->setEnabled(true);
|
ui->pushButton_Continue->setEnabled(true);
|
||||||
ui->pushButton_Cancel->setEnabled(false);
|
ui->pushButton_Cancel->setEnabled(false);
|
||||||
ui->pushButton_Complete->setEnabled(true);
|
ui->pushButton_Complete->setEnabled(true);
|
||||||
|
@ -116,6 +115,11 @@ void HGAPI Dialog_Device_Scan::ThreadFunc(HGThread thread, HGPointer param)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nullptr != p->m_eventCallback)
|
||||||
|
{
|
||||||
|
p->m_eventCallback(SHOW_SCAN_UI_EVENT_WORKING, p->m_eventParam);
|
||||||
|
}
|
||||||
|
|
||||||
while (!p->m_stopThread)
|
while (!p->m_stopThread)
|
||||||
{
|
{
|
||||||
SANE_Parameters params;
|
SANE_Parameters params;
|
||||||
|
@ -164,7 +168,35 @@ void HGAPI Dialog_Device_Scan::ThreadFunc(HGThread thread, HGPointer param)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nullptr != p->m_callback)
|
if (nullptr != p->m_imageCallback)
|
||||||
p->m_callback(¶ms, p->m_buffer, p->m_callbackParam);
|
{
|
||||||
|
HGUInt imgType = 0;
|
||||||
|
if (params.format == SANE_FRAME_GRAY)
|
||||||
|
{
|
||||||
|
if (1 == params.depth)
|
||||||
|
imgType = HGBASE_IMGTYPE_BINARY;
|
||||||
|
else if (8 == params.depth)
|
||||||
|
imgType = HGBASE_IMGTYPE_GRAY;
|
||||||
|
}
|
||||||
|
else if (params.format == SANE_FRAME_RGB)
|
||||||
|
{
|
||||||
|
imgType = HGBASE_IMGTYPE_RGB;
|
||||||
|
}
|
||||||
|
|
||||||
|
HGImageInfo imgInfo = { (HGUInt)params.pixels_per_line, (HGUInt)params.lines,
|
||||||
|
imgType, (HGUInt)params.bytes_per_line, HGBASE_IMGORIGIN_TOP };
|
||||||
|
HGImage img = NULL;
|
||||||
|
HGBase_CreateImageWithData((HGByte*)p->m_buffer, &imgInfo, &img);
|
||||||
|
if (NULL != img)
|
||||||
|
{
|
||||||
|
p->m_imageCallback(img, p->m_imageParam);
|
||||||
|
HGBase_DestroyImage(img);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nullptr != p->m_eventCallback)
|
||||||
|
{
|
||||||
|
p->m_eventCallback(SHOW_SCAN_UI_EVENT_SCANFINISHED, p->m_eventParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,8 @@ class Dialog_Device_Scan : public QDialog
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev, const char *devName,
|
Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev, const char *devName,
|
||||||
show_scan_ui_image_callback callback, void *callbackParam, QWidget *parent = nullptr);
|
show_scan_ui_event_callback eventCallback, void *eventParam,
|
||||||
|
show_scan_ui_image_callback imageCallback, void *imageParam, QWidget *parent = nullptr);
|
||||||
~Dialog_Device_Scan();
|
~Dialog_Device_Scan();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
@ -38,8 +39,10 @@ private:
|
||||||
Ui::Dialog_Device_Scan *ui;
|
Ui::Dialog_Device_Scan *ui;
|
||||||
SANEAPI m_saneAPI;
|
SANEAPI m_saneAPI;
|
||||||
SANE_Handle m_saneDev;
|
SANE_Handle m_saneDev;
|
||||||
show_scan_ui_image_callback m_callback;
|
show_scan_ui_event_callback m_eventCallback;
|
||||||
void *m_callbackParam;
|
void *m_eventParam;
|
||||||
|
show_scan_ui_image_callback m_imageCallback;
|
||||||
|
void *m_imageParam;
|
||||||
HGByte* m_buffer;
|
HGByte* m_buffer;
|
||||||
HGInt m_bufferSize;
|
HGInt m_bufferSize;
|
||||||
volatile HGBool m_stopThread;
|
volatile HGBool m_stopThread;
|
||||||
|
|
Loading…
Reference in New Issue