]> sigrok.org Git - pulseview.git/blobdiff - pv/dialogs/about.cpp
about: Show the list of supported output formats.
[pulseview.git] / pv / dialogs / about.cpp
index 806dc4c5c057c6ee2bafa76e1700039230b18367..28ba92f2cb48d3fdabb02fd85169b605ed6c2752 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#ifdef ENABLE_DECODE
 #include <libsigrokdecode/libsigrokdecode.h>
+#endif
 
 #include <QTextDocument>
 
-#include "about.h"
+#include "about.hpp"
 #include <ui_about.h>
 
-/* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */
-#define __STDC_FORMAT_MACROS
-#include <glib.h>
-#include <libsigrok/libsigrok.h>
+#include <libsigrokcxx/libsigrokcxx.hpp>
 
+using std::shared_ptr;
+using sigrok::Context;
 
 namespace pv {
 namespace dialogs {
 
-About::About(QWidget *parent) :
+About::About(shared_ptr<Context> context, QWidget *parent) :
        QDialog(parent),
        ui(new Ui::About)
 {
-       struct sr_dev_driver **drivers;
-       struct sr_input_format **inputs;
-       struct sr_output_format **outputs;
-
+#ifdef ENABLE_DECODE
        struct srd_decoder *dec;
+#endif
 
        QString s;
 
@@ -62,42 +61,41 @@ About::About(QWidget *parent) :
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported hardware drivers:") +
                "</b></td></tr>");
-       drivers = sr_driver_list();
-       for (int i = 0; drivers[i]; ++i) {
+       for (auto entry : context->drivers()) {
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                        .arg(QString(drivers[i]->name))
-                        .arg(QString(drivers[i]->longname)));
+                        .arg(QString::fromUtf8(entry.first.c_str()))
+                        .arg(QString::fromUtf8(entry.second->long_name().c_str())));
        }
 
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported input formats:") +
                "</b></td></tr>");
-       inputs = sr_input_list();
-       for (int i = 0; inputs[i]; ++i) {
+       for (auto entry : context->input_formats()) {
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                        .arg(QString(inputs[i]->id))
-                        .arg(QString(inputs[i]->description)));
+                        .arg(QString::fromUtf8(entry.first.c_str()))
+                        .arg(QString::fromUtf8(entry.second->description().c_str())));
        }
 
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported output formats:") +
                "</b></td></tr>");
-       outputs = sr_output_list();
-       for (int i = 0; outputs[i]; ++i) {
+       for (auto entry : context->output_formats()) {
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                       .arg(QString(outputs[i]->id))
-                       .arg(QString(outputs[i]->description)));
+                        .arg(QString::fromUtf8(entry.first.c_str()))
+                        .arg(QString::fromUtf8(entry.second->description().c_str())));
        }
 
+#ifdef ENABLE_DECODE
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported protocol decoders:") +
                "</b></td></tr>");
        for (const GSList *l = srd_decoder_list(); l; l = l->next) {
                dec = (struct srd_decoder *)l->data;
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                        .arg(QString(dec->id))
-                        .arg(QString(dec->longname)));
+                        .arg(QString::fromUtf8(dec->id))
+                        .arg(QString::fromUtf8(dec->longname)));
        }
+#endif
 
        s.append("</table>");