summaryrefslogtreecommitdiff
path: root/includes/hardinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/hardinfo.h')
-rw-r--r--includes/hardinfo.h96
1 files changed, 74 insertions, 22 deletions
diff --git a/includes/hardinfo.h b/includes/hardinfo.h
index 637aa1fd..872a29fc 100644
--- a/includes/hardinfo.h
+++ b/includes/hardinfo.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.br>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 2.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,14 +19,19 @@
#ifndef __HARDINFO_H__
#define __HARDINFO_H__
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <unistd.h>
#include <gtk/gtk.h>
#include "config.h"
#include "shell.h"
#include "vendor.h"
#include "gettext.h"
#include "info.h"
+#include "format_early.h"
-#define HARDINFO_COPYRIGHT_LATEST_YEAR 2017
+#define HARDINFO2_COPYRIGHT_LATEST_YEAR 2024
#ifndef LOCALEDIR
#define LOCALEDIR "/usr/share/locale"
@@ -36,6 +41,7 @@ typedef enum {
MODULE_FLAG_NONE = 0,
MODULE_FLAG_NO_REMOTE = 1<<0,
MODULE_FLAG_HAS_HELP = 1<<1,
+ MODULE_FLAG_HIDE = 1<<2,
} ModuleEntryFlags;
typedef struct _ModuleEntry ModuleEntry;
@@ -45,16 +51,29 @@ typedef struct _ProgramParameters ProgramParameters;
struct _ProgramParameters {
gboolean create_report;
+ gboolean force_all_details; /* for create_report, include any "moreinfo" that exists for any item */
gboolean show_version;
gboolean gui_running;
gboolean list_modules;
gboolean autoload_deps;
- gboolean run_xmlrpc_server;
+ gboolean skip_benchmarks;
+ gboolean quiet;
+
+ /*
+ * OK to use the common parts of HTML(4.0) and Pango Markup
+ * in the value part of a key/value.
+ * Including the (b,big,i,s,sub,sup,small,tt,u) tags.
+ * https://developer.gnome.org/pango/stable/PangoMarkupFormat.html
+ */
+ gboolean markup_ok;
+ int fmt_opts;
gint report_format;
+ gint max_bench_results;
gchar **use_modules;
gchar *run_benchmark;
+ gchar *bench_user_note;
gchar *result_format;
gchar *path_lib;
gchar *path_data;
@@ -84,11 +103,11 @@ struct _ModuleAbout {
};
/* String utility functions */
-inline void remove_quotes(gchar *str);
-inline char *strend(gchar *str, gchar chr);
-inline void remove_linefeed(gchar *str);
-gchar *strreplacechr(gchar *string, gchar *replace, gchar new_char);
-gchar *strreplace(gchar *string, gchar *replace, gchar *replacement);
+void remove_quotes(gchar *str);
+char *strend(gchar *str, gchar chr);
+void remove_linefeed(gchar *str);
+gchar *strreplacechr(gchar *string, gchar *replace, gchar new_char);
+gchar *strreplace(gchar *string, gchar *replace, gchar *replacement);
/* Widget utility functions */
void widget_set_cursor(GtkWidget *widget, GdkCursorType cursor_type);
@@ -102,25 +121,24 @@ gchar *file_chooser_build_filename(GtkWidget *chooser, gchar *extension);
gpointer file_types_get_data_by_name(FileTypes *file_types, gchar *name);
/* Misc utility functions */
-#if RELEASE == 1
-gpointer idle_free(gpointer ptr);
-#else
-gpointer __idle_free(gpointer ptr, gchar *f, gint l);
-#define idle_free(p) __idle_free(p, __FILE__, __LINE__)
-#endif /* RELEASE == 1 */
+#if !(RELEASE == 1)
+#define DEBUG_AUTO_FREE 2
+#endif
+#include "auto_free.h"
+#define idle_free(ptr) auto_free(ptr)
gchar *find_program(gchar *program_name);
-inline gchar *size_human_readable(gfloat size);
+gchar *size_human_readable(gfloat size);
void nonblock_sleep(guint msec);
-void open_url(gchar *url);
GSList *modules_get_list(void);
GSList *modules_load_selected(void);
GSList *modules_load_all(void);
void module_unload_all(void);
-ModuleAbout *module_get_about(ShellModule *module);
+const ModuleAbout *module_get_about(ShellModule *module);
gchar *seconds_to_string(unsigned int seconds);
-gchar *h_strdup_cprintf(const gchar *format, gchar *source, ...);
+gchar *h_strdup_cprintf(const gchar *format, gchar *source, ...)
+ __attribute__((format(gnu_printf, 1, 3)));
gchar *h_strconcat(gchar *string1, ...);
void h_hash_table_remove_all (GHashTable *hash_table);
@@ -146,9 +164,10 @@ gchar *module_call_method(gchar *method);
gchar *module_call_method_param(gchar * method, gchar * parameter);
/* Sysfs stuff */
-gfloat h_sysfs_read_float(gchar *endpoint, gchar *entry);
-gint h_sysfs_read_int(gchar *endpoint, gchar *entry);
-gchar *h_sysfs_read_string(gchar *endpoint, gchar *entry);
+gfloat h_sysfs_read_float(const gchar *endpoint, const gchar *entry);
+gint h_sysfs_read_int(const gchar *endpoint, const gchar *entry);
+gint h_sysfs_read_hex(const gchar *endpoint, const gchar *entry);
+gchar *h_sysfs_read_string(const gchar *endpoint, const gchar *entry);
#define SCAN_START() static gboolean scanned = FALSE; if (reload) scanned = FALSE; if (scanned) return;
#define SCAN_END() scanned = TRUE;
@@ -171,6 +190,11 @@ gchar *moreinfo_lookup(gchar *key);
gboolean g_strv_contains(const gchar * const * strv, const gchar *str);
#endif
+/* in gg_key_file_parse_string_as_value.c */
+gchar *
+gg_key_file_parse_string_as_value (const gchar *string, const gchar list_separator);
+
+gchar *hardinfo_clean_grpname(const gchar *v, int replacing);
/* Hardinfo labels that have # are truncated and/or hidden.
* Labels can't have $ because that is the delimiter in
* moreinfo.
@@ -179,4 +203,32 @@ gchar *hardinfo_clean_label(const gchar *v, int replacing);
/* hardinfo uses the values as {ht,x}ml, apparently */
gchar *hardinfo_clean_value(const gchar *v, int replacing);
+/* Same as hardinfo_spawn_command_line_sync(), but calls shell_status_pulse()
+ * before. */
+gboolean hardinfo_spawn_command_line_sync(const gchar *command_line,
+ gchar **standard_output,
+ gchar **standard_error,
+ gint *exit_status,
+ GError **error);
+
+/* a marker in text to point out problems, using markup where possible */
+const char *problem_marker();
+
+/* a version of g_strescape() that allows escaping extra characters.
+ * use with g_strcompress() as normal. */
+gchar *
+gg_strescape (const gchar *source,
+ const gchar *exceptions,
+ const gchar *extra);
+
+/* hinote helpers */
+#define note_max_len 512
+#define note_printf(note_buff, fmt, ...) \
+ snprintf((note_buff) + strlen(note_buff), note_max_len - strlen(note_buff) - 1, \
+ fmt, ##__VA_ARGS__)
+#define note_print(note_buff, str) note_printf((note_buff), "%s", str)
+gboolean note_cond_bullet(gboolean cond, gchar *note_buff, const gchar *desc_str);
+gboolean note_require_tool(const gchar *tool, gchar *note_buff, const gchar *desc_str);
+int cpu_procs_cores_threads(int *p, int *c, int *t);
+
#endif /* __HARDINFO_H__ */