* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef PULSEVIEW_PV_SESSION_HPP
class Analog;
class Channel;
class Device;
+class InputFormat;
class Logic;
class Meta;
+class OutputFormat;
class Packet;
class Session;
}
std::shared_ptr<views::ViewBase> main_view() const;
+ std::shared_ptr<pv::toolbars::MainBar> main_bar() const;
+
void set_main_bar(std::shared_ptr<pv::toolbars::MainBar> main_bar);
- std::shared_ptr<pv::toolbars::MainBar> main_bar() const;
+ /**
+ * 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<devices::Device> device);
+
/**
* Sets device instance that will be used in the next capture session.
*/
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<sigrok::InputFormat> format = nullptr,
+ const std::map<std::string, Glib::VariantBase> &options =
+ std::map<std::string, Glib::VariantBase>());
+
capture_state get_capture_state() const;
void start_capture(std::function<void (const QString)> error_handler);
private:
void sample_thread_proc(std::function<void (const QString)> error_handler);
+ void free_unused_memory();
+
void feed_in_header();
void feed_in_meta(std::shared_ptr<sigrok::Meta> meta);
std::thread sampling_thread_;
bool out_of_memory_;
+ bool data_saved_;
Q_SIGNALS:
void capture_state_changed(int state);
void add_view(const QString &title, views::ViewType type,
Session *session);
+
+public Q_SLOTS:
+ void on_data_saved();
};
} // namespace pv