Browse Source

Bars now in center

TheSainEyereg 2 years ago
parent
commit
a2f2b7dde6
2 changed files with 18 additions and 11 deletions
  1. 12 9
      pc_monitor.c
  2. 6 2
      pc_monitor.h

+ 12 - 9
pc_monitor.c

@@ -10,19 +10,21 @@ static void render_callback(Canvas* canvas, void* ctx) {
         canvas_set_font(canvas, FontKeyboard);
 
         uint8_t line = 0;
+		uint8_t spacing = app->lines_count ? SCREEN_HEIGHT / app->lines_count : 0;
+		uint8_t margin_top = spacing ? (spacing - LINE_HEIGHT) / 2 : 0;
         char str[32];
 
         if(app->data.cpu_usage <= 100) {
-            canvas_draw_str(canvas, 0, 10, "CPU");
+            canvas_draw_str(canvas, 1, margin_top + line * spacing + 9, "CPU");
             snprintf(str, 32, "%d%%", app->data.cpu_usage);
             elements_progress_bar_with_text(
-                canvas, BAR_X, 1, BAR_WIDTH, app->data.cpu_usage / 100.0f, str);
+                canvas, BAR_X, margin_top + line * spacing, BAR_WIDTH, app->data.cpu_usage / 100.0f, str);
 
             line++;
         }
 
         if(app->data.ram_usage <= 100) {
-            canvas_draw_str(canvas, 0, 10 + BAR_MARGIN * line, "RAM");
+            canvas_draw_str(canvas, 1, margin_top + line * spacing + 9, "RAM");
             snprintf(
                 str,
                 32,
@@ -31,22 +33,22 @@ static void render_callback(Canvas* canvas, void* ctx) {
                 (double)(app->data.ram_max * 0.1f),
                 app->data.ram_unit);
             elements_progress_bar_with_text(
-                canvas, BAR_X, 1 + BAR_MARGIN * line, BAR_WIDTH, app->data.ram_usage * 0.01f, str);
+                canvas, BAR_X, margin_top + line * spacing, BAR_WIDTH, app->data.ram_usage * 0.01f, str);
 
             line++;
         }
 
         if(app->data.gpu_usage <= 100) {
-            canvas_draw_str(canvas, 0, 10 + BAR_MARGIN * line, "GPU");
+            canvas_draw_str(canvas, 1, margin_top + line * spacing + 9, "GPU");
             snprintf(str, 32, "%d%%", app->data.gpu_usage);
             elements_progress_bar_with_text(
-                canvas, BAR_X, 1 + BAR_MARGIN * line, BAR_WIDTH, app->data.gpu_usage / 100.0f, str);
+                canvas, BAR_X, margin_top + line * spacing, BAR_WIDTH, app->data.gpu_usage / 100.0f, str);
 
             line++;
         }
 
         if(app->data.vram_usage <= 100) {
-            canvas_draw_str(canvas, 0, 10 + BAR_MARGIN * line, "VRAM");
+            canvas_draw_str(canvas, 1, margin_top + line * spacing + 9, "VRAM");
             snprintf(
                 str,
                 32,
@@ -55,12 +57,13 @@ static void render_callback(Canvas* canvas, void* ctx) {
                 (double)(app->data.vram_max * 0.1f),
                 app->data.vram_unit);
             elements_progress_bar_with_text(
-                canvas, BAR_X, 1 + BAR_MARGIN * line, BAR_WIDTH, app->data.vram_usage * 0.01f, str);
+                canvas, BAR_X, margin_top + line * spacing, BAR_WIDTH, app->data.vram_usage * 0.01f, str);
 
             line++;
         }
 
-        if(line == 0) app->bt_state = BtStateNoData;
+        if (line == 0) app->bt_state = BtStateNoData;
+		app->lines_count = line;
     } else {
         canvas_draw_str_aligned(
             canvas,

+ 6 - 2
pc_monitor.h

@@ -12,9 +12,12 @@
 
 #define TAG "PCMonitor"
 #define BT_SERIAL_BUFFER_SIZE 128
+
+#define SCREEN_HEIGHT 64
+#define LINE_HEIGHT 11
+
 #define BAR_X 30
-#define BAR_MARGIN 14
-#define BAR_WIDTH 98
+#define BAR_WIDTH 97
 
 typedef enum {
     BtStateChecking,
@@ -48,5 +51,6 @@ typedef struct {
 
     BtState bt_state;
     DataStruct data;
+    uint8_t lines_count;
     uint32_t last_packet;
 } PcMonitorApp;