|
MythTV
0.26-pre
|
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 ¤t); 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
1.7.6.1