comparison tools/lib64util.c @ 2265:48b48251610a

Refactor how the image "mode/type" is handled. It is still not perfect for our purposes, but better now.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 17 Jun 2019 02:03:35 +0300
parents e25fa516b53a
children 87533af8db64
comparison
equal deleted inserted replaced
2264:e25fa516b53a 2265:48b48251610a
57 fmt->name, fmt->fext); 57 fmt->name, fmt->fext);
58 } 58 }
59 59
60 if (img != NULL) 60 if (img != NULL)
61 { 61 {
62 dmC64GetImageTypeString(typeStr, sizeof(typeStr), img->fmt->type, TRUE); 62 dmC64GetImageTypeString(typeStr, sizeof(typeStr), img->extraInfo[D64_EI_MODE], TRUE);
63 63
64 dmC64ImageDumpLine(fh, indent, 64 dmC64ImageDumpLine(fh, indent,
65 "Type", "%s", typeStr); 65 "Type", "%s", typeStr);
66 66
67 dmC64ImageDumpLine(fh, indent, 67 dmC64ImageDumpLine(fh, indent,
68 "Internal blocks", "%d", img->nblocks); 68 "Internal blocks", "%d", img->nblocks);
69 69
70 if (img->fmt->type & D64_FMT_ILACE) 70 if (img->extraInfo[D64_EI_MODE] & D64_FMT_ILACE)
71 { 71 {
72 char *tmps; 72 char *tmps;
73 switch (img->extraInfo[D64_EI_ILACE_TYPE]) 73 switch (img->extraInfo[D64_EI_ILACE_TYPE])
74 { 74 {
75 case D64_ILACE_COLOR: tmps = "color"; break; 75 case D64_ILACE_COLOR: tmps = "color"; break;
78 } 78 }
79 dmC64ImageDumpLine(fh, indent, 79 dmC64ImageDumpLine(fh, indent,
80 "Interlace type", "%s", tmps); 80 "Interlace type", "%s", tmps);
81 } 81 }
82 82
83 if (img->fmt->type & D64_FMT_FLI) 83 if (img->extraInfo[D64_EI_MODE] & D64_FMT_FLI)
84 { 84 {
85 dmC64ImageDumpLine(fh, indent, 85 dmC64ImageDumpLine(fh, indent,
86 "FLI type", "%d", 86 "FLI type", "%d",
87 img->extraInfo[D64_EI_FLI_TYPE]); 87 img->extraInfo[D64_EI_FLI_TYPE]);
88 } 88 }
101 101
102 dmC64ImageDumpLine(fh, indent, 102 dmC64ImageDumpLine(fh, indent,
103 "d021 / background", "%d ($%02x)", 103 "d021 / background", "%d ($%02x)",
104 img->bgcolor, img->bgcolor); 104 img->bgcolor, img->bgcolor);
105 105
106 if (img->fmt->type & D64_FMT_CHAR) 106 if (img->extraInfo[D64_EI_MODE] & D64_FMT_CHAR)
107 { 107 {
108 if ((img->fmt->type & D64_FMT_MODE_MASK) == (D64_FMT_MC | D64_FMT_ECM)) 108 if ((img->extraInfo[D64_EI_MODE] & D64_FMT_MODE_MASK) == (D64_FMT_MC | D64_FMT_ECM))
109 { 109 {
110 dmC64ImageDumpLine(fh, indent, 110 dmC64ImageDumpLine(fh, indent,
111 "d022", "%d ($%02x)", 111 "d022", "%d ($%02x)",
112 img->d022, img->d022); 112 img->d022, img->d022);
113 dmC64ImageDumpLine(fh, indent, 113 dmC64ImageDumpLine(fh, indent,
114 "d023", "%d ($%02x)", 114 "d023", "%d ($%02x)",
115 img->d023, img->d023); 115 img->d023, img->d023);
116 } 116 }
117 117
118 if ((img->fmt->type & D64_FMT_MODE_MASK) == D64_FMT_ECM) 118 if ((img->extraInfo[D64_EI_MODE] & D64_FMT_MODE_MASK) == D64_FMT_ECM)
119 { 119 {
120 dmC64ImageDumpLine(fh, indent, 120 dmC64ImageDumpLine(fh, indent,
121 "d024", "%d ($%02x)", 121 "d024", "%d ($%02x)",
122 img->d024, img->d024); 122 img->d024, img->d024);
123 } 123 }
124 } 124 }
125 } 125 }
126 else 126 else
127 if (fmt != NULL) 127 if (fmt != NULL)
128 { 128 {
129 dmC64GetImageTypeString(typeStr, sizeof(typeStr), fmt->format->type, TRUE); 129 dmC64GetImageTypeString(typeStr, sizeof(typeStr), fmt->format->mode, TRUE);
130 130
131 dmC64ImageDumpLine(fh, indent, 131 dmC64ImageDumpLine(fh, indent,
132 "Type", "%s", typeStr); 132 "Type", "%s", typeStr);
133 133
134 dmC64ImageDumpLine(fh, indent, 134 dmC64ImageDumpLine(fh, indent,