MythTV  0.26-pre
videosource.h
Go to the documentation of this file.
00001 #ifndef VIDEOSOURCE_H
00002 #define VIDEOSOURCE_H
00003 
00004 #include <vector>
00005 using namespace std;
00006 
00007 #include "mthread.h"
00008 #include "settings.h"
00009 #include "datadirect.h"
00010 
00011 class SignalTimeout;
00012 class ChannelTimeout;
00013 class UseEIT;
00014 class VideoSource;
00015 class CaptureCard;
00016 class VBIDevice;
00017 class CardInput;
00018 class CardID;
00019 class InputName;
00020 class SourceID;
00021 class DiSEqCDevTree;
00022 class DiSEqCDevSettings;
00023 class InputGroup;
00024 
00025 static inline bool is_grabber_external(const QString &grabber)
00026 {
00027     return !(grabber == "datadirect" ||
00028              grabber == "eitonly" ||
00029              grabber == "schedulesdirect1" ||
00030              grabber == "/bin/true");
00031 }
00032 
00033 static inline bool is_grabber_datadirect(const QString &grabber)
00034 {
00035     return (grabber == "datadirect") || (grabber == "schedulesdirect1");
00036 }
00037 
00038 static inline int get_datadirect_provider(const QString &grabber)
00039 {
00040     if (grabber == "datadirect")
00041         return DD_ZAP2IT;
00042     else if (grabber == "schedulesdirect1")
00043         return DD_SCHEDULES_DIRECT;
00044     else
00045         return -1;
00046 }
00047 
00048 static inline bool is_grabber_labs(const QString &grabber)
00049 {
00050     return grabber == "datadirect";
00051 }
00052 
00053 class VideoSourceDBStorage : public SimpleDBStorage
00054 {
00055   protected:
00056     VideoSourceDBStorage(StorageUser       *_user,
00057                          const VideoSource &_parent,
00058                          const QString     &name) :
00059         SimpleDBStorage(_user, "videosource", name), m_parent(_parent)
00060     {
00061     }
00062 
00063     virtual QString GetSetClause(MSqlBindings &bindings) const;
00064     virtual QString GetWhereClause(MSqlBindings &bindings) const;
00065 
00066     const VideoSource& m_parent;
00067 };
00068 
00069 class VideoSourceSelector : public ComboBoxSetting, public TransientStorage
00070 {
00071     Q_OBJECT
00072 
00073   public:
00074     VideoSourceSelector(uint           _initial_sourceid,
00075                         const QString &_card_types,
00076                         bool           _must_have_mplexid);
00077 
00078     virtual void Load(void);
00079 
00080     uint GetSourceID(void) const { return getValue().toUInt(); }
00081 
00082   private:
00083     uint    initial_sourceid;
00084     QString card_types;
00085     bool    must_have_mplexid;
00086 };
00087 
00088 class FreqTableSelector :
00089     public ComboBoxSetting, public VideoSourceDBStorage
00090 {
00091     Q_OBJECT
00092 public:
00093     FreqTableSelector(const VideoSource& parent);
00094 protected:
00095     QString freq;
00096 };
00097 
00098 class TransFreqTableSelector : public ComboBoxSetting, public TransientStorage
00099 {
00100   public:
00101     TransFreqTableSelector(uint _sourceid);
00102 
00103     virtual void Load(void);
00104     virtual void Save(void);
00105 
00106     void SetSourceID(uint _sourceid);
00107 
00108   private:
00109     uint    sourceid;
00110     QString loaded_freq_table;
00111 };
00112 
00113 class DataDirectLineupSelector :
00114     public ComboBoxSetting, public VideoSourceDBStorage
00115 {
00116    Q_OBJECT
00117 public:
00118    DataDirectLineupSelector(const VideoSource& parent) :
00119        ComboBoxSetting(this), VideoSourceDBStorage(this, parent, "lineupid")
00120    {
00121        setLabel(QObject::tr("Data Direct lineup"));
00122    };
00123 
00124  public slots:
00125     void fillSelections(const QString& uid, const QString& pwd, int source);
00126 };
00127 
00128 class DataDirectButton : public TransButtonSetting
00129 {
00130   public:
00131     DataDirectButton() { setLabel(QObject::tr("Retrieve Lineups")); }
00132 };
00133 
00134 class DataDirectUserID;
00135 class DataDirectPassword;
00136 
00137 class DataDirect_config: public VerticalConfigurationGroup
00138 {
00139     Q_OBJECT
00140   public:
00141     DataDirect_config(const VideoSource& _parent, int _ddsource); 
00142 
00143     virtual void Load(void);
00144 
00145     QString getLineupID(void) const { return lineupselector->getValue(); };
00146 
00147   protected slots:
00148     void fillDataDirectLineupSelector(void);
00149 
00150   protected:
00151     const VideoSource        &parent;
00152     DataDirectUserID         *userid;
00153     DataDirectPassword       *password;
00154     DataDirectButton         *button;
00155     DataDirectLineupSelector *lineupselector;
00156     QString lastloadeduserid;
00157     QString lastloadedpassword;
00158     int source;
00159 };
00160 
00161 class XMLTV_generic_config: public VerticalConfigurationGroup 
00162 {
00163     Q_OBJECT
00164 
00165   public:
00166     XMLTV_generic_config(const VideoSource& _parent, QString _grabber);
00167 
00168     virtual void Save(void);
00169     virtual void Save(QString) { Save(); }
00170 
00171   public slots:
00172     void RunConfig(void);
00173 
00174   protected:
00175     const VideoSource &parent;
00176     QString            grabber;
00177     QStringList        grabberArgs;
00178 };
00179 
00180 class EITOnly_config: public VerticalConfigurationGroup
00181 {
00182 public:
00183     EITOnly_config(const VideoSource& _parent);
00184     virtual void Save();
00185     virtual void Save(QString) { Save(); }
00186 
00187 protected:
00188     UseEIT *useeit;
00189 };
00190 
00191 class NoGrabber_config: public VerticalConfigurationGroup
00192 {
00193 public:
00194     NoGrabber_config(const VideoSource& _parent);
00195 
00196     virtual void Save(void);
00197     virtual void Save(QString) { Save(); }
00198 
00199 protected:
00200     UseEIT *useeit;
00201 };
00202 
00203 
00204 class XMLTVGrabber;
00205 class XMLTVConfig : public TriggeredConfigurationGroup
00206 {
00207     Q_OBJECT
00208 
00209   public:
00210     XMLTVConfig(const VideoSource &aparent);
00211 
00212     virtual void Load(void);
00213     virtual void Save(void);
00214 
00215   private:
00216     const VideoSource &parent;
00217     XMLTVGrabber      *grabber;
00218 
00219     void LoadXMLTVGrabbers(QStringList name_list, QStringList prog_list);
00220 };
00221 
00222 class VideoSource : public ConfigurationWizard {
00223 public:
00224     VideoSource();
00225 
00226     int getSourceID(void) const { return id->intValue(); };
00227 
00228     void loadByID(int id);
00229 
00230     static void fillSelections(SelectSetting* setting);
00231     static QString idToName(int id);
00232 
00233     QString getSourceName(void) const { return name->getValue(); };
00234 
00235     virtual void Save(void)
00236     {
00237         if (name)
00238             ConfigurationWizard::Save();
00239     }
00240 
00241     virtual void Save(QString destination)
00242     {
00243         if (name)
00244             ConfigurationWizard::Save(destination);
00245     }
00246 
00247   private:
00248     class ID: public AutoIncrementDBSetting
00249     {
00250       public:
00251         ID() : AutoIncrementDBSetting("videosource", "sourceid")
00252         {
00253             setName("VideoSourceName");
00254             setVisible(false);
00255         };
00256     };
00257 
00258     class Name : public LineEditSetting, public VideoSourceDBStorage
00259     {
00260       public:
00261         Name(const VideoSource &parent) :
00262             LineEditSetting(this), VideoSourceDBStorage(this, parent, "name")
00263         {
00264             setLabel(QObject::tr("Video source name"));
00265         }
00266     };
00267 
00268 private:
00269     ID   *id;
00270     Name *name;
00271     XMLTVConfig *xmltv;
00272 };
00273 
00274 class CaptureCardDBStorage : public SimpleDBStorage
00275 {
00276   protected:
00277     CaptureCardDBStorage(StorageUser       *_user,
00278                          const CaptureCard &_parent,
00279                          const QString     &_name) :
00280         SimpleDBStorage(_user, "capturecard", _name), m_parent(_parent)
00281     {
00282     }
00283 
00284     int getCardID(void) const;
00285 
00286 protected:
00287     virtual QString GetSetClause(MSqlBindings &bindings) const;
00288     virtual QString GetWhereClause(MSqlBindings &bindings) const;
00289 private:
00290     const CaptureCard& m_parent;
00291 };
00292 
00293 class TunerCardAudioInput : public ComboBoxSetting, public CaptureCardDBStorage
00294 {
00295     Q_OBJECT
00296   public:
00297     TunerCardAudioInput(const CaptureCard &parent,
00298                         QString dev  = QString::null,
00299                         QString type = QString::null);
00300 
00301   public slots:
00302     void fillSelections(const QString &device);
00303 
00304   private:
00305     QString last_device;
00306     QString last_cardtype;
00307 };
00308 
00309 class EmptyAudioDevice : public LineEditSetting, public CaptureCardDBStorage
00310 {
00311     Q_OBJECT
00312   public:
00313     EmptyAudioDevice(const CaptureCard &parent) :
00314         LineEditSetting(this),
00315         CaptureCardDBStorage(this, parent, "audiodevice")
00316     {
00317         setVisible(false);
00318     }
00319 
00320     void Save(void)
00321     {
00322         SetSaveRequired();
00323         settingValue = "";
00324         SimpleDBStorage::Save();
00325     }
00326     void Save(QString destination)
00327     {
00328         SetSaveRequired();
00329         settingValue = "";
00330         SimpleDBStorage::Save(destination);
00331     }
00332 };
00333 
00334 class EmptyVBIDevice : public LineEditSetting, public CaptureCardDBStorage
00335 {
00336     Q_OBJECT
00337 
00338   public:
00339     EmptyVBIDevice(const CaptureCard &parent) :
00340         LineEditSetting(this),
00341         CaptureCardDBStorage(this, parent, "vbidevice")
00342     {
00343         setVisible(false);
00344     };
00345     void Save(void)
00346     {
00347         SetSaveRequired();
00348         settingValue = "";
00349         SimpleDBStorage::Save();
00350     }
00351     void Save(QString destination)
00352     {
00353         SetSaveRequired();
00354         settingValue = "";
00355         SimpleDBStorage::Save(destination);
00356     }
00357 };
00358 
00359 class CardType : public ComboBoxSetting, public CaptureCardDBStorage
00360 {
00361 public:
00362     CardType(const CaptureCard& parent);
00363     static void fillSelections(SelectSetting* setting);
00364 };
00365 
00366 class HDHomeRunDevice
00367 {
00368   public:
00369     QString mythdeviceid;
00370     QString deviceid;
00371     QString desc;
00372     QString cardip;
00373     QString cardtuner;
00374     bool    inuse;
00375     bool    discovered;
00376 };
00377 
00378 typedef QMap<QString, HDHomeRunDevice> HDHomeRunDeviceList;
00379  
00380 class HDHomeRunDeviceIDList;
00381 class HDHomeRunDeviceID;
00382 class HDHomeRunIP;
00383 class HDHomeRunTunerIndex;
00384 class HDHomeRunConfigurationGroup : public VerticalConfigurationGroup
00385 {
00386     Q_OBJECT
00387 
00388     friend class HDHomeRunExtra;
00389 
00390   public:
00391     HDHomeRunConfigurationGroup(CaptureCard &parent);
00392 
00393   public slots:
00394     void HDHomeRunExtraPanel(void);
00395 
00396   private:
00397     void FillDeviceList(void);
00398     bool ProbeCard(HDHomeRunDevice&);
00399 
00400   private:
00401     CaptureCard           &parent;
00402     TransLabelSetting     *desc;
00403     HDHomeRunDeviceIDList *deviceidlist;
00404     HDHomeRunDeviceID     *deviceid;
00405     HDHomeRunIP           *cardip;
00406     HDHomeRunTunerIndex   *cardtuner;
00407     HDHomeRunDeviceList    devicelist;
00408 };
00409 
00410 
00411 class CetonDeviceID;
00412 class CetonSetting;
00413 class CetonConfigurationGroup : public VerticalConfigurationGroup
00414 {
00415     Q_OBJECT
00416 
00417   public:
00418     CetonConfigurationGroup(CaptureCard &parent);
00419 
00420   private:
00421     CaptureCard         &parent;
00422     TransLabelSetting   *desc;
00423     CetonDeviceID       *deviceid;
00424     CetonSetting        *ip;
00425     CetonSetting        *card;
00426     CetonSetting        *tuner;
00427 };
00428 
00429 
00430 
00431 class V4LConfigurationGroup : public VerticalConfigurationGroup
00432 {
00433     Q_OBJECT
00434 
00435   public:
00436     V4LConfigurationGroup(CaptureCard &parent);
00437 
00438   public slots:
00439     void probeCard(const QString &device);
00440 
00441   private:
00442     CaptureCard       &parent;
00443     TransLabelSetting *cardinfo;
00444     VBIDevice         *vbidev;
00445 };
00446 
00447 class VideoDevice;
00448 class VBIDevice;
00449 
00450 class MPEGConfigurationGroup: public VerticalConfigurationGroup
00451 {
00452    Q_OBJECT
00453 
00454   public:
00455     MPEGConfigurationGroup(CaptureCard &parent);
00456 
00457   public slots:
00458     void probeCard(const QString &device);
00459 
00460   private:
00461     CaptureCard       &parent;
00462     VideoDevice       *device;
00463     VBIDevice         *vbidevice;
00464     TransLabelSetting *cardinfo;
00465 };
00466 
00467 class HDPVRConfigurationGroup: public VerticalConfigurationGroup
00468 {
00469    Q_OBJECT
00470 
00471   public:
00472     HDPVRConfigurationGroup(CaptureCard &parent);
00473 
00474   public slots:
00475     void probeCard(const QString &device);
00476 
00477   private:
00478     CaptureCard         &parent;
00479     TransLabelSetting   *cardinfo;
00480     TunerCardAudioInput *audioinput;
00481 };
00482 
00483 class InstanceCount;
00484 class ASIDevice;
00485 
00486 class ASIConfigurationGroup: public VerticalConfigurationGroup
00487 {
00488    Q_OBJECT
00489 
00490   public:
00491     ASIConfigurationGroup(CaptureCard &parent);
00492 
00493   public slots:
00494     void probeCard(const QString &device);
00495 
00496   private:
00497     CaptureCard       &parent;
00498     ASIDevice         *device;
00499     TransLabelSetting *cardinfo;
00500     InstanceCount     *instances;
00501 };
00502 
00503 class InstanceCount;
00504 
00505 class ImportConfigurationGroup: public VerticalConfigurationGroup
00506 {
00507    Q_OBJECT
00508 
00509   public:
00510     ImportConfigurationGroup(CaptureCard &parent);
00511 
00512   public slots:
00513     void probeCard(const QString &device);
00514 
00515   private:
00516     CaptureCard       &parent;
00517     TransLabelSetting *info;
00518     TransLabelSetting *size;
00519 };
00520 
00521 class DemoConfigurationGroup: public VerticalConfigurationGroup
00522 {
00523    Q_OBJECT
00524 
00525   public:
00526     DemoConfigurationGroup(CaptureCard &parent);
00527 
00528   public slots:
00529     void probeCard(const QString &device);
00530 
00531   private:
00532     CaptureCard       &parent;
00533     TransLabelSetting *info;
00534     TransLabelSetting *size;
00535 };
00536 
00537 class DVBCardNum;
00538 class DVBCardName;
00539 class DVBCardType;
00540 class DVBTuningDelay;
00541 
00542 class DVBConfigurationGroup : public VerticalConfigurationGroup
00543 {
00544     Q_OBJECT
00545 
00546     friend class DVBExtra;
00547 
00548   public:
00549     DVBConfigurationGroup(CaptureCard& a_parent);
00550     ~DVBConfigurationGroup();
00551 
00552     virtual void Load(void);
00553     virtual void Save(void);
00554     
00555   public slots:
00556     void probeCard(const QString& cardNumber);
00557     void DiSEqCPanel(void);
00558     void DVBExtraPanel(void);
00559 
00560   private:
00561     CaptureCard                  &parent;
00562 
00563     DVBCardNum                   *cardnum;
00564     DVBCardName                  *cardname;
00565     DVBCardType                  *cardtype;
00566     SignalTimeout                *signal_timeout;
00567     ChannelTimeout               *channel_timeout;
00568     TransButtonSetting           *buttonAnalog;
00569     DVBTuningDelay               *tuning_delay;
00570     DiSEqCDevTree                *diseqc_tree;
00571     TransButtonSetting           *diseqc_btn;
00572 };
00573 
00574 class FirewireGUID;
00575 class FirewireModel : public ComboBoxSetting, public CaptureCardDBStorage
00576 {
00577     Q_OBJECT
00578 
00579   public:
00580     FirewireModel(const CaptureCard &parent, const FirewireGUID*);
00581 
00582   public slots:
00583     void SetGUID(const QString&);
00584 
00585   private:
00586     const FirewireGUID *guid;
00587 };
00588 
00589 class FirewireDesc : public TransLabelSetting
00590 {
00591     Q_OBJECT
00592 
00593   public:
00594     FirewireDesc(const FirewireGUID *_guid) :
00595         TransLabelSetting(), guid(_guid) { }
00596 
00597   public slots:
00598     void SetGUID(const QString&);
00599 
00600   private:
00601     const FirewireGUID *guid;
00602 };
00603 
00604 class CaptureCardGroup : public TriggeredConfigurationGroup
00605 {
00606     Q_OBJECT
00607 public:
00608     CaptureCardGroup(CaptureCard& parent);
00609 
00610 protected slots:
00611     virtual void triggerChanged(const QString& value);
00612 };
00613 
00614 class CaptureCard : public QObject, public ConfigurationWizard
00615 {
00616     Q_OBJECT
00617 public:
00618     CaptureCard(bool use_card_group = true);
00619 
00620     int  getCardID(void) const { return id->intValue(); }
00621     QString GetRawCardType(void) const;
00622 
00623     void loadByID(int id);
00624 
00625     static void fillSelections(SelectSetting* setting);
00626 
00627     void reload(void);
00628 
00629     virtual void Save(void);
00630 
00631     uint GetInstanceCount(void) const { return instance_count; }
00632 
00633 public slots:
00634     void SetInstanceCount(uint cnt) { instance_count = cnt; }
00635     // this is needed to connect valueChanged() signal from legacy settings
00636     void SetInstanceCount(int cnt)  { instance_count = (uint)cnt; }
00637 
00638 private:
00639 
00640     class ID: public AutoIncrementDBSetting {
00641     public:
00642         ID():
00643             AutoIncrementDBSetting("capturecard", "cardid") {
00644             setVisible(false);
00645             setName("ID");
00646         };
00647     };
00648 
00649     class Hostname : public HostnameSetting, public CaptureCardDBStorage
00650     {
00651       public:
00652         Hostname(const CaptureCard &parent) :
00653             HostnameSetting(this),
00654             CaptureCardDBStorage(this, parent, "hostname") { }
00655     };
00656 
00657 private:
00658     ID       *id;
00659     uint      instance_count;
00660 };
00661 
00662 class CardInputDBStorage : public SimpleDBStorage
00663 {
00664   protected:
00665     CardInputDBStorage(StorageUser     *_user,
00666                        const CardInput &_parent,
00667                        QString          _name) :
00668         SimpleDBStorage(_user, "cardinput", _name), m_parent(_parent)
00669     {
00670     }
00671 
00672     int getInputID(void) const;
00673 
00674     void fillSelections();
00675 
00676 protected:
00677     virtual QString GetSetClause(MSqlBindings &bindings) const;
00678     virtual QString GetWhereClause(MSqlBindings &bindings) const;
00679 private:
00680     const CardInput& m_parent;
00681 };
00682 
00683 class MTV_PUBLIC CaptureCardEditor : public QObject, public ConfigurationDialog
00684 {
00685     Q_OBJECT
00686 
00687   public:
00688     CaptureCardEditor();
00689 
00690     virtual MythDialog* dialogWidget(MythMainWindow* parent,
00691                                      const char* widgetName=0);
00692     virtual DialogCode exec(void);
00693     virtual void Load(void);
00694     virtual void Save(void) { }
00695 
00696   public slots:
00697     void menu(void);
00698     void edit(void);
00699     void del(void);
00700 
00701   private:
00702     ListBoxSetting *listbox;
00703 };
00704 
00705 class MTV_PUBLIC VideoSourceEditor : public QObject, public ConfigurationDialog
00706 {
00707     Q_OBJECT
00708 
00709   public:
00710     VideoSourceEditor();
00711 
00712     virtual MythDialog* dialogWidget(MythMainWindow* parent,
00713                                      const char* widgetName=0);
00714 
00715     bool cardTypesInclude(const int& SourceID, 
00716                           const QString& thecardtype);
00717 
00718     virtual DialogCode exec(void);
00719     virtual void Load(void);
00720     virtual void Save(void) { }
00721 
00722   public slots:
00723     void menu(void);
00724     void edit(void);
00725     void del(void);
00726 
00727   private:
00728     ListBoxSetting *listbox;
00729 };
00730 
00731 class MTV_PUBLIC CardInputEditor : public QObject, public ConfigurationDialog
00732 {
00733     Q_OBJECT
00734 
00735   public:
00736     CardInputEditor();
00737 
00738     virtual DialogCode exec(void);
00739     virtual void Load(void);
00740     virtual void Save(void) { }
00741 
00742   private:
00743     vector<CardInput*>  cardinputs;
00744     ListBoxSetting     *listbox;
00745 };
00746 
00747 class StartingChannel : public ComboBoxSetting, public CardInputDBStorage
00748 {
00749     Q_OBJECT
00750   public:
00751     StartingChannel(const CardInput &parent) :
00752         ComboBoxSetting(this, false, 1),
00753         CardInputDBStorage(this, parent, "startchan")
00754     {
00755         setLabel(QObject::tr("Starting channel"));
00756         setHelpText(QObject::tr("Starting Live TV channel.") + " " +
00757                     QObject::tr("This is updated on every successful "
00758                                 "channel change."));
00759     }
00760     void fillSelections(void) {;}
00761   public slots:
00762     void SetSourceID(const QString &sourceid);
00763 };
00764 
00765 class CardInput : public QObject, public ConfigurationWizard
00766 {
00767     Q_OBJECT
00768   public:
00769     CardInput(bool is_dtv_card, bool is_dvb_card,
00770               bool is_new_input, int cardid);
00771     ~CardInput();
00772 
00773     int getInputID(void) const { return id->intValue(); };
00774 
00775     void loadByID(int id);
00776     void loadByInput(int cardid, QString input);
00777     QString getSourceName(void) const;
00778 
00779     virtual void Save(void);
00780     virtual void Save(QString /*destination*/) { Save(); }
00781 
00782   public slots:
00783     void CreateNewInputGroup();
00784     void channelScanner();
00785     void sourceFetch();
00786     void SetSourceID(const QString &sourceid);
00787 
00788   private:
00789     class ID: public AutoIncrementDBSetting
00790     {
00791       public:
00792         ID() : AutoIncrementDBSetting("cardinput", "cardid")
00793         {
00794             setVisible(false);
00795             setName("CardInputID");
00796         }
00797     };
00798 
00799     ID              *id;
00800     CardID          *cardid;
00801     InputName       *inputname;
00802     SourceID        *sourceid;
00803     StartingChannel *startchan;
00804     TransButtonSetting *scan;
00805     TransButtonSetting *srcfetch;
00806     DiSEqCDevSettings  *externalInputSettings;
00807     InputGroup         *inputgrp0;
00808     InputGroup         *inputgrp1;
00809 };
00810 
00811 class HDHomeRunDeviceID;
00812 class HDHomeRunTunerIndex;
00813 
00814 class HDHomeRunIP : public TransLineEditSetting
00815 {
00816     Q_OBJECT
00817 
00818   public:
00819     HDHomeRunIP();
00820 
00821     virtual void setEnabled(bool e);
00822     void SetOldValue(const QString &s)
00823         { _oldValue = s; _oldValue.detach(); };
00824 
00825   signals:
00826     void NewIP(const QString&);
00827 
00828   public slots:
00829     void UpdateDevices(const QString&);
00830 
00831   private:
00832     QString _oldValue;
00833 };
00834 
00835 class HDHomeRunTunerIndex : public TransLineEditSetting
00836 {
00837     Q_OBJECT
00838 
00839   public:
00840     HDHomeRunTunerIndex();
00841 
00842     virtual void setEnabled(bool e);
00843     void SetOldValue(const QString &s)
00844         { _oldValue = s; _oldValue.detach(); };
00845 
00846   signals:
00847     void NewTuner(const QString&);
00848 
00849   public slots:
00850     void UpdateDevices(const QString&);
00851 
00852   private:
00853     QString _oldValue;
00854 };
00855 
00856 
00857 class HDHomeRunDeviceIDList : public TransComboBoxSetting
00858 {
00859     Q_OBJECT
00860 
00861   public:
00862     HDHomeRunDeviceIDList(HDHomeRunDeviceID *deviceid,
00863                           TransLabelSetting *desc,
00864                           HDHomeRunIP       *cardip,
00865                           HDHomeRunTunerIndex *cardtuner,
00866                           HDHomeRunDeviceList *devicelist);
00867 
00868     void fillSelections(const QString &current);
00869 
00870     virtual void Load(void);
00871 
00872   public slots:
00873     void UpdateDevices(const QString&);
00874 
00875   private:
00876     HDHomeRunDeviceID   *_deviceid;
00877     TransLabelSetting   *_desc;
00878     HDHomeRunIP         *_cardip;
00879     HDHomeRunTunerIndex *_cardtuner;
00880     HDHomeRunDeviceList *_devicelist;
00881 
00882     QString              _oldValue;
00883 };
00884 
00885 class HDHomeRunDeviceID : public LabelSetting, public CaptureCardDBStorage
00886 {
00887     Q_OBJECT
00888 
00889   public:
00890     HDHomeRunDeviceID(const CaptureCard &parent);
00891 
00892     virtual void Load(void);
00893 
00894   public slots:
00895     void SetIP(const QString&);
00896     void SetTuner(const QString&);
00897     void SetOverrideDeviceID(const QString&);
00898 
00899   private:
00900     QString _ip;
00901     QString _tuner;
00902     QString _overridedeviceid;
00903 };
00904 
00905 class CetonSetting : public TransLineEditSetting
00906 {
00907     Q_OBJECT
00908 
00909   public:
00910     CetonSetting(const char* label, const char* helptext);
00911 
00912   signals:
00913     void NewValue(const QString&);
00914 
00915   public slots:
00916     void UpdateDevices(const QString&);
00917     void LoadValue(const QString&);
00918 };
00919 
00920 class CetonDeviceID : public LabelSetting, public CaptureCardDBStorage
00921 {
00922     Q_OBJECT
00923 
00924   public:
00925     CetonDeviceID(const CaptureCard &parent);
00926 
00927     virtual void Load(void);
00928     void UpdateValues();
00929 
00930   signals:
00931     void LoadedIP(const QString&);
00932     void LoadedCard(const QString&);
00933     void LoadedTuner(const QString&);
00934 
00935 
00936   public slots:
00937     void SetIP(const QString&);
00938     void SetCard(const QString&);
00939     void SetTuner(const QString&);
00940 
00941   private:
00942     QString _ip;
00943     QString _card;
00944     QString _tuner;
00945 };
00946 
00947 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends