[FL-3408, FL-3429, FL-3430] Backlight notification fix (#2878)
* Notifications: display brightness override fix * FuriHalVersionColor update * float comparison fix Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							parent
							
								
									ff2e1acfdb
								
							
						
					
					
						commit
						a2a4fa8cda
					
				@ -5,7 +5,7 @@
 | 
				
			|||||||
#include <input/input.h>
 | 
					#include <input/input.h>
 | 
				
			||||||
#include <gui/gui_i.h>
 | 
					#include <gui/gui_i.h>
 | 
				
			||||||
#include <u8g2_glue.h>
 | 
					#include <u8g2_glue.h>
 | 
				
			||||||
 | 
					#include <lib/toolbox/float_tools.h>
 | 
				
			||||||
#include "notification.h"
 | 
					#include "notification.h"
 | 
				
			||||||
#include "notification_messages.h"
 | 
					#include "notification_messages.h"
 | 
				
			||||||
#include "notification_app.h"
 | 
					#include "notification_app.h"
 | 
				
			||||||
@ -104,7 +104,10 @@ static void notification_reset_notification_led_layer(NotificationLedLayer* laye
 | 
				
			|||||||
    furi_hal_light_set(layer->light, layer->value[LayerInternal]);
 | 
					    furi_hal_light_set(layer->light, layer->value[LayerInternal]);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void notification_reset_notification_layer(NotificationApp* app, uint8_t reset_mask) {
 | 
					static void notification_reset_notification_layer(
 | 
				
			||||||
 | 
					    NotificationApp* app,
 | 
				
			||||||
 | 
					    uint8_t reset_mask,
 | 
				
			||||||
 | 
					    float display_brightness_set) {
 | 
				
			||||||
    if(reset_mask & reset_blink_mask) {
 | 
					    if(reset_mask & reset_blink_mask) {
 | 
				
			||||||
        furi_hal_light_blink_stop();
 | 
					        furi_hal_light_blink_stop();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -124,6 +127,9 @@ static void notification_reset_notification_layer(NotificationApp* app, uint8_t
 | 
				
			|||||||
        notification_sound_off();
 | 
					        notification_sound_off();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if(reset_mask & reset_display_mask) {
 | 
					    if(reset_mask & reset_display_mask) {
 | 
				
			||||||
 | 
					        if(!float_is_equal(display_brightness_set, app->settings.display_brightness)) {
 | 
				
			||||||
 | 
					            furi_hal_light_set(LightBacklight, app->settings.display_brightness * 0xFF);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        furi_timer_start(app->display_timer, notification_settings_display_off_delay_ticks(app));
 | 
					        furi_timer_start(app->display_timer, notification_settings_display_off_delay_ticks(app));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -212,13 +218,14 @@ static void notification_process_notification_message(
 | 
				
			|||||||
                notification_apply_notification_led_layer(
 | 
					                notification_apply_notification_led_layer(
 | 
				
			||||||
                    &app->display,
 | 
					                    &app->display,
 | 
				
			||||||
                    notification_message->data.led.value * display_brightness_setting);
 | 
					                    notification_message->data.led.value * display_brightness_setting);
 | 
				
			||||||
 | 
					                reset_mask |= reset_display_mask;
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
 | 
					                reset_mask &= ~reset_display_mask;
 | 
				
			||||||
                notification_reset_notification_led_layer(&app->display);
 | 
					                notification_reset_notification_led_layer(&app->display);
 | 
				
			||||||
                if(furi_timer_is_running(app->display_timer)) {
 | 
					                if(furi_timer_is_running(app->display_timer)) {
 | 
				
			||||||
                    furi_timer_stop(app->display_timer);
 | 
					                    furi_timer_stop(app->display_timer);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            reset_mask |= reset_display_mask;
 | 
					 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case NotificationMessageTypeLedDisplayBacklightEnforceOn:
 | 
					        case NotificationMessageTypeLedDisplayBacklightEnforceOn:
 | 
				
			||||||
            furi_assert(app->display_led_lock < UINT8_MAX);
 | 
					            furi_assert(app->display_led_lock < UINT8_MAX);
 | 
				
			||||||
@ -370,7 +377,7 @@ static void notification_process_notification_message(
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(reset_notifications) {
 | 
					    if(reset_notifications) {
 | 
				
			||||||
        notification_reset_notification_layer(app, reset_mask);
 | 
					        notification_reset_notification_layer(app, reset_mask, display_brightness_setting);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,7 @@ typedef enum {
 | 
				
			|||||||
    FuriHalVersionColorUnknown = 0x00,
 | 
					    FuriHalVersionColorUnknown = 0x00,
 | 
				
			||||||
    FuriHalVersionColorBlack = 0x01,
 | 
					    FuriHalVersionColorBlack = 0x01,
 | 
				
			||||||
    FuriHalVersionColorWhite = 0x02,
 | 
					    FuriHalVersionColorWhite = 0x02,
 | 
				
			||||||
 | 
					    FuriHalVersionColorTransparent = 0x03,
 | 
				
			||||||
} FuriHalVersionColor;
 | 
					} FuriHalVersionColor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Device Regions */
 | 
					/** Device Regions */
 | 
				
			||||||
 | 
				
			|||||||
@ -17,6 +17,7 @@ OTP_COLORS = {
 | 
				
			|||||||
    "unknown": 0x00,
 | 
					    "unknown": 0x00,
 | 
				
			||||||
    "black": 0x01,
 | 
					    "black": 0x01,
 | 
				
			||||||
    "white": 0x02,
 | 
					    "white": 0x02,
 | 
				
			||||||
 | 
					    "transparent": 0x03,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OTP_REGIONS = {
 | 
					OTP_REGIONS = {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user