PulseView  unreleased development snapshot
A Qt-based sigrok GUI
inputfile.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of the PulseView project.
3  *
4  * Copyright (C) 2015 Joel Holdsworth <joel@airwebreathe.org.uk>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef PULSEVIEW_PV_DEVICES_INPUTFILE_HPP
21 #define PULSEVIEW_PV_DEVICES_INPUTFILE_HPP
22 
23 #include <atomic>
24 
25 #include <libsigrokcxx/libsigrokcxx.hpp>
26 
27 #include "file.hpp"
28 
29 #include <QSettings>
30 
31 using std::atomic;
32 using std::ifstream;
33 using std::map;
34 using std::shared_ptr;
35 using std::streamsize;
36 using std::string;
37 
38 namespace pv {
39 namespace devices {
40 
41 class InputFile final : public File
42 {
43 private:
44  static const streamsize BufferSize;
45 
46 public:
47  InputFile(const shared_ptr<sigrok::Context> &context,
48  const string &file_name,
49  shared_ptr<sigrok::InputFormat> format,
50  const map<string, Glib::VariantBase> &options);
51 
56  InputFile(const shared_ptr<sigrok::Context> &context,
57  QSettings &settings);
58 
59  void save_meta_to_settings(QSettings &settings);
60 
61  void open();
62 
63  void close();
64 
65  void start();
66 
67  void run();
68 
69  void stop();
70 
71 private:
72  const shared_ptr<sigrok::Context> context_;
73  shared_ptr<sigrok::InputFormat> format_;
74  map<string, Glib::VariantBase> options_;
75  shared_ptr<sigrok::Input> input_;
76 
77  ifstream *f;
78  atomic<bool> interrupt_;
79 };
80 
81 } // namespace devices
82 } // namespace pv
83 
84 #endif // PULSEVIEW_PV_DEVICES_INPUTFILE_HPP
85 
libsigrok allows users to import and export data from files in various formats some of them as generic as others very specific For a list and make sure to check not so common and outright exotic ways to represent data and sigrok tries to suit as many needs as it can To see which formats your version of PulseView just click on the small arrow next to the _Open_ PulseView will ask for the file name to open Once you picked the you may be asked to specify the details of the format
map< string, Glib::VariantBase > options_
Definition: inputfile.hpp:74
InputFile(const shared_ptr< sigrok::Context > &context, const string &file_name, shared_ptr< sigrok::InputFormat > format, const map< string, Glib::VariantBase > &options)
Definition: inputfile.cpp:51
shared_ptr< sigrok::Input > input_
Definition: inputfile.hpp:75
void save_meta_to_settings(QSettings &settings)
Definition: inputfile.cpp:95
Mac OS X or Android For some we provide binary for others we provide installers and for others we provide AppImage containers that you can run without the need to install anything Check the the usual way to install PulseView is to install the packages provided by your distro s package manager sometimes only outdated packages are made available to you In that you have two options
Definition: installation.txt:2
shared_ptr< sigrok::InputFormat > format_
Definition: inputfile.hpp:73
static const streamsize BufferSize
Definition: inputfile.hpp:44
atomic< bool > interrupt_
Definition: inputfile.hpp:78
const shared_ptr< sigrok::Context > context_
Definition: inputfile.hpp:72