- /* Create from libsigrok device object */
- static Glib::RefPtr<LegacyCaptureDevice> create(
- shared_ptr<sigrok::HardwareDevice> libsigrok_device);
+ /* Create from libsigrok device object. */
+ static Glib::RefPtr<LegacyCaptureDevice> create(
+ shared_ptr<sigrok::HardwareDevice> libsigrok_device);
+
+ /* Retrieve libsigrok device object. */
+ shared_ptr<sigrok::HardwareDevice> libsigrok_device();
- shared_ptr<sigrok::HardwareDevice> _libsigrok_device;
- Glib::RefPtr<Gst::Pad> _src_pad;
- Glib::Threads::RecMutex _mutex;
- Glib::RefPtr<Gst::Task> _task;
- shared_ptr<sigrok::Session> _session;
-
- void _datafeed_callback(shared_ptr<sigrok::Device> device,
- shared_ptr<sigrok::Packet> packet);
- void _run();
+ shared_ptr<sigrok::HardwareDevice> _libsigrok_device;
+ Glib::RefPtr<Gst::Pad> _src_pad;
+ Glib::Threads::RecMutex _mutex;
+ Glib::RefPtr<Gst::Task> _task;
+ shared_ptr<sigrok::Session> _session;
+
+ void _datafeed_callback(shared_ptr<sigrok::Device> device,
+ shared_ptr<sigrok::Packet> packet);
+ void _run();
- /* Create from libsigrok input */
- static Glib::RefPtr<LegacyInput> create(
- shared_ptr<sigrok::InputFormat> format,
- map<string, Glib::VariantBase> options = map<string, Glib::VariantBase>());
+ /* Create from libsigrok input. */
+ static Glib::RefPtr<LegacyInput> create(
+ shared_ptr<sigrok::InputFormat> format,
+ map<string, Glib::VariantBase> options = map<string, Glib::VariantBase>());
+
+ /* Override start. */
+ bool start_vfunc();
- shared_ptr<sigrok::InputFormat> _libsigrok_input_format;
- shared_ptr<sigrok::Input> _libsigrok_input;
- shared_ptr<sigrok::Session> _session;
- map<string, Glib::VariantBase> _options;
- Glib::RefPtr<Gst::Pad> _sink_pad;
- Glib::RefPtr<Gst::Pad> _src_pad;
-
- void _datafeed_callback(shared_ptr<sigrok::Device> device,
- shared_ptr<sigrok::Packet> packet);
+ shared_ptr<sigrok::InputFormat> _libsigrok_input_format;
+ shared_ptr<sigrok::Input> _libsigrok_input;
+ shared_ptr<sigrok::Session> _session;
+ map<string, Glib::VariantBase> _options;
+ Glib::RefPtr<Gst::Pad> _sink_pad;
+ Glib::RefPtr<Gst::Pad> _src_pad;
+
+ void _datafeed_callback(shared_ptr<sigrok::Device> device,
+ shared_ptr<sigrok::Packet> packet);
- /* Create from libsigrok output object */
- static Glib::RefPtr<LegacyOutput> create(
- shared_ptr<sigrok::OutputFormat> libsigrok_output_format,
- shared_ptr<sigrok::Device> libsigrok_device,
- map<string, Glib::VariantBase> options = map<string, Glib::VariantBase>());
+ /* Create from libsigrok output object. */
+ static Glib::RefPtr<LegacyOutput> create(
+ shared_ptr<sigrok::OutputFormat> libsigrok_output_format,
+ shared_ptr<sigrok::Device> libsigrok_device,
+ map<string, Glib::VariantBase> options = map<string, Glib::VariantBase>());
- /* Register class with plugin */
- static bool register_element(Glib::RefPtr<Gst::Plugin> plugin);
+ /* Register class with plugin. */
+ static bool register_element(Glib::RefPtr<Gst::Plugin> plugin);
+
+ /* Constructor used by element factory. */
+ explicit LegacyOutput(GstBaseSink *gobj);
- shared_ptr<sigrok::OutputFormat> _libsigrok_output_format;
- shared_ptr<sigrok::Device> _libsigrok_device;
- shared_ptr<sigrok::Output> _libsigrok_output;
- map<string, Glib::VariantBase> _options;
+ shared_ptr<sigrok::OutputFormat> _libsigrok_output_format;
+ shared_ptr<sigrok::Device> _libsigrok_device;
+ shared_ptr<sigrok::Output> _libsigrok_output;
+ map<string, Glib::VariantBase> _options;
- static Glib::RefPtr<LegacyDecoder> create(
- struct srd_session *libsigrokdecode_session, uint64_t unitsize);
+ static Glib::RefPtr<LegacyDecoder> create(
+ struct srd_session *libsigrokdecode_session, uint64_t unitsize);
+
+ /* Retrieve libsigrokdecode session. */
+ struct srd_session *libsigrokdecode_session();