#ifndef WELCOMESETTINGS_H
#define WELCOMESETTINGS_H

#include <settings.h>
#include "mythdialogs.h"
#include "libmyth/mythdialogs.h"
#include "libmyth/mythwidgets.h"


class SystemtypeGroup: public TriggeredConfigurationGroup {
Q_OBJECT
public:
  SystemtypeGroup();
  HostComboBox  *HostSystemType;
public slots:
        void SystemtypeHelp();
};

//-------------------------------------------
class NetworkSettingseth0:
                    public TriggeredConfigurationGroup {
Q_OBJECT
public:
    NetworkSettingseth0();

   HostLineEdit *HostIPeth0;
   HostComboBox *HostNETMASKeth0;
   HostLineEdit *HostGWeth0;
   HostLineEdit *HostDNSeth0;
   HostCheckBox *HostActiveonbooteth0;
   HostCheckBox *HostUseDHCPeth0 ;
   HostCheckBox *HostDefaulteth0;
   TransButtonSetting *wirelessbuttoneth0;

signals:
      void eth0_is_default(void);
public slots:
    void eth0_wireless_settings();
    void eth0_disable_others();
    void eth0_disabled();
    void eth0_wireless_disable();
};

class eth0options : public ConfigurationWizard
{
public:
    eth0options();
};


class NetworkSettingseth1:
                    public TriggeredConfigurationGroup {
Q_OBJECT
public:
    NetworkSettingseth1();

   HostLineEdit  *HostIPeth1;
   HostComboBox *HostNETMASKeth1;
   HostLineEdit *HostGWeth1;
   HostLineEdit *HostDNSeth1;
   HostCheckBox *HostActiveonbooteth1;
   HostCheckBox *HostUseDHCPeth1 ;
   HostCheckBox *HostDefaulteth1;
   TransButtonSetting *wirelessbuttoneth1;
signals:
      void eth1_is_default(void);
public slots:
    void eth1_wireless_settings();
    void eth1_disable_others();
    void eth1_disabled();
    void eth1_wireless_disable();
};

class eth1options : public ConfigurationWizard
{
public:
    eth1options();
};



class NetworkSettingswlan0:
                    public TriggeredConfigurationGroup {
Q_OBJECT
public:
    NetworkSettingswlan0();

   HostLineEdit  *HostIPwlan0;
   HostComboBox *HostNETMASKwlan0;
   HostLineEdit *HostGWwlan0;
   HostLineEdit *HostDNSwlan0;
   HostCheckBox *HostActiveonbootwlan0;
   HostCheckBox *HostUseDHCPwlan0 ;
   HostCheckBox *HostDefaultwlan0;
   TransButtonSetting *wirelessbuttonwlan0;
signals:
      void wlan0_is_default(void);
public slots:
    void wlan0_wireless_settings();
    void wlan0_disable_others();
    void wlan0_disabled();
    void wlan0_wireless_disable();
};

class Wlan0options : public ConfigurationWizard
{
public:
    Wlan0options();
};


class NetworkSettingswlan1:
                    public TriggeredConfigurationGroup {
Q_OBJECT
public:
    NetworkSettingswlan1();

   HostLineEdit *HostIPwlan1;
   HostComboBox *HostNETMASKwlan1;
   HostLineEdit *HostGWwlan1;
   HostLineEdit *HostDNSwlan1;
   HostCheckBox *HostActiveonbootwlan1;
   HostCheckBox *HostUseDHCPwlan1 ;
   HostCheckBox *HostDefaultwlan1;
   TransButtonSetting *wirelessbuttonwlan1;
signals:
      void wlan1_is_default(void);
public slots:
    void wlan1_wireless_settings();
    void wlan1_disable_others();
    void wlan1_disabled();
    void wlan1_wireless_disable();
};

class wlan1options : public ConfigurationWizard
{
public:
    wlan1options();
};



class NetworkSettingsath0:
                    public TriggeredConfigurationGroup {
Q_OBJECT
public:
    NetworkSettingsath0();

   HostLineEdit *HostIPath0;
   HostComboBox *HostNETMASKath0;
   HostLineEdit *HostGWath0;
   HostLineEdit *HostDNSath0;
   HostCheckBox *HostActiveonbootath0;
   HostCheckBox *HostUseDHCPath0 ;
   HostCheckBox *HostDefaultath0;
   TransButtonSetting *wirelessbuttonath0;
signals:
      void ath0_is_default(void);
public slots:
    void ath0_wireless_settings();
    void ath0_disable_others();
    void ath0_disabled();
    void ath0_wireless_disable();
};

class ath0options : public ConfigurationWizard
{
public:
    ath0options();
};



//--------------------------------------------


