00001 #ifndef VIDEODEVICEINPUT_HPP 00002 #define VIDEODEVICEINPUT_HPP 00003 00004 #ifdef HAVE_CONFIG_H 00005 #include "config.h" 00006 #endif 00007 00008 #include <qobject.h> 00009 #include <qvector.h> 00010 00011 #include <linux/videodev.h> 00012 00013 #include "VideoDeviceTuner.h" 00014 00015 class CVideoDeviceLinux; 00016 00017 class CVideoDeviceInput: public QObject 00018 { 00019 Q_OBJECT 00020 private: 00021 struct video_channel m_VChan; 00022 00023 CVideoDeviceLinux *m_pVideo; 00024 QVector<CVideoDeviceTuner> m_Tuners; 00025 int m_CurrentTuner; 00026 00027 QString m_Name; 00028 int m_Type; 00029 int m_Flags; 00030 00031 private slots: 00032 void VideoTunerSwitched(int); 00033 00034 public: 00035 enum { 00036 Unknown, 00037 TV, 00038 Camera 00039 } InputTypes; 00040 00041 CVideoDeviceInput(CVideoDeviceLinux *video, int channel); 00042 00043 int GetNumber() const; 00044 QString GetName() const; 00045 int GetType() const; 00046 bool HasAudio() const; 00047 00048 bool Select(); 00049 00050 int GetNumberOfTuners() const; 00051 CVideoDeviceTuner *GetTuner(int number = -1) const; 00052 int GetCurrentTuner() const; 00053 00054 signals: 00055 void Selected(int); 00056 }; 00057 00058 00059 #endif