summaryrefslogtreecommitdiffstats
path: root/input/device.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2007-04-12 09:59:15 +0000
committerMarcel Holtmann <marcel@holtmann.org>2007-04-12 09:59:15 +0000
commite3aec1dd412fc0adb0587edf750979e4d18906b0 (patch)
tree67224966c44b0670b12f934b998cc167c518b94f /input/device.c
parent1f6bcd79a30ce899eec1245956c48876831439eb (diff)
Keep the device structure local
Diffstat (limited to 'input/device.c')
-rw-r--r--input/device.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/input/device.c b/input/device.c
index 5ebeb1ec..a29cc095 100644
--- a/input/device.c
+++ b/input/device.c
@@ -61,6 +61,29 @@
#define UPDOWN_ENABLED 1
+struct pending_connect {
+ DBusConnection *conn;
+ DBusMessage *msg;
+};
+
+struct fake_input {
+ GIOChannel *io;
+ int rfcomm; /* RFCOMM socket */
+ int uinput; /* uinput socket */
+ uint8_t ch; /* RFCOMM channel number */
+};
+
+struct device {
+ bdaddr_t src;
+ bdaddr_t dst;
+ char *name;
+ uint8_t major;
+ uint8_t minor;
+ struct hidp_connadd_req hidp; /* FIXME: Use dynamic alloc? */
+ struct fake_input *fake;
+ struct pending_connect *pending_connect;
+};
+
static struct device *device_new(bdaddr_t *src, bdaddr_t *dst)
{
struct device *idev;
@@ -1086,6 +1109,13 @@ int fake_input_register(DBusConnection *conn, bdaddr_t *src,
int input_device_unregister(DBusConnection *conn, const char *path)
{
DBusMessage *msg;
+ struct device *idev;
+
+ if (!dbus_connection_get_object_path_data(conn,
+ path, (void *) &idev))
+ return -1;
+
+ del_stored_device_info(&idev->src, &idev->dst);
if (!dbus_connection_unregister_object_path(conn, path)) {
error("Input device path unregister failed");
@@ -1105,3 +1135,21 @@ int input_device_unregister(DBusConnection *conn, const char *path)
return 0;
}
+
+int input_device_get_bdaddr(DBusConnection *conn, const char *path,
+ bdaddr_t *src, bdaddr_t *dst)
+{
+ struct device *idev;
+
+ if (!dbus_connection_get_object_path_data(conn, path,
+ (void *) &idev))
+ return -1;
+
+ if (!idev)
+ return -1;
+
+ bacpy(src, &idev->src);
+ bacpy(dst, &idev->dst);
+
+ return 0;
+}