80 lines
2.0 KiB
C++
80 lines
2.0 KiB
C++
#ifndef DIALOG_SCAN_H
|
|
#define DIALOG_SCAN_H
|
|
|
|
#include <QDialog>
|
|
#include <vector>
|
|
#include "sane/sane_ex.h"
|
|
#include "sane/sane_option_definitions.h"
|
|
#include "base/HGImage.h"
|
|
#include "base/HGThread.h"
|
|
#include "base/HGMsgPump.h"
|
|
#include "imgfmt/HGImgFmt.h"
|
|
#include "mainwindow.h"
|
|
|
|
namespace Ui {
|
|
class Dialog_Scan;
|
|
}
|
|
|
|
class Dialog_Scan : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
friend class MainWindow;
|
|
public:
|
|
explicit Dialog_Scan(class MainWindow *mainWnd);
|
|
~Dialog_Scan();
|
|
|
|
private:
|
|
void StartScan(unsigned int buttonId);
|
|
void StopScan();
|
|
void SaveImage(HGImage image);
|
|
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param);
|
|
static void HGAPI ocrThreadFunc(HGThread thread, HGPointer param);
|
|
static void HGAPI ocrMsgPumpFunc(HGMsgPump msgPump, const HGMsg* msg, HGPointer param);
|
|
|
|
protected:
|
|
virtual void closeEvent(QCloseEvent *e) override;
|
|
|
|
signals:
|
|
void deviceArrive(QString devName);
|
|
void deviceRemove(QString devName);
|
|
void keyPress(unsigned int buttonId);
|
|
void scanWorking();
|
|
void scanInfo(QString info, bool error);
|
|
void scanImage(unsigned int count);
|
|
void scanFinish();
|
|
|
|
private slots:
|
|
void on_deviceArrive(QString devName);
|
|
void on_deviceRemove(QString devName);
|
|
void on_keyPress(unsigned int buttonId);
|
|
void on_scanWorking();
|
|
void on_scanInfo(QString info, bool error);
|
|
void on_scanImage(unsigned int count);
|
|
void on_scanFinish();
|
|
|
|
void on_comboBox_currentIndexChanged(const QString &arg1);
|
|
|
|
void on_pushButtonScan_clicked();
|
|
|
|
private:
|
|
Ui::Dialog_Scan *ui;
|
|
class MainWindow *m_mainWnd;
|
|
QString m_devName;
|
|
SANE_Handle m_devHandle;
|
|
bool m_scanning;
|
|
HGUInt m_dpi;
|
|
|
|
QString m_scanFileName;
|
|
HGImgFmtWriter m_scanImgFmtWriter;
|
|
SaveParam m_aquireIntoSaveParam;
|
|
bool m_aquireIntoInBlank;
|
|
int m_aquireIntoBatchStartIndex;
|
|
int m_aquireIntoPageIndex;
|
|
int m_aquireIntoMultiPageCount;
|
|
HGMsgPump m_ocrMsgPump;
|
|
HGThread m_ocrThread;
|
|
};
|
|
|
|
#endif // DIALOG_SCAN_H
|