]> sigrok.org Git - libsigrokflow.git/blobdiff - src/legacy_output.cpp
Add some missing #includes.
[libsigrokflow.git] / src / legacy_output.cpp
index 95e932025f1764c8b0145df291119638789cd35f..de8e5be53c41861114dc2faa79b758f93f490958 100644 (file)
  */
 
 #include <config.h>
+#include <libsigrokflow/legacy_output.hpp>
+#include <glib.h>
 #include <iostream>
-#include <libsigrokflow/libsigrokflow.hpp>
+#include <map>
+#include <memory>
+#include <stdexcept>
+#include <string>
+#include <gstreamermm/private/basesink_p.h>
 
 namespace Srf
 {
@@ -58,7 +64,6 @@ LegacyOutput::LegacyOutput(GstBaseSink *gobj) :
 
 Glib::RefPtr<LegacyOutput>LegacyOutput::create(
        shared_ptr<sigrok::OutputFormat> libsigrok_output_format,
-       shared_ptr<sigrok::Device> libsigrok_device,
        map<string, Glib::VariantBase> options)
 {
        auto element = Gst::ElementFactory::create_element("sigrok_legacy_output");
@@ -66,7 +71,13 @@ Glib::RefPtr<LegacyOutput>LegacyOutput::create(
                throw runtime_error("Failed to create element - plugin not registered?");
        auto output = Glib::RefPtr<LegacyOutput>::cast_static(element);
        output->libsigrok_output_format_ = libsigrok_output_format;
-       output->libsigrok_device_ = libsigrok_device;
+       auto context = libsigrok_output_format->parent();
+       output->libsigrok_device_ = context->create_user_device("Vendor", "Model", "Version");
+       for (int i = 0; i < 8; ++i) {
+               gchar *name = g_strdup_printf("D%d", i);
+               output->libsigrok_device_->add_channel(i, sigrok::ChannelType::LOGIC, name);
+               g_free(name);
+       }
        output->options_ = options;
 
        return output;