Mercurial > hg > dmlib
annotate tools/lib64util.c @ 2539:c6ee41fd98dd
Bump copyright years.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 02 Jan 2021 11:42:17 +0200 |
parents | 106f4426c729 |
children | bb44c48cffac |
rev | line source |
---|---|
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
1 /* |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 * Common utility functions for gfxconv and 64vw |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
3 * Programmed and designed by Matti 'ccr' Hamalainen |
2539 | 4 * (C) Copyright 2019-2021 Tecnic Software productions (TNSP) |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 * |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
6 * Please read file 'COPYING' for information on license and distribution. |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
7 */ |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 #include "lib64util.h" |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
9 #include "dmfile.h" |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
11 |
2380
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
12 // |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
13 // Some common C64 palettes |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
14 // |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
15 DMC64Palette dmC64DefaultPalettes[] = |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
16 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
17 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
18 "pepto", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
19 "Pepto's classic (default)", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
20 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
21 { 0x00, 0x00, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
22 { 0xFF, 0xFF, 0xFF, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
23 { 0x68, 0x37, 0x2B, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
24 { 0x70, 0xA4, 0xB2, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
25 { 0x6F, 0x3D, 0x86, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
26 { 0x58, 0x8D, 0x43, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
27 { 0x35, 0x28, 0x79, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
28 { 0xB8, 0xC7, 0x6F, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
29 { 0x6F, 0x4F, 0x25, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
30 { 0x43, 0x39, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
31 { 0x9A, 0x67, 0x59, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
32 { 0x44, 0x44, 0x44, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
33 { 0x6C, 0x6C, 0x6C, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
34 { 0x9A, 0xD2, 0x84, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
35 { 0x6C, 0x5E, 0xB5, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
36 { 0x95, 0x95, 0x95, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
37 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
38 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
39 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
40 "colodore", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
41 "Colodore", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
42 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
43 { 0x00, 0x00, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
44 { 0xff, 0xff, 0xff, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
45 { 0x96, 0x28, 0x2e, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
46 { 0x5b, 0xd6, 0xce, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
47 { 0x9f, 0x2d, 0xad, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
48 { 0x41, 0xb9, 0x36, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
49 { 0x27, 0x24, 0xc4, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
50 { 0xef, 0xf3, 0x47, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
51 { 0x9f, 0x48, 0x15, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
52 { 0x5e, 0x35, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
53 { 0xda, 0x5f, 0x66, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
54 { 0x47, 0x47, 0x47, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
55 { 0x78, 0x78, 0x78, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
56 { 0x91, 0xff, 0x84, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
57 { 0x68, 0x64, 0xff, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
58 { 0xae, 0xae, 0xae, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
59 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
60 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
61 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
62 "vice3", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
63 "VICE 3.3", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
64 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
65 { 0x00, 0x00, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
66 { 0xfd, 0xfe, 0xfc, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
67 { 0xbe, 0x1a, 0x24, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
68 { 0x30, 0xe6, 0xc6, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
69 { 0xb4, 0x1a, 0xe2, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
70 { 0x1f, 0xd2, 0x1e, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
71 { 0x21, 0x1b, 0xae, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
72 { 0xdf, 0xf6, 0x0a, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
73 { 0xb8, 0x41, 0x04, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
74 { 0x6a, 0x33, 0x04, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
75 { 0xfe, 0x4a, 0x57, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
76 { 0x42, 0x45, 0x40, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
77 { 0x70, 0x74, 0x6f, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
78 { 0x59, 0xfe, 0x59, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
79 { 0x5f, 0x53, 0xfe, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
80 { 0xa4, 0xa7, 0xa2, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
81 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
82 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
83 }; |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
84 |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
85 const int ndmC64DefaultPalettes = sizeof(dmC64DefaultPalettes) / sizeof(dmC64DefaultPalettes[0]); |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
86 |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
87 |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
88 char * dmC64GetImageTypeString(char *buf, const size_t len, const int type, const BOOL lng) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
89 { |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
90 static const char *fmtModesShort[] = { "*", "HiR", "MC", "ECM" }; |
2314
87533af8db64
Add format flag for formats that use sprite layer.
Matti Hamalainen <ccr@tnsp.org>
parents:
2265
diff
changeset
|
91 static const char *fmtModesLong[] = { "*", "Hires", "Multi-color", "Extended Color Mode" }; |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
92 const char *fmtStr; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
93 size_t nfmt = type & D64_FMT_MODE_MASK; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
94 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
95 if (nfmt < sizeof(fmtModesShort) / sizeof(fmtModesShort[0])) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
96 fmtStr = lng ? fmtModesLong[nfmt] : fmtModesShort[nfmt]; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
97 else |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 fmtStr = lng ? "ERROR" : "ERR"; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
99 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 snprintf(buf, len, |
2314
87533af8db64
Add format flag for formats that use sprite layer.
Matti Hamalainen <ccr@tnsp.org>
parents:
2265
diff
changeset
|
101 "%s %s%s%s%s", |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
102 fmtStr, |
2314
87533af8db64
Add format flag for formats that use sprite layer.
Matti Hamalainen <ccr@tnsp.org>
parents:
2265
diff
changeset
|
103 (type & D64_FMT_ILACE) ? (lng ? "interlaced " : "ILace ") : "", |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
104 (type & D64_FMT_FLI) ? "FLI " : "", |
2314
87533af8db64
Add format flag for formats that use sprite layer.
Matti Hamalainen <ccr@tnsp.org>
parents:
2265
diff
changeset
|
105 (type & D64_FMT_CHAR) ? (lng ? "char-mode" : "CHAR") : "", |
87533af8db64
Add format flag for formats that use sprite layer.
Matti Hamalainen <ccr@tnsp.org>
parents:
2265
diff
changeset
|
106 (type & D64_FMT_SPRITES) ? (lng ? "+ sprite-layer" : "SPR") : "" |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
107 ); |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
108 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
109 return buf; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
110 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
111 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
112 |
2385
5ffc48a0bebe
Conditionally define DM_ATTR_PRINTF_FMT(xstart, xend) instead of using
Matti Hamalainen <ccr@tnsp.org>
parents:
2383
diff
changeset
|
113 DM_ATTR_PRINTF_FMT(4, 5) |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
114 static void dmC64ImageDumpLine(FILE *fh, const char *indent, const char *field, const char *fmt, ...) |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
115 { |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
116 va_list ap; |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
117 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
118 fputs(indent, fh); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
119 fprintf(fh, "%-20s: ", field); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
120 va_start(ap, fmt); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
121 vfprintf(fh, fmt, ap); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
122 va_end(ap); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
123 fputs("\n", fh); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
124 } |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
125 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
126 |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
127 void dmC64ImageDump(FILE *fh, const DMC64Image *img, const DMC64ImageFormat *fmt, const char *indent) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
128 { |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
129 char typeStr[64]; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
130 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
131 if (fmt != NULL) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
132 { |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
133 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
134 "Format", "%s [%s]", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
135 fmt->name, fmt->fext); |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
136 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
137 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
138 if (img != NULL) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
139 { |
2265
48b48251610a
Refactor how the image "mode/type" is handled. It is still not perfect for
Matti Hamalainen <ccr@tnsp.org>
parents:
2264
diff
changeset
|
140 dmC64GetImageTypeString(typeStr, sizeof(typeStr), img->extraInfo[D64_EI_MODE], TRUE); |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
141 |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
142 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
143 "Type", "%s", typeStr); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
144 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
145 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
146 "Internal blocks", "%d", img->nblocks); |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
147 |
2265
48b48251610a
Refactor how the image "mode/type" is handled. It is still not perfect for
Matti Hamalainen <ccr@tnsp.org>
parents:
2264
diff
changeset
|
148 if (img->extraInfo[D64_EI_MODE] & D64_FMT_ILACE) |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
149 { |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
150 char *tmps; |
2238
5db6e0b63b35
Change again how the interlace type information is stored. Now store it in
Matti Hamalainen <ccr@tnsp.org>
parents:
2210
diff
changeset
|
151 switch (img->extraInfo[D64_EI_ILACE_TYPE]) |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
152 { |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
153 case D64_ILACE_COLOR: tmps = "color"; break; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
154 case D64_ILACE_RES: tmps = "resolution"; break; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
155 default: tmps = "ERROR"; break; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 } |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
157 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
158 "Interlace type", "%s", tmps); |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
160 |
2265
48b48251610a
Refactor how the image "mode/type" is handled. It is still not perfect for
Matti Hamalainen <ccr@tnsp.org>
parents:
2264
diff
changeset
|
161 if (img->extraInfo[D64_EI_MODE] & D64_FMT_FLI) |
2238
5db6e0b63b35
Change again how the interlace type information is stored. Now store it in
Matti Hamalainen <ccr@tnsp.org>
parents:
2210
diff
changeset
|
162 { |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
163 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
164 "FLI type", "%d", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
165 img->extraInfo[D64_EI_FLI_TYPE]); |
2238
5db6e0b63b35
Change again how the interlace type information is stored. Now store it in
Matti Hamalainen <ccr@tnsp.org>
parents:
2210
diff
changeset
|
166 } |
5db6e0b63b35
Change again how the interlace type information is stored. Now store it in
Matti Hamalainen <ccr@tnsp.org>
parents:
2210
diff
changeset
|
167 |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
168 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
169 "Width x Height", "%d x %d pixels", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
170 img->fmt->width, img->fmt->height); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
171 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
172 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
173 "CHwidth x CHheight", "%d x %d", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
174 img->fmt->chWidth, img->fmt->chHeight); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
175 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
176 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
177 "d020 / border", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
178 img->d020, img->d020); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
179 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
180 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
181 "d021 / background", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
182 img->bgcolor, img->bgcolor); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
183 |
2265
48b48251610a
Refactor how the image "mode/type" is handled. It is still not perfect for
Matti Hamalainen <ccr@tnsp.org>
parents:
2264
diff
changeset
|
184 if (img->extraInfo[D64_EI_MODE] & D64_FMT_CHAR) |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
185 { |
2265
48b48251610a
Refactor how the image "mode/type" is handled. It is still not perfect for
Matti Hamalainen <ccr@tnsp.org>
parents:
2264
diff
changeset
|
186 if ((img->extraInfo[D64_EI_MODE] & D64_FMT_MODE_MASK) == (D64_FMT_MC | D64_FMT_ECM)) |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
187 { |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
188 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
189 "d022", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
190 img->d022, img->d022); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
191 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
192 "d023", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
193 img->d023, img->d023); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
194 } |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
195 |
2265
48b48251610a
Refactor how the image "mode/type" is handled. It is still not perfect for
Matti Hamalainen <ccr@tnsp.org>
parents:
2264
diff
changeset
|
196 if ((img->extraInfo[D64_EI_MODE] & D64_FMT_MODE_MASK) == D64_FMT_ECM) |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
197 { |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
198 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
199 "d024", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
200 img->d024, img->d024); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
201 } |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
202 } |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
203 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
204 else |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
205 if (fmt != NULL) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
206 { |
2265
48b48251610a
Refactor how the image "mode/type" is handled. It is still not perfect for
Matti Hamalainen <ccr@tnsp.org>
parents:
2264
diff
changeset
|
207 dmC64GetImageTypeString(typeStr, sizeof(typeStr), fmt->format->mode, TRUE); |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
208 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
209 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
210 "Type", "%s", typeStr); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
211 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
212 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
213 "Width x Height", "%d x %d pixels", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
214 fmt->format->width, fmt->format->height); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
215 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
216 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
217 "CHwidth x CHheight", "%d x %d", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
218 fmt->format->chWidth, fmt->format->chHeight); |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
219 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
220 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
221 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
222 |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
223 void argShowC64Formats(FILE *fh, const BOOL rw, const BOOL verbose) |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
224 { |
2263 | 225 fprintf(fh, |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
226 "Available C64 bitmap formats (-f <frmt>):\n" |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
227 " frmt %s| Type %s| Description\n" |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
228 "------%s+-----------------%s+-------------------------------------\n", |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
229 rw ? "| RW " : "", |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
230 verbose ? "| Load | Size " : "", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
231 rw ? "+----" : "", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
232 verbose ? "+-------+-------" : "" |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
233 ); |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
234 |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
235 for (int i = 0; i < ndmC64ImageFormats; i++) |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
236 { |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
237 const DMC64ImageFormat *fmt = dmC64ImageFormatsSorted[i]; |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
238 char buf[64]; |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
239 |
2263 | 240 fprintf(fh, "%-6s", |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
241 fmt->fext); |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
242 |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
243 if (rw) |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
244 { |
2263 | 245 fprintf(fh, "| %c%c ", |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
246 (fmt->flags & DM_FMT_RD) ? 'R' : ' ', |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
247 (fmt->flags & DM_FMT_WR) ? 'W' : ' ' |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
248 ); |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
249 } |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
250 |
2263 | 251 fprintf(fh, |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
252 "| %-15s ", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
253 dmC64GetImageTypeString(buf, sizeof(buf), fmt->format->mode, FALSE) |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
254 ); |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
255 |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
256 if (verbose) |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
257 { |
2517
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
258 if (fmt->addr < 0) |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
259 { |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
260 fprintf(fh, "| %4s ", |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
261 fmt->addr == -1 ? "?" : ""); |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
262 } |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
263 else |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
264 { |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
265 fprintf(fh, "| $%04x ", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
266 (uint32_t) fmt->addr); |
2517
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
267 } |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
268 |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
269 if (fmt->size > 0) |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
270 { |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
271 fprintf(fh, "| $%04" DM_PRIx_SIZE_T " ", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
272 fmt->size); |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
273 } |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
274 else |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
275 { |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
276 fprintf(fh, "| "); |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
277 } |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
278 } |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
279 |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
280 fprintf(fh, |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
281 "| %s%s\n", |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
282 fmt->name, |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
283 fmt->flags & DM_FMT_BROKEN ? " [BROKEN]" : ""); |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
284 } |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
285 |
2263 | 286 fprintf(fh, "%d formats supported.\n", ndmC64ImageFormats); |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
287 } |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
288 |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
289 |
2263 | 290 void argShowC64PaletteHelp(FILE *fh) |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
291 { |
2263 | 292 fprintf(fh, |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
293 "\n" |
2373
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
294 "Available internal C64 palettes (-p <name>):\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
295 "--------------------------------------------\n"); |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
296 |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
297 for (int n = 0; n < ndmC64DefaultPalettes; n++) |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
298 { |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
299 DMC64Palette *pal = &dmC64DefaultPalettes[n]; |
2263 | 300 fprintf(fh, |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
301 "%-10s | %s\n", |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
302 pal->name, pal->desc); |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
303 } |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
304 |
2263 | 305 fprintf(fh, |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
306 "\n" |
2373
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
307 "Instead of using one of the internal palettes,\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
308 "you can specify an external palette file.\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
309 "\n" |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
310 "Supported palette file formats are:\n" |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
311 "-----------------------------------\n" |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
312 ); |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
313 |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
314 for (int n = 0; n < ndmPaletteFormatList; n++) |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
315 { |
2247 | 316 const DMPaletteFormat *fmt = &dmPaletteFormatList[n]; |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
317 if (fmt->flags & DM_FMT_RD) |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
318 { |
2263 | 319 fprintf(fh, |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
320 "%-6s | %s\n", |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
321 fmt->fext, fmt->name); |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
322 } |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
323 } |
2373
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
324 fprintf(fh, |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
325 "\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
326 "Example: -p foobar.bin\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
327 "\n"); |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
328 } |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
329 |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
330 |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
331 BOOL argHandleC64PaletteOption(char *optArg, DMC64Palette **ppal, char **palFile) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
332 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
333 if (strcasecmp(optArg, "help") == 0 || |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
334 strcasecmp(optArg, "list") == 0) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
335 { |
2240
e2c6af0c9431
Add FILE argument to argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2238
diff
changeset
|
336 argShowC64PaletteHelp(stdout); |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
337 return FALSE; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
338 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
339 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
340 for (int n = 0; n < ndmC64DefaultPalettes; n++) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
341 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
342 DMC64Palette *pal = &dmC64DefaultPalettes[n]; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
343 if (strcasecmp(pal->name, optArg) == 0) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
344 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
345 *ppal = pal; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
346 return TRUE; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
347 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
348 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
349 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
350 *palFile = optArg; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
351 return TRUE; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
352 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
353 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
354 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
355 int dmHandleExternalPalette(const char *filename, DMPalette **ppal) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
356 { |
2263 | 357 DMResource *fh = NULL; |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
358 const DMImageFormat *ifmt = NULL; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
359 const DMPaletteFormat *pfmt = NULL; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
360 DMImage *inImage = NULL; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
361 Uint8 *dataBuf = NULL; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
362 size_t dataSize; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
363 int index, res; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
364 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
365 dmMsg(1, "Probing file '%s' for palette data.\n", filename); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
366 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
367 if ((res = dmReadDataFile(NULL, filename, &dataBuf, &dataSize)) != DMERR_OK) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
368 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
369 dmErrorMsg("No such palette '%s', and no such file found (%s).\n", |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
370 filename, dmErrorStr(res)); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
371 goto done; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
372 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
373 |
2263 | 374 if ((res = dmf_open_memio(NULL, filename, dataBuf, dataSize, &fh)) != DMERR_OK) |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
375 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
376 dmErrorMsg("Could not create MemIO handle for input.\n"); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
377 goto done; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
378 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
379 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
380 if (dmImageProbeGeneric(dataBuf, dataSize, &ifmt, &index) > 0 && |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
381 ifmt->read != NULL) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
382 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
383 dmMsg(1, "Probed image format %s (%s)\n", |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
384 ifmt->name, ifmt->fext); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
385 |
2263 | 386 res = ifmt->read(fh, &inImage); |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
387 if (res != DMERR_OK) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
388 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
389 dmErrorMsg("Could not read image file: %s\n", |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
390 dmErrorStr(res)); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
391 goto done; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
392 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
393 |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
394 if (inImage->pixfmt != DM_PIXFMT_PALETTE) |
2210
fa5e74384d87
Check for non-existing palette when reading palette from image file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2208
diff
changeset
|
395 { |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
396 res = dmError(DMERR_INVALID_DATA, |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
397 "Image file is not a paletted format.\n"); |
2210
fa5e74384d87
Check for non-existing palette when reading palette from image file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2208
diff
changeset
|
398 } |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
399 |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
400 if (inImage->pal == NULL) |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
401 { |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
402 res = dmError(DMERR_NULLPTR, |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
403 "Image file does not have a palette.\n"); |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
404 } |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
405 |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
406 res = dmPaletteCopy(ppal, inImage->pal); |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
407 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
408 else |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
409 if (dmPaletteProbeGeneric(dataBuf, dataSize, &pfmt, &index) > 0 && |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
410 pfmt->read != NULL) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
411 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
412 dmMsg(1, "Probed palette format %s (%s)\n", |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
413 pfmt->name, pfmt->fext); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
414 |
2263 | 415 res = pfmt->read(fh, ppal); |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
416 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
417 else |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
418 { |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
419 res = dmError(DMERR_NOT_SUPPORTED, |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
420 "Not an internal palette or recognized palette file '%s'.\n", |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
421 filename); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
422 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
423 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
424 done: |
2263 | 425 dmf_close(fh); |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
426 dmImageFree(inImage); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
427 dmFree(dataBuf); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
428 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
429 return res; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
430 } |