Skip to content

Commit 080063e

Browse files
committed
FF.CFG: New option osd-columns= to set number of OSD text columns.
1 parent 9deb3b5 commit 080063e

File tree

5 files changed

+21
-12
lines changed

5 files changed

+21
-12
lines changed

examples/FF.CFG

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@ oled-contrast = 143
232232
display-order = default
233233
osd-display-order = default
234234

235+
# OSD text columns. This is currently respected only when no LCD/OLED is found.
236+
# Values: 16 <= N <= 40
237+
osd-columns = 40
238+
235239
# Turn an LCD or OLED display off after N seconds of inactivity
236240
# N=0: always off; N=255: always on
237241
# Values: 0 <= N <= 255

inc/config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ struct packed ff_cfg {
165165
uint8_t write_drain;
166166
uint8_t max_cyl;
167167
uint16_t osd_display_order;
168+
uint8_t osd_columns;
168169
};
169170

170171
extern struct ff_cfg ff_cfg;

src/display/lcd_at32f435.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -577,11 +577,7 @@ bool_t lcd_init(void)
577577
lcd_rows = 4;
578578
} else {
579579
lcd_columns = (ff_cfg.display_type >> _DISPLAY_lcd_columns) & 63;
580-
lcd_columns = max_t(uint8_t, lcd_columns, 16);
581-
lcd_columns = min_t(uint8_t, lcd_columns, 40);
582580
lcd_rows = (ff_cfg.display_type >> _DISPLAY_lcd_rows) & 7;
583-
lcd_rows = max_t(uint8_t, lcd_rows, 2);
584-
lcd_rows = min_t(uint8_t, lcd_rows, 4);
585581
}
586582

587583
if (a != 0) {
@@ -590,10 +586,14 @@ bool_t lcd_init(void)
590586
i2c_addr = a;
591587
} else {
592588
is_oled_display = FALSE;
593-
if (ff_cfg.display_type == DISPLAY_auto)
594-
lcd_columns = 40;
589+
lcd_columns = ff_cfg.osd_columns;
595590
}
596591

592+
lcd_columns = max_t(uint8_t, lcd_columns, 16);
593+
lcd_columns = min_t(uint8_t, lcd_columns, 40);
594+
lcd_rows = max_t(uint8_t, lcd_rows, 2);
595+
lcd_rows = min_t(uint8_t, lcd_rows, 4);
596+
597597
lcd_clear();
598598

599599
}

src/display/lcd_stm32f105.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -630,11 +630,7 @@ bool_t lcd_init(void)
630630
lcd_rows = 4;
631631
} else {
632632
lcd_columns = (ff_cfg.display_type >> _DISPLAY_lcd_columns) & 63;
633-
lcd_columns = max_t(uint8_t, lcd_columns, 16);
634-
lcd_columns = min_t(uint8_t, lcd_columns, 40);
635633
lcd_rows = (ff_cfg.display_type >> _DISPLAY_lcd_rows) & 7;
636-
lcd_rows = max_t(uint8_t, lcd_rows, 2);
637-
lcd_rows = min_t(uint8_t, lcd_rows, 4);
638634
}
639635

640636
if (a != 0) {
@@ -643,10 +639,14 @@ bool_t lcd_init(void)
643639
i2c_addr = a;
644640
} else {
645641
is_oled_display = FALSE;
646-
if (ff_cfg.display_type == DISPLAY_auto)
647-
lcd_columns = 40;
642+
lcd_columns = ff_cfg.osd_columns;
648643
}
649644

645+
lcd_columns = max_t(uint8_t, lcd_columns, 16);
646+
lcd_columns = min_t(uint8_t, lcd_columns, 40);
647+
lcd_rows = max_t(uint8_t, lcd_rows, 2);
648+
lcd_rows = min_t(uint8_t, lcd_rows, 4);
649+
650650
lcd_clear();
651651

652652
}

src/main.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1232,6 +1232,10 @@ static void read_ff_cfg(void)
12321232
ff_cfg.osd_display_order = parse_display_order(opts.arg);
12331233
break;
12341234

1235+
case FFCFG_osd_columns:
1236+
ff_cfg.osd_columns = strtol(opts.arg, NULL, 10);
1237+
break;
1238+
12351239
case FFCFG_display_off_secs:
12361240
ff_cfg.display_off_secs = strtol(opts.arg, NULL, 10);
12371241
cfg.ffcfg_has_display_off_secs = TRUE;

0 commit comments

Comments
 (0)