summaryrefslogtreecommitdiffstats
path: root/abs/core/mythinstall/xorgsettings.h
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/mythinstall/xorgsettings.h')
-rwxr-xr-xabs/core/mythinstall/xorgsettings.h178
1 files changed, 178 insertions, 0 deletions
diff --git a/abs/core/mythinstall/xorgsettings.h b/abs/core/mythinstall/xorgsettings.h
new file mode 100755
index 0000000..46c4952
--- /dev/null
+++ b/abs/core/mythinstall/xorgsettings.h
@@ -0,0 +1,178 @@
+#include <settings.h>
+#include "mythdialogs.h"
+#include "libmyth/mythdialogs.h"
+#include "libmyth/mythwidgets.h"
+#include "installsettings.h"
+
+class AdvancedXNvidiaConnections: public TriggeredConfigurationGroup {
+Q_OBJECT
+public:
+ AdvancedXNvidiaConnections();
+ HostComboBox *HostXNvidiaConnection;
+ HostComboBox *HostXnVidiaTVformat;
+ HostComboBox *HostXnVidiaTVstandard;
+
+public slots:
+ void AdvancedXNvidiaConnectionsGatherSettings();
+signals:
+ void nVidia_sig(void);
+};
+
+
+class AdvancedXNvidia_modelines: public TriggeredConfigurationGroup {
+ Q_OBJECT
+public:
+ AdvancedXNvidia_modelines();
+ HostComboBox *HostXNvidiaModelineCatagory;
+ HostComboBox *HostXNvidiaadvancedresVESA;
+ HostComboBox *HostXNvidiaadvancedresATSC;
+ HostComboBox *HostXNvidiaadvancedresDVD;
+ HostComboBox *HostXNvidiaadvancedresNTSC;
+ HostComboBox *HostXNvidiaadvancedresCustom;
+ HostCheckBox *HostXnVidia1080p;
+ HostCheckBox *HostXnVidia1080i;
+ HostCheckBox *HostXnVidia720p;
+ HostCheckBox *HostXnVidia480p;
+ void Nvidia_fillselection(QString);
+public slots:
+ void AdvancedXNvidia_modelines_GatherSettings(void);
+};
+
+
+//-------------------------------------------------
+
+class AdvancedXcardtype: public TriggeredConfigurationGroup {
+Q_OBJECT
+public:
+ AdvancedXcardtype();
+ HostComboBox *HostXcardtype;
+
+public slots:
+ void AdvancedXcardgatherSettings();
+signals:
+ void go(void );
+ void goATI(void);
+ void gonVidia(void);
+};
+
+
+class AdvancedXSettings: public TriggeredConfigurationGroup {
+Q_OBJECT
+public:
+ AdvancedXSettings();
+ HostCheckBox *HostXIgnoreConfig;
+protected slots:
+ void ADJUSTEDID(void);
+};
+
+
+class AdvancedXGeneric_modelines: public TriggeredConfigurationGroup {
+ Q_OBJECT
+public:
+ AdvancedXGeneric_modelines();
+ HostComboBox *HostXModelineCatagory;
+ HostComboBox *HostXadvancedresVESA;
+ HostComboBox *HostXadvancedresATSC;
+ HostComboBox *HostXadvancedresDVD;
+ HostComboBox *HostXadvancedresNTSC;
+ HostComboBox *HostXadvancedresCustom;
+ void generic_fillselection(QString);
+public slots:
+ void AdvancedXGeneric_modelines_GatherSettings(void);
+};
+
+
+class EDIDOptions : public ConfigurationWizard
+{
+public:
+ EDIDOptions();
+};
+
+
+
+
+
+
+
+
+void testXconfiguration();
+void ReadDDCvalues();
+static HostComboBox *HostXres()
+//Used in the simple config
+{
+ HostComboBox *gc = new HostComboBox("HostXres");
+ gc->setLabel(QObject::tr("Initial resolution"));
+ const int num_defaults = 2;
+ char *defaults[num_defaults]={"800x600","1280x720"};
+ int defaults_added[num_defaults]={0,0};
+ int found_modes_in_xorg_log = FALSE;
+
+ gc->addSelection("Auto");
+
+ {
+ FILE *modelines;
+ const char*mode_extract_command =
+ "sed -n 's/[[:space:]]\\+/ /g;" // compress whitespace
+ "s/[\\) ]: /#/g;" // Insert # as a field delimiter
+ "/Modes in ModePool/,/ModePool/p'" // get the Modelool lines
+ " /var/log/Xorg.0.log |" // from the Xorg log
+ "cut -d# -f2-3 | " // select the mode and description fields
+ "sed '/^\\\"/!d;" // Only selest modeline lines.
+ "/DoubleScan/d;" // Remove doublescan modelines.
+ "/nvidia-auto-select/d;" // Remove auto modeline.
+ "s/ x /x/g;"
+ "s/ @ /@/g;"
+ "s/From: //g;"
+ "s/ Format [0-9]*) (/, /g;"
+ "s/ Format [0-9]*//g;"
+ "s/ Server//g'"; //reformat.
+ cout << mode_extract_command << endl;
+ modelines = popen (mode_extract_command, "r");
+
+ char previous_mode[200]={0};
+
+ if (modelines)
+ {
+ char line_in[200];
+ while (fgets (line_in, sizeof (line_in), modelines))
+ {
+ char *separator;
+
+ if (strchr (line_in, '\n'))
+ strchr (line_in, '\n')[0]=0;
+
+ separator = strchr (line_in, '#');
+
+ if (separator)
+ {
+ separator[0]=0;
+ separator++;
+
+ // Skip this mode if the description is identical to the previous.
+ if (strcmp (previous_mode, separator) == 0)
+ continue;
+
+ strncpy (previous_mode, separator, sizeof(previous_mode));
+ gc->addSelection(separator, line_in);
+ found_modes_in_xorg_log = TRUE;
+
+ for (int def = 0; def < num_defaults; def++)
+ if (strncmp (&line_in[1], defaults[def], strlen (defaults[def]))==0)
+ defaults_added[def]=1;
+ }
+ }
+ pclose (modelines);
+ }
+ }
+
+ for (int def = 0; def < num_defaults; def++)
+ if (!defaults_added[def])
+ gc->addSelection(defaults[def], defaults[def]);
+
+ if (found_modes_in_xorg_log)
+ gc->setHelpText(QObject::tr("Choose a resolution to match your display and a refresh rate to match the content you will be recording - 60 Hz for NTSC (e.g. US) 50 Hz for PAL (e.g. UK, Aust, NZ)."));
+ else
+ gc->setHelpText(QObject::tr("Choose the resolution to use when the system reboots."));
+
+ return gc;
+}