]> git.sesse.net Git - ccbs/blobdiff - bigscreen/groupscreen.h
Refactoring, always refactoring...
[ccbs] / bigscreen / groupscreen.h
index 21ab17248e2bb4ab54056e9778d12a63f3d422a2..a2b0db111335f64d2cba8917778ab6385de1e5f9 100644 (file)
 /* A screen class showing a group in the tournament */
 class GroupScreen : public GenericScreen {
 private:
 /* A screen class showing a group in the tournament */
 class GroupScreen : public GenericScreen {
 private:
-       unsigned tournament, round, parallel, machine, num_machines;
+       unsigned tournament, round, parallel, machine, num_machines, players_per_machine;
        FlagTrigger scores_changed;
        pqxx::connection &conn;
        bool valid;
        struct timeval last_updated;
        std::vector<TextDefer> last_text;
 
        FlagTrigger scores_changed;
        pqxx::connection &conn;
        bool valid;
        struct timeval last_updated;
        std::vector<TextDefer> last_text;
 
+       unsigned get_show_players(const Group &group);
+       void draw_main_heading(std::vector<TextDefer> &td);
+       void draw_column_headings(std::vector<TextDefer> &td, const Group &group, const std::vector<unsigned> &colwidth);
+       void draw_scores(std::vector<TextDefer> &td, const Group &group, const std::vector<unsigned> &colwidth);
+       const Player *get_next_player(const Group &group);
+       void draw_next_up_player(unsigned char *buf, const Group &group, const Player &player, const Score &song, bool last_song,
+               std::map<unsigned, unsigned> &song_scores, std::map<unsigned, unsigned> &player_scores,
+               const std::vector<unsigned> &max_score, const std::vector<unsigned> &min_score);
+       void draw_next_up_single(unsigned char *buf, const Group &group,
+               std::map<unsigned, unsigned> &song_scores, std::map<unsigned, unsigned> &player_scores,
+               const std::vector<unsigned> &max_score, const std::vector<unsigned> &min_score);
+       void find_column_widths(const Group &group, std::vector<unsigned> &colwidth);
+       
 public:
 public:
-       GroupScreen(pqxx::connection &conn, unsigned tournament, unsigned round, unsigned parallel, unsigned machine, unsigned num_machines);
+       // the last two parameters should probably not be there, but fetched from GroupScreen itself
+       GroupScreen(pqxx::connection &conn, unsigned tournament, unsigned round, unsigned parallel, unsigned machine, unsigned num_machines, unsigned players_per_machine);
        virtual ~GroupScreen();
 
        bool check_invalidated();
        virtual ~GroupScreen();
 
        bool check_invalidated();
-       void draw(unsigned char *buf);
+       void draw(unsigned char *buf, unsigned width, unsigned height);
+       int get_priority();
 };
 
 #endif /* !defined(_GROUPSCREEN_H) */
 };
 
 #endif /* !defined(_GROUPSCREEN_H) */