diff --git a/src/adapter.c b/src/adapter.c
index 6333837..310d1cf 100644
--- a/src/adapter.c
+++ b/src/adapter.c
if (class == adapter->dev_class)
return;
- write_local_class(&adapter->bdaddr, new_class);
-
adapter->dev_class = class;
if (main_opts.gatt_enabled) {
*pairable = adapter->pairable;
}
-void btd_adapter_read_class(struct btd_adapter *adapter, uint8_t *major,
+void btd_adapter_get_major_minor(struct btd_adapter *adapter, uint8_t *major,
uint8_t *minor)
{
- uint8_t cls[3];
-
- if (read_local_class(&adapter->bdaddr, cls) < 0) {
- uint32_t class = htobl(main_opts.class);
- memcpy(cls, &class, 3);
- }
-
- *major = cls[1];
- *minor = cls[0];
+ *major = (adapter->dev_class >> 8) & 0xFF;
+ *minor = adapter->dev_class & 0xFF;
}
uint32_t btd_adapter_get_class(struct btd_adapter *adapter)
ba2str(&adapter->bdaddr, address);
- adapter->dev_class = 0;
adapter->off_requested = FALSE;
adapter->up = TRUE;
adapter->discov_timeout = get_discoverable_timeout(address);
else
adapter->name = g_strdup(name);
+ /* Set class */
+ adapter->dev_class = main_opts.class;
}
gboolean adapter_init(struct btd_adapter *adapter, gboolean up)
diff --git a/src/adapter.h b/src/adapter.h
index d53c658..be69781 100644
--- a/src/adapter.h
+++ b/src/adapter.h
uint16_t *discoverable_timeout,
gboolean *pairable);
-void btd_adapter_read_class(struct btd_adapter *adapter, uint8_t *major,
+void btd_adapter_get_major_minor(struct btd_adapter *adapter, uint8_t *major,
uint8_t *minor);
uint32_t btd_adapter_get_class(struct btd_adapter *adapter);
diff --git a/src/mgmt.c b/src/mgmt.c
index bef66cd..f179dfa 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
else
adapter_name_changed(adapter, (char *) rp->name);
- btd_adapter_read_class(adapter, &major, &minor);
+ btd_adapter_get_major_minor(adapter, &major, &minor);
mgmt_set_dev_class(index, major, minor);
btd_adapter_get_mode(adapter, &mode, NULL, NULL, NULL);