X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=bigscreen%2Fccbs_bigscreen.cpp;h=2114093f36c8164f44d4afabba97145d5799dd13;hp=fbbc0aaed7a06baf1640f63781dd814c19660382;hb=ef3e9f27177227a0f412e6f9995212b36bf27f19;hpb=76518bb5379322ff9015d8cb4eb019724b31c8ec diff --git a/bigscreen/ccbs_bigscreen.cpp b/bigscreen/ccbs_bigscreen.cpp index fbbc0aa..2114093 100644 --- a/bigscreen/ccbs_bigscreen.cpp +++ b/bigscreen/ccbs_bigscreen.cpp @@ -11,10 +11,12 @@ #include "fetch_group.h" #include "fonts.h" #include "groupscreen.h" +#include "splitscreen.h" Tournament active_tournament; std::vector active_groups; std::vector screens; +SplitScreen *mainscreen = NULL; unsigned char framebuf[800 * 600 * 4], screenbuf[800 * 600 * 4]; void init(pqxx::connection &conn) @@ -24,6 +26,8 @@ void init(pqxx::connection &conn) } screens.erase(screens.begin(), screens.end()); + delete mainscreen; + conn.perform(FetchCurrentTournament(&active_tournament)); conn.perform(FetchListOfActiveGroups(&active_groups)); @@ -39,6 +43,14 @@ void init(pqxx::connection &conn) screens.push_back(new GroupScreen(conn, i->tournament, i->round, i->parallel)); } } + + // hack + screens.push_back(NULL); + screens.push_back(NULL); + screens.push_back(NULL); + screens.push_back(NULL); + + mainscreen = new SplitScreen(screens[0], screens[1], screens[2], screens[3]); } void main_loop(pqxx::connection &conn) @@ -49,17 +61,11 @@ void main_loop(pqxx::connection &conn) return; } - memset(framebuf, 0, 800*600*4); - - if (screens.size() > 0) { - if (screens[0]->check_invalidated()) { - screens[0]->draw(screenbuf); - } - - memcpy(framebuf, screenbuf, 800*600*4); + if (mainscreen->check_invalidated()) { + mainscreen->draw(framebuf); } - ptc_update(framebuf); + conn.await_notification(0, 50000); }