diff options
| author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-09-04 12:18:28 -0300 | 
|---|---|---|
| committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-09-04 12:18:28 -0300 | 
| commit | ddb4d5c0e46f6fd606e1d4123447c4a8ce747b3d (patch) | |
| tree | 2b9fdbb8e29864030d1eafb9ac38e2ca020a36d3 /input/manager.c | |
| parent | 9304400a8efe5b59c4bcd88fda9083b4a5cf7b93 (diff) | |
Input: Converting hid server to adapter driver structure
Diffstat (limited to 'input/manager.c')
| -rw-r--r-- | input/manager.c | 41 | 
1 files changed, 35 insertions, 6 deletions
| diff --git a/input/manager.c b/input/manager.c index dfd2da3a..a2a22762 100644 --- a/input/manager.c +++ b/input/manager.c @@ -171,7 +171,7 @@ static void input_remove(struct btd_device *device, const char *uuid)  	input_device_unregister(path, uuid);  } -static int hid_probe(struct btd_device *device, GSList *records) +static int hid_device_probe(struct btd_device *device, GSList *records)  {  	struct btd_adapter *adapter = device_get_adapter(device);  	const gchar *path = device_get_path(device); @@ -206,7 +206,7 @@ done:  				HID_UUID, hidp.idle_to);  } -static void hid_remove(struct btd_device *device) +static void hid_device_remove(struct btd_device *device)  {  	input_remove(device, HID_UUID);  } @@ -252,11 +252,33 @@ static void headset_remove(struct btd_device *device)  	input_remove(device, HSP_HS_UUID);  } +static int hid_server_probe(struct btd_adapter *adapter) +{ +	const char *addr; +	bdaddr_t src; + +	addr = adapter_get_address(adapter); +	str2ba(addr, &src); + +	return server_start(&src); +} + +static void hid_server_remove(struct btd_adapter *adapter) +{ +	const char *addr; +	bdaddr_t src; + +	addr = adapter_get_address(adapter); +	str2ba(addr, &src); + +	server_stop(&src); +} +  static struct btd_device_driver input_hid_driver = {  	.name	= "input-hid",  	.uuids	= BTD_UUIDS(HID_UUID), -	.probe	= hid_probe, -	.remove	= hid_remove, +	.probe	= hid_device_probe, +	.remove	= hid_device_remove,  };  static struct btd_device_driver input_headset_driver = { @@ -266,6 +288,12 @@ static struct btd_device_driver input_headset_driver = {  	.remove	= headset_remove,  }; +static struct btd_adapter_driver input_server_driver = { +	.name   = "input-server", +	.probe  = hid_server_probe, +	.remove = hid_server_remove, +}; +  int input_manager_init(DBusConnection *conn, GKeyFile *config)  {  	GError *err = NULL; @@ -281,7 +309,7 @@ int input_manager_init(DBusConnection *conn, GKeyFile *config)  	connection = dbus_connection_ref(conn); -	server_start(); +	btd_register_adapter_driver(&input_server_driver);  	btd_register_device_driver(&input_hid_driver);  	btd_register_device_driver(&input_headset_driver); @@ -291,7 +319,8 @@ int input_manager_init(DBusConnection *conn, GKeyFile *config)  void input_manager_exit(void)  { -	server_stop(); + +	btd_unregister_adapter_driver(&input_server_driver);  	btd_unregister_device_driver(&input_hid_driver);  	btd_unregister_device_driver(&input_headset_driver); | 
