00001 #ifndef QSCAN345CONTROLLER_H 00002 #define QSCAN345CONTROLLER_H 00003 00004 #include "command.h" 00005 #include <QList> 00006 #include <QMutex> 00007 00008 class QTimer; 00009 class QScan345MainWindow; 00010 class QScan345Server; 00011 00012 class QScan345Controller : public Command 00013 { 00014 Q_OBJECT; 00015 00016 public: 00017 QScan345Controller(QScan345MainWindow *win, QScan345Server *srv, QObject *parent=0); 00018 typedef Command inherited; 00019 ~QScan345Controller(); 00020 00021 void updateScannerMenu(); 00022 00023 public slots: 00024 void initialize(); 00025 void erase(); 00026 void scan(); 00027 00028 void changeMode2300(); 00029 void changeMode2000(); 00030 void changeMode1600(); 00031 void changeMode1200(); 00032 void changeMode3450(); 00033 void changeMode3000(); 00034 void changeMode2400(); 00035 void changeMode1800(); 00036 00037 void restart_scanner(); 00038 void change_scanner_number(int n); 00039 00040 int poll_status(); 00041 00042 void setWorkingDirectory(QString d); 00043 void setFileRoot(QString root); 00044 void execute_command(QString cmd); 00045 00046 void log_spy_message(QString msg); 00047 00048 signals: 00049 void scan_completed(); 00050 void scanner_number_changed(int); 00051 void scan_mode_changed(int); 00052 00053 private: 00054 void changeMode(int n); 00055 void updateActions(); 00056 void check_scanner_number(); 00057 00058 private: 00059 QMutex m_Mutex; 00060 QTimer *m_Timer; 00061 QScan345MainWindow *m_MainWindow; 00062 QScan345Server *m_Server; 00063 QList<int> m_SerialNumbers; 00064 }; 00065 00066 #endif 00067