This commit is contained in:
Mars 2024-06-08 04:57:32 -04:00
parent 4ea6801df2
commit a743cdabe5
Signed by: pupbrained
GPG key ID: 874E22DF2F9DFCB5
9 changed files with 32 additions and 70 deletions

View file

@ -1,5 +1,8 @@
---
AlignConsecutiveAssignments: true
AllowShortBlocksOnASingleLine: Always
AllowShortCompoundRequirementOnASingleLine: true
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
BasedOnStyle: Chromium
IndentAccessModifiers: false

View file

@ -63,7 +63,9 @@
glib
tomlplusplus
yyjson
];
]
++ linuxPkgs
++ darwinPkgs;
linuxPkgs = nixpkgs.lib.optionals stdenv.isLinux (with pkgs; [
systemdLibs
@ -78,7 +80,7 @@
in
with pkgs; {
packages = rec {
draconis-cpp = stdenv.mkDerivation {
draconisplusplus = stdenv.mkDerivation {
name = "draconis++";
version = "0.1.0";
src = self;
@ -89,17 +91,7 @@
pkg-config
];
propagatedBuildInputs = [
tomlplusplus
];
buildInputs =
[
coost
fmt
]
++ darwinPkgs
++ linuxPkgs;
buildInputs = deps;
configurePhase = ''
meson setup build
@ -115,7 +107,7 @@
'';
};
default = draconis-cpp;
default = draconisplusplus;
};
formatter = alejandra;
@ -126,8 +118,8 @@
alejandra
bear
clang-tools_18
meson
lldb
meson
ninja
pkg-config
unzip
@ -136,9 +128,7 @@
(writeScriptBin "clean" "meson setup build --wipe")
(writeScriptBin "run" "meson compile -C build && build/draconis++")
]
++ deps
++ darwinPkgs
++ linuxPkgs;
++ deps;
name = "C++";
};

View file

@ -53,9 +53,7 @@ add_project_arguments(
source_file_names = [
'src/main.cpp',
'src/os/os.h',
'src/config/config.cpp',
'src/config/config.h',
'src/config/weather.cpp'
]
@ -66,8 +64,7 @@ endif
if host_machine.system() == 'darwin'
source_file_names += [
'src/os/macos.cpp',
'src/os/macos/NowPlayingBridge.h',
'src/os/macos/NowPlayingBridge.mm'
'src/os/macos/now_playing_bridge.mm',
]
endif
@ -84,23 +81,10 @@ libcurl = dependency('libcurl', required: false)
tomlpp = dependency('tomlplusplus', required: false)
yyjson = dependency('yyjson', required: false)
if not fmt.found()
fmt = cpp.find_library('fmt', required: true)
endif
if not libcurl.found()
libcurl = cpp.find_library('curl', required: true)
endif
if not tomlpp.found()
tomlpp = cpp.find_library('tomlplusplus', required: true)
endif
if not yyjson.found()
yyjson = cpp.find_library('yyjson', required: true)
endif
foreach dep : [fmt, libcurl, tomlpp, yyjson]
if not dep.found()
dep = cpp.find_library(dep.name(), required: true)
endif
deps += dep
endforeach

View file

@ -12,8 +12,7 @@ Result<WeatherOutput> ReadCacheFromFile() {
const std::string cacheFile = "/tmp/weather_cache.json";
std::ifstream ifs(cacheFile);
if (!ifs.is_open())
return Error("Cache file not found.");
if (!ifs.is_open()) return Error("Cache file not found.");
fmt::println("Reading from cache file...");
@ -25,9 +24,7 @@ Result<WeatherOutput> ReadCacheFromFile() {
buf << ifs.rdbuf();
val = rfl::json::read<WeatherOutput>(buf.str()).value();
} catch (Error& e) {
return e;
}
} catch (Error& e) { return e; }
fmt::println("Successfully read from cache file.");
@ -40,8 +37,7 @@ Result<> WriteCacheToFile(const WeatherOutput& data) {
fmt::println("Writing to cache file...");
std::ofstream ofs(cacheFile);
if (!ofs.is_open())
return Error("Failed to open cache file for writing.");
if (!ofs.is_open()) return Error("Failed to open cache file for writing.");
ofs << rfl::json::write(data);

View file

@ -28,23 +28,16 @@ struct fmt::formatter<BytesToGiB> : formatter<double> {
enum DateNum { Ones, Twos, Threes, Default };
DateNum ParseDate(string const& input) {
if (input == "1" || input == "21" || input == "31")
return Ones;
if (input == "2" || input == "22")
return Twos;
if (input == "3" || input == "23")
return Threes;
if (input == "1" || input == "21" || input == "31") return Ones;
if (input == "2" || input == "22") return Twos;
if (input == "3" || input == "23") return Threes;
return Default;
}
int main() {
const Config& config = Config::getInstance();
if (config.getNowPlaying().getEnabled())
fmt::println("{}", GetNowPlaying());
if (config.getNowPlaying().getEnabled()) fmt::println("{}", GetNowPlaying());
fmt::println("Hello {}!", config.getGeneral().getName());

View file

@ -1,6 +1,5 @@
#ifdef __linux__
#include <fmt/core.h>
#include <fstream>
#include <iostream>
#include <sdbus-c++/sdbus-c++.h>
@ -70,8 +69,7 @@ std::vector<std::string> GetMprisPlayers(sdbus::IConnection& connection) {
}
std::string GetActivePlayer(const std::vector<std::string>& mprisPlayers) {
if (!mprisPlayers.empty())
return mprisPlayers.front();
if (!mprisPlayers.empty()) return mprisPlayers.front();
return "";
}
@ -83,13 +81,11 @@ std::string GetNowPlaying() {
std::vector<std::string> mprisPlayers = GetMprisPlayers(*connection);
if (mprisPlayers.empty())
return "";
if (mprisPlayers.empty()) return "";
std::string activePlayer = GetActivePlayer(mprisPlayers);
if (activePlayer.empty())
return "";
if (activePlayer.empty()) return "";
std::unique_ptr<sdbus::IProxy> playerProxy =
sdbus::createProxy(*connection, activePlayer, PLAYER_OBJECT_PATH);

View file

@ -1,14 +1,13 @@
#ifdef __APPLE__
#include <string>
#include <sys/sysctl.h>
#include "macos/NowPlayingBridge.h"
#include "macos/now_playing_bridge.h"
#include "os.h"
u64 GetMemInfo() {
uint64_t mem = 0;
size_t size = sizeof(mem);
u64 mem = 0;
usize size = sizeof(mem);
sysctlbyname("hw.memsize", &mem, &size, nullptr, 0);
@ -16,8 +15,9 @@ u64 GetMemInfo() {
}
std::string GetNowPlaying() {
if (const char* title = GetCurrentPlayingTitle())
return title;
if (const char* title = GetCurrentPlayingTitle();
const char* artist = GetCurrentPlayingArtist())
return "Now Playing: " + std::string(artist) + " - " + std::string(title);
return "No song playing";
}

View file

@ -1,6 +1,6 @@
#ifdef __APPLE__
#import "NowPlayingBridge.h"
#import "now_playing_bridge.h"
#import <Foundation/Foundation.h>
#import <dispatch/dispatch.h>
#import <objc/runtime.h>