#ifndef DIALOG_DEVICE_SCAN_H #define DIALOG_DEVICE_SCAN_H #include "base/HGDef.h" #include "base/HGThread.h" #include "sane/sane_ex.h" #include "HGSaneUI.h" #include namespace Ui { class Dialog_Device_Scan; } class Dialog_Device_Scan : public QDialog { Q_OBJECT public: Dialog_Device_Scan(SANEAPI* saneApi, SANE_Handle dev, show_scan_ui_image_callback callback, void *callbackParam, QWidget *parent = nullptr); ~Dialog_Device_Scan(); signals: void eventFunc(QString errInfo); void newImage(void *format, void *data); private slots: void on_eventFunc(QString errInfo); void on_newImage(void *format, void *data); void on_pushButton_Cancel_clicked(); void on_pushButton_Complete_clicked(); void on_pushButton_Continue_clicked(); private: static void HGAPI ThreadFunc(HGThread thread, HGPointer param); private: Ui::Dialog_Device_Scan *ui; SANEAPI m_saneAPI; SANE_Handle m_saneDev; show_scan_ui_image_callback m_callback; void *m_callbackParam; HGByte* m_buffer; HGInt m_bufferSize; volatile HGBool m_stopThread; HGThread m_thread; }; #endif // DIALOG_DEVICE_SCAN_H