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);