#include #include #include #include #include #include #include #include #include #include "ubl-utils.h" #ifndef UBL_SETINGS_VIDEO_H #define UBL_SETINGS_VIDEO_H #define icon_name "com.ublinux.ubl-settings-video" #define banner_path "/usr/share/ubl-settings-video/ui/ubl-settings-video-banner.png" #define glade_path "/usr/share/ubl-settings-video/ui/ubl-settings-video.glade" #define LocalePath "/usr/share/locale" #define LocaleName "ubl-settings-video" #define CssPath "/usr/share/ubl-settings-video/css/ubl-settings-video.css" #define StatusLoadGlobalFailed _("Failed to load global configuration") #define StatusLoadLocalFailed _("Failed to load local configuration") #define StatusSaveGlobalFailed _("Saving to global configuration Succeeded") #define StatusSaveLocalFailed _("Saving to local configuration Succeeded") #define get_ports_command "xrandr |grep -E \"^[A-Z0-9]* connected\" |cut -d' ' -f1" #define get_resolutions_command "xrandr |grep -noP \"\\d+x+\\d+\"" #define get_proprietary_drivers_command "" #define get_frequences_command "xrandr |grep -v -n \"[a-z][a-z]\" |sed 's/ * / /g' |cut -d' ' -f1,3-" #define load_drivers_command "/usr/bin/ubconfig --default --source " #define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN " #define save_drivers_global_command "/usr/bin/ubconfig --target global set video " #define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN " #define save_drivers_local_command "pkexec /usr/bin/ubconfig --target system set video " #define remove_drivers_global_command "/usr/bin/ubconfig --target system remove video " #define remove_drivers_local_command "/usr/bin/ubconfig --target global remove video " char *local; typedef char *string; string version_application = "1.0"; #define _(String) gettext(String) typedef struct { int autoChooseDrivers; dictionary *videoconfig; dictionary *monitors; dictionary *proprietary; GtkListStore *list; char *failsafenVidia; char *failsafeATI; int descreteOnly; char *optirun; char *primusrun; int gapfix; int optiorprimus; } config; typedef struct { int main; char *port; char *resolution; char **resolutionCapabilities; char *frequency; char *rotation; char *stringparameters; int resolution_size; } monitorconfig; typedef struct { GtkWidget *combo; GtkWidget *tree; } combo_tree; typedef struct { dictionary *monitors; dictionary *overlays; GtkBuilder *builder; GtkWidget *appsPackBox; GtkWidget *appsPackWindow; GtkWidget *extraOptirunChooseAppsButton; GtkWidget *extraPrimusunChooseAppsButton; GtkWidget *MainWindow; GtkWidget *headBox; GtkWidget *headInfoLabel; GtkWidget *mainPlugBox; GtkWidget *mainErrorBox; GtkWidget *mainHeadOverlay; GtkWidget *mainHeadBackgroundImage; GtkWidget *mainDriverAutomaticallyChooseCheck; GtkWidget *mainDriverProprietaryDriverLabel; GtkWidget *mainDriverFailsafeNvidiaLabel; GtkWidget *mainDriverFailsafeAMDLabel; GtkWidget *mainDriverProprietaryDriverCombo; GtkWidget *mainDriverProprietaryDriverButton; GtkWidget *mainExtraFixGapCombo; GtkWidget *mainDriverFailsafeNvidiaCombo; GtkWidget *mainDriverFailsafeAMDCombo; GtkWidget *mainDriverFrameLabel; GtkWidget *monitorConfigurationMethodLabel; GtkWidget *monitorConfigurationMethodCombo; GtkWidget *mainMonitorVisualConfigurationBox; GtkWidget *mainMonitorConfigurationBox; GtkWidget *mainMonitorConfigurationFrameLabel; GtkWidget *mainHybridGraphicsDiscreteLabel; GtkWidget *mainHybridGraphicsDiscreteCheck; GtkWidget *mainHybridGraphicsFrameLabel; GtkWidget *mainExtraLaunchOptirunCheck; GtkWidget *mainExtraLaunchPrismusunCheck; GtkWidget *mainExtraFixGapLabel; GtkWidget *mainExtraLaunchOptirunEntry; GtkWidget *mainExtraLaunchPrismusunEntry; GtkWidget *mainExtraLaunchThroughEntry; GtkWidget *mainExtraFixGapLabelCombo; GtkWidget *mainExtraLaunchThroughButton; GtkWidget *mainExtraFrameLabel; GtkWidget *mainHeaderTitleLabel; GtkWidget *mainHeaderLoadButton; GtkWidget *mainHeaderConfigLoadLabel; GtkWidget *mainHeaderSaveConfigurationLabel; GtkWidget *mainHeaderSaveButton; GtkWidget *mainHeaderSettingsButton; GtkWidget *mainHeaderLoadGlobalMenuItem; GtkWidget *mainHeaderLoadLocalMenuItem; GtkWidget *mainHeaderSaveGlobalLocalMenuItem; GtkWidget *mainHeaderSaveGlobalMenuItem; GtkWidget *mainHeaderSaveLocalMenuItem; GtkWidget *mainHeaderSettingsDocumentationMenuItem; GtkWidget *mainHeaderSettingsAboutMenuItem; GtkWidget *mainStatusBox; GtkWidget *mainStatusIcon; GtkWidget *mainStatusLabel; GtkWidget *templateMonitorConfigurationBox; GtkWidget *templateMonitorConfigurationMonitorLabel; GtkWidget *templateMonitorConfigurationResolutionLabel; GtkWidget *templateMonitorConfigurationResolutionCombo; GtkWidget *templateMonitorConfigurationFrequencyLabel; GtkWidget *templateMonitorConfigurationFrequencyCombo; GtkWidget *templateMonitorConfigurationRotationLabel; GtkWidget *templateMonitorConfigurationRotationCombo; GtkWidget *templateMonitorConfigurationMainRadio; GtkWidget *templateMonitorConfigurationParameterLineCheck; GtkWidget *templateMonitorConfigurationParameterLineEntry; GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel; GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck; } widgets_dict; typedef struct { GtkWidget *templateMonitorConfigurationWindow; GtkWidget *templateMonitorConfigurationBox; GtkWidget *templateMonitorConfigurationMonitorLabel; GtkWidget *templateMonitorConfigurationResolutionLabel; GtkWidget *templateMonitorConfigurationResolutionCombo; GtkWidget *templateMonitorConfigurationFrequencyLabel; GtkWidget *templateMonitorConfigurationFrequencyCombo; GtkWidget *templateMonitorConfigurationRotationCombo; GtkWidget *templateMonitorConfigurationRotationLabel; GtkWidget *templateMonitorConfigurationMainRadio; GtkWidget *templateMonitorConfigurationParameterLineCheck; GtkWidget *templateMonitorConfigurationParameterLineEntry; GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel; GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck; GtkWidget *templateMonitorConfigurationCancelButton; GtkWidget *templateMonitorConfigurationSaveButton; GtkWidget *templateMonitorscreenOverlay; GtkWidget *templateMonitorInfoBox; GtkWidget *templateMonitorInfoNameLabel; GtkWidget *templateMonitorInfoResolutionLabel; GtkWidget *templateMonitorInfoConfigureButton; dictionary *curconfig; } MonitorSettings; typedef struct { GtkWidget *window; GtkWidget *propriearyTreeView; GtkTreeViewColumn *ProprietaryDriverColumn; GtkTreeViewColumn *ProprietaryDescriptionColumn; GtkListStore *list; GtkWidget *ProprietaryCloseButton; GtkWidget *ProprietaryAcceptButton; } driver_window; int yon_check_for_monitors(); MonitorSettings *yon_setup_monitor_settings(); dictionary *yon_dictionary_pack_monitors(MonitorSettings *monitors, int size); dictionary *yon_dictionary_pack_overlays(MonitorSettings *monitors, int size); void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors); void on_save_configuration(GtkWidget self, MonitorSettings *monitors); int yon_config_init(char **parameters, int size); void yon_parse_monitor(dictionary *monitor, char *string_of_settings); void on_config_fill_interface(widgets_dict *widgets); void yon_update_config(widgets_dict *widgets); void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets); void on_configuration_save__local_global(GtkWidget *self, widgets_dict *widgets); void on_configuration_save__local(GtkWidget *self, widgets_dict *widgets); void yon_config_monitor_string_parse(char *parameters, int *size); int yon_char_get_if_resolution(char *parsed_string); void yon_monitor_set_resolutions(dictionary *dict); #endif