2 #include <QApplication>
6 #include "ui_mainwindow.h"
10 class FormationsModel;
12 class MainWindow : public QMainWindow
17 MainWindow(EventsModel *events, PlayersModel *players,
18 FormationsModel *offensive_formations, FormationsModel *defensive_formations,
19 sqlite3 *db, int match_id);
21 if (ui && ui->video) {
27 void position_changed(uint64_t pos);
28 void seek(int64_t delta_ms);
29 void insert_player_event(int button_id);
30 void insert_noplayer_event(const std::string &type);
31 void set_current_event_type(const std::string &type);
32 void insert_throwaway();
33 void insert_or_change_formation(bool offense);
34 void delete_current_event();
35 void make_substitution();
36 void formation_double_clicked(bool offense, unsigned row);
38 void update_ui_from_time(uint64_t t);
39 void update_status(uint64_t t);
40 void update_player_buttons(uint64_t t);
41 void update_action_buttons(uint64_t t);
42 void update_gender_ratio(uint64_t t);
46 PlayersModel *players;
47 FormationsModel *offensive_formations;
48 FormationsModel *defensive_formations;
50 std::atomic<bool> playing{true};
51 std::optional<uint64_t> buffered_seek;
52 sqlite3 *db; // TODO: Check threading