Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

VideoRecorder.h

Go to the documentation of this file.
00001 #ifndef WEBCAMVIEWER_HPP 00002 #define WEBCAMVIEWER_HPP 00003 00004 #ifdef HAVE_CONFIG_H 00005 #include "config.h" 00006 #endif 00007 00008 #include <qpixmap.h> 00009 #include <qbutton.h> 00010 #include <qdatetime.h> 00011 #include <qglobal.h> 00012 #include <qtimer.h> 00013 #include <qurloperator.h> 00014 #include <qvaluelist.h> 00015 #if QT_VERSION >= 0x30000 00016 #include <qprocess.h> 00017 #endif 00018 00019 #include "lib/FTPClient.h" 00020 #include "AudioDevice.h" 00021 #include "AudioDisplayVolume.h" 00022 #include "VideoDevice.h" 00023 00024 #include "gui/AudioSettingsDlg.h" 00025 #include "gui/SnapshotSettingsDlg.h" 00026 #include "gui/TimeSnapshot.h" 00027 00028 #include "CamWindow.h" 00029 #include "BasicPanel.h" 00030 #include "ImagePanelRGB.h" 00031 #include "ImagePanelYUV.h" 00032 00033 class CWebCamViewer: public CCamWindow 00034 { 00035 Q_OBJECT 00036 private: 00037 enum { 00038 pbt_ctl_size, 00039 pbt_ctl_video, 00040 pbt_ctl_input, 00041 pbt_config, 00042 pbt_showsnap, 00043 pbt_snapshot, 00044 pbt_timesnap, 00045 pbt_snd_config, 00046 pbt_mute, 00047 pbt_MAX, 00048 } PushButtons; 00049 QPixmap ButtonPix[pbt_MAX]; 00050 QToolButton *pButton[pbt_MAX]; 00051 00052 CVideoDevice *pVideo; 00053 CCamPanel *pViewer; 00054 CBasicPanel *pLastSnapshot; 00055 QTimer m_SizeTimer; 00056 00057 CVideoOptions *pVOptions; 00058 CSnapshotSettingsDlg *m_pVideoConfiguration; 00059 00060 CAudioDevice *m_pAudio; 00061 CAudioSettingsDlg *m_pAudioConfiguration; 00062 CAudioDisplayVolume *m_pAudioDisplay; 00063 QDomDocument m_MixerDomDoc; 00064 QDomNode m_MixerBackup; 00065 00066 CTimeSnapDlg *pTimeSnapDlg; 00067 int SnapInterval, SnapCounter; 00068 QTimer *pSnapTimer; 00069 QLabel *pSnapLabel; 00070 00072 struct FTPCommandStruct 00073 { 00074 int Command; 00075 QString Param[4]; 00076 }; 00077 00078 struct _Upload { 00079 CFTPClient *pClient; 00080 QList<FTPCommandStruct> Commands; 00081 00082 QString LocalFile, RemoteFile; 00083 00084 QTime StartTime; 00085 bool ErrorCondition, DelAfter; 00086 } Upload; 00087 00088 #if QT_VERSION >= 0x30000 00089 struct _Command { 00090 QProcess Process; 00091 QString FileName; 00092 bool Delete; 00093 } m_ExternalCommand; 00094 #endif 00095 00096 void StartFTPUpload(const QString &local, const QString &remote, bool); 00097 void StopFTP(); 00098 void TriggerNextFTPCommand(); 00099 00100 void StartSubProcess(const QString &command, const QString &filename, bool del_after_use); 00101 00102 void StartAudio(CAudioDevice *adev); 00103 void StopAudio(); 00104 00105 private slots: 00106 void ClickedVideoConfig(); 00107 void ClickedShowLastSnapshot(); 00108 void ClickedTimeSnapDlg(); 00109 void ClickedSoundConfig(); 00110 void SoundConfigAccepted(); 00111 void ClickedSoundOnOff(); 00112 00113 void FTPChangeState(int command, int new_state, int result, const QString &server_msg); 00114 void NextFTPCommand(); 00115 00116 void SubProcessDone(); 00117 00118 void StartTimeSnap(); 00119 void StopTimeSnap(); 00120 void TimeSnapTick(); 00121 void TakeSnapshot(); 00122 00123 // void UpdateAudioDisplay(); 00124 00125 protected: 00126 void RecalcTotalViewSize(); 00127 00128 protected slots: 00129 void DeviceChangedSize(const QSize &size); 00130 void DeviceError(int err_no); 00131 00132 void CallAdjustSize(); 00133 00134 public: 00135 CWebCamViewer(CVideoDevice *video, QWidget *parent = 0, const char *name = 0); 00136 virtual ~CWebCamViewer(); 00137 00138 virtual void showMaximized(); 00139 }; 00140 00141 #endif

Generated on Wed Dec 13 23:38:46 2006 for CamStream by doxygen 1.3.7