mirror of
https://github.com/ISpillMyDrink/OpenSuperClone.git
synced 2026-05-04 05:50:51 +00:00
Merge branch 'main' into feat/asclepius
This commit is contained in:
Vendored
+54
@@ -0,0 +1,54 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug OpenSuperClone",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/Debug/bin/opensuperclone",
|
||||
"MIMode": "gdb",
|
||||
"miDebuggerPath": "/usr/bin/gdb",
|
||||
"miDebuggerServerAddress": "localhost:2345",
|
||||
"cwd": "${workspaceFolder}/Debug/bin",
|
||||
"useExtendedRemote": true,
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Use local filesystem instead of transferring from remote target",
|
||||
"text": "set sysroot /",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Debug OSCViewer",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/Debug/bin/oscviewer",
|
||||
"MIMode": "gdb",
|
||||
"miDebuggerPath": "/usr/bin/gdb",
|
||||
"miDebuggerServerAddress": "localhost:2345",
|
||||
"cwd": "${workspaceFolder}/Debug/bin",
|
||||
"useExtendedRemote": true,
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Use local filesystem instead of transferring from remote target",
|
||||
"text": "set sysroot /",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+16
@@ -25,6 +25,22 @@
|
||||
"clear": true
|
||||
}
|
||||
},
|
||||
{
|
||||
// Run OpenSuperClone with GDBServer (as root)
|
||||
"label": "🐞 Run OpenSuperClone with GDBServer",
|
||||
"type": "shell",
|
||||
"linux": {
|
||||
"command": "[ -f ./Debug/bin/opensuperclone ] || ./build.sh debug && sudo gdbserver localhost:2345 ${workspaceFolder}/Debug/bin/opensuperclone"
|
||||
}
|
||||
},
|
||||
{
|
||||
// Run OSCViewer with GDBServer
|
||||
"label": "🐞 Run OSCViewer with GDBServer",
|
||||
"type": "shell",
|
||||
"linux": {
|
||||
"command": "[ -f ./Debug/bin/oscviewer ] || ./build.sh debug && gdbserver localhost:2345 ${workspaceFolder}/Debug/bin/opensuperclone"
|
||||
}
|
||||
},
|
||||
{
|
||||
// Build Release.
|
||||
"label": "🔧 Build Release",
|
||||
|
||||
@@ -60,7 +60,8 @@ Note that the Wiki is currently a work-in-progress and incomplete.
|
||||
#### OpenSuperClone 2.5.1 (Work-In-Progress)
|
||||
|
||||
* OSCDriver 2.6.8: add support up to kernel 6.18.0 (thanks to <a href="https://github.com/ISpillMyDrink/OpenSuperClone/pull/30">piernov</a>)
|
||||
* Add ability to save and load recovery settings
|
||||
* Add ability to save and load recovery settings, and change default settings for program start
|
||||
* OSCViewer: performance improvements and improved UI
|
||||
|
||||
#### OpenSuperClone 2.5
|
||||
|
||||
|
||||
@@ -486,6 +486,9 @@ char *default_asclepius_config_filename = "asclepius.cfg";
|
||||
int default_window_width = 1350;
|
||||
int default_window_height = 670;
|
||||
|
||||
int default_window_width = 1150;
|
||||
int default_window_height = 690;
|
||||
|
||||
void select_file_ccc(void);
|
||||
|
||||
void select_ddrescue_file_ccc(void);
|
||||
|
||||
@@ -46,6 +46,9 @@ target_link_directories(oscviewer PRIVATE ${LIBCONFIG_LIBRARY_DIRS})
|
||||
target_compile_options(oscviewer PRIVATE ${LIBCONFIG_CFLAGS_OTHER})
|
||||
target_link_libraries(oscviewer ${LIBCONFIG_LIBRARIES})
|
||||
|
||||
# Add libm dependency
|
||||
target_link_libraries(oscviewer m)
|
||||
|
||||
target_compile_options(oscviewer PRIVATE ${CC_OPTIONS})
|
||||
|
||||
# Install executable
|
||||
|
||||
+920
-253
File diff suppressed because it is too large
Load Diff
@@ -89,6 +89,13 @@
|
||||
<object class="GtkMenu">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="jumpcurrentmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Jump to Current</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="leftresolutionmi">
|
||||
<property name="visible">True</property>
|
||||
@@ -555,6 +562,13 @@
|
||||
<property name="label" translatable="yes">Show Domain</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckMenuItem" id="followcurrentcheck">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Follow Current on Auto-Update</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -1292,6 +1306,287 @@
|
||||
<property name="position">13</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">14</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="settings_view_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">5</property>
|
||||
<property name="label" translatable="yes">View Settings</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">15</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Main Grid Size</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="settings_main_grid_size_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">16</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Auto-Update</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="settings_auto_update_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">17</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Show High-Time</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="settings_show_timing_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">18</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Highlight Good Data</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="settings_show_good_data_check">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">19</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Show Bad Head</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="settings_show_bad_head_check">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">20</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Show Domain</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="settings_show_domain_check">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">21</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Follow Current on Auto-Update</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="settings_follow_current_check">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">22</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
||||
@@ -103,6 +103,23 @@ GtkWidget *left_drawing_area;
|
||||
GtkWidget *main_scrolled_window;
|
||||
GtkWidget *main_drawing_vbox;
|
||||
|
||||
// cached render surfaces
|
||||
cairo_surface_t *top_render_cache;
|
||||
cairo_surface_t *main_render_cache;
|
||||
cairo_surface_t *left_render_cache;
|
||||
gboolean top_render_cache_dirty;
|
||||
gboolean main_render_cache_dirty;
|
||||
gboolean left_render_cache_dirty;
|
||||
gint top_render_cache_width;
|
||||
gint top_render_cache_height;
|
||||
gint main_render_cache_width;
|
||||
gint main_render_cache_height;
|
||||
gdouble main_render_cache_scroll_position;
|
||||
gint main_render_cache_clip_x;
|
||||
gint main_render_cache_clip_y;
|
||||
gint left_render_cache_width;
|
||||
gint left_render_cache_height;
|
||||
|
||||
// main window widgets
|
||||
GtkWidget *progress_log_label;
|
||||
GtkWidget *domain_log_label;
|
||||
@@ -134,6 +151,14 @@ GtkWidget *time_color_label;
|
||||
GtkWidget *domain_color_label;
|
||||
GtkWidget *block_color_label;
|
||||
GtkWidget *marker_color_label;
|
||||
GtkWidget *settings_view_label;
|
||||
GtkWidget *settings_main_grid_size_combo;
|
||||
GtkWidget *settings_auto_update_combo;
|
||||
GtkWidget *settings_show_good_data_check;
|
||||
GtkWidget *settings_show_bad_head_check;
|
||||
GtkWidget *settings_show_domain_check;
|
||||
GtkWidget *settings_show_timing_combo;
|
||||
GtkWidget *settings_follow_current_check;
|
||||
|
||||
// file menu
|
||||
GtkWidget *filemenu;
|
||||
@@ -179,6 +204,7 @@ GtkWidget *mainsizebutton2m;
|
||||
GtkWidget *mainsizebutton4m;
|
||||
GtkWidget *mainsizebutton8m;
|
||||
GtkWidget *mainsizebutton16m;
|
||||
GtkWidget *jumpcurrentmi;
|
||||
GtkWidget *autoupdatemi;
|
||||
GtkWidget *autoupdatemenu;
|
||||
GtkWidget *autoupdatebuttonoff;
|
||||
@@ -190,6 +216,7 @@ GtkWidget *autoupdatebutton2m;
|
||||
GtkWidget *autoupdatebutton5m;
|
||||
GtkWidget *showbadcheck;
|
||||
GtkWidget *showdomaincheck;
|
||||
GtkWidget *followcurrentcheck;
|
||||
GtkWidget *optionsw;
|
||||
GSList *leftresgroup = NULL;
|
||||
GSList *mainresgroup = NULL;
|
||||
@@ -276,12 +303,15 @@ int selected_color = WHITE;
|
||||
int time_color = MAGENTA;
|
||||
int domain_color = MYBLUE;
|
||||
int main_grid_size = MAINGRIDSIZE;
|
||||
int auto_update_interval = 0;
|
||||
gint timeout_tag = 0;
|
||||
int autotimer_on = 0;
|
||||
int show_bad_head = 0;
|
||||
int show_good_data = 0;
|
||||
int show_timing = 0;
|
||||
int show_domain = 0;
|
||||
int follow_current_on_update = 0;
|
||||
gboolean updating_preferences = FALSE;
|
||||
int mouse_x = 0;
|
||||
int mouse_y = 0;
|
||||
int mouse_x_old = 0;
|
||||
@@ -301,6 +331,10 @@ static gboolean left_drawing_expose_event(GtkWidget *self, cairo_t *cr, gpointer
|
||||
|
||||
static gboolean top_drawing_expose_event(GtkWidget *self, cairo_t *cr, gpointer user_data);
|
||||
|
||||
static void invalidate_render_caches(gboolean top_dirty, gboolean main_dirty, gboolean left_dirty);
|
||||
|
||||
static void clear_render_cache(cairo_surface_t **surface, gint *width, gint *height);
|
||||
|
||||
void getsize_top_drawing_area(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_main_drawing_area(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
@@ -315,8 +349,24 @@ void change_main_resolution(GtkWidget *w, gpointer data);
|
||||
|
||||
void change_main_grid_size(GtkWidget *w, gpointer data);
|
||||
|
||||
void settings_main_grid_size_changed(GtkWidget *w, gpointer data);
|
||||
|
||||
void settings_auto_update_changed(GtkWidget *w, gpointer data);
|
||||
|
||||
void settings_show_timing_changed(GtkWidget *w, gpointer data);
|
||||
|
||||
void settings_toggle_show_good(GtkWidget *w, gpointer data);
|
||||
|
||||
void settings_toggle_show_bad(GtkWidget *w, gpointer data);
|
||||
|
||||
void settings_toggle_show_domain(GtkWidget *w, gpointer data);
|
||||
|
||||
void settings_toggle_follow_current(GtkWidget *w, gpointer data);
|
||||
|
||||
void change_left_resolution(GtkWidget *w, gpointer data);
|
||||
|
||||
void jump_to_current(GtkWidget *w, gpointer data);
|
||||
|
||||
int initialize_memory(void);
|
||||
|
||||
int increase_log_memory(int new_lines);
|
||||
@@ -361,6 +411,8 @@ void set_show_timing(GtkWidget *w, gpointer data);
|
||||
|
||||
void toggle_showdomain(GtkWidget *w, gpointer data);
|
||||
|
||||
void toggle_follow_current_menu(GtkWidget *w, gpointer data);
|
||||
|
||||
int check_log(void);
|
||||
|
||||
void select_file(void);
|
||||
|
||||
Reference in New Issue
Block a user