X-Git-Url: http://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsigsession.h;fp=pv%2Fsigsession.h;h=0000000000000000000000000000000000000000;hp=513177be356a24ac5fe88e1acbe75702a58fa68e;hb=2acdb232d6bb452cfdfaea3ef5218fb4da592329;hpb=8dbbc7f0b9ea59d0f0d62225772f8a56eee125f5 diff --git a/pv/sigsession.h b/pv/sigsession.h deleted file mode 100644 index 513177be..00000000 --- a/pv/sigsession.h +++ /dev/null @@ -1,189 +0,0 @@ -/* - * This file is part of the PulseView project. - * - * Copyright (C) 2012-14 Joel Holdsworth - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef PULSEVIEW_PV_SIGSESSION_H -#define PULSEVIEW_PV_SIGSESSION_H - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -struct srd_decoder; -struct srd_channel; - -namespace sigrok { - class Analog; - class Channel; - class Device; - class Logic; - class Meta; - class Packet; - class Session; -} - -namespace pv { - -class DeviceManager; - -namespace data { -class Analog; -class AnalogSnapshot; -class Logic; -class LogicSnapshot; -class SignalData; -} - -namespace view { -class DecodeTrace; -class LogicSignal; -class Signal; -} - -class SigSession : public QObject -{ - Q_OBJECT - -public: - enum capture_state { - Stopped, - AwaitingTrigger, - Running - }; - -public: - SigSession(DeviceManager &device_manager); - - ~SigSession(); - - DeviceManager& device_manager(); - - const DeviceManager& device_manager() const; - - const std::shared_ptr& session() const; - - std::shared_ptr device() const; - - /** - * Sets device instance that will be used in the next capture session. - */ - void set_device(std::shared_ptr device); - - void set_file(const std::string &name); - - void set_default_device(); - - capture_state get_capture_state() const; - - void start_capture(std::function error_handler); - - void stop_capture(); - - std::set< std::shared_ptr > get_data() const; - - boost::shared_mutex& signals_mutex() const; - - const std::vector< std::shared_ptr >& signals() const; - -#ifdef ENABLE_DECODE - bool add_decoder(srd_decoder *const dec); - - std::vector< std::shared_ptr > - get_decode_signals() const; - - void remove_decode_signal(view::DecodeTrace *signal); -#endif - -private: - void set_capture_state(capture_state state); - - void update_signals(std::shared_ptr device); - - std::shared_ptr signal_from_channel( - std::shared_ptr channel) const; - - void read_sample_rate(std::shared_ptr); - -private: - void sample_thread_proc(std::shared_ptr device, - std::function error_handler); - - void feed_in_header(std::shared_ptr device); - - void feed_in_meta(std::shared_ptr device, - std::shared_ptr meta); - - void feed_in_frame_begin(); - - void feed_in_logic(std::shared_ptr logic); - - void feed_in_analog(std::shared_ptr analog); - - void data_feed_in(std::shared_ptr device, - std::shared_ptr packet); - -private: - DeviceManager &device_manager_; - std::shared_ptr session_; - - /** - * The device instance that will be used in the next capture session. - */ - std::shared_ptr device_; - - std::vector< std::shared_ptr > decode_traces_; - - mutable std::mutex sampling_mutex_; - capture_state capture_state_; - - mutable boost::shared_mutex signals_mutex_; - std::vector< std::shared_ptr > signals_; - - mutable std::mutex data_mutex_; - std::shared_ptr logic_data_; - std::shared_ptr cur_logic_snapshot_; - std::map< std::shared_ptr, std::shared_ptr > - cur_analog_snapshots_; - - std::thread sampling_thread_; - -Q_SIGNALS: - void capture_state_changed(int state); - - void signals_changed(); - - void frame_began(); - - void data_received(); - - void frame_ended(); -}; - -} // namespace pv - -#endif // PULSEVIEW_PV_SIGSESSION_H