class SoundSettings:    public TriggeredConfigurationGroup {
Q_OBJECT
public:
    SoundSettings();
    HostComboBox *HostAudiotype;
    HostCheckBox *HostsyncXine;
    HostCheckBox *HostsyncMplayer;
    HostCheckBox *HostsyncMythMusic;
    HostCheckBox *HostsyncMythFrontend;


signals:
        void oss_sig(void);
        void alsa_sig(void);
public slots:
    void soundossgathersettings_1();
    void soundalsagathersettings_1();

};


class SoundOSSsettings: public TriggeredConfigurationGroup {
Q_OBJECT
public:
    SoundOSSsettings();
    HostComboBox *HostSoundOssAnalog;
    HostComboBox *HostSoundOssDigital;
    HostComboBox *HostSoundTypeout;
    void fillossselection();
public slots:
    void soundossgathersettings();
    void loadossdriver();
};

class SoundALSAsettings: public TriggeredConfigurationGroup {
Q_OBJECT
public:
    SoundALSAsettings();
    HostComboBox *HostSoundALSAAnalog;
    HostComboBox *HostSoundALSADigital;
    HostComboBox *HostSoundALSATypeout;
    void fillALSAselection();
public slots:
    void soundalsagathersettings();
    void loadalsadriver();

};


//############################################
class MythInstallSettings:  public ConfigurationWizard
{

public:
    MythInstallSettings();
    void testme();
private:
    MythPopupBox *popup;

};




class HostRemoteType: public HostImageSelect {
public:
    HostRemoteType();
};



#define MV_ROOT "/usr/MythVantage/"
int runsettings(bool = false , bool = false ,  bool = false ,bool = false ,bool = false, bool = false,bool = false,bool = false , bool = false , bool = false , bool = false, bool = false , bool = false , bool = false , bool = false);
//void ReadDDCifno(void);
void run_systemconfig(QString,bool = false,QString = "");
void writesettings();

//void testXconfiguration();





struct HostParms
{
        QString ThisHostName;
        QString ThisHostDHCPhostname;

        QString ThisHostIP;
        QString ThisNETMASK;
        QString ThisGW;
        QString ThisDNS;
        QString ThisDHCP;
        QString ThisHostnetOLD;
        QString ThisHostnetActiveOLD;

        QString ThisHostDefaultInterface;
        QString ThisHostIPeth0;
        QString ThisHostNETMASKeth0;
        QString ThisHostDNSeth0;
        QString ThisHostUSEDHCPeth0;
        QString ThisHostGWeth0;
        QString ThisHOST_iswirelesseth0;
        QString ThisHostActiveonbooteth0;
        QString ThisHOSTESSIDeth0;
        QString ThisHostUseEncryptioneth0;
        QString ThisHostkeyeth0;
        QString ThisHostMTUeth0;


        QString ThisHostIPeth1;
        QString ThisHostNETMASKeth1;
        QString ThisHostDNSeth1;
        QString ThisHostUSEDHCPeth1;
        QString ThisHostGWeth1;
        QString ThisHostActiveonbooteth1 ;
        QString ThisHOST_iswirelesseth1;
        QString ThisHOSTESSIDeth1;
        QString ThisHostUseEncryptioneth1;
        QString ThisHostkeyeth1;
        QString ThisHostMTUeth1;

        QString ThisHostIPwlan0;
        QString ThisHostNETMASKwlan0;
        QString ThisHostDNSwlan0;
        QString ThisHostUSEDHCPwlan0;
        QString ThisHostGWwlan0;
        QString ThisHostActiveonbootwlan0;
        QString ThisHOST_iswirelesswlan0;
        QString ThisHOSTESSIDwlan0;
        QString ThisHostUseEncryptionwlan0;
        QString ThisHostkeywlan0;
        QString ThisHostMTUwlan0;


        QString ThisHostIPwlan1;
        QString ThisHostNETMASKwlan1;
        QString ThisHostDNSwlan1;
        QString ThisHostUSEDHCPwlan1;
        QString ThisHostGWwlan1;
        QString ThisHostActiveonbootwlan1;
        QString ThisHOST_iswirelesswlan1;
        QString ThisHOSTESSIDwlan1;
        QString ThisHostUseEncryptionwlan1;
        QString ThisHostkeywlan1;
        QString ThisHostMTUwlan1;

        QString ThisHostIPath0;
        QString ThisHostNETMASKath0;
        QString ThisHostDNSath0;
        QString ThisHostUSEDHCPath0;
        QString ThisHostGWath0;
        QString ThisHostActiveonbootath0;
        QString ThisHOST_iswirelessath0;
        QString ThisHOSTESSIDath0;
        QString ThisHostUseEncryptionath0;
        QString ThisHostkeyath0;
        QString ThisHostMTUath0;


        QString ThisRemote;
        QString ThisTimeZone;
        QString ThisSamba;
        QString ThisHostServiceSamba_media;
        QString ThisHostServiceSamba_home;
        QString ThisHostServiceSamba_writehome;
        QString ThisHostServiceSamba_write;
        QString ThisHostServiceSamba_domain;
        QString ThisNFS;
        QString ThisMythWEB;
        QString ThisHostwebauth;
        QString ThisHostServiceHobbit;
        QString ThisHostServiceRRD;

