|
Packit Service |
fc05fa |
/*
|
|
Packit Service |
fc05fa |
*
|
|
Packit Service |
fc05fa |
* BlueZ - Bluetooth protocol stack for Linux
|
|
Packit Service |
fc05fa |
*
|
|
Packit Service |
fc05fa |
* Copyright (C) 2005-2008 Marcel Holtmann <marcel@holtmann.org>
|
|
Packit Service |
fc05fa |
*
|
|
Packit Service |
fc05fa |
*
|
|
Packit Service |
fc05fa |
* This program is free software; you can redistribute it and/or modify
|
|
Packit Service |
fc05fa |
* it under the terms of the GNU General Public License as published by
|
|
Packit Service |
fc05fa |
* the Free Software Foundation; either version 2 of the License, or
|
|
Packit Service |
fc05fa |
* (at your option) any later version.
|
|
Packit Service |
fc05fa |
*
|
|
Packit Service |
fc05fa |
* This program is distributed in the hope that it will be useful,
|
|
Packit Service |
fc05fa |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
fc05fa |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Packit Service |
fc05fa |
* GNU General Public License for more details.
|
|
Packit Service |
fc05fa |
*
|
|
Packit Service |
fc05fa |
* You should have received a copy of the GNU General Public License
|
|
Packit Service |
fc05fa |
* along with this program; if not, write to the Free Software
|
|
Packit Service |
fc05fa |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
Packit Service |
fc05fa |
*
|
|
Packit Service |
fc05fa |
*/
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
#ifdef HAVE_CONFIG_H
|
|
Packit Service |
fc05fa |
#include <config.h>
|
|
Packit Service |
fc05fa |
#endif
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
#include <gtk/gtk.h>
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
#include "bluetooth-client.h"
|
|
Packit Service |
fc05fa |
#include "bluetooth-client-private.h"
|
|
Packit Service |
fc05fa |
#include "gnome-bluetooth-enum-types.h"
|
|
Packit Service |
fc05fa |
#include "bluetooth-utils.h"
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static BluetoothClient *client;
|
|
Packit Service |
fc05fa |
static GtkTreeSelection *selection;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void delete_callback(GtkWidget *window, GdkEvent *event,
|
|
Packit Service |
fc05fa |
gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
gtk_widget_destroy(window);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_main_quit();
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void scan_callback(GtkWidget *button, gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
g_object_set (G_OBJECT (client), "default-adapter-discovering", TRUE, NULL);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void select_callback(GtkTreeSelection *selection, gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
GtkTreeModel *model;
|
|
Packit Service |
fc05fa |
GtkTreeIter iter;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
if (gtk_tree_selection_get_selected(selection, &model, &iter) == FALSE) {
|
|
Packit Service |
fc05fa |
g_print ("No devices selected");
|
|
Packit Service |
fc05fa |
return;
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
bluetooth_client_dump_device (model, &iter);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void row_inserted(GtkTreeModel *model, GtkTreePath *path,
|
|
Packit Service |
fc05fa |
GtkTreeIter *iter, gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
GtkTreeView *tree = user_data;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_expand_all(tree);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void proxy_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
|
|
Packit Service |
fc05fa |
GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
GDBusProxy *proxy;
|
|
Packit Service |
fc05fa |
gchar *path;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_model_get(model, iter, BLUETOOTH_COLUMN_PROXY, &proxy, -1);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
if (proxy == NULL) {
|
|
Packit Service |
fc05fa |
g_object_set(cell, "text", "", NULL);
|
|
Packit Service |
fc05fa |
return;
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
path = g_path_get_basename(g_dbus_proxy_get_object_path(proxy));
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_set(cell, "text", path, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_free(path);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_unref(proxy);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void type_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
|
|
Packit Service |
fc05fa |
GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
guint type;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_model_get(model, iter, BLUETOOTH_COLUMN_TYPE, &type, -1);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_set(cell, "text", bluetooth_type_to_string(type), NULL);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void
|
|
Packit Service |
fc05fa |
legacypairing_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
|
|
Packit Service |
fc05fa |
GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
gint legacypairing;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_model_get(model, iter, BLUETOOTH_COLUMN_LEGACYPAIRING, &legacypairing, -1);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
switch (legacypairing) {
|
|
Packit Service |
fc05fa |
case -1:
|
|
Packit Service |
fc05fa |
g_object_set(cell, "text", "UNSET", NULL);
|
|
Packit Service |
fc05fa |
break;
|
|
Packit Service |
fc05fa |
case 0:
|
|
Packit Service |
fc05fa |
g_object_set(cell, "text", "FALSE", NULL);
|
|
Packit Service |
fc05fa |
break;
|
|
Packit Service |
fc05fa |
default:
|
|
Packit Service |
fc05fa |
g_object_set(cell, "text", "TRUE", NULL);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void uuids_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
|
|
Packit Service |
fc05fa |
GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
char **uuids;
|
|
Packit Service |
fc05fa |
char *str;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_model_get(model, iter, BLUETOOTH_COLUMN_UUIDS, &uuids, -1);
|
|
Packit Service |
fc05fa |
if (uuids == NULL)
|
|
Packit Service |
fc05fa |
str = NULL;
|
|
Packit Service |
fc05fa |
else
|
|
Packit Service |
fc05fa |
str = g_strjoinv (", ", uuids);
|
|
Packit Service |
fc05fa |
g_strfreev (uuids);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_set(cell, "text", str, NULL);
|
|
Packit Service |
fc05fa |
g_free (str);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void create_window(void)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
GtkWidget *window;
|
|
Packit Service |
fc05fa |
GtkWidget *vbox;
|
|
Packit Service |
fc05fa |
GtkWidget *toolbar;
|
|
Packit Service |
fc05fa |
GtkToolItem *item;
|
|
Packit Service |
fc05fa |
GtkWidget *scrolled;
|
|
Packit Service |
fc05fa |
GtkWidget *tree;
|
|
Packit Service |
fc05fa |
GtkTreeModel *model;
|
|
Packit Service |
fc05fa |
GtkTreeModel *sorted;
|
|
Packit Service |
fc05fa |
GtkWidget *statusbar;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
|
Packit Service |
fc05fa |
gtk_window_set_title(GTK_WINDOW(window), "Test client");
|
|
Packit Service |
fc05fa |
gtk_window_set_icon_name(GTK_WINDOW(window), "bluetooth");
|
|
Packit Service |
fc05fa |
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
|
|
Packit Service |
fc05fa |
gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
|
|
Packit Service |
fc05fa |
g_signal_connect(G_OBJECT(window), "delete-event",
|
|
Packit Service |
fc05fa |
G_CALLBACK(delete_callback), NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
|
Packit Service |
fc05fa |
gtk_container_add(GTK_CONTAINER(window), vbox);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
toolbar = gtk_toolbar_new();
|
|
Packit Service |
fc05fa |
gtk_toolbar_set_show_arrow(GTK_TOOLBAR(toolbar), FALSE);
|
|
Packit Service |
fc05fa |
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, TRUE, 0);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
item = gtk_tool_button_new (gtk_image_new_from_icon_name ("view-refresh", GTK_ICON_SIZE_LARGE_TOOLBAR), NULL);
|
|
Packit Service |
fc05fa |
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
|
|
Packit Service |
fc05fa |
g_signal_connect(item, "clicked", G_CALLBACK(scan_callback), NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
scrolled = gtk_scrolled_window_new(NULL, NULL);
|
|
Packit Service |
fc05fa |
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
|
|
Packit Service |
fc05fa |
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
|
Packit Service |
fc05fa |
gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
tree = gtk_tree_view_new();
|
|
Packit Service |
fc05fa |
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE);
|
|
Packit Service |
fc05fa |
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE);
|
|
Packit Service |
fc05fa |
gtk_widget_grab_focus(GTK_WIDGET(tree));
|
|
Packit Service |
fc05fa |
gtk_container_add(GTK_CONTAINER(scrolled), tree);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Proxy", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
proxy_to_text, NULL, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Address", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_ADDRESS, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Alias", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_ALIAS, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Name", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_NAME, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Type", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
type_to_text, NULL, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Icon", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_ICON, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Default", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_DEFAULT, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Paired", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_PAIRED, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Trusted", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_TRUSTED, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Connected", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_CONNECTED, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Legacy Pairing", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
legacypairing_to_text, NULL, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Discoverable", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_DISCOVERABLE, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Discovering", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_DISCOVERING, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"Powered", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
"text", BLUETOOTH_COLUMN_POWERED, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
|
|
Packit Service |
fc05fa |
"UUIDs", gtk_cell_renderer_text_new(),
|
|
Packit Service |
fc05fa |
uuids_to_text, NULL, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
model = bluetooth_client_get_model(client);
|
|
Packit Service |
fc05fa |
sorted = gtk_tree_model_sort_new_with_model(model);
|
|
Packit Service |
fc05fa |
gtk_tree_view_set_model(GTK_TREE_VIEW(tree), sorted);
|
|
Packit Service |
fc05fa |
g_signal_connect(G_OBJECT(model), "row-inserted",
|
|
Packit Service |
fc05fa |
G_CALLBACK(row_inserted), tree);
|
|
Packit Service |
fc05fa |
g_object_unref(sorted);
|
|
Packit Service |
fc05fa |
g_object_unref(model);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
|
|
Packit Service |
fc05fa |
gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
|
|
Packit Service |
fc05fa |
g_signal_connect(G_OBJECT(selection), "changed",
|
|
Packit Service |
fc05fa |
G_CALLBACK(select_callback), NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_tree_view_expand_all(GTK_TREE_VIEW(tree));
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
statusbar = gtk_statusbar_new();
|
|
Packit Service |
fc05fa |
gtk_box_pack_start(GTK_BOX(vbox), statusbar, FALSE, FALSE, 0);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_widget_show_all(window);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void
|
|
Packit Service |
fc05fa |
default_adapter_changed (GObject *gobject,
|
|
Packit Service |
fc05fa |
GParamSpec *pspec,
|
|
Packit Service |
fc05fa |
gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
char *adapter;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_get (G_OBJECT (gobject), "default-adapter", &adapter, NULL);
|
|
Packit Service |
fc05fa |
g_message ("Default adapter changed: %s", adapter ? adapter : "(none)");
|
|
Packit Service |
fc05fa |
g_free (adapter);
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void
|
|
Packit Service |
fc05fa |
default_adapter_powered_changed (GObject *gobject,
|
|
Packit Service |
fc05fa |
GParamSpec *pspec,
|
|
Packit Service |
fc05fa |
gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
gboolean powered;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_get (G_OBJECT (gobject), "default-adapter-powered", &powered, NULL);
|
|
Packit Service |
fc05fa |
g_message ("Default adapter is %s", powered ? "powered" : "switched off");
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
static void
|
|
Packit Service |
fc05fa |
default_adapter_discovering_changed (GObject *gobject,
|
|
Packit Service |
fc05fa |
GParamSpec *pspec,
|
|
Packit Service |
fc05fa |
gpointer user_data)
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
gboolean discovering;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_get (G_OBJECT (gobject), "default-adapter-discovering", &discovering, NULL);
|
|
Packit Service |
fc05fa |
g_message ("Default adapter is %s", discovering ? "discovering" : "not discovering");
|
|
Packit Service |
fc05fa |
}
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
int main(int argc, char *argv[])
|
|
Packit Service |
fc05fa |
{
|
|
Packit Service |
fc05fa |
GLogLevelFlags fatal_mask;
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_init(&argc, &argv);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK);
|
|
Packit Service |
fc05fa |
fatal_mask |= G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL;
|
|
Packit Service |
fc05fa |
g_log_set_always_fatal (fatal_mask);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
client = bluetooth_client_new();
|
|
Packit Service |
fc05fa |
g_signal_connect (G_OBJECT (client), "notify::default-adapter",
|
|
Packit Service |
fc05fa |
G_CALLBACK (default_adapter_changed), NULL);
|
|
Packit Service |
fc05fa |
g_signal_connect (G_OBJECT (client), "notify::default-adapter-powered",
|
|
Packit Service |
fc05fa |
G_CALLBACK (default_adapter_powered_changed), NULL);
|
|
Packit Service |
fc05fa |
g_signal_connect (G_OBJECT (client), "notify::default-adapter-discovering",
|
|
Packit Service |
fc05fa |
G_CALLBACK (default_adapter_discovering_changed), NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
default_adapter_changed (G_OBJECT (client), NULL, NULL);
|
|
Packit Service |
fc05fa |
default_adapter_powered_changed (G_OBJECT (client), NULL, NULL);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
create_window();
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
gtk_main();
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
g_object_unref(client);
|
|
Packit Service |
fc05fa |
|
|
Packit Service |
fc05fa |
return 0;
|
|
Packit Service |
fc05fa |
}
|