diff --git a/CMakeLists.txt b/CMakeLists.txt
index bba30ae..4fa1445 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,8 +22,8 @@ set(OSCVIEWER_LANG_PATH "/usr/local/share/doc/oscviewer/Language" CACHE STRING "
# Copyright year 2022
set(COPYRIGHT_YEAR 2022 CACHE STRING "Copyright Year")
-# Set the GTK version to 2.x
-set(GTKVER 2 CACHE STRING "GTK Version")
+# Set the GTK version to 3.x
+set(GTKVER 3 CACHE STRING "GTK Version")
# If Git is installed, save the current revision number
find_package(Git)
diff --git a/src/opensuperclone/clone_gui3.c b/src/opensuperclone/clone_gui3.c
index 6dc9b66..689db5d 100644
--- a/src/opensuperclone/clone_gui3.c
+++ b/src/opensuperclone/clone_gui3.c
@@ -185,6 +185,8 @@ int start_gtk_ccc(int argc, char **argv, char *title, char *version)
data_retrypasses_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "data_retrypasses"));
cleardomainmi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "cleardomainmi"));
helpmi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "helpmi"));
+ aboutmi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "aboutmi"));
+ timermi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "timermi"));
label_drivermode_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "label_drivermode"));
data_drivermode_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "data_drivermode"));
installdrivermi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "installdrivermi"));
@@ -205,6 +207,8 @@ int start_gtk_ccc(int argc, char **argv, char *title, char *version)
chooseprimaryrelaymi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "chooseprimaryrelaymi"));
disableusbmassmi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "disableusbmassmi"));
restoreusbmassmi_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "restoreusbmassmi"));
+ activate_primary_relay_button_main_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "activate_primary_relay_button_main"));
+ deactivate_primary_relay_button_main_ccc = GTK_WIDGET(gtk_builder_get_object(builder, "deactivate_primary_relay_button_main"));
// = GTK_WIDGET (gtk_builder_get_object (builder, ""));
// = GTK_WIDGET (gtk_builder_get_object (builder, ""));
// = GTK_WIDGET (gtk_builder_get_object (builder, ""));
@@ -266,6 +270,8 @@ int start_gtk_ccc(int argc, char **argv, char *title, char *version)
gtk_menu_item_set_label(GTK_MENU_ITEM(chooseprimaryrelaymi_ccc), curlang_ccc[LANGCHOOSEPRIMARYUSB]);
gtk_menu_item_set_label(GTK_MENU_ITEM(disableusbmassmi_ccc), curlang_ccc[LANGDISABLEUSBMASS]);
gtk_menu_item_set_label(GTK_MENU_ITEM(restoreusbmassmi_ccc), curlang_ccc[LANGRESTOREUSBMASS]);
+ gtk_button_set_label(GTK_BUTTON(activate_primary_relay_button_main_ccc), curlang_ccc[LANGACTIVATEMAIN]);
+ gtk_button_set_label(GTK_BUTTON(deactivate_primary_relay_button_main_ccc), curlang_ccc[LANGDEACTIVATEMAIN]);
// gtk_menu_item_set_label(GTK_MENU_ITEM(), curlang_ccc[]);
// gtk_menu_item_set_label(GTK_MENU_ITEM(), curlang_ccc[]);
// gtk_menu_item_set_label(GTK_MENU_ITEM(), curlang_ccc[]);
@@ -407,6 +413,8 @@ int start_gtk_ccc(int argc, char **argv, char *title, char *version)
gtk_widget_set_sensitive(GTK_WIDGET(disableusbmassmi_ccc), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(restoreusbmassmi_ccc), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(adddomainmi_ccc), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(activate_primary_relay_button_main_ccc), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(deactivate_primary_relay_button_main_ccc), FALSE);
}
set_mode_auto_passthrough_ccc();
@@ -2798,6 +2806,8 @@ void set_connected_ccc(void)
gtk_widget_set_sensitive(GTK_WIDGET(clone_mode_button_ccc), driver_only_ccc ? FALSE : TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(analyze_button_ccc), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(smart_button_ccc), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(activate_primary_relay_button_main_ccc), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(deactivate_primary_relay_button_main_ccc), FALSE);
if (superbyte_ccc[52] == 0xf0)
{
gtk_widget_set_sensitive(GTK_WIDGET(analyze_long_button_ccc), TRUE);
@@ -2827,6 +2837,8 @@ void set_disconnected_ccc(void)
{
gtk_widget_set_sensitive(GTK_WIDGET(primaryrelaymi_ccc), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(chooseprimaryrelaymi_ccc), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(activate_primary_relay_button_main_ccc), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(deactivate_primary_relay_button_main_ccc), TRUE);
}
gtk_widget_set_sensitive(GTK_WIDGET(soft_reset_button_ccc), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(hard_reset_button_ccc), FALSE);
@@ -5615,6 +5627,46 @@ void do_deactivate_primary_relay_ccc(void)
update_primary_relay_settings_ccc();
}
+void do_activate_primary_relay_main_ccc(void)
+{
+ if (!usbr1_chosen_ccc)
+ {
+ strcpy(tempmessage_ccc, curlang_ccc[LANGNORELAYCHOSEN]);
+ message_error_ccc(tempmessage_ccc);
+ print_gui_error_message_ccc(error_message_ccc, curlang_ccc[LANGERROR], 1);
+ clear_error_message_ccc();
+ return;
+ }
+ g_print("activate primary relay\n");
+ if (activate_primary_relay_ccc())
+ {
+ strcpy(tempmessage_ccc, curlang_ccc[LANGUSBRELAYERROR]);
+ message_error_ccc(tempmessage_ccc);
+ print_gui_error_message_ccc(error_message_ccc, curlang_ccc[LANGERROR], 1);
+ clear_error_message_ccc();
+ }
+}
+
+void do_deactivate_primary_relay_main_ccc(void)
+{
+ if (!usbr1_chosen_ccc)
+ {
+ strcpy(tempmessage_ccc, curlang_ccc[LANGNORELAYCHOSEN]);
+ message_error_ccc(tempmessage_ccc);
+ print_gui_error_message_ccc(error_message_ccc, curlang_ccc[LANGERROR], 1);
+ clear_error_message_ccc();
+ return;
+ }
+ g_print("deactivate primary relay\n");
+ if (deactivate_primary_relay_ccc())
+ {
+ strcpy(tempmessage_ccc, curlang_ccc[LANGUSBRELAYERROR]);
+ message_error_ccc(tempmessage_ccc);
+ print_gui_error_message_ccc(error_message_ccc, curlang_ccc[LANGERROR], 1);
+ clear_error_message_ccc();
+ }
+}
+
void map_heads_ccc(void)
{
if (!connected_ccc)
diff --git a/src/opensuperclone/clone_gui3.h b/src/opensuperclone/clone_gui3.h
index d59c3c8..f8758b6 100644
--- a/src/opensuperclone/clone_gui3.h
+++ b/src/opensuperclone/clone_gui3.h
@@ -355,6 +355,8 @@ GtkWidget *primary_relay_delay_time_spinbutton_ccc;
GtkWidget *test_primary_relay_button_ccc;
GtkWidget *activate_primary_relay_button_ccc;
GtkWidget *deactivate_primary_relay_button_ccc;
+GtkWidget *activate_primary_relay_button_main_ccc;
+GtkWidget *deactivate_primary_relay_button_main_ccc;
GtkWidget *label_project_ccc;
GtkWidget *data_project_ccc;
diff --git a/src/opensuperclone/opensuperclone3.glade b/src/opensuperclone/opensuperclone3.glade
index b844981..37a5b8f 100644
--- a/src/opensuperclone/opensuperclone3.glade
+++ b/src/opensuperclone/opensuperclone3.glade
@@ -747,6 +747,38 @@ analyze
+
+
+
+
+ False
+ True
+ end
+ 19
+
+
+
+
+
+ False
+ True
+ end
+ 20
+