#include "db.h"
#include "state.pb.h"
+#include <deque>
+#include <memory>
#include <mutex>
#include <QLabel>
#include <QMainWindow>
public:
MainWindow();
+ ~MainWindow();
// HTTP callback. TODO: Does perhaps not belong to MainWindow?
std::pair<std::string, std::string> get_queue_status() const;
private:
QLabel *disk_free_label;
- Player *preview_player, *live_player;
+ std::unique_ptr<Player> preview_player, live_player;
DB db;
// State when doing a scrub operation on a timestamp with the mouse.
std::string deferred_change_id;
StateProto deferred_state;
+ // NOTE: The undo stack always has the current state on top.
+ std::deque<StateProto> undo_stack, redo_stack;
+
// Before a change that should be deferred (see above), currently_deferring_model_changes
// must be set to true, and current_change_id must be given contents describing what's
// changed to avoid accidental grouping.
void defer_timer_expired();
void content_changed(); // In clip_list or play_list.
void state_changed(const StateProto &state); // Called post-filtering.
+ void save_settings();
enum Rounding { FIRST_AT_OR_AFTER, LAST_BEFORE };
void preview_single_frame(int64_t pts, unsigned stream_idx, Rounding rounding);
void report_disk_space(off_t free_bytes, double estimated_seconds_left);
void exit_triggered();
+ void export_cliplist_clip_multitrack_triggered();
+ void export_playlist_clip_interpolated_triggered();
+ void manual_triggered();
+ void about_triggered();
+ void undo_triggered();
+ void redo_triggered();
+ void quality_toggled(int quality, bool checked);
void highlight_camera_input(int stream_idx);