+class LegacyOutput :
+ public Sink
+{
+public:
+ /* Create from libsigrok output object */
+ static Glib::RefPtr<LegacyOutput> create(
+ shared_ptr<sigrok::Output> libsigrok_output);
+
+ /* Retrieve libsigrok output object */
+ shared_ptr<sigrok::Output> libsigrok_output();
+
+ /* Override render */
+ Gst::FlowReturn render_vfunc(const Glib::RefPtr<Gst::Buffer> &buffer);
+
+ /* Override stop */
+ bool stop_vfunc();
+
+ /* Gst class init */
+ static void class_init(Gst::ElementClass<LegacyOutput> *klass);
+
+ /* Register class with plugin */
+ static bool register_element(Glib::RefPtr<Gst::Plugin> plugin);
+
+ /* Constructor used by element factory */
+ explicit LegacyOutput(GstBaseSink *gobj);
+private:
+ shared_ptr<sigrok::Output> _libsigrok_output;
+ Glib::RefPtr<Gst::Pad> _sink_pad;
+};
+