Hi,
i use the libdbus and libhal to mount the devices. but
without glib.
first i initialized the hal and connect to dbus. and
registed add and remove callback function.
there is some code .
____________________________code_________________________
hal_ctx = hal_init();
if (hal_ctx ==
NULL)
return;
mount_all (hal_ctx);
int
fd=-1;
dbus_connection_get_unix_fd(dbus_connection,
&fd);
// if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0) {
// perror("fcntl");
// }
fd_set rfds;
int
retval;
struct timeval tv;
while (m_pTvm->bRun)
{
FD_ZERO(&rfds);
FD_SET(fd,
&rfds);
tv.tv_sec = 0;
tv.tv_usec =
0;
retval = select(fd+1, &rfds, NULL, NULL,
&tv);
if (retval == -1) { //
quit
continue;
//break;
}
do
{
printf("----------------------dbus_connection_read_write_dispatch----------------------\n");
dbus_connection_read_write_dispatch(dbus_connection,
0);
} while (dbus_connection_get_dispatch_status(dbus_connection)
== DBUS_DISPATCH_DATA_REMAINS);
/*
// non blocking
read of the next available
message
dbus_connection_read_write(dbus_connection,
-1);
while (dbus_connection_dispatch(dbus_connection) ==
DBUS_DISPATCH_DATA_REMAINS);
*/
dbus_connection_flush(dbus_connection);
}
____________________________code_________________________
when I insert the cd-rom, the system mounted cd-rom
some times ,but not each times.
i'm look forward your advices. thanks.
George Tung.
2009-9-9
_______________________________________________
hal mailing list
hal@...
http://lists.freedesktop.org/mailman/listinfo/hal