Added battery, small fixes, idk
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include <algorithm>
|
||||
#define SOL_ALL_SAFETIES_ON 1
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
@@ -21,21 +22,25 @@ static std::tuple<guint, bool> get_volume(gpointer api, guint32 id) {
|
||||
GVariant *variant = nullptr;
|
||||
g_signal_emit(api, get_volume_sig, 0, id, &variant);
|
||||
|
||||
gdouble volumed;
|
||||
gboolean mute;
|
||||
g_variant_lookup(variant, "volume", "d", &volumed);
|
||||
g_variant_lookup(variant, "mute", "b", &mute);
|
||||
if (variant) g_variant_unref(variant);
|
||||
gdouble volumed = 0.5;
|
||||
gboolean mute = false;
|
||||
if (variant) {
|
||||
g_variant_lookup(variant, "volume", "d", &volumed);
|
||||
g_variant_lookup(variant, "mute", "b", &mute);
|
||||
g_variant_unref(variant);
|
||||
}
|
||||
|
||||
return std::tuple<guint, bool>(std::round(volumed * 100.0), mute == 1);
|
||||
}
|
||||
|
||||
static void set_volume(gpointer api, guint32 id, guint voli, bool mute) {
|
||||
static void set_volume(gpointer api, guint32 id, int vol, bool mute) {
|
||||
if (set_volume_sig == 0)
|
||||
set_volume_sig = g_signal_lookup("set-volume", G_TYPE_FROM_INSTANCE(api));
|
||||
|
||||
vol = std::clamp(vol, 0, 150);
|
||||
|
||||
g_auto(GVariantBuilder) b = G_VARIANT_BUILDER_INIT(G_VARIANT_TYPE_VARDICT);
|
||||
g_variant_builder_add(&b, "{sv}", "volume", g_variant_new_double(((gdouble)voli)/100));
|
||||
g_variant_builder_add(&b, "{sv}", "volume", g_variant_new_double(((gdouble)vol)/100));
|
||||
g_variant_builder_add(&b, "{sv}", "mute", g_variant_new_boolean(mute ? TRUE : FALSE));
|
||||
|
||||
GVariant *variant = g_variant_builder_end(&b);
|
||||
|
||||
Reference in New Issue
Block a user