static void on_bus_acquired (GDBusConnection *connection, const gchar *name, gpointer user_data) { ObjectSkeleton *object; //g_print ("Acquired a message bus connection: %s\n",name); cmdline *cmd = user_data; if (cmd->argc < 2) { g_print("No objects created. Put object name(s) on command line\n"); return; } manager = g_dbus_object_manager_server_new (dbus_object_path); int i=0; gchar *s; s = g_strdup_printf ("%s/%s",dbus_object_path,cmd->argv[1]); object = object_skeleton_new (s); g_free (s); Button* button = button_skeleton_new (); object_skeleton_set_button (object, button); g_object_unref (button); //define method callbacks g_signal_connect (button, "handle-is-on", G_CALLBACK (on_is_on), NULL); /* user_data */ g_signal_connect (button, "handle-sim-button-press", G_CALLBACK (on_button_press), NULL); /* user_data */ /* Export the object (@manager takes its own reference to @object) */ g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (object); /* Export all objects */ g_dbus_object_manager_server_set_connection (manager, connection); // get gpio device paths int rc = GPIO_OK; do { rc = gpio_init(connection,&gpio_button); if (rc != GPIO_OK) { break; } rc = gpio_open_interrupt(&gpio_button,on_button_interrupt,object); if (rc != GPIO_OK) { break; } } while(0); if (rc != GPIO_OK) { printf("ERROR PowerButton: GPIO setup (rc=%d)\n",rc); } }
static void on_bus_acquired(GDBusConnection *connection, const gchar *name, gpointer object) { int rc = GPIO_OK; manager = g_dbus_object_manager_server_new(dbus_object_path); ControlCheckstop* control_checkstop = control_checkstop_skeleton_new(); object_skeleton_set_control_checkstop(object, control_checkstop); g_object_unref(control_checkstop); g_dbus_object_manager_server_set_connection(manager, connection); rc = gpio_init(connection, &checkstop); if (rc == GPIO_OK) { rc = gpio_open_interrupt(&checkstop, on_checkstop_interrupt, connection); } if (rc != GPIO_OK) { printf("ERROR Checkstop: GPIO setup (rc=%d)\n", rc); } }