meta: restructure project for a modular architechture for more interfaces

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I16f88f649bddad572e0d44cee7e0edec6a6a6964
This commit is contained in:
raf 2026-04-13 11:23:40 +03:00
commit 087f28d726
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
22 changed files with 2494 additions and 0 deletions

40
include/dbus-common.h Normal file
View file

@ -0,0 +1,40 @@
#ifndef DBUS_COMMON_H
#define DBUS_COMMON_H
#include "inhibit-interface.h"
#include <stdarg.h>
#include <systemd/sd-bus.h>
typedef enum {
DBUS_MODE_NONE,
DBUS_MODE_IMPLEMENT, // we own the D-Bus name
DBUS_MODE_MONITOR // we monitor via BecomeMonitor
} DBusMode;
typedef struct {
sd_bus *bus;
DBusMode mode;
char *bus_name;
char *object_path;
char *interface_name;
sd_bus_slot *slot;
InhibitInterface *parent;
} DBusService;
int dbus_service_init(DBusService *svc, const char *bus_name,
const char *object_path, const char *interface_name);
void dbus_service_cleanup(DBusService *svc);
int dbus_service_detect_mode(DBusService *svc);
int dbus_service_claim_name(DBusService *svc);
int dbus_service_become_monitor(DBusService *svc, const char **match_rules,
int num_rules);
int dbus_service_poll(DBusService *svc);
int dbus_parse_inhibit_request(sd_bus_message *m, char **app_name,
char **reason);
int dbus_send_signal(DBusService *svc, const char *signal_name,
const char *signature, ...);
#endif