View Single Post
jaeezzy's Avatar
Posts: 664 | Thanked: 160 times | Joined on Jul 2008 @ Australia
#5
Thanks for the tips guys. However, I came across lshal and here's my effort so far without any luck so plz help me if I'm not on the right track. I would be very grateful. Thanks.

Code:
#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");
}