Mercurial > hg > dmlib
annotate tools/lib64util.c @ 2634:f3c7115cbf85 default tip
Fix verbose build echos.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 29 Feb 2024 21:47:31 +0200 |
parents | a4f6584edca9 |
children |
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 |
2571
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
11 // Default character file ROM path, if not defined yet |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
12 #ifndef DM_DEF_CHARGEN |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
13 #define DM_DEF_CHARGEN "/usr/local/lib64/vice/C64/chargen" |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
14 #endif |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
15 |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
16 |
2380
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 // Some common C64 palettes |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
19 // |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
20 DMC64Palette dmC64DefaultPalettes[] = |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
21 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
22 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
23 "pepto", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
24 "Pepto's classic (default)", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
25 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
26 { 0x00, 0x00, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
27 { 0xFF, 0xFF, 0xFF, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
28 { 0x68, 0x37, 0x2B, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
29 { 0x70, 0xA4, 0xB2, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
30 { 0x6F, 0x3D, 0x86, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
31 { 0x58, 0x8D, 0x43, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
32 { 0x35, 0x28, 0x79, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
33 { 0xB8, 0xC7, 0x6F, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
34 { 0x6F, 0x4F, 0x25, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
35 { 0x43, 0x39, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
36 { 0x9A, 0x67, 0x59, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
37 { 0x44, 0x44, 0x44, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
38 { 0x6C, 0x6C, 0x6C, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
39 { 0x9A, 0xD2, 0x84, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
40 { 0x6C, 0x5E, 0xB5, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
41 { 0x95, 0x95, 0x95, 0xff }, |
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 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
44 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
45 "colodore", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
46 "Colodore", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
47 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
48 { 0x00, 0x00, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
49 { 0xff, 0xff, 0xff, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
50 { 0x96, 0x28, 0x2e, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
51 { 0x5b, 0xd6, 0xce, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
52 { 0x9f, 0x2d, 0xad, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
53 { 0x41, 0xb9, 0x36, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
54 { 0x27, 0x24, 0xc4, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
55 { 0xef, 0xf3, 0x47, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
56 { 0x9f, 0x48, 0x15, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
57 { 0x5e, 0x35, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
58 { 0xda, 0x5f, 0x66, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
59 { 0x47, 0x47, 0x47, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
60 { 0x78, 0x78, 0x78, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
61 { 0x91, 0xff, 0x84, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
62 { 0x68, 0x64, 0xff, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
63 { 0xae, 0xae, 0xae, 0xff }, |
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 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
66 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
67 "vice3", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
68 "VICE 3.3", |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
69 { |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
70 { 0x00, 0x00, 0x00, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
71 { 0xfd, 0xfe, 0xfc, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
72 { 0xbe, 0x1a, 0x24, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
73 { 0x30, 0xe6, 0xc6, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
74 { 0xb4, 0x1a, 0xe2, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
75 { 0x1f, 0xd2, 0x1e, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
76 { 0x21, 0x1b, 0xae, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
77 { 0xdf, 0xf6, 0x0a, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
78 { 0xb8, 0x41, 0x04, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
79 { 0x6a, 0x33, 0x04, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
80 { 0xfe, 0x4a, 0x57, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
81 { 0x42, 0x45, 0x40, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
82 { 0x70, 0x74, 0x6f, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
83 { 0x59, 0xfe, 0x59, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
84 { 0x5f, 0x53, 0xfe, 0xff }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
85 { 0xa4, 0xa7, 0xa2, 0xff }, |
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 }, |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
88 }; |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
89 |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
90 const int ndmC64DefaultPalettes = sizeof(dmC64DefaultPalettes) / sizeof(dmC64DefaultPalettes[0]); |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
91 |
89cb93184175
Move dmC64DefaultPalettes from lib64gfx to lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2373
diff
changeset
|
92 |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
93 char * dmC64GetImageTypeString(char *buf, const size_t len, const int type, const bool lng) |
2204
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 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
|
96 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
|
97 const char *fmtStr; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 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
|
99 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 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
|
101 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
|
102 else |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
103 fmtStr = lng ? "ERROR" : "ERR"; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
104 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
105 snprintf(buf, len, |
2314
87533af8db64
Add format flag for formats that use sprite layer.
Matti Hamalainen <ccr@tnsp.org>
parents:
2265
diff
changeset
|
106 "%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
|
107 fmtStr, |
2314
87533af8db64
Add format flag for formats that use sprite layer.
Matti Hamalainen <ccr@tnsp.org>
parents:
2265
diff
changeset
|
108 (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
|
109 (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
|
110 (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
|
111 (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
|
112 ); |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
113 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
114 return buf; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
115 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
116 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
117 |
2385
5ffc48a0bebe
Conditionally define DM_ATTR_PRINTF_FMT(xstart, xend) instead of using
Matti Hamalainen <ccr@tnsp.org>
parents:
2383
diff
changeset
|
118 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
|
119 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
|
120 { |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
121 va_list ap; |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
122 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
123 fputs(indent, fh); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
124 fprintf(fh, "%-20s: ", field); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
125 va_start(ap, fmt); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
126 vfprintf(fh, fmt, ap); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
127 va_end(ap); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
128 fputs("\n", fh); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
129 } |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
130 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
131 |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
132 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
|
133 { |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
134 char typeStr[64]; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
135 |
2602
a4f6584edca9
Hopefully improve the use-cases for 64vw "-l" option by also listing
Matti Hamalainen <ccr@tnsp.org>
parents:
2586
diff
changeset
|
136 dmC64ImageDumpLine(fh, indent, |
a4f6584edca9
Hopefully improve the use-cases for 64vw "-l" option by also listing
Matti Hamalainen <ccr@tnsp.org>
parents:
2586
diff
changeset
|
137 "Format", "%s [%s]", |
a4f6584edca9
Hopefully improve the use-cases for 64vw "-l" option by also listing
Matti Hamalainen <ccr@tnsp.org>
parents:
2586
diff
changeset
|
138 fmt != NULL ? fmt->name : "UNKNOWN", |
a4f6584edca9
Hopefully improve the use-cases for 64vw "-l" option by also listing
Matti Hamalainen <ccr@tnsp.org>
parents:
2586
diff
changeset
|
139 fmt != NULL ? fmt->fext : "???"); |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
140 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
141 if (img != NULL) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
142 { |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
143 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
|
144 |
2264
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 "Type", "%s", typeStr); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
147 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
148 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
149 "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
|
150 |
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
|
151 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
|
152 { |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
153 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
|
154 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
|
155 { |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 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
|
157 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
|
158 default: tmps = "ERROR"; break; |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 } |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
160 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
161 "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
|
162 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
163 |
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
|
164 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
|
165 { |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
166 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
167 "FLI type", "%d", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
168 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
|
169 } |
5db6e0b63b35
Change again how the interlace type information is stored. Now store it in
Matti Hamalainen <ccr@tnsp.org>
parents:
2210
diff
changeset
|
170 |
2264
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
171 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
172 "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
|
173 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
|
174 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
175 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
176 "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
|
177 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
|
178 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
179 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
180 "d020 / border", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
181 img->d020, img->d020); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
182 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
183 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
184 "d021 / background", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
185 img->bgcolor, img->bgcolor); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
186 |
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
|
187 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
|
188 { |
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
|
189 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
|
190 { |
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 "d022", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
193 img->d022, img->d022); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
194 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
195 "d023", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
196 img->d023, img->d023); |
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 |
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
|
199 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
|
200 { |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
201 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
202 "d024", "%d ($%02x)", |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
203 img->d024, img->d024); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
204 } |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
205 } |
2204
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
206 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
207 else |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
208 if (fmt != NULL) |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
209 { |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
210 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
|
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 "Type", "%s", typeStr); |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
214 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
215 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
216 "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
|
217 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
|
218 |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
219 dmC64ImageDumpLine(fh, indent, |
e25fa516b53a
Add helper function dmC64ImageDumpLine() for printing information out in
Matti Hamalainen <ccr@tnsp.org>
parents:
2263
diff
changeset
|
220 "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
|
221 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
|
222 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
223 } |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
224 |
cbac4912992c
Add new module "lib64util", and move some functions there from lib64gfx
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
225 |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
226 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
|
227 { |
2263 | 228 fprintf(fh, |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
229 "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
|
230 " 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
|
231 "------%s+-----------------%s+-------------------------------------\n", |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
232 rw ? "| RW " : "", |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
233 verbose ? "| Load | Size " : "", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
234 rw ? "+----" : "", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
235 verbose ? "+-------+-------" : "" |
2242
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 |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
238 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
|
239 { |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
240 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
|
241 char buf[64]; |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
242 |
2263 | 243 fprintf(fh, "%-6s", |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
244 fmt->fext); |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
245 |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
246 if (rw) |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
247 { |
2263 | 248 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
|
249 (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
|
250 (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
|
251 ); |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
252 } |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
253 |
2263 | 254 fprintf(fh, |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
255 "| %-15s ", |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
256 dmC64GetImageTypeString(buf, sizeof(buf), fmt->format->mode, false) |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
257 ); |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
258 |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
259 if (verbose) |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
260 { |
2517
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
261 if (fmt->addr < 0) |
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 fprintf(fh, "| %4s ", |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
264 fmt->addr == -1 ? "?" : ""); |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
265 } |
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
266 else |
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 fprintf(fh, "| $%04x ", |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
269 (uint32_t) fmt->addr); |
2517
106f4426c729
List formats without a loading address differently in argShowC64Formats().
Matti Hamalainen <ccr@tnsp.org>
parents:
2515
diff
changeset
|
270 } |
2515
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
271 |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
272 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
|
273 { |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
274 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
|
275 fmt->size); |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
276 } |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
277 else |
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 fprintf(fh, "| "); |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
280 } |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
281 } |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
282 |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
283 fprintf(fh, |
a40de347fcb0
Make c64 formats listing (optionally) more verbose. Handle --help a bit
Matti Hamalainen <ccr@tnsp.org>
parents:
2463
diff
changeset
|
284 "| %s%s\n", |
2242
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
285 fmt->name, |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
286 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
|
287 } |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
288 |
2263 | 289 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
|
290 } |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
291 |
65a2c2e99c81
Move listing of C64 formats function to argShowC64Formats in lib64util.
Matti Hamalainen <ccr@tnsp.org>
parents:
2240
diff
changeset
|
292 |
2263 | 293 void argShowC64PaletteHelp(FILE *fh) |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
294 { |
2263 | 295 fprintf(fh, |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
296 "\n" |
2373
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
297 "Available internal C64 palettes (-p <name>):\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
298 "--------------------------------------------\n"); |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
299 |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
300 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
|
301 { |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
302 DMC64Palette *pal = &dmC64DefaultPalettes[n]; |
2263 | 303 fprintf(fh, |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
304 "%-10s | %s\n", |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
305 pal->name, pal->desc); |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
306 } |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
307 |
2263 | 308 fprintf(fh, |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
309 "\n" |
2373
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
310 "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
|
311 "you can specify an external palette file.\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
312 "\n" |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
313 "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
|
314 "-----------------------------------\n" |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
315 ); |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
316 |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
317 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
|
318 { |
2247 | 319 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
|
320 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
|
321 { |
2263 | 322 fprintf(fh, |
2245
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
323 "%-6s | %s\n", |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
324 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
|
325 } |
95f669692b01
Mention support for external palette files in palette help, and also
Matti Hamalainen <ccr@tnsp.org>
parents:
2244
diff
changeset
|
326 } |
2373
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
327 fprintf(fh, |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
328 "\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
329 "Example: -p foobar.bin\n" |
f35ee6f8d994
Improve the help text in argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2372
diff
changeset
|
330 "\n"); |
2244
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
331 } |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
332 |
b26e37e7cbe6
Move function to better place in the file.
Matti Hamalainen <ccr@tnsp.org>
parents:
2242
diff
changeset
|
333 |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
334 bool argHandleC64PaletteOption(char *optArg, DMC64Palette **ppal, char **palFile) |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
335 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
336 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
|
337 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
|
338 { |
2240
e2c6af0c9431
Add FILE argument to argShowC64PaletteHelp().
Matti Hamalainen <ccr@tnsp.org>
parents:
2238
diff
changeset
|
339 argShowC64PaletteHelp(stdout); |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
340 return false; |
2208
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 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
343 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
|
344 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
345 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
|
346 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
|
347 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
348 *ppal = pal; |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
349 return true; |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
350 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
351 } |
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 *palFile = optArg; |
2586
9807ae37ad69
Require stdbool.h, we require C11 now.
Matti Hamalainen <ccr@tnsp.org>
parents:
2571
diff
changeset
|
354 return true; |
2208
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
355 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
356 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
357 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
358 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
|
359 { |
2263 | 360 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
|
361 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
|
362 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
|
363 DMImage *inImage = NULL; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
364 Uint8 *dataBuf = NULL; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
365 size_t dataSize; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
366 int index, res; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
367 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
368 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
|
369 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
370 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
|
371 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
372 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
|
373 filename, dmErrorStr(res)); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
374 goto done; |
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 |
2263 | 377 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
|
378 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
379 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
|
380 goto done; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
381 } |
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 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
|
384 ifmt->read != NULL) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
385 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
386 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
|
387 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
|
388 |
2263 | 389 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
|
390 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
|
391 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
392 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
|
393 dmErrorStr(res)); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
394 goto done; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
395 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
396 |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
397 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
|
398 { |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
399 res = dmError(DMERR_INVALID_DATA, |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
400 "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
|
401 } |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
402 |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
403 if (inImage->pal == NULL) |
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 res = dmError(DMERR_NULLPTR, |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
406 "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
|
407 } |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
408 |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
409 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
|
410 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
411 else |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
412 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
|
413 pfmt->read != NULL) |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
414 { |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
415 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
|
416 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
|
417 |
2263 | 418 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
|
419 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
420 else |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
421 { |
2463
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
422 res = dmError(DMERR_NOT_SUPPORTED, |
45d863deb00b
Improve error and validity checks for external palette loading.
Matti Hamalainen <ccr@tnsp.org>
parents:
2385
diff
changeset
|
423 "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
|
424 filename); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
425 } |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
426 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
427 done: |
2263 | 428 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
|
429 dmImageFree(inImage); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
430 dmFree(dataBuf); |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
431 |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
432 return res; |
90ec1ec89c56
Revamp the palette handling in lib64gfx somewhat, add helper functions to
Matti Hamalainen <ccr@tnsp.org>
parents:
2204
diff
changeset
|
433 } |
2571
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
434 |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
435 |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
436 const char *dmGetChargenROMPath() |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
437 { |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
438 const char *path = getenv("CHARGEN_ROM"); |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
439 if (path != NULL) |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
440 return path; |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
441 else |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
442 return DM_DEF_CHARGEN; |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
443 } |
bb44c48cffac
Add helper function for getting C64 chargen ROM path from environment
Matti Hamalainen <ccr@tnsp.org>
parents:
2539
diff
changeset
|
444 |