#include #include #include #include #include #include #include #include "misc_settings.h" #include "infrared.h" #include "mv_common.h" #include "uitypes.h" extern HostParms hostparm; HostRemoteTypeIR::HostRemoteTypeIR(): HostImageSelect("HostRemoteType") { setLabel(QObject::tr("Remote")); QString dirtxt; dirtxt=MV_ROOT; dirtxt.append("templates/remotes"); QDir remotes(dirtxt); remotes.setFilter(QDir::Dirs); remotes.setSorting(QDir::Name | QDir::IgnoreCase); const QFileInfoList *fil = remotes.entryInfoList(QDir::Dirs); if (!fil) return; QFileInfoListIterator it( *fil ); QFileInfo *remote; for( ; it.current() != 0 ; ++it ) { remote = it.current(); QFileInfo preview(remote->absFilePath() + "/preview.jpg"); if (remote->fileName()[0] == '.' || !preview.exists() ) { VERBOSE(VB_IMPORTANT, remote->absFilePath() + "Can't find preivew image, doesn't look like a remote\n"); continue; } QImage* previewImage = new QImage(preview.absFilePath()); addImageSelection(remote->fileName(), previewImage); } }; static HostComboBox *HostReceiverType() { HostComboBox *gc = new HostComboBox("HostReceiverType"); gc->setLabel(QObject::tr("Receiver")); gc->addSelection("Default"); gc->addSelection("tinker"); gc->addSelection("Serial"); gc->addSelection("imon"); gc->addSelection("Hauppauge"); gc->addSelection("tinker"); gc->addSelection("CommandIR"); gc->addSelection("iguanaIR-usb"); gc->addSelection("mceusb"); gc->addSelection("mod_mce"); gc->addSelection("pvr150"); gc->addSelection("streamzap"); gc->addSelection("tatir"); gc->setHelpText(QObject::tr("The type of infrared receiver used.")); gc->setValue("Default"); return gc; }; static HostComboBox *HostSerialPortlirc() { HostComboBox *gc = new HostComboBox("HostSerialPortlirc",false); gc->setLabel(QObject::tr("Serial Port")); gc->addSelection("ttyS0"); gc->addSelection("ttyS1"); gc->addSelection("ttyS2"); gc->addSelection("ttyS3"); gc->setHelpText(QObject::tr("Serial port with the lirc receiver or transmitter")); return gc; } class LIRC_ReceiverSettings: public TriggeredConfigurationGroup { public: LIRC_ReceiverSettings(): TriggeredConfigurationGroup(false, false, true, true,false, false, true, true) { Setting* trigger = HostReceiverType() ; addChild(trigger); setTrigger(trigger); ConfigurationGroup* blanksettings = new GridConfigurationGroup(2,true); ConfigurationGroup* settings = new GridConfigurationGroup(2,true); settings->addChild(HostSerialPortlirc()); addTarget("Default", blanksettings); addTarget("Serial", settings); addTarget("imon", blanksettings ); addTarget("Hauppauge",blanksettings); addTarget("tinker", blanksettings ); addTarget("imon", blanksettings); addTarget("Hauppauge", blanksettings); addTarget("CommandIR", blanksettings); addTarget("iguanaIR-usb", blanksettings); addTarget("mceusb", blanksettings); addTarget("mod_mce", blanksettings); addTarget("pvr150", blanksettings); addTarget("streamzap", blanksettings); addTarget("tatir", blanksettings); }; }; IRFrame::IRFrame(): VerticalConfigurationGroup(false,false,false,false) { LIRC_ReceiverSettings *receiversettings = new LIRC_ReceiverSettings(); addChild(new HostRemoteTypeIR()); addChild(receiversettings); } //----------------transmit settings-------------- static HostComboBox *HostTransmitproto_1() { HostComboBox *gc = new HostComboBox("HostTransmitproto_1",false); gc->setLabel(QObject::tr("Transmitter")); gc->addSelection("none"); gc->setValue(0); gc->setHelpText(QObject::tr("Remote codes to control a cable box")); QString dirtxt; dirtxt=MV_ROOT; dirtxt.append("templates/transmit"); QDir transmit(dirtxt); transmit.setFilter(QDir::Dirs); transmit.setSorting(QDir::Name | QDir::IgnoreCase); const QFileInfoList *infos = transmit.entryInfoList(); const QFileInfo *info; if (!infos) return gc; QFileInfoListIterator infoIt( *infos ); QString currentitem = "."; while( (info=infoIt.current()) != 0 ) { currentitem = info->baseName( TRUE ); if ( currentitem != ".." && currentitem != "." && currentitem != "") { gc->addSelection(currentitem); } ++infoIt; } return gc; }; static HostComboBox *HostTransmitproto_2() { HostComboBox *gc = new HostComboBox("HostTransmitproto_2",false); gc->setLabel(QObject::tr("Transmitter")); gc->addSelection("none"); gc->setValue(0); gc->setHelpText(QObject::tr("Remote codes to control a cable box")); QString dirtxt; dirtxt=MV_ROOT; dirtxt.append("templates/transmit"); QDir transmit(dirtxt); transmit.setFilter(QDir::Dirs); transmit.setSorting(QDir::Name | QDir::IgnoreCase); const QFileInfoList *infos = transmit.entryInfoList(); const QFileInfo *info; if (!infos) return gc; QFileInfoListIterator infoIt( *infos ); QString currentitem = "."; while( (info=infoIt.current()) != 0 ) { currentitem = info->baseName( TRUE ); if ( currentitem != ".." && currentitem != "." && currentitem != "") { gc->addSelection(currentitem); } ++infoIt; } return gc; }; static HostComboBox *HostTransmitproto_3() { HostComboBox *gc = new HostComboBox("HostTransmitproto_3",false); gc->setLabel(QObject::tr("Transmitter")); gc->addSelection("none"); gc->setValue(0); gc->setHelpText(QObject::tr("Remote codes to control a cable box")); QString dirtxt; dirtxt=MV_ROOT; dirtxt.append("templates/transmit"); QDir transmit(dirtxt); transmit.setFilter(QDir::Dirs); transmit.setSorting(QDir::Name | QDir::IgnoreCase); const QFileInfoList *infos = transmit.entryInfoList(); const QFileInfo *info; if (!infos) return gc; QFileInfoListIterator infoIt( *infos ); QString currentitem = "."; while( (info=infoIt.current()) != 0 ) { currentitem = info->baseName( TRUE ); if ( currentitem != ".." && currentitem != "." && currentitem != "") { gc->addSelection(currentitem); } ++infoIt; } return gc; }; static HostComboBox *HostTransmitproto_4() { HostComboBox *gc = new HostComboBox("HostTransmitproto_4",false); gc->setLabel(QObject::tr("Transmitter")); gc->addSelection("none"); gc->setValue(0); gc->setHelpText(QObject::tr("Remote codes to control a cable box")); QString dirtxt; dirtxt=MV_ROOT; dirtxt.append("templates/transmit"); QDir transmit(dirtxt); transmit.setFilter(QDir::Dirs); transmit.setSorting(QDir::Name | QDir::IgnoreCase); const QFileInfoList *infos = transmit.entryInfoList(); const QFileInfo *info; if (!infos) return gc; QFileInfoListIterator infoIt( *infos ); QString currentitem = "."; while( (info=infoIt.current()) != 0 ) { currentitem = info->baseName( TRUE ); if ( currentitem != ".." && currentitem != "." && currentitem != "") { gc->addSelection(currentitem); } ++infoIt; } return gc; }; static HostComboBox *HostBlasterType() { HostComboBox *gc = new HostComboBox("HostBlasterType"); gc->setLabel(QObject::tr("Blaster")); gc->addSelection("None"); gc->addSelection("Receiver"); gc->addSelection("Serial"); gc->addSelection("CommandIR"); //gc->addSelection("Hauppauge"); gc->addSelection("MCE"); gc->addSelection("pvr150"); gc->addSelection("iguanaIR-usb"); gc->setHelpText(QObject::tr("The type of infrared transmitter being used. Selecting CommandIR will use that device for both transmiting and receiving. Any other receiver will be disabled.")); gc->setValue("None"); return gc; }; static HostComboBox *HostSerialPort_blasterlirc() { HostComboBox *gc = new HostComboBox("HostSerialPort_blasterlirc",false); gc->setLabel(QObject::tr("Serial Port")); gc->addSelection("ttyS0"); gc->addSelection("ttyS1"); gc->addSelection("ttyS2"); gc->addSelection("ttyS3"); gc->setHelpText(QObject::tr("Serial port with the lirc transmitter")); return gc; } class LIRC_BlasterSettings: public TriggeredConfigurationGroup { public: LIRC_BlasterSettings(): TriggeredConfigurationGroup(false, false, true, true,false, false, true, true) { Setting* trigger = HostBlasterType() ; addChild(trigger); setTrigger(trigger); ConfigurationGroup* blanksettings = new GridConfigurationGroup(2,true); ConfigurationGroup* settings = new GridConfigurationGroup(1,true); settings->addChild(HostTransmitproto_1()); ConfigurationGroup* CommandIRsettings = new GridConfigurationGroup(1,true); CommandIRsettings->addChild(HostTransmitproto_1()); CommandIRsettings->addChild(HostTransmitproto_2()); CommandIRsettings->addChild(HostTransmitproto_3()); CommandIRsettings->addChild(HostTransmitproto_4()); ConfigurationGroup* mcesettings = new GridConfigurationGroup(1,true); mcesettings->addChild(HostTransmitproto_1()); mcesettings->addChild(HostTransmitproto_2()); ConfigurationGroup* serial_settings = new GridConfigurationGroup(1,true); serial_settings->addChild(HostSerialPort_blasterlirc()); serial_settings->addChild(HostTransmitproto_1()); addTarget("None", blanksettings); addTarget("Receiver", settings); addTarget("Serial", serial_settings); addTarget("CommandIR", CommandIRsettings); addTarget("pvr150",blanksettings); addTarget("MCE",mcesettings); addTarget("iguanaIR-usb",mcesettings); // addTarget("tinker", blanksettings ); }; }; IR_TransmitFrame::IR_TransmitFrame(): VerticalConfigurationGroup(false,false,false,false) { LIRC_BlasterSettings *blastersettings = new LIRC_BlasterSettings(); addChild(blastersettings); } //------------------LCD settings------------- static HostComboBox *HostLCDType() { HostComboBox *gc = new HostComboBox("HostLCDType",false); gc->setLabel(QObject::tr("LCD/VFD model")); gc->addSelection("no_lcd"); gc->addSelection("tinker"); gc->setValue(0); gc->setHelpText(QObject::tr("VFD or LCD")); QString dirtxt; dirtxt=MV_ROOT; dirtxt.append("templates/LCD"); QDir transmit(dirtxt); //QDir transmit("/usr/share/templates/LCD"); transmit.setFilter(QDir::Dirs); transmit.setSorting(QDir::Name | QDir::IgnoreCase); const QFileInfoList *infos = transmit.entryInfoList(); const QFileInfo *info; if (!infos) return gc; QFileInfoListIterator infoIt( *infos ); QString currentitem = "."; while( (info=infoIt.current()) != 0 ) { currentitem = info->baseName( TRUE ); if ( currentitem != ".." && currentitem != "." && currentitem != "") { gc->addSelection(currentitem); } ++infoIt; } return gc; }; LCDFrame::LCDFrame(): VerticalConfigurationGroup(false,false,false,false) { addChild(HostLCDType()); }