bindings: Revise Session::append() API.

This commit is contained in:
Martin Ling 2014-07-24 12:43:27 +01:00
parent 6be7a7f287
commit 1d67cfb4ea
2 changed files with 14 additions and 5 deletions

View File

@ -729,7 +729,7 @@ void Session::begin_save(string filename)
save_samplerate = 0;
}
void Session::append(shared_ptr<Device> device, shared_ptr<Packet> packet)
void Session::append(shared_ptr<Packet> packet)
{
if (!saving)
throw Error(SR_ERR);
@ -756,8 +756,9 @@ void Session::append(shared_ptr<Device> device, shared_ptr<Packet> packet)
{
GVariant *samplerate;
check(sr_config_get(device->structure->driver,
device->structure, NULL, SR_CONF_SAMPLERATE, &samplerate));
check(sr_config_get(packet->device->structure->driver,
packet->device->structure, NULL, SR_CONF_SAMPLERATE,
&samplerate));
save_samplerate = g_variant_get_uint64(samplerate);
@ -768,7 +769,7 @@ void Session::append(shared_ptr<Device> device, shared_ptr<Packet> packet)
{
vector<shared_ptr<Channel>> save_channels;
for (auto channel : device->get_channels())
for (auto channel : packet->device->get_channels())
if (channel->structure->enabled &&
channel->structure->type == SR_CHANNEL_LOGIC)
save_channels.push_back(channel);
@ -801,6 +802,12 @@ void Session::append(shared_ptr<Device> device, shared_ptr<Packet> packet)
}
}
void Session::append(void *data, size_t length, unsigned int unit_size)
{
check(sr_session_append(structure, save_filename.c_str(),
(uint8_t *) data, unit_size, length));
}
static void datafeed_callback(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *pkt, void *cb_data)
{

View File

@ -516,7 +516,9 @@ public:
/** Begin saving session to a file. */
void begin_save(string filename);
/** Append a packet to the session file being saved. */
void append(shared_ptr<Device> device, shared_ptr<Packet> packet);
void append(shared_ptr<Packet> packet);
/** Append raw logic data to the session file being saved. */
void append(void *data, size_t length, unsigned int unit_size);
/** Get current trigger setting. */
shared_ptr<Trigger> get_trigger();
/** Set trigger setting. */