]> git.sesse.net Git - ccbs/commitdiff
Support different backgrounds per-screen.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 19 Feb 2012 17:28:22 +0000 (18:28 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 19 Feb 2012 17:28:22 +0000 (18:28 +0100)
bigscreen/groupscreen.cpp
bigscreen/theme.config
bigscreen/theme.cpp
bigscreen/theme.h
bigscreen/top10scorescreen.cpp
bigscreen/top5chosenscreen.cpp

index d4174574d67baf6ffb29c454428be6fa58433275..ab3ca54a8d36e6eb8ec37527d99a88583f4d11e1 100644 (file)
@@ -615,7 +615,7 @@ void GroupScreen::draw(unsigned char *buf, unsigned width, unsigned height)
        conn.perform(FetchGroup(tournament, round, parallel, &group));
        gettimeofday(&last_updated, NULL);
 
        conn.perform(FetchGroup(tournament, round, parallel, &group));
        gettimeofday(&last_updated, NULL);
 
-       fill_background(buf, width, height);
+       fill_background(buf, "groupscreen", width, height);
 
        std::vector<unsigned> colwidth;
        
 
        std::vector<unsigned> colwidth;
        
index 2ac2167a328ea3d09c11e9906b5845f92818dc8e..fc03f3a9010793b6dcc5c61d30f5594942f8849d 100644 (file)
@@ -46,5 +46,5 @@ divider.red=127
 divider.green=127
 divider.blue=127
 
 divider.green=127
 divider.blue=127
 
-# available elements: background, mainheading, (fresh)columnheading, randomsongname, nextsonginfo, need, divider
+# available elements: background.groupscreen, background.top5chosenscreen, background.top10scorescreen, mainheading, (fresh)columnheading, randomsongname, nextsonginfo, need, divider
 # available elements that also have .odd and .even: rowheading, (fresh)score, (fresh)chosensongname, (fresh)totalscore, (fresh)rank
 # available elements that also have .odd and .even: rowheading, (fresh)score, (fresh)chosensongname, (fresh)totalscore, (fresh)rank
index 542d2ada93faf271d6f00d63dbd36a48828b77cb..fb6f7707b450de93bedf9bc97cc91ad905dc0e19 100644 (file)
@@ -78,11 +78,12 @@ std::string get_theme_config(const std::string &key, const std::string subkey)
        return config["default." + subkey];
 }
 
        return config["default." + subkey];
 }
 
-void fill_background(unsigned char *buf, unsigned width, unsigned height)
+void fill_background(unsigned char *buf, const std::string &screen_name, unsigned width, unsigned height)
 {
 {
-       int bg_r = atoi(get_theme_config("background", "red").c_str());
-       int bg_g = atoi(get_theme_config("background", "green").c_str());
-       int bg_b = atoi(get_theme_config("background", "blue").c_str());
+       std::string key = "background." + screen_name;
+       int bg_r = atoi(get_theme_config(key, "red").c_str());
+       int bg_g = atoi(get_theme_config(key, "green").c_str());
+       int bg_b = atoi(get_theme_config(key, "blue").c_str());
 
        unsigned char *ptr = buf;
        for (unsigned i = 0; i < width * height; ++i) {
 
        unsigned char *ptr = buf;
        for (unsigned i = 0; i < width * height; ++i) {
index 2c873841f4ec56d10b3cfc981ff00300d0213f8f..c87d9c3d813431e003086633d038b6cd22e956ee 100644 (file)
@@ -5,7 +5,7 @@
 
 void init_theme();
 std::string get_theme_config(const std::string &key, const std::string subkey);
 
 void init_theme();
 std::string get_theme_config(const std::string &key, const std::string subkey);
-void fill_background(unsigned char *buf, unsigned width, unsigned height);
+void fill_background(unsigned char *buf, const std::string &screen_name, unsigned width, unsigned height);
 
 #define LOGICAL_SCREEN_WIDTH (atoi(get_theme_config("screen", "logical_width").c_str()))
 #define LOGICAL_SCREEN_HEIGHT (atoi(get_theme_config("screen", "logical_height").c_str()))
 
 #define LOGICAL_SCREEN_WIDTH (atoi(get_theme_config("screen", "logical_width").c_str()))
 #define LOGICAL_SCREEN_HEIGHT (atoi(get_theme_config("screen", "logical_height").c_str()))
index 2a52568355b0866544f37a5052b33af16842b07e..a024e9878d3cf3708d635b2550ba08a26491d996 100644 (file)
@@ -46,7 +46,7 @@ bool Top10ScoreScreen::check_invalidated()
 void Top10ScoreScreen::draw(unsigned char *buf, unsigned width, unsigned height)
 {
        scores_changed.reset_flag();
 void Top10ScoreScreen::draw(unsigned char *buf, unsigned width, unsigned height)
 {
        scores_changed.reset_flag();
-       fill_background(buf, width, height);
+       fill_background(buf, "top10scorescreen", width, height);
        set_screen_size(width, height);
 
        // fetch the top 10 scores
        set_screen_size(width, height);
 
        // fetch the top 10 scores
index 57a54f0a20833e77634110c77ce3a50e5375c9d7..d63b724433cc70ac89f3e8fbc218044156b9ffc5 100644 (file)
@@ -45,7 +45,7 @@ bool Top5ChosenScreen::check_invalidated()
 void Top5ChosenScreen::draw(unsigned char *buf, unsigned width, unsigned height)
 {
        scores_changed.reset_flag();
 void Top5ChosenScreen::draw(unsigned char *buf, unsigned width, unsigned height)
 {
        scores_changed.reset_flag();
-       fill_background(buf, width, height);
+       fill_background(buf, "top5chosenscreen", width, height);
        set_screen_size(width, height);
 
        // fetch the top 5 chosen songs
        set_screen_size(width, height);
 
        // fetch the top 5 chosen songs