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.

calculate the string width for numerical volume display and time display in status bar.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1828 a1c6a512-1295-4272-9138-f99709370657

+35 -5
+33 -3
apps/recorder/icons.c
··· 209 209 int volume; 210 210 int step=0; 211 211 char buffer[4]; 212 + unsigned int width, height; 213 + #if defined(LOADABLE_FONTS) 214 + unsigned char *font; 215 + #endif 212 216 static long switch_tick; 213 217 static int last_volume; 214 218 ··· 231 235 /* display volume lever numerical? */ 232 236 if (TIME_BEFORE(current_tick,switch_tick)) { 233 237 snprintf(buffer, sizeof(buffer), "%2d", percent); 234 - lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 235 - 6*strlen(buffer)/2, STATUSBAR_Y_POS, buffer, 0); 238 + #if defined(LCD_PROPFONTS) 239 + lcd_getstringsize(buffer, 0, &width, &height); 240 + width += strlen(buffer) - 1; 241 + #elif defined(LOADABLE_FONTS) 242 + font = lcd_getcurrentldfont(); 243 + lcd_getstringsize(buffer, font, &width, &height); 244 + #else 245 + width = 6*strlen(buffer); 246 + height = 8; 247 + #endif 248 + if (height <= STATUSBAR_HEIGHT) 249 + lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 250 + width/2, STATUSBAR_Y_POS, buffer, 0); 236 251 } 237 252 else { /* display volume bar */ 238 253 volume = volume * 14 / 100; ··· 290 305 { 291 306 int hour,minute; 292 307 unsigned char buffer[6]; 308 + unsigned int width, height; 309 + #if defined(LOADABLE_FONTS) 310 + unsigned char *font; 311 + #endif 293 312 294 313 hour = rtc_read(0x03); 295 314 minute = rtc_read(0x02); ··· 299 318 hour & 0x0f, 300 319 (minute & 0xf0) >> 4, 301 320 minute & 0x0f); 302 - lcd_putsxy(TIME_X_POS, STATUSBAR_Y_POS, buffer, 0); 321 + #if defined(LCD_PROPFONTS) 322 + lcd_getstringsize(buffer, 0, &width, &height); 323 + width += strlen(buffer) - 1; 324 + #elif defined(LOADABLE_FONTS) 325 + font = lcd_getcurrentldfont(); 326 + lcd_getstringsize(buffer, font, &width, &height); 327 + #else 328 + width = 6*strlen(buffer); 329 + height = 8; 330 + #endif 331 + if (height <= STATUSBAR_HEIGHT) 332 + lcd_putsxy(TIME_X_END - width, STATUSBAR_Y_POS, buffer, 0); 303 333 } 304 334 #endif
+2 -2
apps/recorder/icons.h
··· 45 45 #define ICON_PLUG_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+2 46 46 #define ICON_PLUG_WIDTH 7 47 47 #define ICON_VOLUME_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+2+2 48 - #define ICON_VOLUME_WIDTH 14 48 + #define ICON_VOLUME_WIDTH 16 49 49 #define ICON_PLAY_STATE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+2+2+2 50 50 #define ICON_PLAY_STATE_WIDTH 7 51 51 #define ICON_PLAY_MODE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+2+2+2+2 ··· 54 54 #define ICON_SHUFFLE_WIDTH 7 55 55 #define LOCK_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+ICON_PLAY_MODE_WIDTH+ICON_SHUFFLE_WIDTH+2+2+2+2+2+2 56 56 #define LOCK_WIDTH 5 57 - #define TIME_X_POS STATUSBAR_WIDTH-5*6-1 57 + #define TIME_X_END STATUSBAR_WIDTH-1 58 58 59 59 /* Symbolic names for icons */ 60 60 enum