00001 #ifndef VIDEOSETTINGSDLG_H 00002 #define VIDEOSETTINGSDLG_H 00003 00004 #include <qarray.h> 00005 #include <qdom.h> 00006 #include <qsize.h> 00007 #include <qtimer.h> 00008 00009 #include "VideoSettings.h" 00010 00011 class CVideoDeviceLinux; 00012 class CVideoDeviceTuner; 00013 00014 class CVideoSettingsDlg: public CVideoSettings 00015 { 00016 Q_OBJECT 00017 private: 00018 CVideoDeviceLinux *pVideo; 00019 CVideoDeviceTuner *pTuner; 00020 00021 bool m_InputTunerDone; 00022 bool m_Philips; 00023 int m_WBMode; 00024 int m_WBRed, m_WBBlue; 00025 QTimer m_AutoTimer; 00026 00027 QSize sizes[7]; 00028 QSize size, org_size, m_MaxSize, m_MinSize; 00029 int m_Fps, m_OrgFps; 00030 00032 struct FrequencyTableEntry 00033 { 00034 QString Name; 00035 float Frequency; 00036 }; 00037 00038 QDomNode m_ConfigurationXML; 00039 00040 void GetCamSizeFrame(bool First = FALSE); 00041 00042 private slots: 00043 // callback from CVideoDevice 00044 void Init(); 00045 void SizeChanged(const QSize &); 00046 void FramerateChanged(int); 00047 void UpdateAuto(); 00048 00049 00050 protected: 00051 void hideEvent(QHideEvent *); 00052 void showEvent(QShowEvent *); 00053 00054 protected slots: 00055 // User actions 00056 // 1st group: Size & Frame 00057 virtual void ClickedSize(int); 00058 virtual void ClickedRate(int); 00059 00060 // 2nd group: Video controls 00061 virtual void MovedBrightness(int); 00062 virtual void MovedContrast(int); 00063 virtual void MovedGamma(int); 00064 virtual void MovedSaturation(int); 00065 virtual void MovedHue(int); 00066 00067 // 3rd group: Tuning 00068 virtual void ClickedInputSelector(int); 00069 virtual void ClickedTunerSelector(int); 00070 virtual void ClickedChannelSetup(); 00071 00072 // 4th group: Philips Extensions 00073 virtual void ToggledAGC(bool); 00074 virtual void MovedAGC(int); 00075 virtual void ToggledShutter(bool); 00076 virtual void MovedShutter(int); 00077 virtual void ToggledContour(bool); 00078 virtual void MovedContour(int); 00079 virtual void ToggledBacklight(bool); 00080 virtual void ToggledFlicker(bool); 00081 virtual void ChangedNoise(int); 00082 virtual void ChangedCompression(int); 00083 virtual void ChangedWB(int); 00084 virtual void MovedRed(int); 00085 virtual void MovedBlue(int); 00086 virtual void MovedWBSpeed(int); 00087 virtual void MovedWBDelay(int); 00088 virtual void ClickedSaveUser(); 00089 virtual void ClickedRestoreUser(); 00090 virtual void ClickedRestoreFactory(); 00091 00092 // 5th group: Pan & Tilt 00093 virtual void SetPanTiltAngle(); 00094 virtual void ResetPanTilt(); 00095 00096 public: 00097 CVideoSettingsDlg(CVideoDeviceLinux *video); 00098 virtual ~CVideoSettingsDlg(); 00099 00100 void SetConfiguration(const QDomNode &); 00101 QDomNode GetConfiguration(QDomDocument &) const; 00102 00103 void ShowDisplayTab(); 00104 void ShowFormatTab(); 00105 void ShowSourceTab(); 00106 00107 signals: 00108 void DialogClosed(); 00109 void Changed(QSize, int); 00110 }; 00111 00112 #endif