projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add missing <cmath> #includes.
[pulseview.git]
/
pv
/
storesession.cpp
diff --git
a/pv/storesession.cpp
b/pv/storesession.cpp
index dede6a064cb8eda309f7384e180059bdb6398fd8..d5355cba3bbe03c71aeb2bf27a2bc654f72479bb 100644
(file)
--- a/
pv/storesession.cpp
+++ b/
pv/storesession.cpp
@@
-27,6
+27,8
@@
#include <pv/data/logicsnapshot.h>
#include <pv/view/signal.h>
#include <pv/data/logicsnapshot.h>
#include <pv/view/signal.h>
+#include <libsigrok/libsigrok.hpp>
+
using std::deque;
using std::dynamic_pointer_cast;
using std::lock_guard;
using std::deque;
using std::dynamic_pointer_cast;
using std::lock_guard;
@@
-40,6
+42,8
@@
using std::string;
using std::thread;
using std::vector;
using std::thread;
using std::vector;
+using sigrok::Error;
+
namespace pv {
const size_t StoreSession::BlockSize = 1024 * 1024;
namespace pv {
const size_t StoreSession::BlockSize = 1024 * 1024;
@@
-110,26
+114,27
@@
bool StoreSession::start()
const shared_ptr<data::LogicSnapshot> snapshot(snapshots.front());
assert(snapshot);
const shared_ptr<data::LogicSnapshot> snapshot(snapshots.front());
assert(snapshot);
- // Make a list of
probe
s
- char **const
probe
s = new char*[sigs.size() + 1];
+ // Make a list of
channel
s
+ char **const
channel
s = new char*[sigs.size() + 1];
for (size_t i = 0; i < sigs.size(); i++) {
shared_ptr<view::Signal> sig(sigs[i]);
assert(sig);
for (size_t i = 0; i < sigs.size(); i++) {
shared_ptr<view::Signal> sig(sigs[i]);
assert(sig);
-
probe
s[i] = strdup(sig->get_name().toUtf8().constData());
+
channel
s[i] = strdup(sig->get_name().toUtf8().constData());
}
}
-
probe
s[sigs.size()] = NULL;
+
channel
s[sigs.size()] = NULL;
// Begin storing
// Begin storing
- if (sr_session_save_init(_file_name.c_str(),
- data->samplerate(), probes) != SR_OK) {
+ try {
+ SigSession::_sr_session->begin_save(_file_name);
+ } catch (Error error) {
_error = tr("Error while saving.");
return false;
}
_error = tr("Error while saving.");
return false;
}
- // Delete the
probe
s array
+ // Delete the
channel
s array
for (size_t i = 0; i <= sigs.size(); i++)
for (size_t i = 0; i <= sigs.size(); i++)
- free(
probe
s[i]);
- delete[]
probe
s;
+ free(
channel
s[i]);
+ delete[]
channel
s;
_thread = std::thread(&StoreSession::store_proc, this, snapshot);
return true;
_thread = std::thread(&StoreSession::store_proc, this, snapshot);
return true;
@@
-179,9
+184,11
@@
void StoreSession::store_proc(shared_ptr<data::LogicSnapshot> snapshot)
start_sample + samples_per_block, sample_count);
snapshot->get_samples(data, start_sample, end_sample);
start_sample + samples_per_block, sample_count);
snapshot->get_samples(data, start_sample, end_sample);
- if(sr_session_append(_file_name.c_str(), data, unit_size,
- end_sample - start_sample) != SR_OK)
- {
+ size_t length = end_sample - start_sample;
+
+ try {
+ SigSession::_sr_session->append(data, length, unit_size);
+ } catch (Error error) {
_error = tr("Error while saving.");
break;
}
_error = tr("Error while saving.");
break;
}