X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fcxx%2Fclasses.cpp;h=55eba8e486340e274c5b96216cb025d248e4ea24;hb=ba4eac48d4c7277d8b7cbe4036fb64610b8e6c61;hp=403499de31697e6a49db9fe17e8e00b4a2fc6adb;hpb=b31581f8a8fab97004603ba61c16c3758c14c777;p=libsigrok.git
diff --git a/bindings/cxx/classes.cpp b/bindings/cxx/classes.cpp
index 403499de..55eba8e4 100644
--- a/bindings/cxx/classes.cpp
+++ b/bindings/cxx/classes.cpp
@@ -248,7 +248,7 @@ shared_ptr Context::open_stream(string header)
}
Driver::Driver(struct sr_dev_driver *structure) :
- StructureWrapper(structure),
+ StructureWrapper(structure),
initialized(false)
{
}
@@ -475,7 +475,7 @@ shared_ptr HardwareDevice::get_driver()
}
Channel::Channel(struct sr_channel *structure) :
- StructureWrapper(structure),
+ StructureWrapper(structure),
type(ChannelType::get(structure->type))
{
}
@@ -516,7 +516,7 @@ unsigned int Channel::get_index()
ChannelGroup::ChannelGroup(Device *device,
struct sr_channel_group *structure) :
- StructureWrapper(structure),
+ StructureWrapper(structure),
Configurable(device->structure->driver, device->structure, structure)
{
for (GSList *entry = structure->channels; entry; entry = entry->next)
@@ -579,7 +579,7 @@ shared_ptr Trigger::add_stage()
}
TriggerStage::TriggerStage(struct sr_trigger_stage *structure) :
- StructureWrapper(structure)
+ StructureWrapper(structure)
{
}
@@ -616,7 +616,7 @@ void TriggerStage::add_match(shared_ptr channel, const TriggerMatchType
}
TriggerMatch::TriggerMatch(struct sr_trigger_match *structure, shared_ptr channel) :
- StructureWrapper(structure), channel(channel)
+ StructureWrapper(structure), channel(channel)
{
}
@@ -973,6 +973,9 @@ Packet::Packet(shared_ptr device,
static_cast(
structure->payload));
break;
+ default:
+ payload = nullptr;
+ break;
}
}
@@ -989,7 +992,10 @@ const PacketType *Packet::get_type()
shared_ptr Packet::get_payload()
{
- return payload->get_shared_pointer(this);
+ if (payload)
+ return payload->get_shared_pointer(this);
+ else
+ throw Error(SR_ERR_NA);
}
PacketPayload::PacketPayload()
@@ -1001,8 +1007,8 @@ PacketPayload::~PacketPayload()
}
Header::Header(const struct sr_datafeed_header *structure) :
- PacketPayload(),
- StructureWrapper(structure)
+ StructureWrapper(structure),
+ PacketPayload()
{
}
@@ -1010,6 +1016,13 @@ Header::~Header()
{
}
+shared_ptr Header::get_shared_pointer(Packet *parent)
+{
+ return static_pointer_cast(
+ static_pointer_cast(
+ StructureWrapper::get_shared_pointer(parent)));
+}
+
int Header::get_feed_version()
{
return structure->feed_version;
@@ -1023,8 +1036,8 @@ Glib::TimeVal Header::get_start_time()
}
Meta::Meta(const struct sr_datafeed_meta *structure) :
- PacketPayload(),
- StructureWrapper(structure)
+ StructureWrapper(structure),
+ PacketPayload()
{
}
@@ -1032,6 +1045,13 @@ Meta::~Meta()
{
}
+shared_ptr Meta::get_shared_pointer(Packet *parent)
+{
+ return static_pointer_cast(
+ static_pointer_cast(
+ StructureWrapper::get_shared_pointer(parent)));
+}
+
map Meta::get_config()
{
map result;
@@ -1044,8 +1064,8 @@ map Meta::get_config()
}
Logic::Logic(const struct sr_datafeed_logic *structure) :
- PacketPayload(),
- StructureWrapper(structure)
+ StructureWrapper(structure),
+ PacketPayload()
{
}
@@ -1053,6 +1073,13 @@ Logic::~Logic()
{
}
+shared_ptr Logic::get_shared_pointer(Packet *parent)
+{
+ return static_pointer_cast(
+ static_pointer_cast(
+ StructureWrapper::get_shared_pointer(parent)));
+}
+
void *Logic::get_data_pointer()
{
return structure->data;
@@ -1069,8 +1096,8 @@ unsigned int Logic::get_unit_size()
}
Analog::Analog(const struct sr_datafeed_analog *structure) :
- PacketPayload(),
- StructureWrapper(structure)
+ StructureWrapper(structure),
+ PacketPayload()
{
}
@@ -1078,6 +1105,13 @@ Analog::~Analog()
{
}
+shared_ptr Analog::get_shared_pointer(Packet *parent)
+{
+ return static_pointer_cast(
+ static_pointer_cast(
+ StructureWrapper::get_shared_pointer(parent)));
+}
+
float *Analog::get_data_pointer()
{
return structure->data;
@@ -1113,7 +1147,7 @@ vector Analog::get_mq_flags()
}
InputFormat::InputFormat(const struct sr_input_module *structure) :
- StructureWrapper(structure)
+ StructureWrapper(structure)
{
}
@@ -1247,7 +1281,7 @@ vector Option::get_values()
}
OutputFormat::OutputFormat(const struct sr_output_module *structure) :
- StructureWrapper(structure)
+ StructureWrapper(structure)
{
}