Test fix for drivers getting

pull/55/head
parent 37d02e7425
commit 466195ac6a

@ -13,6 +13,11 @@ include_directories(${VTE291_INCLUDE_DIRS})
link_directories(${VTE291_LIBRARY_DIRS}) link_directories(${VTE291_LIBRARY_DIRS})
add_definitions(${VTE291_CFLAGS_OTHER}) add_definitions(${VTE291_CFLAGS_OTHER})
pkg_check_modules(JSON REQUIRED json-c)
include_directories(${JSON_INCLUDE_DIRS})
link_directories(${JSON_LIBRARY_DIRS})
add_definitions(${JSON_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF) option(WEBKIT_FOUND "No" OFF)
@ -83,7 +88,8 @@ set(SOURCE_FILES
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}
${WEBKIT_LIBRARIES} ${WEBKIT_LIBRARIES}
${VTE291_LIBRARIES} ${VTE291_LIBRARIES}
${JSON_LIBRARIES}
pthread) pthread)

@ -1526,57 +1526,84 @@ void yon_monitor_set_resolutions(){
void yon_adapter_window_setup(widgets_dict *widgets){ void yon_adapter_window_setup(widgets_dict *widgets){
int size=0; int size=0;
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay),widgets->InformationCompanyLogoImage); gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay),widgets->InformationCompanyLogoImage);
config_str rtn = yon_config_load(get_adapter_info,&size); config_str rtn = yon_config_load(get_adapter_info_json,&size);
char *desc = yon_config_get_parameter(rtn,size,"description"); struct json_object *jsobject = json_tokener_parse(yon_char_parsed_to_string(rtn,size,""));{
yon_char_divide_search(desc,"=",-1); struct json_object *item_obj = json_object_array_get_idx(jsobject, 0);
char *product = yon_config_get_parameter(rtn,size,"product"); struct json_object *unit_obj;
yon_char_divide_search(product,"=",-1); const char *desc="";
char *vendor = yon_config_get_parameter(rtn,size,"vendor"); if (json_object_object_get_ex(item_obj, "description", &unit_obj)) {
yon_char_divide_search(vendor,"=",-1); desc = json_object_get_string(unit_obj);
char *driver_use = yon_config_get_parameter(rtn,size,"Kernel-driver-in-use"); }
yon_char_divide_search(driver_use,"=",-1); const char *product ="";
char *driver_all = yon_config_get_parameter(rtn,size,"Kernel-modules"); if (json_object_object_get_ex(item_obj, "product", &unit_obj)) {
yon_char_divide_search(driver_all,"=",-1); product = json_object_get_string(unit_obj);
char *final_text = yon_char_unite("<span size=\"12pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc), }
"\n<span weight='bold' color='#1a5fb4'>",VENDOR_LABEL,":</span> ",vendor, const char *vendor="";
"\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product, if (json_object_object_get_ex(item_obj, "vendor", &unit_obj)) {
"\n<span weight='bold' color='#1a5fb4'>",USED_KERNEL_DRIVER_LABEL,":</span> ",driver_use, vendor = json_object_get_string(unit_obj);
"\n<span weight='bold' color='#1a5fb4'>",AVALIABLE_KERNEL_DRIVERS_LABEL,":</span> ",driver_all,"</span>",NULL); }
gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(widgets->builder,"InformationLabel")),final_text); const char *driver_use="";
if (strstr(vendor,"Intel")){ if (json_object_object_get_ex(item_obj, "configuration", &unit_obj)) {
GtkIconTheme *icthm=gtk_icon_theme_get_default(); if (json_object_object_get_ex(unit_obj, "driver", &unit_obj))
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); driver_use = json_object_get_string(unit_obj);
} }
else if (strstr(vendor,"NVIDIA")){ const char *driver_all="";
GtkIconTheme *icthm=gtk_icon_theme_get_default(); if (json_object_object_get_ex(item_obj, "configuration", &unit_obj)) {
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); if (json_object_object_get_ex(unit_obj, "driver", &unit_obj))
} driver_all = json_object_get_string(unit_obj);
else if (strstr(vendor,"AMD")||strstr(vendor,"Advanced Micro Devices")){ }
GtkIconTheme *icthm=gtk_icon_theme_get_default(); char *final_text = yon_char_unite("<span size=\"12pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc),
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); "\n<span weight='bold' color='#1a5fb4'>",VENDOR_LABEL,":</span> ",vendor,
} "\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product,
else if (strstr(vendor,"VMware")){ "\n<span weight='bold' color='#1a5fb4'>",USED_KERNEL_DRIVER_LABEL,":</span> ",driver_use,
GtkIconTheme *icthm=gtk_icon_theme_get_default(); "\n<span weight='bold' color='#1a5fb4'>",AVALIABLE_KERNEL_DRIVERS_LABEL,":</span> ",driver_all,"</span>",NULL);
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.vmware-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(widgets->builder,"InformationLabel")),final_text);
} if (strstr(vendor,"Intel")){
else { GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_widget_destroy(widgets->InformationCompanyLogoImage); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
} }
if (size>5){ else if (strstr(vendor,"NVIDIA")){
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay2),widgets->InformationCompanyLogoImage2); GtkIconTheme *icthm=gtk_icon_theme_get_default();
rtn=yon_char_parsed_rip(rtn,&size,0); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
rtn=yon_char_parsed_rip(rtn,&size,0); }
rtn=yon_char_parsed_rip(rtn,&size,0); else if (strstr(vendor,"AMD")||strstr(vendor,"Advanced Micro Devices")){
char *desc = yon_config_get_parameter(rtn,size,"description"); GtkIconTheme *icthm=gtk_icon_theme_get_default();
yon_char_divide_search(desc,"=",-1); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
char *product = yon_config_get_parameter(rtn,size,"product"); }
yon_char_divide_search(product,"=",-1); else if (strstr(vendor,"VMware")){
char *vendor = yon_config_get_parameter(rtn,size,"vendor"); GtkIconTheme *icthm=gtk_icon_theme_get_default();
yon_char_divide_search(vendor,"=",-1); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.vmware-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
char *driver_use = yon_config_get_parameter(rtn,size,"Kernel-driver-in-use"); }
yon_char_divide_search(driver_use,"=",-1); else {
char *driver_all = yon_config_get_parameter(rtn,size,"Kernel-modules"); gtk_widget_destroy(widgets->InformationCompanyLogoImage);
yon_char_divide_search(driver_all,"=",-1); }
}
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay2),widgets->InformationCompanyLogoImage2);
struct json_object *item_obj = json_object_array_get_idx(jsobject, 1);
if (item_obj){
struct json_object *unit_obj;
const char *desc="";
if (json_object_object_get_ex(item_obj, "description", &unit_obj)) {
desc = json_object_get_string(unit_obj);
}
const char *product ="";
if (json_object_object_get_ex(item_obj, "product", &unit_obj)) {
product = json_object_get_string(unit_obj);
}
const char *vendor="";
if (json_object_object_get_ex(item_obj, "vendor", &unit_obj)) {
vendor = json_object_get_string(unit_obj);
}
const char *driver_use="";
if (json_object_object_get_ex(item_obj, "capabilities", &unit_obj)) {
if (json_object_object_get_ex(unit_obj, "driver", &unit_obj))
driver_use = json_object_get_string(unit_obj);
}
const char *driver_all="";
if (json_object_object_get_ex(item_obj, "capabilities", &unit_obj)) {
if (json_object_object_get_ex(unit_obj, "driver", &unit_obj))
driver_all = json_object_get_string(unit_obj);
}
char *final_text = yon_char_unite("<span size=\"12pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc), char *final_text = yon_char_unite("<span size=\"12pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc),
"\n<span weight='bold' color='#1a5fb4'>",VENDOR_LABEL,":</span> ",vendor, "\n<span weight='bold' color='#1a5fb4'>",VENDOR_LABEL,":</span> ",vendor,
"\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product, "\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product,

@ -16,6 +16,7 @@
#include <getopt.h> #include <getopt.h>
#include <libintl.h> #include <libintl.h>
#include <time.h> #include <time.h>
#include <json-c/json.h>
#include "ubl-utils.h" #include "ubl-utils.h"
#include "ubl-strings.h" #include "ubl-strings.h"
#ifndef UBL_SETINGS_VIDEO_H #ifndef UBL_SETINGS_VIDEO_H
@ -82,6 +83,7 @@
// #define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'" // #define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'"
#define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'" #define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'"
#define get_adapter_info_json "lshw -c display -quiet -json"
#define XORG_MONITOR(port) yon_char_append(" XORG_MONITOR[",yon_char_append(port,"] ")) #define XORG_MONITOR(port) yon_char_append(" XORG_MONITOR[",yon_char_append(port,"] "))

@ -704,6 +704,21 @@ char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete){
} else return NULL; } else return NULL;
} }
char *yon_char_parsed_to_string(config_str parsed, int size, char *divider_replace){
if (parsed && size>0){
char *final_string = "";
char *temp;
for (int i=0;i<size;i++){
temp = yon_char_unite(final_string,yon_char_is_empty(final_string)?"":divider_replace,parsed[i],NULL);
if (!yon_char_is_empty(final_string)) free(final_string);
final_string=temp;
}
if (!yon_char_is_empty(final_string)){
return final_string;
} else return NULL;
} else if (size==0&&!parsed) return "";
}
/**yon_char_parsed_check_exist(char **parameters, int size, char *param) /**yon_char_parsed_check_exist(char **parameters, int size, char *param)
* [EN] * [EN]
* Checks if [parameters] string array of length [size] * Checks if [parameters] string array of length [size]

@ -150,6 +150,8 @@ void *yon_dictionary_free_all(dictionary *dictionary,void (data_manipulation)(vo
// char functions // char functions
#define yon_char_is_empty(string) !(string&&strcmp(string,""))
int yon_char_find_last(char *source, char find); int yon_char_find_last(char *source, char find);
char *yon_char_append(char *source, char *append); char *yon_char_append(char *source, char *append);
@ -173,6 +175,8 @@ char **yon_char_parse(char *parameters, int *size, char *divider);
char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete); char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete);
char *yon_char_parsed_to_string(config_str parsed, int size, char *divider_replace);
int yon_char_parsed_check_exist(char **parameters, int size, char *param); int yon_char_parsed_check_exist(char **parameters, int size, char *param);
void yon_char_parsed_free(config_str source, int size); void yon_char_parsed_free(config_str source, int size);

Loading…
Cancel
Save