int main(int argc, char *argv[]) { GtkStatusIcon *statusicon; DBusGConnection *conn; DBusGProxy *adapter, *device; GError *error = NULL; bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); gtk_init(&argc, &argv); gtk_window_set_default_icon_name("bluetooth"); conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); if (error != NULL) { g_printerr("Connecting to system bus failed: %s\n", error->message); g_error_free(error); return 1; } set_icon (TRUE); statusicon = init_notification(); g_signal_connect(statusicon, "activate", G_CALLBACK(activate_callback), NULL); setup_agents(); adapter = dbus_g_proxy_new_for_name(conn, "org.bluez", "/hci0", "org.bluez.Adapter"); device = dbus_g_proxy_new_from_proxy(adapter, "/hci0/dev_11_22_33_44_55_66", "org.bluez.Device"); //display_dialog(adapter, device, "Test (00:11:22:33:44:55)", "123456", 0, NULL); pin_dialog(adapter, device, "Test", "'Test' (00:11:22:33:44:55)", FALSE, NULL); confirm_dialog(adapter, device, "Test", "'Test' (00:11:22:33:44:55)", "123456", NULL); auth_dialog(adapter, device, "Test", "'Test' (00:11:22:33:44:55)", "UUID", NULL); gtk_main(); g_object_unref(device); g_object_unref(adapter); cleanup_notification(); cleanup_agents(); dbus_g_connection_unref(conn); return 0; }
static void playing_entry_changed_cb (RBShellPlayer *player, RhythmDBEntry *entry, RBNotificationPlugin *plugin) { if (entry == NULL) { cleanup_notification (plugin); } else { update_current_playing_data (plugin, entry); notify_playing_entry (plugin, FALSE); } }
static void impl_deactivate (PeasActivatable *bplugin) { RBNotificationPlugin *plugin; RBShell *shell; plugin = RB_NOTIFICATION_PLUGIN (bplugin); g_object_get (plugin, "object", &shell, NULL); cleanup_notification (plugin); /* disconnect signal handlers used to update the icon */ if (plugin->shell_player != NULL) { g_signal_handlers_disconnect_by_func (plugin->shell_player, playing_entry_changed_cb, plugin); g_object_unref (plugin->shell_player); plugin->shell_player = NULL; } if (plugin->db != NULL) { g_signal_handlers_disconnect_by_func (plugin->db, db_stream_metadata_cb, plugin); g_object_unref (plugin->db); plugin->db = NULL; } g_signal_handlers_disconnect_by_func (shell, shell_notify_playing_cb, plugin); g_signal_handlers_disconnect_by_func (shell, shell_notify_custom_cb, plugin); g_object_unref (plugin->art_store); plugin->art_store = NULL; /* forget what's playing */ if (plugin->notify_art_key) rb_ext_db_key_free (plugin->notify_art_key); g_free (plugin->current_title); g_free (plugin->current_album_and_artist); g_free (plugin->notify_art_path); plugin->notify_art_key = NULL; plugin->current_title = NULL; plugin->current_album_and_artist = NULL; plugin->notify_art_path = NULL; g_object_unref (shell); }
int main(int argc, char *argv[]) { GApplication *app; #ifdef HAVE_APP_INDICATOR AppIndicator *indicator; #else GtkStatusIcon *statusicon; #endif /* HAVE_APP_INDICATOR */ GtkWidget *menu; GOptionContext *context; GError *error = NULL; bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); g_type_init (); /* Parse command-line options */ context = g_option_context_new (N_("- Bluetooth applet")); g_option_context_set_translation_domain (context, GETTEXT_PACKAGE); g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (TRUE)); if (g_option_context_parse (context, &argc, &argv, &error) == FALSE) { g_print (_("%s\nRun '%s --help' to see a full list of available command line options.\n"), error->message, argv[0]); g_error_free (error); return 1; } if (option_debug == FALSE) { GError *error = NULL; app = g_application_new ("org.cinnamon.Bluetooth.applet", G_APPLICATION_FLAGS_NONE); if (!g_application_register (app, NULL, &error)) { g_object_unref (app); g_warning ("%s", error->message); g_error_free (error); return 1; } if (g_application_get_is_remote (app)) { g_object_unref (app); g_warning ("Applet is already running, exiting"); return 0; } } else { app = NULL; } g_set_application_name(_("Bluetooth Applet")); gtk_window_set_default_icon_name("bluetooth"); applet = g_object_new (BLUETOOTH_TYPE_APPLET, NULL); g_signal_connect (G_OBJECT (applet), "notify::killswitch-state", G_CALLBACK (killswitch_state_changed), NULL); menu = create_popupmenu(); #ifdef HAVE_APP_INDICATOR indicator = init_notification(); app_indicator_set_menu(indicator, GTK_MENU(menu)); app_indicator_set_title(indicator, _("Bluetooth")); gsettings = g_settings_new (BLUETOOTH_INDICATOR_GSETTINGS_SCHEMA_ID); g_signal_connect (gsettings, "changed::" GSETTINGS_VISIBLE_KEY, G_CALLBACK(update_icon_visibility), NULL); #else statusicon = init_notification(); #endif /* HAVE_APP_INDICATOR */ g_signal_connect (G_OBJECT (applet), "devices-changed", G_CALLBACK (update_device_list), NULL); g_signal_connect (G_OBJECT (applet), "notify::discoverable", G_CALLBACK (update_discoverability), NULL); g_signal_connect (G_OBJECT (applet), "notify::show-full-menu", G_CALLBACK (update_menu_items), NULL); killswitch_state_changed ((GObject*) applet, NULL, NULL); update_menu_items ((GObject*) applet, NULL, NULL); update_discoverability ((GObject*) applet, NULL, NULL); update_device_list (applet, NULL); update_icon_visibility(); #ifndef HAVE_APP_INDICATOR g_signal_connect(statusicon, "activate", G_CALLBACK(activate_callback), menu); g_signal_connect(statusicon, "popup-menu", G_CALLBACK(popup_callback), menu); #endif /* HAVE_APP_INDICATOR */ setup_agents(applet); gtk_main(); gtk_widget_destroy(menu); cleanup_notification(); g_object_unref(applet); if (app != NULL) g_object_unref (app); return 0; }
int main(int argc, char *argv[]) { UniqueApp *app; GtkStatusIcon *statusicon; GtkWidget *menu; GOptionContext *context; GError *error = NULL; bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); #if !GLIB_CHECK_VERSION (2, 36, 0) g_type_init (); #endif /* Parse command-line options */ context = g_option_context_new (N_("- Bluetooth applet")); g_option_context_set_translation_domain (context, GETTEXT_PACKAGE); g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (TRUE)); if (g_option_context_parse (context, &argc, &argv, &error) == FALSE) { g_print (_("%s\nRun '%s --help' to see a full list of available command line options.\n"), error->message, argv[0]); g_error_free (error); return 1; } if (option_debug == FALSE) { app = unique_app_new ("org.mate.Bluetooth.applet", NULL); if (unique_app_is_running (app)) { gdk_notify_startup_complete (); g_warning ("Applet is already running, exiting"); return 0; } } else { app = NULL; } g_set_application_name(_("Bluetooth Applet")); gtk_window_set_default_icon_name("bluetooth"); killswitch = bluetooth_killswitch_new (); g_signal_connect (G_OBJECT (killswitch), "state-changed", G_CALLBACK (killswitch_state_changed), NULL); menu = create_popupmenu(); client = bluetooth_client_new(); devices_model = bluetooth_client_get_model(client); g_signal_connect(G_OBJECT(devices_model), "row-inserted", G_CALLBACK(device_added), NULL); g_signal_connect(G_OBJECT(devices_model), "row-deleted", G_CALLBACK(device_removed), NULL); g_signal_connect (G_OBJECT (devices_model), "row-changed", G_CALLBACK (device_changed), NULL); /* Set the default adapter */ device_changed (devices_model, NULL, NULL, NULL); if (bluetooth_killswitch_has_killswitches (killswitch) != FALSE) { killswitch_state_changed (killswitch, bluetooth_killswitch_get_state (killswitch)); } /* Make sure all the unblocked adapters are powered, * so as to avoid seeing unpowered, but unblocked * devices */ bluetooth_set_adapter_powered (); settings = g_settings_new (SCHEMA_NAME); show_icon_pref = g_settings_get_boolean (settings, PREF_SHOW_ICON); g_signal_connect (G_OBJECT (settings), "changed::" PREF_SHOW_ICON, G_CALLBACK (show_icon_changed), NULL); statusicon = init_notification(); update_icon_visibility(); g_signal_connect(statusicon, "activate", G_CALLBACK(activate_callback), menu); g_signal_connect(statusicon, "popup-menu", G_CALLBACK(popup_callback), menu); setup_agents(); gtk_main(); gtk_widget_destroy(menu); g_object_unref(settings); cleanup_agents(); cleanup_notification(); g_object_unref(devices_model); g_object_unref(client); if (app != NULL) g_object_unref (app); return 0; }