Mercurial > minori
view src/track/media.cc @ 229:adc20fa321c1
theme: force Fusion style on platforms other than Win32 or OS X
I was reluctant to do this, but most of the other styles just
look like pure shite regardless of whether I force a stylesheet
on them or not. KDE's style is actually hilariously bad paired
with my stylesheet, so I've decided to also make the stylesheet
Windows-specific as well, because that's really the only platform
where it makes sense in the first place.
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Wed, 10 Jan 2024 21:23:57 -0500 |
parents | 649786bae914 |
children | d030b30526d5 2f5a9247e501 |
line wrap: on
line source
#include "track/media.h" #include "core/filesystem.h" #include "core/strings.h" #include "core/session.h" #include <QFile> #include <QTextStream> #include <string> #include <unordered_map> #include <vector> #include <filesystem> #include "animia.h" namespace Track { namespace Media { static bool GetCurrentlyPlayingResults(std::vector<animia::Result>& results) { std::vector<animia::Player> players; players.reserve(session.config.recognition.players.size()); for (const auto& [enabled, player] : session.config.recognition.players) if (enabled && player.type == animia::PlayerType::Default) players.push_back(player); if (!animia::GetResults(players, results)) return false; return true; } /* meh */ bool GetCurrentlyPlaying(std::vector<std::string>& vec) { std::vector<animia::Result> results; if (!GetCurrentlyPlayingResults(results)) return false; bool success = false; for (const auto& result : results) { for (const auto& media : result.media) { for (const auto& info : media.information) { switch (info.type) { case animia::MediaInfoType::File: case animia::MediaInfoType::Title: vec.push_back(std::filesystem::path(info.value).filename().string()); success |= true; default: break; } } } } return success; } } // namespace Media } // namespace Track