#ifndef _QCamVesta_hpp_ #define _QCamVesta_hpp_ #include #include #include #include #include #include #include #include "pwc-ioctl.h" #include "QCamV4L.hpp" #include "port.hpp" class QCamSlider; class QCamRadioBox; class QLCDNumber; class QCheckBox; class QProgressBar; class QCamVesta : public QCamV4L { Q_OBJECT public: QCamVesta(const char * devpath="/dev/video0"); ~QCamVesta(); int getGain() const; int getExposure() const; int getCompression() const; int getGama() const; int getFrameRate() const; int getType() const {return type_;} protected: void checkSize(unsigned int & x, unsigned int & y) const; private: enum pportBit {evenLinesTransferOn=1<<0, oddLinesTransferOn=1<<1, preampOn=1<<2, shutterOn=1<<3, fanOn=1<<7}; void init(); void initRemoteControl(QWidget * remoteCTRL); void stopAccumulation(); void startAccumulation(); unsigned char pportStatus; void sendPportCmd(); void getWhiteBalance(); void setWhiteBalance(); void setLed(unsigned char on, unsigned char off) const; mutable bool haveLeds_; bool whiteBalanceActivated_; struct pwc_whitebalance whitebalance_; /* for remote controle */ QCamSlider * remoteCTRLgama_; QCamSlider * remoteCTRLgain_; QCamRadioBox * remoteCTRLWhiteBalance_; QCamSlider * remoteCTRLWBred_; QCamSlider * remoteCTRLWBblue_; QCamSlider * remoteCTRLexposure_; QCamSlider * remoteCTRLcompression_; QCamSlider * remoteCTRLframeRate_; QCamRadioBox * remoteCTRLframeRate2_; QCamRadioBox * remoteCTRLframeRateMultiplicateur_; QHBox * timeFan_; QProgressBar * exposureTimeLeft_; QLCDNumber * exposureTime_; QCheckBox * remoteCTRLfan_; int multiplicateur_; int skippedFrame_; port_t * pport; int type_; public slots: void setGain(int value); void setExposure(int value); void setCompression(int value); void setGama(int value); void setFrameRate(int value); void setFrameRateMultiplicateur(int value); void startVentilateur(bool val); void setWhiteBalanceMode(int val); void setWhiteBalanceRed(int val); void setWhiteBalanceBlue(int val); protected slots: bool updateFrame(); signals: void gainChange(int); void exposureChange(int); void compressionChange(int); void gamaChange(int); void frameRateChange(int); void frameRateMultiplicateurChange(int); void exposureTime(double); void whiteBalanceModeChange(int); void whiteBalanceRedChange(int); void whiteBalanceBlueChange(int); }; #endif