summaryrefslogtreecommitdiff
path: root/lib/bluetooth/bluetooth.vala
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bluetooth/bluetooth.vala')
-rw-r--r--lib/bluetooth/bluetooth.vala14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/bluetooth/bluetooth.vala b/lib/bluetooth/bluetooth.vala
index 6eb6b76..02005c3 100644
--- a/lib/bluetooth/bluetooth.vala
+++ b/lib/bluetooth/bluetooth.vala
@@ -138,6 +138,9 @@ public class AstalBluetooth.Bluetooth : Object {
[CCode (cname="astal_bluetooth_iadapter_proxy_get_type")]
extern static GLib.Type get_iadapter_proxy_type();
+ [CCode (cname="astal_bluetooth_ibattery_proxy_get_type")]
+ extern static GLib.Type get_ibattery_proxy_type();
+
private Type manager_proxy_get_type(DBusObjectManagerClient _, string object_path, string? interface_name) {
if (interface_name == null)
return typeof(DBusObjectProxy);
@@ -147,6 +150,8 @@ public class AstalBluetooth.Bluetooth : Object {
return get_idevice_proxy_type();
case "org.bluez.Adapter1":
return get_iadapter_proxy_type();
+ case "org.bluez.Battery1":
+ return get_ibattery_proxy_type();
default:
return typeof(DBusProxy);
}
@@ -161,6 +166,15 @@ public class AstalBluetooth.Bluetooth : Object {
sync();
}
+ if (iface is IBattery) {
+ var battery = new Battery((IBattery)iface);
+ var device = _devices.lookup(iface.g_object_path);
+ if (device != null) {
+ device.set_battery(battery);
+ }
+ sync();
+ }
+
if (iface is IAdapter) {
var adapter = new Adapter((IAdapter)iface);
_adapters.set(adapter.object_path, adapter);