display backlight and bluetooth reference counting (#639)
This commit is contained in:
committed by
GitHub
parent
19b11eb9a8
commit
64fb1a9f52
@@ -10,10 +10,11 @@ const struct DeviceType BLUETOOTH_HID_DEVICE_TYPE = {
|
||||
.name = "bluetooth-hid-device",
|
||||
};
|
||||
|
||||
struct Device* bluetooth_hid_device_get_device() {
|
||||
struct Device* bluetooth_hid_device_get() {
|
||||
struct Device* found = nullptr;
|
||||
device_for_each_of_type(&BLUETOOTH_HID_DEVICE_TYPE, &found, [](struct Device* dev, void* ctx) -> bool {
|
||||
if (device_is_ready(dev)) {
|
||||
// device_get() while still inside the ledger-locked callback, same as device_get_by_name().
|
||||
if (device_is_ready(dev) && device_get(dev) == ERROR_NONE) {
|
||||
*static_cast<struct Device**>(ctx) = dev;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -10,10 +10,11 @@ const struct DeviceType BLUETOOTH_MIDI_TYPE = {
|
||||
.name = "bluetooth-midi",
|
||||
};
|
||||
|
||||
struct Device* bluetooth_midi_get_device() {
|
||||
struct Device* bluetooth_midi_get() {
|
||||
struct Device* found = nullptr;
|
||||
device_for_each_of_type(&BLUETOOTH_MIDI_TYPE, &found, [](struct Device* dev, void* ctx) -> bool {
|
||||
if (device_is_ready(dev)) {
|
||||
// device_get() while still inside the ledger-locked callback, same as device_get_by_name().
|
||||
if (device_is_ready(dev) && device_get(dev) == ERROR_NONE) {
|
||||
*static_cast<struct Device**>(ctx) = dev;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -10,10 +10,11 @@ const struct DeviceType BLUETOOTH_SERIAL_TYPE = {
|
||||
.name = "bluetooth-serial",
|
||||
};
|
||||
|
||||
struct Device* bluetooth_serial_get_device() {
|
||||
struct Device* bluetooth_serial_get() {
|
||||
struct Device* found = nullptr;
|
||||
device_for_each_of_type(&BLUETOOTH_SERIAL_TYPE, &found, [](struct Device* dev, void* ctx) -> bool {
|
||||
if (device_is_ready(dev)) {
|
||||
// device_get() while still inside the ledger-locked callback, same as device_get_by_name().
|
||||
if (device_is_ready(dev) && device_get(dev) == ERROR_NONE) {
|
||||
*static_cast<struct Device**>(ctx) = dev;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -118,7 +118,16 @@ error_t display_get_backlight(Device* device, Device** backlight) {
|
||||
if (api->get_backlight == nullptr) {
|
||||
return ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
return api->get_backlight(device, backlight);
|
||||
Device* found = nullptr;
|
||||
error_t error = api->get_backlight(device, &found);
|
||||
if (error != ERROR_NONE) {
|
||||
return error;
|
||||
}
|
||||
error = device_get(found);
|
||||
if (error == ERROR_NONE) {
|
||||
*backlight = found;
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
const struct DeviceType DISPLAY_TYPE {
|
||||
|
||||
Reference in New Issue
Block a user