X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fmain.cpp;h=cd9c1347f761476e06961682f484c9f691fc2a9c;hb=726122c2de29c2e31d535368bcf649e64d0d2e81;hp=10baaeced4e2db7f7e82cb25986f7f9d8e0bab3c;hpb=9ffbb03c74179c779c8ce3dab90672cc0b65b907;p=libsigrokflow.git diff --git a/src/main.cpp b/src/main.cpp index 10baaec..cd9c134 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -185,26 +185,32 @@ LegacyOutput::LegacyOutput(GstBaseSink *gobj) : } Glib::RefPtrLegacyOutput::create( - shared_ptr libsigrok_output) + shared_ptr libsigrok_output_format, + shared_ptr libsigrok_device, + map options) { auto element = Gst::ElementFactory::create_element("sigrok_legacy_output"); if (!element) throw runtime_error("Failed to create element - plugin not registered?"); auto output = Glib::RefPtr::cast_static(element); - output->_libsigrok_output = libsigrok_output; + output->_libsigrok_output_format = libsigrok_output_format; + output->_libsigrok_device = libsigrok_device; + output->_options = options; return output; } -shared_ptr LegacyOutput::libsigrok_output() +bool LegacyOutput::start_vfunc() { - return _libsigrok_output; + _libsigrok_output = _libsigrok_output_format->create_output( + _libsigrok_device, _options); + return true; } Gst::FlowReturn LegacyOutput::render_vfunc(const Glib::RefPtr &buffer) { Gst::MapInfo info; buffer->map(info, Gst::MAP_READ); - auto context = _libsigrok_output->format()->parent(); + auto context = _libsigrok_output_format->parent(); auto packet = context->create_logic_packet( info.get_data(), info.get_size(), 2); auto result = _libsigrok_output->receive(packet); @@ -215,7 +221,7 @@ Gst::FlowReturn LegacyOutput::render_vfunc(const Glib::RefPtr &buff bool LegacyOutput::stop_vfunc() { - auto context = _libsigrok_output->format()->parent(); + auto context = _libsigrok_output_format->parent(); auto end_packet = context->create_end_packet(); auto result = _libsigrok_output->receive(end_packet); cout << result;