QCamVesta.hpp

00001 #ifndef _QCamVesta_hpp_
00002 #define _QCamVesta_hpp_
00003 
00004 #include <qobject.h>
00005 #include <qimage.h>
00006 
00007 #include <stdio.h>
00008 #include <stdlib.h>
00009 //#include <linux/types.h>
00010 #include <linux/videodev.h>
00011 
00012 #include "pwc-ioctl.h"
00013 
00014 #include "QCamV4L.hpp"
00015 
00016 class QCamSlider;
00017 class QHGroupBox;
00018 class QCamRadioBox;
00019 class QLCDNumber;
00020 class QCheckBox;
00021 class QProgressBar;
00022 class QLineEdit;
00023 class SCmod;
00024 class SCmodTucLed;
00025 
00029 class QCamVesta : public QCamV4L {
00030    Q_OBJECT
00031 public:
00032    QCamVesta(const char * devpath="/dev/video0");
00033    ~QCamVesta();
00034    int getGain() const;
00035    int getExposure() const;
00036    int getCompression() const;
00037    bool getFlicker() const;
00038    bool getBackLight() const;
00039    int getNoiseRemoval() const;
00040    int getSharpness() const;
00041    int getGama() const;
00042    int getFrameRate() const;
00043    int getType() const {return type_;}
00044    void setSCmodImpl(SCmod *impl) {SCmodCtrl_=impl;}
00045    const QSize * getAllowedSize() const;
00046 protected:
00047    void checkSize(int & x, int & y) const;
00048    QWidget *  buildGUI(QWidget * parent);
00049    virtual void refreshPictureSettings();
00050 private:
00051    void init();
00052    void initRemoteControlLongExposure(QWidget * remoteCTRL);
00053    void getWhiteBalance();
00054    void setWhiteBalance();
00055    void setLed(unsigned char on, unsigned char off) const;
00056    void stopAccumulation();
00057    void startAccumulation();
00058    mutable bool haveLeds_;
00059    bool liveWhiteBalance_;
00060    bool refreshGui_;
00061    //struct pwc_whitebalance whitebalance_;
00062    int whiteBalanceMode_;
00063    int whiteBalanceRed_;
00064    int whiteBalanceBlue_;
00065    mutable int lastGain_;
00066    /* for remote controle */
00067    QCamSlider * remoteCTRLgama_;
00068    QCamSlider * remoteCTRLgain_;
00069    QCamRadioBox * remoteCTRLWhiteBalance_;
00070    QCamSlider * remoteCTRLWBred_;
00071    QCamSlider * remoteCTRLWBblue_;
00072    QCamSlider * remoteCTRLexposure_;
00073    QCamSlider * remoteCTRLcompression_;
00074    QCamSlider * remoteCTRLnoiseRemoval_;
00075    QCamSlider * remoteCTRLsharpness_;
00076    
00077    QHGroupBox * remoteCTRLframeRate_;
00078    QCamComboBox * remoteCTRLframeRate2_;
00079    enum SCmodType { SCmodNone,SCmodPPort,SCmodLed,SCmodSerial, SCmodPPort2};
00080    QCamComboBox * SCmodSelector_;
00081    QLineEdit * longExposureTime_;
00082    QProgressBar * exposureTimeLeft_;
00083    QLCDNumber * exposureTime_;
00084    int multiplicateur_;
00085    int skippedFrame_;
00086    int type_;
00087    SCmod * SCmodCtrl_;
00088    //bool rawBayerMode_;
00089 public slots:
00090    void setGain(int value);
00091    void setExposure(int value);
00092    void setCompression(int value);
00093    void setNoiseRemoval(int value);
00094    void setSharpness(int value);
00100    void setBestQuality();
00101    void setGama(int value);
00102    void setFrameRate(int value);
00103    void setSCmod(int value);
00104    void setLongExposureTime(const QString& str);
00105    void setFrameRateMultiplicateur(int value);
00106    void setWhiteBalanceMode(int val);
00107    void setWhiteBalanceRed(int val);
00108    void setWhiteBalanceBlue(int val);
00109    void saveSettings();
00110    void restoreSettings();
00111    void restoreFactorySettings();
00112    void setLiveWhiteBalance(bool val);
00113    void setBackLight(bool val);
00114    void setFlicker(bool val);
00115    //void activateRawBayerMode(bool val);
00116 protected slots:
00117    bool updateFrame();
00118 signals:
00119    void gainChange(int);
00120    void exposureChange(int);
00121    void compressionChange(int);
00122    void noiseRemovalChange(int);
00123    void sharpnessChange(int);
00124    void gamaChange(int);
00125    void frameRateChange(int);
00126    void frameRateMultiplicateurChange(int);
00127    void exposureTime(double);
00128    void whiteBalanceModeChange(int);
00129    void whiteBalanceRedChange(int);
00130    void whiteBalanceBlueChange(int);
00131    friend class SCmodTucLed;
00132    friend class SCmoduSC2Led;
00133 };
00134 
00135 #endif

Generated on Sat Oct 27 09:21:03 2007 for QastroCam by  doxygen 1.5.1