/src/dng_sdk/source/dng_exceptions.cpp
Line | Count | Source |
1 | | /*****************************************************************************/ |
2 | | // Copyright 2006-2007 Adobe Systems Incorporated |
3 | | // All Rights Reserved. |
4 | | // |
5 | | // NOTICE: Adobe permits you to use, modify, and distribute this file in |
6 | | // accordance with the terms of the Adobe license agreement accompanying it. |
7 | | /*****************************************************************************/ |
8 | | |
9 | | /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_exceptions.cpp#2 $ */ |
10 | | /* $DateTime: 2012/06/06 12:08:58 $ */ |
11 | | /* $Change: 833617 $ */ |
12 | | /* $Author: tknoll $ */ |
13 | | |
14 | | /*****************************************************************************/ |
15 | | |
16 | | #include "dng_exceptions.h" |
17 | | |
18 | | #include "dng_flags.h" |
19 | | #include "dng_globals.h" |
20 | | |
21 | | /*****************************************************************************/ |
22 | | |
23 | | #ifndef qDNGReportErrors |
24 | | // assuming this isn't enable on Win, because it's using printf, but an app can redirect that to console |
25 | | #define qDNGReportErrors ((qDNGDebug && qMacOS) || qDNGValidate) |
26 | | #endif |
27 | | |
28 | | /*****************************************************************************/ |
29 | | |
30 | | void ReportWarning (const char *message, |
31 | | const char *sub_message) |
32 | 197 | { |
33 | | |
34 | | |
35 | | #if qDNGReportErrors |
36 | | |
37 | | if (sub_message) |
38 | | fprintf (stderr, "*** Warning: %s (%s) ***\n", message, sub_message); |
39 | | else |
40 | | fprintf (stderr, "*** Warning: %s ***\n", message); |
41 | | |
42 | | #else |
43 | | |
44 | 197 | (void) message; |
45 | 197 | (void) sub_message; |
46 | | |
47 | 197 | #endif |
48 | | |
49 | 197 | } |
50 | | |
51 | | /*****************************************************************************/ |
52 | | |
53 | | void ReportError (const char *message, |
54 | | const char *sub_message) |
55 | 0 | { |
56 | | |
57 | | #if qDNGReportErrors |
58 | | |
59 | | if (sub_message) |
60 | | fprintf (stderr, "*** Error: %s (%s) ***\n", message, sub_message); |
61 | | else |
62 | | fprintf (stderr, "*** Error: %s ***\n", message); |
63 | | |
64 | | #else |
65 | |
|
66 | 0 | (void) message; |
67 | 0 | (void) sub_message; |
68 | | |
69 | 0 | #endif |
70 | | |
71 | 0 | } |
72 | | |
73 | | /*****************************************************************************/ |
74 | | |
75 | | void Throw_dng_error (dng_error_code err, |
76 | | const char *message, |
77 | | const char *sub_message, |
78 | | bool silent) |
79 | 619k | { |
80 | | |
81 | | #if qDNGReportErrors |
82 | | |
83 | | { |
84 | | |
85 | | if (!message) |
86 | | { |
87 | | |
88 | | switch (err) |
89 | | { |
90 | | |
91 | | case dng_error_none: |
92 | | case dng_error_silent: |
93 | | case dng_error_user_canceled: |
94 | | { |
95 | | break; |
96 | | } |
97 | | |
98 | | case dng_error_not_yet_implemented: |
99 | | { |
100 | | message = "Not yet implemented"; |
101 | | break; |
102 | | } |
103 | | |
104 | | case dng_error_host_insufficient: |
105 | | { |
106 | | message = "Host insufficient"; |
107 | | break; |
108 | | } |
109 | | |
110 | | case dng_error_memory: |
111 | | { |
112 | | message = "Unable to allocate memory"; |
113 | | break; |
114 | | } |
115 | | |
116 | | case dng_error_bad_format: |
117 | | { |
118 | | message = "File format is invalid"; |
119 | | break; |
120 | | } |
121 | | |
122 | | case dng_error_matrix_math: |
123 | | { |
124 | | message = "Matrix math error"; |
125 | | break; |
126 | | } |
127 | | |
128 | | case dng_error_open_file: |
129 | | { |
130 | | message = "Unable to open file"; |
131 | | break; |
132 | | } |
133 | | |
134 | | case dng_error_read_file: |
135 | | { |
136 | | message = "File read error"; |
137 | | break; |
138 | | } |
139 | | |
140 | | case dng_error_write_file: |
141 | | { |
142 | | message = "File write error"; |
143 | | break; |
144 | | } |
145 | | |
146 | | case dng_error_end_of_file: |
147 | | { |
148 | | message = "Unexpected end-of-file"; |
149 | | break; |
150 | | } |
151 | | |
152 | | case dng_error_file_is_damaged: |
153 | | { |
154 | | message = "File is damaged"; |
155 | | break; |
156 | | } |
157 | | |
158 | | case dng_error_image_too_big_dng: |
159 | | { |
160 | | message = "Image is too big to save as DNG"; |
161 | | break; |
162 | | } |
163 | | |
164 | | case dng_error_image_too_big_tiff: |
165 | | { |
166 | | message = "Image is too big to save as TIFF"; |
167 | | break; |
168 | | } |
169 | | |
170 | | case dng_error_unsupported_dng: |
171 | | { |
172 | | message = "DNG version is unsupported"; |
173 | | break; |
174 | | } |
175 | | |
176 | | default: |
177 | | { |
178 | | message = "Unknown error"; |
179 | | break; |
180 | | } |
181 | | |
182 | | } |
183 | | |
184 | | } |
185 | | |
186 | | if (message && !silent) |
187 | | { |
188 | | ReportError (message, sub_message); |
189 | | } |
190 | | |
191 | | } |
192 | | |
193 | | #else |
194 | | |
195 | 619k | (void) message; |
196 | 619k | (void) sub_message; |
197 | 619k | (void) silent; |
198 | | |
199 | 619k | #endif |
200 | | |
201 | 619k | throw dng_exception (err); |
202 | | |
203 | 619k | } |
204 | | |
205 | | /*****************************************************************************/ |