Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

WebCamViewer.h

Go to the documentation of this file.
00001 #ifndef WEBCAMVIEWER_HPP
00002 #define WEBCAMVIEWER_HPP
00003 
00004 #include <time.h>
00005 
00006 #include <qpixmap.h>
00007 #include <qbutton.h>
00008 #include <qtimer.h>
00009 #include <qurloperator.h>
00010 
00011 #include "VideoDevice.h"
00012 
00013 #include "gui/SnapshotSettingsDlg.h"
00014 #include "gui/TimeSnapshot.h"
00015 
00016 #include "CamWindow.h"
00017 #include "CamDialogs.h"
00018 #include "BasicPanel.h"
00019 #include "ImagePanelRGB.h"
00020 #include "ImagePanelYUV.h"
00021 
00022 class CWebCamViewer: public CCamWindow
00023 {
00024    Q_OBJECT
00025 private:
00026    enum {
00027      pbt_controls,
00028      pbt_config,
00029      pbt_showsnap,
00030      pbt_snapshot,
00031      pbt_timesnap,
00032      pbt_MAX,
00033    } PushButtons;
00034    QPixmap ButtonPix[pbt_MAX];
00035    QToolButton *pButton[pbt_MAX];
00036 
00037    CVideoDevice *pVideo;        
00038    CCamPanel *pViewer;          
00039    CBasicPanel *pLastSnapshot;  
00040    QTimer *SizeTimer;           
00041 
00042    SVideoOptions *pVOptions;    
00043    CSnapshotSettingsDlg *pConfiguration;        
00044    CCamDialogs *pSettings;      
00045 
00046    CTimeSnapDlg *pTimeSnapDlg;
00047    int SnapInterval, SnapCounter;
00048    QTimer *pSnapTimer;
00049    QLabel *pSnapLabel;
00050 
00052    struct {
00053      QUrlOperator *pClient;
00054      QUrl LocalUrl, RemoteUrl;
00055      int State;
00056      time_t StartTime;
00057      bool ErrorCondition;
00058      
00059      enum {
00060        NotConnected,
00061        Login,
00062        Binary,
00063        Idle,
00064        Uploading,
00065        Done
00066      };
00067    } Upload;
00068 
00069    void StartUpload(const QString &, bool);
00070 
00071 private slots:
00072    void ClickedConfigurationDlg();
00073    void ConfigurationDlgClosed();
00074    
00075    // Settings dialog
00076    void ClickedSettingsDlg();
00077    void SettingsDlgClosed();
00078 
00079    void ClickedShowLastSnapshot();
00080 
00081    void ClickedTimeSnapDlg();
00082    void TimeSnapDlgClosed();
00083    void StartTimeSnap();
00084    void StopTimeSnap();
00085    void TimeSnapTick();
00086 
00087    void FTPStart(QNetworkOperation *);
00088    void FTPState(int, const QString &);
00089    void FTPDone(QNetworkOperation *);
00090 
00091    void TakeSnapshot();
00092 
00093 protected:
00094    void RecalcTotalViewSize();
00095 
00096 protected slots:
00097    void DeviceChangedSize(const QSize &size);
00098    void DeviceError(int err_no);
00099 
00100    void CallAdjustSize();
00101 
00102 public:
00103    CWebCamViewer(CVideoDevice *video, const QSize &hint_size, QWidget *parent = 0, const char *name = 0);
00104    ~CWebCamViewer();   
00105 };
00106 
00107 #endif

Generated at Wed Jun 20 02:51:23 2001 for Camstream by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001