Public feed #600000

Miscellany

public text v1 · immutable
Raw Edit
·published 2007-07-02 15:47 UTC
rendered paste body
#include <glib.h>
#include <libhal.h>

int main(int argc, char **argv) {

    int i, num_udis;
    char **udis;
    LibHalContext *hal_ctx;
    DBusError error;
    char *parent_udi;


    dbus_error_init (&error);
    hal_ctx = libhal_ctx_new ();

    libhal_ctx_set_dbus_connection (hal_ctx, dbus_bus_get (DBUS_BUS_SYSTEM, &error));

    libhal_ctx_init (hal_ctx, &error);

    udis = libhal_find_device_by_capability (hal_ctx, "volume", &num_udis, &error);

    for (i = 0; i < num_udis; i++) {
        //g_printf ("%s\n", udis[i]);
        parent_udi = libhal_device_get_property_string (hal_ctx, udis[i], "info.parent", &error);
        //g_printf ("%s is the parent of %s\n", parent_udi, udis[i]);
        if (libhal_device_get_property_bool(hal_ctx, parent_udi, "storage.removable", &error) 
                || libhal_device_get_property_bool(hal_ctx, parent_udi, "storage.hotpluggable", &error)) {
            g_printf ("%s\n",
                     libhal_device_get_property_string (hal_ctx, udis[i], "volume.mount_point", &error));
        }


    }

    libhal_free_string_array (udis);

    return 0;

}