diff --git a/tools/obexctl.c b/tools/obexctl.c
index 1a47710..6486659 100644
--- a/tools/obexctl.c
+++ b/tools/obexctl.c
#define PROMPT_OFF "[obex]# "
#define OBEX_SESSION_INTERFACE "org.bluez.obex.Session1"
+#define OBEX_TRANSFER_INTERFACE "org.bluez.obex.Transfer1"
static GMainLoop *main_loop;
static DBusConnection *dbus_conn;
static GDBusProxy *default_session;
static GSList *sessions = NULL;
+static GSList *transfers = NULL;
static void connect_handler(DBusConnection *connection, void *user_data)
{
print_proxy(proxy, "Session", COLORED_NEW);
}
+static void transfer_added(GDBusProxy *proxy)
+{
+ transfers = g_slist_append(transfers, proxy);
+
+ print_proxy(proxy, "Transfer", COLORED_NEW);
+}
+
static void proxy_added(GDBusProxy *proxy, void *user_data)
{
const char *interface;
if (!strcmp(interface, OBEX_SESSION_INTERFACE))
session_added(proxy);
+ else if (!strcmp(interface, OBEX_TRANSFER_INTERFACE))
+ transfer_added(proxy);
}
static void session_removed(GDBusProxy *proxy)
sessions = g_slist_remove(sessions, proxy);
}
+static void transfer_removed(GDBusProxy *proxy)
+{
+ print_proxy(proxy, "Transfer", COLORED_DEL);
+
+ transfers = g_slist_remove(transfers, proxy);
+}
+
static void proxy_removed(GDBusProxy *proxy, void *user_data)
{
const char *interface;
if (!strcmp(interface, OBEX_SESSION_INTERFACE))
session_removed(proxy);
+ else if (!strcmp(interface, OBEX_TRANSFER_INTERFACE))
+ transfer_removed(proxy);
}
static void print_iter(const char *label, const char *name,
g_free(str);
}
+static void transfer_property_changed(GDBusProxy *proxy, const char *name,
+ DBusMessageIter *iter)
+{
+ char *str;
+
+ str = proxy_description(proxy, "Transfer", COLORED_CHG);
+ print_iter(str, name, iter);
+ g_free(str);
+}
+
static void property_changed(GDBusProxy *proxy, const char *name,
DBusMessageIter *iter, void *user_data)
{
if (!strcmp(interface, OBEX_SESSION_INTERFACE))
session_property_changed(proxy, name, iter);
+ else if (!strcmp(interface, OBEX_TRANSFER_INTERFACE))
+ transfer_property_changed(proxy, name, iter);
}
int main(int argc, char *argv[])