|
|
|
|
@ -458,9 +458,24 @@ bool Configuration::read(const std::vector<std::string> &config_paths, bool igno |
|
|
|
|
p.add("titles_visibility", &titles_visibility, "yes", yes_no); |
|
|
|
|
p.add("header_text_scrolling", &header_text_scrolling, "yes", yes_no); |
|
|
|
|
p.add("cyclic_scrolling", &use_cyclic_scrolling, "no", yes_no); |
|
|
|
|
p.add("lyrics_fetchers", &lyrics_fetchers, |
|
|
|
|
"genius, tekstowo, plyrics, justsomelyrics, jahlyrics, zeneszoveg, internet", |
|
|
|
|
list_of<LyricsFetcher_>); |
|
|
|
|
p.add<void>("lyrics_fetchers", nullptr, |
|
|
|
|
"genius, tekstowo, plyrics, justsomelyrics, jahlyrics, zeneszoveg, internet", [this](std::string v) { |
|
|
|
|
lyrics_fetchers = list_of<LyricsFetcher_>(v, [](std::string s) { |
|
|
|
|
LyricsFetcher_ fetcher; |
|
|
|
|
try { |
|
|
|
|
fetcher = boost::lexical_cast<LyricsFetcher_>(s); |
|
|
|
|
} catch (boost::bad_lexical_cast &) { |
|
|
|
|
std::clog << "Unknown lyrics fetcher: " << s << "\n"; |
|
|
|
|
} |
|
|
|
|
return fetcher; |
|
|
|
|
}); |
|
|
|
|
auto it = std::remove_if( |
|
|
|
|
lyrics_fetchers.begin(), lyrics_fetchers.end(), |
|
|
|
|
[](const auto &f) { return f.get() == nullptr; }); |
|
|
|
|
lyrics_fetchers.resize(it - lyrics_fetchers.begin()); |
|
|
|
|
if (lyrics_fetchers.empty()) |
|
|
|
|
invalid_value(v); |
|
|
|
|
}); |
|
|
|
|
p.add("follow_now_playing_lyrics", &now_playing_lyrics, "no", yes_no); |
|
|
|
|
p.add("fetch_lyrics_for_current_song_in_background", &fetch_lyrics_in_background, |
|
|
|
|
"no", yes_no); |
|
|
|
|
|