]> sigrok.org Git - pulseview.git/blobdiff - main.cpp
Add libsigrokflow build system integration.
[pulseview.git] / main.cpp
index 8054e49be3315810bcd355d994c689f30471cd61..a4c7e72badfd6fb4fca88e3cf559d47c5a4586da 100644 (file)
--- a/main.cpp
+++ b/main.cpp
 #include <getopt.h>
 #include <vector>
 
+#ifdef ENABLE_GSTREAMERMM
+#include <gstreamermm.h>
+#include <libsigrokflow/libsigrokflow.hpp>
+#endif
+
 #include <libsigrokcxx/libsigrokcxx.hpp>
 
 #include <QCheckBox>
@@ -54,6 +59,7 @@
 #include "pv/logging.hpp"
 #include "pv/mainwindow.hpp"
 #include "pv/session.hpp"
+#include "pv/util.hpp"
 
 #ifdef ANDROID
 #include <libsigrokandroidutils/libsigrokandroidutils.h>
@@ -151,7 +157,7 @@ void usage()
                "  -V, --version                   Show release version\n"
                "  -l, --loglevel                  Set libsigrok/libsigrokdecode loglevel\n"
                "  -d, --driver                    Specify the device driver to use\n"
-               "  -D, --no-scan                   Don't auto-scan for devices, use -d spec only\n"
+               "  -D, --dont-scan                 Don't auto-scan for devices, use -d spec only\n"
                "  -i, --input-file                Load input from file\n"
                "  -I, --input-format              Input format\n"
                "  -c, --clean                     Don't restore previous sessions on startup\n"
@@ -168,6 +174,11 @@ int main(int argc, char *argv[])
        bool do_scan = true;
        bool show_version = false;
 
+#ifdef ENABLE_GSTREAMERMM
+       // Initialise gstreamermm. Must be called before any other GLib stuff.
+       Gst::init();
+#endif
+
        Application a(argc, argv);
 
 #ifdef ANDROID
@@ -183,7 +194,7 @@ int main(int argc, char *argv[])
                        {"version", no_argument, nullptr, 'V'},
                        {"loglevel", required_argument, nullptr, 'l'},
                        {"driver", required_argument, nullptr, 'd'},
-                       {"no-scan", no_argument, nullptr, 'D'},
+                       {"dont-scan", no_argument, nullptr, 'D'},
                        {"input-file", required_argument, nullptr, 'i'},
                        {"input-format", required_argument, nullptr, 'I'},
                        {"clean", no_argument, nullptr, 'c'},
@@ -254,9 +265,14 @@ int main(int argc, char *argv[])
        for (int i = 0; i < argc; i++)
                open_files.emplace_back(argv[i]);
 
+       qRegisterMetaType<pv::util::Timestamp>("util::Timestamp");
+       qRegisterMetaType<uint64_t>("uint64_t");
+
        // Prepare the global settings since logging needs them early on
        pv::GlobalSettings settings;
+       settings.save_internal_defaults();
        settings.set_defaults_where_needed();
+       settings.apply_theme();
 
        pv::logging.init();
 
@@ -314,7 +330,7 @@ int main(int argc, char *argv[])
                        if (open_files.empty())
                                w.add_default_session();
                        else
-                               for (string open_file : open_files)
+                               for (string& open_file : open_files)
                                        w.add_session_with_file(open_file, open_file_format);
 
 #ifdef ENABLE_SIGNALS