X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fstoresession.cpp;h=d5355cba3bbe03c71aeb2bf27a2bc654f72479bb;hb=e8d009288de28cb194bc7964f96677c2baf900c9;hp=9ad494e2be3e34a2fced82ea34a961f354358483;hpb=6ac6242b25cfbd4df14abe7580adc9d0f4cffe43;p=pulseview.git diff --git a/pv/storesession.cpp b/pv/storesession.cpp index 9ad494e..d5355cb 100644 --- a/pv/storesession.cpp +++ b/pv/storesession.cpp @@ -27,6 +27,8 @@ #include #include +#include + 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 sigrok::Error; + namespace pv { const size_t StoreSession::BlockSize = 1024 * 1024; @@ -120,8 +124,9 @@ bool StoreSession::start() channels[sigs.size()] = NULL; // Begin storing - if (sr_session_save_init(SigSession::_sr_session, _file_name.c_str(), - data->samplerate(), channels) != SR_OK) { + try { + SigSession::_sr_session->begin_save(_file_name); + } catch (Error error) { _error = tr("Error while saving."); return false; } @@ -179,9 +184,11 @@ void StoreSession::store_proc(shared_ptr snapshot) start_sample + samples_per_block, sample_count); snapshot->get_samples(data, start_sample, end_sample); - if(sr_session_append(SigSession::_sr_session, _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; }