[PATCH 3/3] GUI: Add fbtest command
Andrey Smirnov
andrew.smirnov at gmail.com
Thu Jun 23 20:21:45 PDT 2016
On Wed, Jun 22, 2016 at 11:22 PM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Tue, Jun 21, 2016 at 09:39:29PM -0700, Andrey Smirnov wrote:
>> Add 'fbtest' - a command to produce test patterns on a screen
>>
>> Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
>> Signed-off-by: Andrey Gusakov <andrey.gusakov at cogentembedded.com>
>> ---
>> commands/Kconfig | 9 +++
>> commands/Makefile | 1 +
>> commands/fbtest.c | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 197 insertions(+)
>> create mode 100644 commands/fbtest.c
>>
>> diff --git a/commands/Kconfig b/commands/Kconfig
>> index 880cd45..107cc3e 100644
>> --- a/commands/Kconfig
>> +++ b/commands/Kconfig
>> @@ -1417,6 +1417,15 @@ config CMD_SPLASH
>> -b COLOR background color in 0xttrrggbb
>> -o render offscreen
>>
>
>> +
>> +static int do_fbtest(int argc, char *argv[])
>> +{
>> + struct screen *sc;
>> + int opt, i;
>> + const char *pattern_name = NULL;
>> + char *fbdev = "/dev/fb0";
>> + void (*pattern) (struct screen *sc, u32 color) = NULL;
>> + u32 color = 0xffffff;
>> +
>> + struct {
>> + const char *name;
>> + void (*func) (struct screen *sc, u32 color);
>> + } patterns[] = {
>> + { "geometry", fbtest_pattern_geometry },
>> + { "bars", fbtest_pattern_bars }
>> + };
>> +
>> + while((opt = getopt(argc, argv, "d:p:c:")) > 0) {
>> + switch(opt) {
>> + case 'd':
>> + fbdev = optarg;
>> + break;
>> + case 'p':
>> + pattern_name = optarg;
>> + break;
>> + case 'c':
>> + color = simple_strtoul(optarg, NULL, 16);
>> + break;
>> + }
>> + }
>> +
>> + if (!pattern_name) {
>> + printf("No pattern name specified\n");
>> + return -EINVAL;
>> + }
>
> Maybe we can iterate over the patterns if no pattern is given like the
> Linux variant does?
>
I like this idea, I wasn't able to find the source code of a fbtest
version that does that, so I am not sure if I'll match the behavior
exactly. I'll make it loop over patterns and wait for Ctrl-C in v2 if
no pattern is given.
Thanks,
Andrey
More information about the barebox
mailing list