This commit is contained in:
Mars 2024-05-29 06:39:39 -04:00
parent a24f19d16b
commit 8db3dae6f1
Signed by: pupbrained
GPG key ID: 0FF5B8826803F895
7 changed files with 190 additions and 71 deletions

View file

@ -1,10 +1,14 @@
#include "os.h"
#include <fstream>
module;
#include <fmt/core.h>
#include <playerctl/playerctl.h>
#include <fstream>
export module OS;
using std::string;
uint64_t parse_line_as_number(const string &input) {
uint64_t parse_line_as_number(const string& input) {
// Find the first number
string::size_type start = 0;
@ -36,17 +40,17 @@ uint64_t meminfo_parse(std::ifstream is) {
return num;
}
uint64_t get_meminfo() {
export uint64_t get_meminfo() {
return meminfo_parse(std::ifstream("/proc/meminfo")) * 1024;
}
PlayerctlPlayer *init_playerctl() {
PlayerctlPlayer* init_playerctl() {
// Create a player manager
PlayerctlPlayerManager *const player_manager =
PlayerctlPlayerManager* const player_manager =
playerctl_player_manager_new(nullptr);
// Create an empty player list
GList *available_players = nullptr;
GList* available_players = nullptr;
// Get the list of available players and put it in the player list
g_object_get(player_manager, "player-names", &available_players, nullptr);
@ -57,10 +61,10 @@ PlayerctlPlayer *init_playerctl() {
// Get the first player
const auto player_name =
static_cast<PlayerctlPlayerName *>(available_players->data);
static_cast<PlayerctlPlayerName*>(available_players->data);
// Create the player
PlayerctlPlayer *const current_player =
PlayerctlPlayer* const current_player =
playerctl_player_new_from_name(player_name, nullptr);
// If no player is available, return nullptr
@ -75,3 +79,11 @@ PlayerctlPlayer *init_playerctl() {
return current_player;
}
export string get_nowplaying() {
if (PlayerctlPlayer* current_player = init_playerctl()) {
return playerctl_player_get_title(current_player, nullptr);
}
return "Could not get now playing info";
}