#include <hal/libhal.h> #include <stdio.h> #include <string.h> //void set_up(LibHalContext*); void _device_added(LibHalContext*, const char*); void _device_removed(LibHalContext*, const char*); void _property_modified(LibHalContext*, const char*, const char*, dbus_bool_t, dbus_bool_t); int main(int argc, char *argv[]){ printf("Starting hal\n"); LibHalContext *ctx = libhal_ctx_new(); DBusConnection *dbus; dbus = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); if (dbus == NULL) printf("ERROR CONNECTION DBUS.\n"); else printf("Successfully connected to DBus.\n"); printf("connecting hal to dbus.\n"); libhal_ctx_set_dbus_connection(ctx, dbus); libhal_ctx_set_device_added(ctx, _device_added); libhal_ctx_set_device_removed(ctx, _device_removed); libhal_ctx_init(ctx, NULL); printf("Watching devices...\n"); libhal_device_property_watch_all(ctx, NULL); return 0; } void _device_added(LibHalContext *ctx, const char *udi){ printf("UDI: %s\n", udi); if (strcmp(udi, "/org/freedesktop/Hal/devices/usb_device_1d6b_2_musb_hdrc") == 0){ printf("Usb added.\n"); }else printf("Unidentified device added.\n"); } void _device_removed(LibHalContext *ctx, const char *udi){ printf("UDI: %s\n", udi); if (strcmp(udi, "/org/freedesktop/Hal/devices/usb_device_1d6b_2_musb_hdrc") == 0){ printf("Usb removed.\n"); }else printf("Unidentified device removed.\n"); }