X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fsession.hpp;h=bd403605eae33e80b120894419aa6359495f76de;hb=87a97d8aa169936ec2dcd229df88b8c5b4a1411c;hp=79ec42cd4956354be4c12d08df776c40cddba1b9;hpb=3a21afa6a5dfc06c17f127960bb0038fd322f213;p=pulseview.git
diff --git a/pv/session.hpp b/pv/session.hpp
index 79ec42c..bd40360 100644
--- a/pv/session.hpp
+++ b/pv/session.hpp
@@ -14,8 +14,7 @@
* 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
+ * along with this program; if not, see .
*/
#ifndef PULSEVIEW_PV_SESSION_HPP
@@ -42,7 +41,7 @@
#include
#include "util.hpp"
-#include "view/viewwidget.hpp"
+#include "views/viewbase.hpp"
struct srd_decoder;
struct srd_channel;
@@ -51,8 +50,10 @@ namespace sigrok {
class Analog;
class Channel;
class Device;
+class InputFormat;
class Logic;
class Meta;
+class OutputFormat;
class Packet;
class Session;
}
@@ -78,8 +79,8 @@ namespace toolbars {
class MainBar;
}
-namespace view {
-class View;
+namespace views {
+class ViewBase;
}
class Session : public QObject
@@ -110,16 +111,28 @@ public:
void set_name(QString name);
- std::shared_ptr main_view() const;
+ const std::list< std::shared_ptr > views() const;
- void set_main_bar(std::shared_ptr main_bar);
+ std::shared_ptr main_view() const;
std::shared_ptr main_bar() const;
+ void set_main_bar(std::shared_ptr main_bar);
+
+ /**
+ * Indicates whether the captured data was saved to disk already or not
+ */
+ bool data_saved() const;
+
void save_settings(QSettings &settings) const;
void restore_settings(QSettings &settings);
+ /**
+ * Attempts to set device instance, may fall back to demo if needed
+ */
+ void select_device(std::shared_ptr device);
+
/**
* Sets device instance that will be used in the next capture session.
*/
@@ -127,6 +140,14 @@ public:
void set_default_device();
+ void load_init_file(const std::string &file_name,
+ const std::string &format);
+
+ void load_file(QString file_name,
+ std::shared_ptr format = nullptr,
+ const std::map &options =
+ std::map());
+
capture_state get_capture_state() const;
void start_capture(std::function error_handler);
@@ -135,11 +156,11 @@ public:
double get_samplerate() const;
- void register_view(std::shared_ptr view);
+ void register_view(std::shared_ptr view);
- void deregister_view(std::shared_ptr view);
+ void deregister_view(std::shared_ptr view);
- bool has_view(std::shared_ptr view);
+ bool has_view(std::shared_ptr view);
const std::unordered_set< std::shared_ptr >
signalbases() const;
@@ -161,6 +182,8 @@ private:
private:
void sample_thread_proc(std::function error_handler);
+ void free_unused_memory();
+
void feed_in_header();
void feed_in_meta(std::shared_ptr meta);
@@ -181,8 +204,8 @@ private:
std::shared_ptr device_;
QString default_name_, name_;
- std::list< std::shared_ptr > views_;
- std::shared_ptr main_view_;
+ std::list< std::shared_ptr > views_;
+ std::shared_ptr main_view_;
std::shared_ptr main_bar_;
@@ -202,6 +225,7 @@ private:
std::thread sampling_thread_;
bool out_of_memory_;
+ bool data_saved_;
Q_SIGNALS:
void capture_state_changed(int state);
@@ -219,8 +243,11 @@ Q_SIGNALS:
void frame_ended();
- void add_view(const QString &title, view::ViewType type,
+ void add_view(const QString &title, views::ViewType type,
Session *session);
+
+public Q_SLOTS:
+ void on_data_saved();
};
} // namespace pv