// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0 #pragma once #include #include #include #include #include #include namespace bridge { struct PodcastSetting { const char *key; bool enabled; std::string source = "default"; }; using PodcastSettings = std::array; inline PodcastSettings &roomPodcastSettings() { static PodcastSettings settings{{{"YENEY_PODCAST_TITLE_PLAIN",true}, {"YENEY_PODCAST_ARTIST_SHOW",true},{"YENEY_PODCAST_ALBUM_PUBLISHER",false}}}; return settings; } inline PodcastSettings podcastSettings(const std::string &room, const char *path) { PodcastSettings result{{{"YENEY_PODCAST_TITLE_PLAIN",true}, {"YENEY_PODCAST_ARTIST_SHOW",true},{"YENEY_PODCAST_ALBUM_PUBLISHER",false}}}; std::array,3> global, local; auto trim=[](std::string s) { auto first=s.find_first_not_of(" \t\r"); return first==std::string::npos?std::string{}:s.substr(first,s.find_last_not_of(" \t\r")-first+1); }; std::ifstream input(path);std::string line; while(std::getline(input,line)) { auto eq=line.find('=');if(eq==std::string::npos)continue; auto key=trim(line.substr(0,eq)),value=trim(line.substr(eq+1)); for(size_t i=0;i