renamed alarm_limit to alarm_high_thresold
[psensor.git] / src / main.c
index 92c7e53..0698dd3 100644 (file)
@@ -102,6 +102,8 @@ static void print_help()
        puts(_("  --use-libatasmart   "
               "use atasmart library for disk monitoring "
               "instead of hddtemp daemon"));
+       puts(_("  -n, --new-instance  "
+              "force the creation of a new Psensor application"));
        puts("");
 
        puts(_("  -d, --debug=LEVEL   "
@@ -290,12 +292,12 @@ associate_cb_alarm_raised(struct psensor **sensors, struct ui_psensor *ui)
                s->cb_alarm_raised_data = ui;
 
                if (is_temp_type(s->type)) {
-                       s->alarm_limit
-                           = config_get_sensor_alarm_limit(s->id, 60);
+                       s->alarm_high_thresold
+                           = config_get_sensor_alarm_high_thresold(s->id);
                        s->alarm_enabled
                            = config_get_sensor_alarm_enabled(s->id);
                } else {
-                       s->alarm_limit = 0;
+                       s->alarm_high_thresold = 0;
                        s->alarm_enabled = 0;
                }
 
@@ -351,6 +353,7 @@ static struct option long_options[] = {
        {"help", no_argument, 0, 'h'},
        {"url", required_argument, 0, 'u'},
        {"debug", required_argument, 0, 'd'},
+       {"new-instance", no_argument, 0, 'n'},
        {0, 0, 0, 0}
 };
 
@@ -389,8 +392,8 @@ static void log_glib_info()
                  glib_micro_version);
 }
 
-static void activate(GApplication *application,
-                    gpointer data)
+static void cb_activate(GApplication *application,
+                       gpointer data)
 {
        ui_window_show((struct ui_psensor *)data);
 }
@@ -478,7 +481,7 @@ int main(int argc, char **argv)
        struct ui_psensor ui;
        GError *error;
        GThread *thread;
-       int optc, cmdok, opti, use_libatasmart;
+       int optc, cmdok, opti, use_libatasmart, new_instance;
        char *url = NULL;
        GApplication *app;
 
@@ -491,10 +494,10 @@ int main(int argc, char **argv)
        textdomain(PACKAGE);
 #endif
 
-       use_libatasmart = 0;
+       use_libatasmart = new_instance = 0;
 
        cmdok = 1;
-       while ((optc = getopt_long(argc, argv, "vhd:u:", long_options,
+       while ((optc = getopt_long(argc, argv, "vhd:u:n", long_options,
                                   &opti)) != -1) {
                switch (optc) {
                case 0:
@@ -515,6 +518,9 @@ int main(int argc, char **argv)
                        log_level = atoi(optarg);
                        log_printf(LOG_INFO, _("Enables debug mode."));
                        break;
+               case 'n':
+                       new_instance = 1;
+                       break;
                default:
                        cmdok = 0;
                        break;
@@ -530,15 +536,16 @@ int main(int argc, char **argv)
        log_init();
 
        app = g_application_new("wpitchoune.psensor", 0);
+
        g_application_register(app, NULL, NULL);
 
-       if (g_application_get_is_remote(app)) {
+       if (!new_instance && g_application_get_is_remote(app)) {
                g_application_activate(app);
-               log_debug(_("Psensor instance already exists"));
+               log_warn(_("Psensor instance already exists"));
                exit(EXIT_SUCCESS);
        }
 
-       g_signal_connect(app, "activate", G_CALLBACK(activate), &ui);
+       g_signal_connect(app, "activate", G_CALLBACK(cb_activate), &ui);
 
        log_glib_info();
 #if !(GLIB_CHECK_VERSION(2, 31, 0))
@@ -607,6 +614,7 @@ int main(int argc, char **argv)
        /* main loop */
        gtk_main();
 
+       g_object_ref(app);
        cleanup(&ui);
        log_debug("Quitting...");