update nice_view and default battery widgets

This commit is contained in:
zhiayang 2024-02-23 01:34:38 -05:00
parent 670ddb2b8c
commit 4bdbd29b01
No known key found for this signature in database
GPG key ID: 5E2F30AD6F08571F
4 changed files with 14 additions and 40 deletions

View file

@ -56,10 +56,7 @@ static void draw_top(lv_obj_t *widget, lv_color_t cbuf[], const struct status_st
static void set_battery_status(struct zmk_widget_status *widget, static void set_battery_status(struct zmk_widget_status *widget,
struct battery_status_state state) { struct battery_status_state state) {
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) widget->state.charging = state.is_charging;
widget->state.charging = state.usb_present;
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
widget->state.battery = state.level; widget->state.battery = state.level;
draw_top(widget->obj, widget->cbuf, &widget->state); draw_top(widget->obj, widget->cbuf, &widget->state);
@ -71,11 +68,11 @@ static void battery_status_update_cb(struct battery_status_state state) {
} }
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) { static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
return (struct battery_status_state) { const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
.level = zmk_battery_state_of_charge(),
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) return (struct battery_status_state){
.usb_present = zmk_usb_is_powered(), .level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(),
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */ .is_charging = (ev != NULL) ? ev->is_charging : zmk_battery_is_charging(),
}; };
} }
@ -83,9 +80,6 @@ ZMK_DISPLAY_WIDGET_LISTENER(widget_battery_status, struct battery_status_state,
battery_status_update_cb, battery_status_get_state) battery_status_update_cb, battery_status_get_state)
ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed); ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed);
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
ZMK_SUBSCRIPTION(widget_battery_status, zmk_usb_conn_state_changed);
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
static struct peripheral_status_state get_state(const zmk_event_t *_eh) { static struct peripheral_status_state get_state(const zmk_event_t *_eh) {
return (struct peripheral_status_state){.connected = zmk_split_bt_peripheral_is_connected()}; return (struct peripheral_status_state){.connected = zmk_split_bt_peripheral_is_connected()};

View file

@ -195,10 +195,7 @@ static void draw_bottom(lv_obj_t *widget, lv_color_t cbuf[], const struct status
static void set_battery_status(struct zmk_widget_status *widget, static void set_battery_status(struct zmk_widget_status *widget,
struct battery_status_state state) { struct battery_status_state state) {
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) widget->state.charging = state.is_charging;
widget->state.charging = state.usb_present;
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
widget->state.battery = state.level; widget->state.battery = state.level;
draw_top(widget->obj, widget->cbuf, &widget->state); draw_top(widget->obj, widget->cbuf, &widget->state);
@ -212,11 +209,9 @@ static void battery_status_update_cb(struct battery_status_state state) {
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) { static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh); const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
return (struct battery_status_state) { return (struct battery_status_state){
.level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(), .level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(),
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) .is_charging = (ev != NULL) ? ev->is_charging : zmk_battery_is_charging(),
.usb_present = zmk_usb_is_powered(),
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
}; };
} }
@ -224,9 +219,6 @@ ZMK_DISPLAY_WIDGET_LISTENER(widget_battery_status, struct battery_status_state,
battery_status_update_cb, battery_status_get_state) battery_status_update_cb, battery_status_get_state)
ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed); ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed);
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
ZMK_SUBSCRIPTION(widget_battery_status, zmk_usb_conn_state_changed);
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
static void set_output_status(struct zmk_widget_status *widget, static void set_output_status(struct zmk_widget_status *widget,
const struct output_status_state *state) { const struct output_status_state *state) {

View file

@ -33,9 +33,7 @@ struct status_state {
struct battery_status_state { struct battery_status_state {
uint8_t level; uint8_t level;
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) bool is_charging;
bool usb_present;
#endif
}; };
void rotate_canvas(lv_obj_t *canvas, lv_color_t cbuf[]); void rotate_canvas(lv_obj_t *canvas, lv_color_t cbuf[]);

View file

@ -21,21 +21,16 @@ static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
struct battery_status_state { struct battery_status_state {
uint8_t level; uint8_t level;
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) bool is_charging;
bool usb_present;
#endif
}; };
static void set_battery_symbol(lv_obj_t *label, struct battery_status_state state) { static void set_battery_symbol(lv_obj_t *label, struct battery_status_state state) {
char text[9] = {}; char text[9] = {};
uint8_t level = state.level; uint8_t level = state.level;
if (state.is_charging) {
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
if (state.usb_present) {
strcpy(text, LV_SYMBOL_CHARGE " "); strcpy(text, LV_SYMBOL_CHARGE " ");
} }
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
#if IS_ENABLED(CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE) #if IS_ENABLED(CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE)
char perc[5] = {}; char perc[5] = {};
@ -65,11 +60,9 @@ void battery_status_update_cb(struct battery_status_state state) {
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) { static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh); const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
return (struct battery_status_state) { return (struct battery_status_state){
.level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(), .level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(),
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) .is_charging = (ev != NULL) ? ev->is_charging : zmk_battery_is_charging(),
.usb_present = zmk_usb_is_powered(),
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
}; };
} }
@ -77,9 +70,6 @@ ZMK_DISPLAY_WIDGET_LISTENER(widget_battery_status, struct battery_status_state,
battery_status_update_cb, battery_status_get_state) battery_status_update_cb, battery_status_get_state)
ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed); ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed);
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
ZMK_SUBSCRIPTION(widget_battery_status, zmk_usb_conn_state_changed);
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
int zmk_widget_battery_status_init(struct zmk_widget_battery_status *widget, lv_obj_t *parent) { int zmk_widget_battery_status_init(struct zmk_widget_battery_status *widget, lv_obj_t *parent) {
widget->obj = lv_label_create(parent); widget->obj = lv_label_create(parent);