Mercurial > hg > dmlib
comparison tools/view64.c @ 958:985225a93aeb
Add error code parameter to dmError() and dmErrorVA().
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 27 Feb 2015 03:58:25 +0200 |
parents | 81ff7111fedf |
children | e8c99da451cd |
comparison
equal
deleted
inserted
replaced
957:b66653c9acb3 | 958:985225a93aeb |
---|---|
79 float factor; | 79 float factor; |
80 if (sscanf(optArg, "%f", &factor) == 1) | 80 if (sscanf(optArg, "%f", &factor) == 1) |
81 { | 81 { |
82 if (factor < 1 || factor >= 10) | 82 if (factor < 1 || factor >= 10) |
83 { | 83 { |
84 dmError("Invalid scale factor %1.0f, see help for valid values.\n", factor); | 84 dmErrorMsg("Invalid scale factor %1.0f, see help for valid values.\n", factor); |
85 return FALSE; | 85 return FALSE; |
86 } | 86 } |
87 | 87 |
88 dmSetScaleFactor(factor); | 88 dmSetScaleFactor(factor); |
89 } | 89 } |
90 else | 90 else |
91 { | 91 { |
92 dmError("Invalid scale factor '%s'.\n", optArg); | 92 dmErrorMsg("Invalid scale factor '%s'.\n", optArg); |
93 return FALSE; | 93 return FALSE; |
94 } | 94 } |
95 } | 95 } |
96 break; | 96 break; |
97 | 97 |
100 int i; | 100 int i; |
101 if (sscanf(optArg, "%d", &i) == 1) | 101 if (sscanf(optArg, "%d", &i) == 1) |
102 { | 102 { |
103 if (i < 0 || i >= ndmC64ImageFormats) | 103 if (i < 0 || i >= ndmC64ImageFormats) |
104 { | 104 { |
105 dmError("Invalid image format index %d, see help for valid values.\n", i); | 105 dmErrorMsg("Invalid image format index %d, see help for valid values.\n", i); |
106 return FALSE; | 106 return FALSE; |
107 } | 107 } |
108 optForcedFormat = i; | 108 optForcedFormat = i; |
109 } | 109 } |
110 else | 110 else |
111 { | 111 { |
112 dmError("Invalid image format argument '%s'.\n", optArg); | 112 dmErrorMsg("Invalid image format argument '%s'.\n", optArg); |
113 return FALSE; | 113 return FALSE; |
114 } | 114 } |
115 } | 115 } |
116 break; | 116 break; |
117 | 117 |
118 default: | 118 default: |
119 dmError("Unknown option '%s'.\n", currArg); | 119 dmErrorMsg("Unknown option '%s'.\n", currArg); |
120 return FALSE; | 120 return FALSE; |
121 } | 121 } |
122 | 122 |
123 return TRUE; | 123 return TRUE; |
124 } | 124 } |
131 optFilename = dm_strdup(filename); | 131 optFilename = dm_strdup(filename); |
132 return TRUE; | 132 return TRUE; |
133 } | 133 } |
134 else | 134 else |
135 { | 135 { |
136 dmError("Too many filenames specified ('%s')\n", filename); | 136 dmErrorMsg("Too many filenames specified ('%s')\n", filename); |
137 return FALSE; | 137 return FALSE; |
138 } | 138 } |
139 } | 139 } |
140 | 140 |
141 | 141 |
142 BOOL dmInitializeVideo(SDL_Surface **screen) | 142 BOOL dmInitializeVideo(SDL_Surface **screen) |
143 { | 143 { |
144 *screen = SDL_SetVideoMode(optScrWidth, optScrHeight, 8, optVFlags | SDL_RESIZABLE); | 144 *screen = SDL_SetVideoMode(optScrWidth, optScrHeight, 8, optVFlags | SDL_RESIZABLE); |
145 if (*screen == NULL) | 145 if (*screen == NULL) |
146 { | 146 { |
147 dmError("Can't SDL_SetVideoMode(): %s\n", SDL_GetError()); | 147 dmErrorMsg("Can't SDL_SetVideoMode(): %s\n", SDL_GetError()); |
148 return FALSE; | 148 return FALSE; |
149 } | 149 } |
150 return TRUE; | 150 return TRUE; |
151 } | 151 } |
152 | 152 |
173 exit(1); | 173 exit(1); |
174 | 174 |
175 | 175 |
176 if (optFilename == NULL) | 176 if (optFilename == NULL) |
177 { | 177 { |
178 dmError("No input file specified, perhaps you need some --help\n"); | 178 dmErrorMsg("No input file specified, perhaps you need some --help\n"); |
179 goto error; | 179 goto error; |
180 } | 180 } |
181 | 181 |
182 if ((ret = dmReadDataFile(NULL, optFilename, &dataBuf, &dataSize)) != DMERR_OK) | 182 if ((ret = dmReadDataFile(NULL, optFilename, &dataBuf, &dataSize)) != DMERR_OK) |
183 goto error; | 183 goto error; |
196 | 196 |
197 ret = dmC64DecodeBMP(&cimage, dataBuf, dataSize, 0, 2, &fmt, forced); | 197 ret = dmC64DecodeBMP(&cimage, dataBuf, dataSize, 0, 2, &fmt, forced); |
198 | 198 |
199 if (ret < 0) | 199 if (ret < 0) |
200 { | 200 { |
201 dmError("Failed to decode bitmap data %d: %s\n", ret, dmErrorStr(ret)); | 201 dmErrorMsg("Failed to decode bitmap data %d: %s\n", ret, dmErrorStr(ret)); |
202 goto error; | 202 goto error; |
203 } | 203 } |
204 | 204 |
205 if (forced == NULL && fmt != NULL) | 205 if (forced == NULL && fmt != NULL) |
206 { | 206 { |
208 fmt->name, fmt->type, fmt->fext); | 208 fmt->name, fmt->type, fmt->fext); |
209 } | 209 } |
210 | 210 |
211 if (fmt == NULL) | 211 if (fmt == NULL) |
212 { | 212 { |
213 dmError("Probing could not find any matching image format. Perhaps try forcing a format via -f.\n"); | 213 dmErrorMsg("Probing could not find any matching image format. Perhaps try forcing a format via -f.\n"); |
214 goto error; | 214 goto error; |
215 } | 215 } |
216 | 216 |
217 // Initialize libSDL | 217 // Initialize libSDL |
218 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) != 0) | 218 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) != 0) |
219 { | 219 { |
220 dmError("Could not initialize SDL: %s\n", SDL_GetError()); | 220 dmErrorMsg("Could not initialize SDL: %s\n", SDL_GetError()); |
221 goto error; | 221 goto error; |
222 } | 222 } |
223 initSDL = TRUE; | 223 initSDL = TRUE; |
224 | 224 |
225 | 225 |
226 // Open window/set video mode | 226 // Open window/set video mode |
227 screen = SDL_SetVideoMode(optScrWidth, optScrHeight, 8, optVFlags | SDL_RESIZABLE); | 227 screen = SDL_SetVideoMode(optScrWidth, optScrHeight, 8, optVFlags | SDL_RESIZABLE); |
228 if (screen == NULL) | 228 if (screen == NULL) |
229 { | 229 { |
230 dmError("Can't SDL_SetVideoMode(): %s\n", SDL_GetError()); | 230 dmErrorMsg("Can't SDL_SetVideoMode(): %s\n", SDL_GetError()); |
231 goto error; | 231 goto error; |
232 } | 232 } |
233 | 233 |
234 // Create surface (we are lazy and ugly) | 234 // Create surface (we are lazy and ugly) |
235 surf = SDL_CreateRGBSurface(SDL_SWSURFACE, cimage->width, cimage->height, 8, 0, 0, 0, 0); | 235 surf = SDL_CreateRGBSurface(SDL_SWSURFACE, cimage->width, cimage->height, 8, 0, 0, 0, 0); |
302 int sheight = optScrWidth * aspect * C64_SCR_PAR_XY; | 302 int sheight = optScrWidth * aspect * C64_SCR_PAR_XY; |
303 int ypos = (optScrHeight - sheight) / 2; | 303 int ypos = (optScrHeight - sheight) / 2; |
304 | 304 |
305 if (SDL_MUSTLOCK(screen) != 0 && SDL_LockSurface(screen) != 0) | 305 if (SDL_MUSTLOCK(screen) != 0 && SDL_LockSurface(screen) != 0) |
306 { | 306 { |
307 dmError("Can't lock surface.\n"); | 307 dmErrorMsg("Can't lock surface.\n"); |
308 goto error; | 308 goto error; |
309 } | 309 } |
310 | 310 |
311 dmScaledBlitSurface8to8(surf, 0, ypos, optScrWidth, sheight, screen); | 311 dmScaledBlitSurface8to8(surf, 0, ypos, optScrWidth, sheight, screen); |
312 SDL_SetColors(screen, (SDL_Color *)dmC64Palette, 0, C64_NCOLORS); | 312 SDL_SetColors(screen, (SDL_Color *)dmC64Palette, 0, C64_NCOLORS); |