X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=bigscreen%2Fccbs_bigscreen.cpp;h=2114093f36c8164f44d4afabba97145d5799dd13;hb=ef3e9f27177227a0f412e6f9995212b36bf27f19;hp=dfb025f92cf72b0773a6c000b5ebee35686cbb41;hpb=6e40dbdfce9194249658112b2837565b47b34b4d;p=ccbs diff --git a/bigscreen/ccbs_bigscreen.cpp b/bigscreen/ccbs_bigscreen.cpp index dfb025f..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,15 +61,11 @@ void main_loop(pqxx::connection &conn) return; } - memset(framebuf, 0, 800*600*4); - - if (screens[0]->check_invalidated()) { - screens[0]->draw(screenbuf); + if (mainscreen->check_invalidated()) { + mainscreen->draw(framebuf); } - - memcpy(framebuf, screenbuf, 800*600*4); - ptc_update(framebuf); + conn.await_notification(0, 50000); }