00001 00011 /* 00012 * The ICC Software License, Version 0.1 00013 * 00014 * 00015 * Copyright (c) 2003-2006 The International Color Consortium. All rights 00016 * reserved. 00017 * 00018 * Redistribution and use in source and binary forms, with or without 00019 * modification, are permitted provided that the following conditions 00020 * are met: 00021 * 00022 * 1. Redistributions of source code must retain the above copyright 00023 * notice, this list of conditions and the following disclaimer. 00024 * 00025 * 2. Redistributions in binary form must reproduce the above copyright 00026 * notice, this list of conditions and the following disclaimer in 00027 * the documentation and/or other materials provided with the 00028 * distribution. 00029 * 00030 * 3. The end-user documentation included with the redistribution, 00031 * if any, must include the following acknowledgment: 00032 * "This product includes software developed by the 00033 * The International Color Consortium (www.color.org)" 00034 * Alternately, this acknowledgment may appear in the software itself, 00035 * if and wherever such third-party acknowledgments normally appear. 00036 * 00037 * 4. In the absence of prior written permission, the names "ICC" and "The 00038 * International Color Consortium" must not be used to imply that the 00039 * ICC organization endorses or promotes products derived from this 00040 * software. 00041 * 00042 * 00043 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00044 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00045 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00046 * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR 00047 * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00048 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00049 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00050 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00051 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00052 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00053 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00054 * SUCH DAMAGE. 00055 * ==================================================================== 00056 * 00057 * This software consists of voluntary contributions made by many 00058 * individuals on behalf of the The International Color Consortium. 00059 * 00060 * 00061 * Membership in the ICC is encouraged when this software is used for 00062 * commercial purposes. 00063 * 00064 * 00065 * For more information on The International Color Consortium, please 00066 * see <http://www.color.org/>. 00067 * 00068 * 00069 */ 00070 00071 /* Header file guard bands */ 00072 #ifndef ICCCONFIG_h 00073 #define ICCCONFIG_h 00074 00075 //Define the following to use namespace 00076 //#define USESAMPLEICCNAMESPACE 00077 00078 #ifdef USESAMPLEICCNAMESPACE 00079 namespace sampleICC { 00080 #endif 00081 00082 //PC, visual C++ 00083 #if defined(_MSC_VER) && !defined(__MWERKS__) && defined(_M_IX86) 00084 00085 //Define how 64 bit integers are represented 00086 #define ICCUINT64 unsigned __int64 00087 #define ICCINT64 __int64 00088 #define ICUINT64TYPE unsigned __int64 00089 #define ICINT64TYPE __int64 00090 00091 #define USE_WINDOWS_MB_SUPPORT 00092 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 00093 //#include <windows.h> //For Multibyte Translation Support 00094 00095 #define ICC_BYTE_ORDER_LITTLE_ENDIAN 00096 00097 #if defined(ICCPROFLIBDLL_EXPORTS) 00098 #define ICCPROFLIB_API _declspec(dllexport) 00099 #define ICCPROFLIB_EXTERN 00100 #elif defined(ICCPROFLIBDLL_IMPORTS) 00101 #define ICCPROFLIB_API _declspec(dllimport) 00102 #define ICCPROFLIB_EXTERN extern 00103 #else //just a regular lib 00104 #define ICCPROFLIB_API 00105 #define ICCPROFLIB_EXTERN 00106 #endif 00107 00108 #else // non-PC, perhaps Mac or Linux 00109 00110 #define ICCUINT64 unsigned long long 00111 #define ICCINT64 long long 00112 #define ICUINT64TYPE unsigned long long 00113 #define ICINT64TYPE long long 00114 00115 #if defined(__APPLE__) 00116 #if defined(__LITTLE_ENDIAN__) 00117 #define ICC_BYTE_ORDER_LITTLE_ENDIAN 00118 #else 00119 #define ICC_BYTE_ORDER_BIG_ENDIAN 00120 #endif 00121 #else 00122 #define ICC_BYTE_ORDER_LITTLE_ENDIAN 00123 #endif 00124 00125 #define ICCPROFLIB_API 00126 #define ICCPROFLIB_EXTERN 00127 #define stricmp strcasecmp 00128 00129 #endif 00130 00131 // remove comment below if you want LAB to XYZ conversions to not clip negative XYZ values 00132 //#define SAMPLEICC_NOCLIPLABTOXYZ 00133 00134 #ifdef SAMPLEICCCMM_EXPORTS 00135 #define MAKE_A_DLL 00136 #endif 00137 00138 #ifdef MAKE_A_DLL 00139 #define SAMPLEICCEXPORT __declspec( dllexport) 00140 #else 00141 #define SAMPLEICCEXPORT __declspec( dllimport) 00142 #endif 00143 00144 #ifdef USESAMPLEICCNAMESPACE 00145 } 00146 #endif 00147 00148 #endif //ICCCOFIG_h