X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=sigsession.cpp;h=aecd21c2c3b5c5231c9407156edd24cad52acfc0;hp=e6288e7c0cf64f4331ce1e8fcd160aec3f87c9ef;hb=274d4f133825cddfc6a42438dd47899db20c7d97;hpb=dde1a56346815349ed4e3cc1c5c63c2ffbc6c7b7 diff --git a/sigsession.cpp b/sigsession.cpp index e6288e7c..aecd21c2 100644 --- a/sigsession.cpp +++ b/sigsession.cpp @@ -57,6 +57,42 @@ void SigSession::loadFile(const std::string &name) } } +void SigSession::start_capture(struct sr_dev_inst *sdi, + uint64_t sample_rate) +{ + sr_session_new(); + sr_session_datafeed_callback_add(dataFeedInProc); + + if (sr_session_dev_add(sdi) != SR_OK) { + qDebug() << "Failed to use device."; + sr_session_destroy(); + return; + } + + uint64_t limit_samples = 10000; + if (sr_dev_config_set(sdi, SR_HWCAP_LIMIT_SAMPLES, + &limit_samples) != SR_OK) { + qDebug() << "Failed to configure time-based sample limit."; + sr_session_destroy(); + return; + } + + if (sr_dev_config_set(sdi, SR_HWCAP_SAMPLERATE, + &sample_rate) != SR_OK) { + qDebug() << "Failed to configure samplerate."; + sr_session_destroy(); + return; + } + + if (sr_session_start() != SR_OK) { + qDebug() << "Failed to start session."; + return; + } + + sr_session_run(); + sr_session_destroy(); +} + vector< shared_ptr >& SigSession::get_signals() { return _signals;