Mercurial > minori
view src/track/media.cc @ 266:1a6a5d3a94cd
dep/animone: make bsd.cc and x11.cc actually work
apparently I broke these, and even now the x11 code *still* doesn't want
to work correctly (at least on FreeBSD). half of the PID response codes
are just 0 or the PID for the X server itself... wtf?
maybe dwm just doesn't support the XRes extension, or I'm just stupid.
i don't know.
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Thu, 11 Apr 2024 22:05:41 -0400 |
parents | ff0b2052b234 |
children | 657fda1b9cac |
line wrap: on
line source
#include "track/media.h" #include "core/filesystem.h" #include "core/session.h" #include "core/strings.h" #include <QFile> #include <QTextStream> #include <filesystem> #include <string> #include <unordered_map> #include <vector> #include <iostream> #include "animone.h" namespace Track { namespace Media { static bool GetCurrentlyPlayingResults(std::vector<animone::Result>& results) { std::vector<animone::Player> players; players.reserve(session.config.recognition.players.size()); for (const auto& [enabled, player] : session.config.recognition.players) if (enabled && player.type == animone::PlayerType::Default) players.push_back(player); return animone::GetResults(players, results); } /* meh */ bool GetCurrentlyPlaying(std::vector<std::string>& vec) { std::vector<animone::Result> results; if (!GetCurrentlyPlayingResults(results)) { std::cout << "whoooops!" << std::endl; return false; } bool success = false; for (const auto& result : results) { for (const auto& media : result.media) { for (const auto& info : media.information) { std::cout << info.value << std::endl; switch (info.type) { case animone::MediaInfoType::File: vec.push_back(std::filesystem::path(info.value).filename().u8string()); success |= true; break; case animone::MediaInfoType::Title: vec.push_back(info.value); success |= true; break; default: break; } } } } return success; } } // namespace Media } // namespace Track