forked from enlightenment/enlightenment
e/bluez4: Add type to end of found device item
Patch by: Lucas Joia <lucasjoia@profusion.mobi> SVN revision: 82205
This commit is contained in:
parent
b91eefb2b8
commit
4061ca75e1
|
@ -74,9 +74,9 @@ _ebluez4_cb_search(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
|
||||
evas = e_win_evas_get(dialog->win);
|
||||
|
||||
inst->found_list = e_widget_ilist_add(evas, 0, 0, NULL);
|
||||
inst->found_list = e_widget_ilist_add(evas, 100, 0, NULL);
|
||||
|
||||
e_dialog_content_set(dialog, inst->found_list, 250, 220);
|
||||
e_dialog_content_set(dialog, inst->found_list, 300, 200);
|
||||
|
||||
e_dialog_show(dialog);
|
||||
|
||||
|
@ -496,6 +496,7 @@ void
|
|||
ebluez4_update_inst(Evas_Object *dest, Eina_List *src, Instance *inst)
|
||||
{
|
||||
Device *dev;
|
||||
Evas_Object *o_type;
|
||||
Adapter *adap;
|
||||
Eina_List *iter;
|
||||
|
||||
|
@ -506,8 +507,13 @@ ebluez4_update_inst(Evas_Object *dest, Eina_List *src, Instance *inst)
|
|||
{
|
||||
EINA_LIST_FOREACH(src, iter, dev)
|
||||
if (!dev->paired)
|
||||
e_widget_ilist_append(dest, NULL, dev->name, _ebluez4_cb_pair, inst,
|
||||
dev->addr);
|
||||
{
|
||||
o_type = e_widget_label_add(evas_object_evas_get(dest),
|
||||
dev->type);
|
||||
e_widget_ilist_append_full(dest, NULL, o_type, dev->name,
|
||||
_ebluez4_cb_pair, inst, dev->addr);
|
||||
|
||||
}
|
||||
}
|
||||
else if (src == ctxt->adapters)
|
||||
{
|
||||
|
@ -516,8 +522,8 @@ ebluez4_update_inst(Evas_Object *dest, Eina_List *src, Instance *inst)
|
|||
_ebluez4_cb_adap_settings, adap, NULL);
|
||||
}
|
||||
|
||||
e_widget_ilist_thaw(dest);
|
||||
e_widget_ilist_go(dest);
|
||||
e_widget_ilist_thaw(dest);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -35,6 +35,36 @@ _adap_path_cmp(const void *d1, const void *d2)
|
|||
return strcmp(edbus_object_path_get(adap->obj), path);
|
||||
}
|
||||
|
||||
static const char *
|
||||
_parse_icon_to_type(const char *icon)
|
||||
{
|
||||
if (!strcmp(icon, "audio-card"))
|
||||
return eina_stringshare_add("Audio");
|
||||
else if (!strcmp(icon, "camera-photo"))
|
||||
return eina_stringshare_add("Photo Camera");
|
||||
else if (!strcmp(icon, "camera-video"))
|
||||
return eina_stringshare_add("Video Camera");
|
||||
else if (!strcmp(icon, "computer"))
|
||||
return eina_stringshare_add("Computer");
|
||||
else if (!strcmp(icon, "input-gaming"))
|
||||
return eina_stringshare_add("Game Controller");
|
||||
else if (!strcmp(icon, "input-keyboard"))
|
||||
return eina_stringshare_add("Keyboard");
|
||||
else if (!strcmp(icon, "input-mouse"))
|
||||
return eina_stringshare_add("Mouse");
|
||||
else if (!strcmp(icon, "input-tablet"))
|
||||
return eina_stringshare_add("Tablet");
|
||||
else if (!strcmp(icon, "modem"))
|
||||
return eina_stringshare_add("Modem");
|
||||
else if (!strcmp(icon, "network-wireless"))
|
||||
return eina_stringshare_add("Wireless");
|
||||
else if (!strcmp(icon, "phone"))
|
||||
return eina_stringshare_add("Phone");
|
||||
else if (!strcmp(icon, "printer"))
|
||||
return eina_stringshare_add("Printer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_free_dev(Device *dev)
|
||||
{
|
||||
|
@ -44,6 +74,8 @@ _free_dev(Device *dev)
|
|||
dev->addr = NULL;
|
||||
eina_stringshare_del(dev->name);
|
||||
dev->name = NULL;
|
||||
if (dev->type) eina_stringshare_del(dev->type);
|
||||
dev->type = NULL;
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
@ -117,12 +149,14 @@ _set_dev_services(Device *dev, EDBus_Message_Iter *uuids)
|
|||
|
||||
static void
|
||||
_retrieve_properties(EDBus_Message_Iter *dict, const char **addr,
|
||||
const char **name, Eina_Bool *paired, Eina_Bool *connected,
|
||||
EDBus_Message_Iter **uuids)
|
||||
const char **name, const char **icon, Eina_Bool *paired,
|
||||
Eina_Bool *connected, EDBus_Message_Iter **uuids)
|
||||
{
|
||||
EDBus_Message_Iter *entry, *variant;
|
||||
const char *key;
|
||||
|
||||
*icon = NULL;
|
||||
|
||||
while (edbus_message_iter_get_and_next(dict, 'e', &entry))
|
||||
{
|
||||
if(!edbus_message_iter_arguments_get(entry, "sv", &key, &variant))
|
||||
|
@ -138,6 +172,11 @@ _retrieve_properties(EDBus_Message_Iter *dict, const char **addr,
|
|||
if(!edbus_message_iter_arguments_get(variant, "s", name))
|
||||
return;
|
||||
}
|
||||
else if (!strcmp(key, "Icon"))
|
||||
{
|
||||
if(!edbus_message_iter_arguments_get(variant, "s", icon))
|
||||
return;
|
||||
}
|
||||
else if (!strcmp(key, "Paired"))
|
||||
{
|
||||
if(!edbus_message_iter_arguments_get(variant, "b", paired))
|
||||
|
@ -159,7 +198,7 @@ _retrieve_properties(EDBus_Message_Iter *dict, const char **addr,
|
|||
static void
|
||||
_on_dev_property_changed(void *context, const EDBus_Message *msg)
|
||||
{
|
||||
const char *key, *name;
|
||||
const char *key, *name, *icon;
|
||||
char err_msg[4096];
|
||||
Eina_Bool paired, connected;
|
||||
EDBus_Message_Iter *variant, *uuids;
|
||||
|
@ -191,6 +230,17 @@ _on_dev_property_changed(void *context, const EDBus_Message *msg)
|
|||
ebluez4_update_instances(ctxt->found_devices);
|
||||
}
|
||||
}
|
||||
else if (!strcmp(key, "Icon"))
|
||||
{
|
||||
if(!edbus_message_iter_arguments_get(variant, "s", &icon))
|
||||
return;
|
||||
if (!found_dev) return;
|
||||
DBG("'%s' property of %s changed to %s", key, found_dev->name, icon);
|
||||
if (found_dev->type)
|
||||
eina_stringshare_del(found_dev->type);
|
||||
found_dev->type = _parse_icon_to_type(icon);
|
||||
ebluez4_update_instances(ctxt->found_devices);
|
||||
}
|
||||
else if (!strcmp(key, "Paired"))
|
||||
{
|
||||
if(!edbus_message_iter_arguments_get(variant, "b", &paired))
|
||||
|
@ -279,7 +329,7 @@ static void
|
|||
_on_dev_properties(void *data, const EDBus_Message *msg, EDBus_Pending *pending)
|
||||
{
|
||||
EDBus_Message_Iter *dict, *uuids;
|
||||
const char *addr, *name;
|
||||
const char *addr, *name, *icon;
|
||||
Eina_Bool paired;
|
||||
Eina_Bool connected;
|
||||
Device *dev = data;
|
||||
|
@ -287,7 +337,7 @@ _on_dev_properties(void *data, const EDBus_Message *msg, EDBus_Pending *pending)
|
|||
if (!edbus_message_arguments_get(msg, "a{sv}", &dict))
|
||||
return;
|
||||
|
||||
_retrieve_properties(dict, &addr, &name, &paired, &connected, &uuids);
|
||||
_retrieve_properties(dict, &addr, &name, &icon, &paired, &connected, &uuids);
|
||||
|
||||
dev->addr = eina_stringshare_add(addr);
|
||||
dev->name = eina_stringshare_add(name);
|
||||
|
@ -353,7 +403,7 @@ static void
|
|||
_on_device_found(void *context, const EDBus_Message *msg)
|
||||
{
|
||||
EDBus_Message_Iter *dict, *uuids;
|
||||
const char *addr, *name;
|
||||
const char *addr, *name, *icon;
|
||||
Eina_Bool paired, connected;
|
||||
Device *dev;
|
||||
|
||||
|
@ -366,11 +416,12 @@ _on_device_found(void *context, const EDBus_Message *msg)
|
|||
if (!edbus_message_arguments_get(msg, "a{sv}", &dict))
|
||||
return;
|
||||
|
||||
_retrieve_properties(dict, &addr, &name, &paired, &connected, &uuids);
|
||||
_retrieve_properties(dict, &addr, &name, &icon, &paired, &connected, &uuids);
|
||||
|
||||
dev = calloc(1, sizeof(Device));
|
||||
dev->addr = eina_stringshare_add(addr);
|
||||
dev->name = eina_stringshare_add(name);
|
||||
if (icon) dev->type = _parse_icon_to_type(icon);
|
||||
dev->paired = paired;
|
||||
ctxt->found_devices = eina_list_append(ctxt->found_devices, dev);
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ typedef struct _Device
|
|||
{
|
||||
const char *addr;
|
||||
const char *name;
|
||||
const char *type;
|
||||
Eina_Bool paired;
|
||||
Eina_Bool connected;
|
||||
EDBus_Object *obj;
|
||||
|
|
Loading…
Reference in New Issue