device_info->rssi = device_discovery_info->rssi;
device_info->is_bonded = device_discovery_info->is_bonded;
device_info->service_uuid = device_discovery_info->service_uuid;
- device_info->appearance = device_discovery_info->appearance;
divide_device_class(&device_info->bt_class,
device_discovery_info->bt_class);
+ if (device_discovery_info->appearance)
+ device_info->appearance = device_discovery_info->appearance;
+ else {
+ if (device_info->bt_class.major_device_class ==
+ BT_MAJOR_DEVICE_CLASS_COMPUTER)
+ device_discovery_info->appearance =
+ BT_APPEARANCE_TYPE_GENERIC_COMPUTER;
+ else if (device_info->bt_class.major_device_class ==
+ BT_MAJOR_DEVICE_CLASS_PHONE)
+ device_discovery_info->appearance =
+ BT_APPEARANCE_TYPE_GENERIC_PHONE;
+ else if (device_info->bt_class.major_device_class ==
+ BT_MAJOR_DEVICE_CLASS_WEARABLE &&
+ device_info->bt_class.minor_device_class ==
+ BT_MINOR_DEVICE_CLASS_WEARABLE_WRIST_WATCH)
+ device_discovery_info->appearance =
+ BT_APPEARANCE_TYPE_GENERIC_WATCH;
+ else
+ device_discovery_info->appearance =
+ BT_APPEARANCE_TYPE_UNKNOWN;
+ }
+
return device_info;
}
DBG("\tRSSI: %d", discovery_info->rssi);
DBG("\tIs bonded: %d", discovery_info->is_bonded);
DBG("\tservice_count: %d", discovery_info->service_count);
+ DBG("\tappearance: %x", discovery_info->appearance);
for (len = 0; len < discovery_info->service_count; len++)
DBG("\t service %d: %s", len,