FreeCalypso > hg > fc-tourmaline
view bwsplash/pbm2c.c @ 265:e57bfdadf49a
mmiIcons.c: fix bogus icnType in incoming_call_animate[]
The incoming call animation icons are actually drawn in 256-color format,
but they were incorrectly declared as BMP_FORMAT_32BIT_COLOUR in the
incoming_call_animate[] array. Why were they still getting displayed
correctly despite this bogosity? Answer: because the
mmi_dialogs_animation_new_CB() function overrides the icon bitmap
type to 0x02, which means 256-color format. Needless to say, the
icon format should be made correct at the source of the data, and
at some later point we may need to remove the override from the
animation display function.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 17 May 2021 07:18:36 +0000 |
parents | 4d9f24c501f3 |
children |
line wrap: on
line source
/* * This program compiles bwsplash.pbm into a C char array * for inclusion into phone UI firmware source. */ #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> FILE *inf, *outf; char *infname, linebuf[128]; int lineno; void get_input_line() { char *cp; if (!fgets(linebuf, sizeof linebuf, inf)) { fprintf(stderr, "%s: premature EOF\n", infname); exit(1); } lineno++; cp = index(linebuf, '\n'); if (!cp) { fprintf(stderr, "%s line %d: too long or missing newline\n", infname, lineno); exit(1); } *cp = '\0'; } void parse_pixel_line(outbuf, npix) u_char *outbuf; unsigned npix; { char *cp; u_char *dp; unsigned n; cp = linebuf; dp = outbuf; for (n = 0; n < npix; n++) { if (*cp != '0' && *cp != '1') { inv: fprintf(stderr, "%s line %d: does not match expected line of %u 0/1 characters\n", infname, lineno, npix); exit(1); } *dp++ = *cp++ - '0'; } if (*cp) goto inv; } void pack_pixel_byte(bits) u_char *bits; { unsigned byte, mask, n; byte = 0; for (n = 0, mask = 0x80; n < 8; n++, mask >>= 1) if (bits[n]) byte |= mask; fprintf(outf, "0x%02X,", byte); } main(argc, argv) char **argv; { unsigned nrow, ncol; u_char rowbuf[80]; if (argc != 3) { fprintf(stderr, "usage: %s pbmfile outfile\n", argv[0]); exit(1); } infname = argv[1]; inf = fopen(infname, "r"); if (!inf) { perror(infname); exit(1); } get_input_line(); if (strcmp(linebuf, "P1")) { fprintf(stderr, "error in %s: first line is not the expected \"P1\"\n", infname); exit(1); } get_input_line(); if (strcmp(linebuf, "80 30")) { fprintf(stderr, "error in %s: second line is not the expected \"80 30\"\n", infname); exit(1); } outf = fopen(argv[2], "w"); if (!outf) { perror(argv[2]); exit(1); } for (nrow = 0; nrow < 30; nrow++) { get_input_line(); parse_pixel_line(rowbuf, 80); putc('\t', outf); for (ncol = 0; ncol < 80; ncol += 8) pack_pixel_byte(rowbuf + ncol); putc('\n', outf); } exit(0); }