Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

[Cleanup] viewport.c

hopefully the order of the events enable / disable don't matter
as far as I can tell it doesn't

Change-Id: Ia6bbe83ede788712e67aae6599585d6f79bfbcdc

authored by

William Wilgus and committed by
William Wilgus
20455144 6f4d0b7e

+25 -39
+25 -39
apps/gui/viewport.c
··· 72 72 static struct viewport_stack_item theme_stack[NB_SCREENS][VPSTACK_DEPTH]; 73 73 static bool is_theme_enabled(enum screen_type screen); 74 74 75 + static void evt_toggle(bool enable, unsigned short id, 76 + void (*handler)(unsigned short id, void *data)) 77 + { 78 + if (enable) 79 + add_event(id, handler); 80 + else 81 + remove_event(id, handler); 82 + } 75 83 76 84 static void toggle_events(bool enable) 77 85 { 78 - if (enable) 79 - { 80 - add_event(GUI_EVENT_ACTIONUPDATE, viewportmanager_redraw); 86 + evt_toggle(enable, GUI_EVENT_ACTIONUPDATE, viewportmanager_redraw); 87 + evt_toggle(enable, PLAYBACK_EVENT_TRACK_CHANGE, do_sbs_update_callback); 88 + evt_toggle(enable, PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, do_sbs_update_callback); 81 89 #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) 82 - add_event(LCD_EVENT_ACTIVATION, do_sbs_update_callback); 90 + evt_toggle(enable, LCD_EVENT_ACTIVATION, do_sbs_update_callback); 83 91 #endif 84 - add_event(PLAYBACK_EVENT_TRACK_CHANGE, do_sbs_update_callback); 85 - add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, do_sbs_update_callback); 86 - } 87 - else 92 + } 93 + 94 + static void set_clear_update_valid_vp(enum screen_type screen, struct viewport *vp) 95 + { 96 + if (vp->width && vp->height) 88 97 { 89 - #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) 90 - remove_event(LCD_EVENT_ACTIVATION, do_sbs_update_callback); 91 - #endif 92 - remove_event(PLAYBACK_EVENT_TRACK_CHANGE, do_sbs_update_callback); 93 - remove_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, do_sbs_update_callback); 94 - remove_event(GUI_EVENT_ACTIONUPDATE, viewportmanager_redraw); 98 + screens[screen].set_viewport(vp); 99 + screens[screen].clear_viewport(); 100 + screens[screen].update_viewport(); 95 101 } 96 102 } 97 - 98 103 99 104 static void toggle_theme(enum screen_type screen, bool force) 100 105 { ··· 129 134 deadspace.y = 0; 130 135 deadspace.width = screens[screen].lcdwidth; 131 136 deadspace.height = user.y; 132 - if (deadspace.width && deadspace.height) 133 - { 134 - screens[screen].set_viewport(&deadspace); 135 - screens[screen].clear_viewport(); 136 - screens[screen].update_viewport(); 137 - } 137 + set_clear_update_valid_vp(screen, &deadspace); 138 138 /* below */ 139 139 deadspace.y = user.y + user.height; 140 140 deadspace.height = screens[screen].lcdheight - deadspace.y; 141 - if (deadspace.width && deadspace.height) 142 - { 143 - screens[screen].set_viewport(&deadspace); 144 - screens[screen].clear_viewport(); 145 - screens[screen].update_viewport(); 146 - } 141 + set_clear_update_valid_vp(screen, &deadspace); 147 142 /* left */ 148 143 deadspace.x = 0; 149 144 deadspace.y = 0; 150 145 deadspace.width = user.x; 151 146 deadspace.height = screens[screen].lcdheight; 152 - if (deadspace.width && deadspace.height) 153 - { 154 - screens[screen].set_viewport(&deadspace); 155 - screens[screen].clear_viewport(); 156 - screens[screen].update_viewport(); 157 - } 147 + set_clear_update_valid_vp(screen, &deadspace); 158 148 /* below */ 159 149 deadspace.x = user.x + user.width; 160 150 deadspace.width = screens[screen].lcdwidth - deadspace.x; 161 - if (deadspace.width && deadspace.height) 162 - { 163 - screens[screen].set_viewport(&deadspace); 164 - screens[screen].clear_viewport(); 165 - screens[screen].update_viewport(); 166 - } 151 + set_clear_update_valid_vp(screen, &deadspace); 152 + 167 153 screens[screen].set_viewport(last_vp); 168 154 } 169 155 intptr_t force = first_boot?0:1;