From: Steinar H. Gunderson Date: Sat, 19 Feb 2005 20:04:56 +0000 (+0000) Subject: Use short titles in the bigscreen headings. X-Git-Url: https://git.sesse.net/?p=ccbs;a=commitdiff_plain;h=6cd673299df1e8eaabdf6e538b19dc617514c82a Use short titles in the bigscreen headings. --- diff --git a/bigscreen/fetch_group.cpp b/bigscreen/fetch_group.cpp index 6411525..bdaa0c9 100644 --- a/bigscreen/fetch_group.cpp +++ b/bigscreen/fetch_group.cpp @@ -5,7 +5,8 @@ FetchGroup::FetchGroup(unsigned tournament, unsigned round, unsigned parallel, G void FetchGroup::operator() (pqxx::transaction<> &t) { - pqxx::result res( t.exec("SELECT round,parallel,position,playmode,difficulty,songnumber,player,nick,song,title,artist,chosen,score FROM roundparticipation NATURAL JOIN players NATURAL JOIN scores NATURAL LEFT JOIN songs WHERE " + // note: this _will_ break if any song has more than one short title! + pqxx::result res( t.exec("SELECT round,parallel,position,playmode,difficulty,songnumber,player,nick,song,title,COALESCE(shorttitle,title) AS shorttitle,artist,chosen,score FROM roundparticipation NATURAL JOIN players NATURAL JOIN scores NATURAL LEFT JOIN songs NATURAL LEFT JOIN songshorttitles WHERE " "tournament=" + pqxx::to_string(tournament) + " AND " + "round=" + pqxx::to_string(round) + " AND " + "parallel=" + pqxx::to_string(parallel) + " " + @@ -41,6 +42,7 @@ void FetchGroup::operator() (pqxx::transaction<> &t) so.id = i["song"].as(so.id); so.title = i["title"].as(so.title); so.artist = i["artist"].as(so.artist); + so.short_title = i["shorttitle"].as(so.short_title); } sc.song = so; diff --git a/bigscreen/group.h b/bigscreen/group.h index c57f7b3..3aa0efc 100644 --- a/bigscreen/group.h +++ b/bigscreen/group.h @@ -7,7 +7,7 @@ /* This more or less mimics the structures from show-tournament.pl */ struct Song { int id; - widestring title, artist; + widestring title, short_title, artist; }; struct Score { Song song; diff --git a/bigscreen/groupscreen.cpp b/bigscreen/groupscreen.cpp index 09c4389..ff8cbac 100644 --- a/bigscreen/groupscreen.cpp +++ b/bigscreen/groupscreen.cpp @@ -44,7 +44,7 @@ void GroupScreen::draw(unsigned char *buf) width[col] = std::max(width[col], my_draw_text(j->song.title, NULL, 12.0) + max_num_width + 10); } else { - width[col] = std::max(width[col], my_draw_text(j->song.title, NULL, 12.0)); + width[col] = std::max(width[col], my_draw_text(j->song.short_title, NULL, 12.0)); width[col] = std::max(width[col], max_num_width); } } @@ -54,8 +54,8 @@ void GroupScreen::draw(unsigned char *buf) unsigned col = 1, x = 40 + width[0]; for (std::vector::const_iterator i = group.players[0].scores.begin(); i != group.players[0].scores.end(); ++i, ++col) { if (!i->chosen) { - unsigned this_width = my_draw_text(i->song.title, NULL, 12.0); - my_draw_text(i->song.title, buf, 12.0, x + width[col] / 2 - this_width / 2, 30); + unsigned this_width = my_draw_text(i->song.short_title, NULL, 12.0); + my_draw_text(i->song.short_title, buf, 12.0, x + width[col] / 2 - this_width / 2, 30); } x += width[col] + 20; }