-OutputFormat::OutputFormat(struct sr_output_format *structure) :
- StructureWrapper<Context, struct sr_output_format>(structure)
+shared_ptr<Device> InputDevice::get_shared_from_this()
+{
+ return static_pointer_cast<Device>(
+ static_pointer_cast<InputDevice>(shared_from_this()));
+}
+
+Option::Option(const struct sr_option *structure,
+ shared_ptr<const struct sr_option *> structure_array) :
+ structure(structure),
+ structure_array(structure_array)
+{
+}
+
+Option::~Option()
+{
+}
+
+string Option::get_id()
+{
+ return valid_string(structure->id);
+}
+
+string Option::get_name()
+{
+ return valid_string(structure->name);
+}
+
+string Option::get_description()
+{
+ return valid_string(structure->desc);
+}
+
+Glib::VariantBase Option::get_default_value()
+{
+ return Glib::VariantBase(structure->def, true);
+}
+
+vector<Glib::VariantBase> Option::get_values()
+{
+ vector<Glib::VariantBase> result;
+ for (auto l = structure->values; l; l = l->next)
+ result.push_back(Glib::VariantBase((GVariant *) l->data, true));
+ return result;
+}
+
+OutputFormat::OutputFormat(const struct sr_output_module *structure) :
+ StructureWrapper<Context, const struct sr_output_module>(structure)