mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import * as Resources from "../resources";
|
|
import Gio from 'gi://Gio';
|
|
|
|
export class DbusBase {
|
|
dbus_proxy: any = null; // type: Gio.DbusProxy
|
|
connected = false;
|
|
xml_resource = "";
|
|
dbus_path = "";
|
|
|
|
constructor(resource: string, dbus_path: string) {
|
|
this.xml_resource = resource;
|
|
this.dbus_path = dbus_path;
|
|
}
|
|
|
|
async start() {
|
|
//@ts-ignore
|
|
log(`Starting ${this.dbus_path} dbus module`);
|
|
try {
|
|
const xml = Resources.File.DBus(this.xml_resource);
|
|
this.dbus_proxy = new Gio.DBusProxy.makeProxyWrapper(xml)(
|
|
Gio.DBus.system,
|
|
"org.asuslinux.Daemon",
|
|
this.dbus_path,
|
|
);
|
|
|
|
this.connected = true;
|
|
//@ts-ignore
|
|
log(`${this.dbus_path} client started successfully.`);
|
|
} catch (e) {
|
|
//@ts-ignore
|
|
logError(`${this.xml_resource} dbus init failed!`, e);
|
|
}
|
|
}
|
|
|
|
async stop() {
|
|
//@ts-ignore
|
|
log(`Stopping ${this.xml_resource} dbus module`);
|
|
|
|
if (this.connected) {
|
|
this.dbus_proxy.destroy();
|
|
this.connected = false;
|
|
this.dbus_proxy = null;
|
|
}
|
|
}
|
|
|
|
isRunning(): boolean {
|
|
return this.connected;
|
|
}
|
|
} |