        QString ThisHostRunDHCP;
        QString ThisSystemType;
//        QString ThisBlaster;

        QString ThisHostTransmitproto_1;
        QString ThisHostTransmitproto_2;
        QString ThisHostTransmitproto_3;
        QString ThisHostTransmitproto_4;
        QString ThisHostBlasterType;
        QString ThisHostSerialPort_blasterlirc;
        QString ThisHostnumblaster;

        QString ThisReceiverType;
        QString ThisHostLircWait;
        QString ThisHostSerialPortlirc;
        QString ThisHostUseEvrouter;
        QString ThisHostEvrouterConfig;
        QString ThisDBhost;
        QString ThisXres;
        QString ThisShutdowntime;
        QString ThisShutdowntime2;
        QString ThisWakeuptime;
        QString ThisAutodown;
        QString ThisUseNVRAM;
        QString ThisUseWOL;
        QString ThisKeepPackage;
        QString ThisMythWelcome;
        QString ThisHaveNFS;
        QString ThisNFSserver;
        QString ThisNFSmountpoint;
        QString ThisHostupdateplan;
       // QString ThisOSS;
        QString ThisShowToolTips;
        QString ThisHostPKG_MIRROR;
        QString ThisRunfrontend;
        QString ThisHostZipcode;
        QString ThisHostncidClient;
        QString ThisHostncidDaemon;
        QString ThisHostSerialPortncid;
        QString ThisHostbootsplash;
        QString ThisXIgnoreConfig;
        QString ThisXcardtype;
        QString ThisXUseAdvanced;
        QString ThisXIgnoreEDID;
        QString ThisXconnection;
        QString ThisXHsync;
        QString ThisXVrefresh;
        QString ThisXresadvanced;
        QString ThisXTVstandard;
        QString ThisXTVconnection;
        QString ThisXDisplaysize ;

        QString ThisHostXNvidia1080p;
        QString ThisHostXNvidia1080i;
        QString ThisHostXNvidia720p;
        QString ThisHostXNvidia480p;
        QString ThisHostAudiotype;

        QString ThisHostSoundTypeout;
        QString ThisHostSoundOSSAnalog;
        QString OLDHostSoundOSSAnalog;
        QString ThisHostSoundOSSDigital;
        QString OLDHostSoundOSSDigital;

        QString ThisHostSoundDigital;
        QString ThisHostSoundDevice;

        QString ThisHostSoundALSAAnalog;
        QString OLDHostSoundALSAAnalog;
        QString ThisHostSoundALSADigital;
        QString OLDHostSoundALSADigital;
        QString ThisHostSoundALSATypeout;


        QString ThisHostsyncXine;
        QString ThisHostsyncMplayer;
        QString ThisHostsyncMythMusic;
        QString ThisHostsyncMythFrontend;
        QString ThisHostLCDType;
        QString ThisHostRemoteBackup;
        QString ThisHostRemoteBackupDir;
        QString ThisHostpluginmytharchive;
        QString ThisHostpluginmythbrowser;
        QString ThisHostpluginmythcontrols;
        QString ThisHostpluginmythflix;
        QString ThisHostpluginmythgallery;
        QString ThisHostpluginmythgame;
        QString ThisHostpluginmythmovietime;
        QString ThisHostpluginmythmusic;
        QString ThisHostpluginmythnews;
        QString ThisHostpluginmythphone;
        QString ThisHostpluginmythsmolt;
        QString ThisHostpluginmythvideo;
        QString ThisHostpluginmythweather;
        QString ThisHostpluginmythzoneminder;
        QString ThisHostpluginmythgameFceu;
        QString ThisHostpluginmythgameZsnes;
        QString ThisHostpluginmythgameMame;
        QString ThisHostpluginmythvideo_dvdcss;
        QString ThisHostpluginmythappletrailers;
        QString ThisHostpluginmythstream;
        QString ThisHostpluginmythvodka;
        QString ThisHostMiro;
        QString ThisHostpluginmythgameXE;
        QString ThisHostpluginmythgameROMDB;
        QString ThisHostXine;
        QString ThisHostwebmin;
        QString ThisHostfuppes;
        QString ThisHostfoldingathome;
        QString ThisHostfoldingusername;
        QString ThisHostfoldingworksize;

        QString ThisHostDDnslogin;
        QString ThisHostDDnspassword;
        QString ThisHostDDnshostname;
        QString ThisHostDDnsEnable;
        QString ThisHostscreensavertype;
        QString ThisHostscreensaveridle;
        QString ThisHostscreensavertheme;
        QString ThisHOSTrootSSH;
        bool displayshowadvancedX;


};

struct DDCinfo
{
        QString XVrefresh;
        QString XHsync;
        QString Displaysize;
};







#endif