You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
3.8 KiB
206 lines
3.8 KiB
/*****************************************************************************/
|
|
// Copyright 2006-2007 Adobe Systems Incorporated
|
|
// All Rights Reserved.
|
|
//
|
|
// NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
// accordance with the terms of the Adobe license agreement accompanying it.
|
|
/*****************************************************************************/
|
|
|
|
/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_exceptions.cpp#2 $ */
|
|
/* $DateTime: 2012/06/06 12:08:58 $ */
|
|
/* $Change: 833617 $ */
|
|
/* $Author: tknoll $ */
|
|
|
|
/*****************************************************************************/
|
|
|
|
#include "dng_exceptions.h"
|
|
|
|
#include "dng_flags.h"
|
|
#include "dng_globals.h"
|
|
|
|
/*****************************************************************************/
|
|
|
|
#ifndef qDNGReportErrors
|
|
// assuming this isn't enable on Win, because it's using printf, but an app can redirect that to console
|
|
#define qDNGReportErrors ((qDNGDebug && qMacOS) || qDNGValidate)
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
|
|
void ReportWarning (const char *message,
|
|
const char *sub_message)
|
|
{
|
|
|
|
|
|
#if qDNGReportErrors
|
|
|
|
if (sub_message)
|
|
fprintf (stderr, "*** Warning: %s (%s) ***\n", message, sub_message);
|
|
else
|
|
fprintf (stderr, "*** Warning: %s ***\n", message);
|
|
|
|
#else
|
|
|
|
(void) message;
|
|
(void) sub_message;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
/*****************************************************************************/
|
|
|
|
void ReportError (const char *message,
|
|
const char *sub_message)
|
|
{
|
|
|
|
#if qDNGReportErrors
|
|
|
|
if (sub_message)
|
|
fprintf (stderr, "*** Error: %s (%s) ***\n", message, sub_message);
|
|
else
|
|
fprintf (stderr, "*** Error: %s ***\n", message);
|
|
|
|
#else
|
|
|
|
(void) message;
|
|
(void) sub_message;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
/*****************************************************************************/
|
|
|
|
void Throw_dng_error (dng_error_code err,
|
|
const char *message,
|
|
const char *sub_message,
|
|
bool silent)
|
|
{
|
|
|
|
#if qDNGReportErrors
|
|
|
|
{
|
|
|
|
if (!message)
|
|
{
|
|
|
|
switch (err)
|
|
{
|
|
|
|
case dng_error_none:
|
|
case dng_error_silent:
|
|
case dng_error_user_canceled:
|
|
{
|
|
break;
|
|
}
|
|
|
|
case dng_error_not_yet_implemented:
|
|
{
|
|
message = "Not yet implemented";
|
|
break;
|
|
}
|
|
|
|
case dng_error_host_insufficient:
|
|
{
|
|
message = "Host insufficient";
|
|
break;
|
|
}
|
|
|
|
case dng_error_memory:
|
|
{
|
|
message = "Unable to allocate memory";
|
|
break;
|
|
}
|
|
|
|
case dng_error_bad_format:
|
|
{
|
|
message = "File format is invalid";
|
|
break;
|
|
}
|
|
|
|
case dng_error_matrix_math:
|
|
{
|
|
message = "Matrix math error";
|
|
break;
|
|
}
|
|
|
|
case dng_error_open_file:
|
|
{
|
|
message = "Unable to open file";
|
|
break;
|
|
}
|
|
|
|
case dng_error_read_file:
|
|
{
|
|
message = "File read error";
|
|
break;
|
|
}
|
|
|
|
case dng_error_write_file:
|
|
{
|
|
message = "File write error";
|
|
break;
|
|
}
|
|
|
|
case dng_error_end_of_file:
|
|
{
|
|
message = "Unexpected end-of-file";
|
|
break;
|
|
}
|
|
|
|
case dng_error_file_is_damaged:
|
|
{
|
|
message = "File is damaged";
|
|
break;
|
|
}
|
|
|
|
case dng_error_image_too_big_dng:
|
|
{
|
|
message = "Image is too big to save as DNG";
|
|
break;
|
|
}
|
|
|
|
case dng_error_image_too_big_tiff:
|
|
{
|
|
message = "Image is too big to save as TIFF";
|
|
break;
|
|
}
|
|
|
|
case dng_error_unsupported_dng:
|
|
{
|
|
message = "DNG version is unsupported";
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
message = "Unknown error";
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (message && !silent)
|
|
{
|
|
ReportError (message, sub_message);
|
|
}
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
(void) message;
|
|
(void) sub_message;
|
|
(void) silent;
|
|
|
|
#endif
|
|
|
|
throw dng_exception (err);
|
|
|
|
}
|
|
|
|
/*****************************************************************************/
|