00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
#ifndef LHGeneralIncs_h
00013
#define LHGeneralIncs_h
00014
00015
#if defined(_X86_)
00016
#define ALLOW_MMX
00017
#endif
00018
00019
#ifndef PI_BasicTypes_h
00020
#include "PI_Basic.h"
00021
#endif
00022
00023
#ifndef PI_Machine_h
00024
#include "PI_Mach.h"
00025
#endif
00026
00027
#ifndef PI_Memory_h
00028
#include "PI_Mem.h"
00029
#endif
00030
00031 #define LUTS_ARE_PTR_BASED 1
00032
00033
#ifndef LHDefines_h
00034
#include "Defines.h"
00035
#endif
00036
00037
#ifndef LHICCProfile_h
00038
#include "Profile.h"
00039
#endif
00040
00041
#ifndef PI_Application_h
00042
#include "PI_App.h"
00043
#endif
00044
00045
#ifndef RenderInt
00046
#ifndef PI_PrivateProfAccess_h
00047
#include "PI_Priv.h"
00048
#endif
00049
#endif
00050
00051
#ifndef DEBUG_OUTPUT
00052 #define LH_START_PROC(x)
00053 #define LH_END_PROC(x)
00054
#endif
00055
00056 #define BlockMoveData BlockMove
00057
00058
#ifndef LHTypeDefs_h
00059
#include "TypeDefs.h"
00060
#endif
00061
00062
#ifdef IntelMode
00063
#ifndef PI_SwapMem_h
00064
#include "PI_Swap.h"
00065
#endif
00066
#endif
00067
00068 #define realThing 1
00069
00070
#if PRAGMA_ALIGN_SUPPORTED
00071
#pragma options align=mac68k
00072
#endif
00073
00074
#if PRAGMA_IMPORT_SUPPORTED
00075
#pragma import on
00076
#endif
00077
00078
00079
00080 #define VOLATILE(x) if ((x));
00081
00082
enum {
00083
kCMMNewLinkProfile = 1
00084 };
00085
00086
00087
#ifndef IntelMode
00088 #define CMHelperICC2int16(a, b) \
00089
(*((UINT16 *)(a))) = (*((UINT16*)(b)));
00090 #define CMHelperICC2int32(a, b) \
00091
(*((UINT32 *)(a))) = (*((UINT32*)(b)));
00092
#else
00093
#define CMHelperICC2int16(a, b) \
00094
(*((UINT16 *)(a))) = ((UINT16)(((UINT8 *)(b))[1])) | ((UINT16)(((UINT8 *)(b))[0] << 8));
00095
#define CMHelperICC2int32(a, b) \
00096
(*((UINT32 *)(a))) = ((UINT32)(((UINT8 *)(b))[3])) | (((UINT32)(((UINT8 *)(b))[2])) << 8) | \
00097
(((UINT32)(((UINT8 *)(b))[1])) << 16) | (((UINT32)(((UINT8 *)(b))[0])) << 24);
00098
#endif
00099
00100
00101
00102
#ifdef __cplusplus
00103
extern "C" {
00104
#endif
00105
00106
void GetDateTime(
unsigned long *secs);
00107
extern void SecondsToDate(
unsigned long secs,
DateTimeRec *d);
00108
00109
void BlockMove(
const void *srcPtr,
void *destPtr,
Size byteCount);
00110
void SetMem(
void *bytePtr, size_t numBytes,
unsigned char byteValue);
00111
00112
#ifdef __cplusplus
00113
}
00114
#endif
00115
00116
#if PRAGMA_IMPORT_SUPPORTED
00117
#pragma import off
00118
#endif
00119
00120
#if PRAGMA_ALIGN_SUPPORTED
00121
#pragma options align=reset
00122
#endif
00123
00124
00125
00126 #define LH_CALC_ENGINE_BIG 0
00127 #define LH_CALC_ENGINE_ALL_FORMATS_LO 1
00128 #define LH_CALC_ENGINE_16_BIT_LO 0
00129 #define LH_CALC_ENGINE_MIXED_DATAFORMAT 0
00130
00131 #define LH_CALC_USE_ADDITIONAL_OLD_CODE 1
00132 #define LH_CALC_USE_ADDITIONAL_OLD_CODE_4DIM 0
00133
00134
00135
00136 #define LH_CALC_USE_DO_N_DIM 0
00137 #define LH_CALC_USE_SMALL_ENGINE 1
00138 #define LH_CALC_USE_BIG_ENGINE 2
00139
00140
#if ! LH_CALC_ENGINE_BIG
00141
00142
00143 #define LH_Calc1toX_Di8_Do8_Lut8_G128 LH_CALC_USE_SMALL_ENGINE
00144 #define LH_Calc1toX_Di8_Do8_Lut16_G128 LH_CALC_USE_SMALL_ENGINE
00145 #define LH_Calc1toX_Di8_Do16_Lut8_G128 LH_CALC_USE_DO_N_DIM
00146 #define LH_Calc1toX_Di8_Do16_Lut16_G128 LH_CALC_USE_DO_N_DIM
00147 #define LH_Calc1toX_Di16_Do8_Lut8_G128 LH_CALC_USE_DO_N_DIM
00148 #define LH_Calc1toX_Di16_Do8_Lut16_G128 LH_CALC_USE_DO_N_DIM
00149 #define LH_Calc1toX_Di16_Do16_Lut8_G128 LH_CALC_USE_SMALL_ENGINE
00150 #define LH_Calc1toX_Di16_Do16_Lut16_G128 LH_CALC_USE_SMALL_ENGINE
00151
00152 #define LH_Calc3to3_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00153 #define LH_Calc3to3_Di8_Do8_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00154 #define LH_Calc3to3_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00155 #define LH_Calc3to3_Di8_Do8_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00156
00157 #define LH_Calc3to3_Di8_Do16_Lut8_G16 LH_CALC_USE_DO_N_DIM
00158 #define LH_Calc3to3_Di8_Do16_Lut8_G32 LH_CALC_USE_DO_N_DIM
00159 #define LH_Calc3to3_Di8_Do16_Lut16_G16 LH_CALC_USE_DO_N_DIM
00160 #define LH_Calc3to3_Di8_Do16_Lut16_G32 LH_CALC_USE_DO_N_DIM
00161
00162 #define LH_Calc3to3_Di16_Do8_Lut8_G16 LH_CALC_USE_DO_N_DIM
00163 #define LH_Calc3to3_Di16_Do8_Lut8_G32 LH_CALC_USE_DO_N_DIM
00164 #define LH_Calc3to3_Di16_Do8_Lut16_G16 LH_CALC_USE_DO_N_DIM
00165 #define LH_Calc3to3_Di16_Do8_Lut16_G32 LH_CALC_USE_DO_N_DIM
00166
00167 #define LH_Calc3to3_Di16_Do16_Lut8_G16 LH_CALC_USE_SMALL_ENGINE
00168 #define LH_Calc3to3_Di16_Do16_Lut8_G32 LH_CALC_USE_SMALL_ENGINE
00169 #define LH_Calc3to3_Di16_Do16_Lut16_G16 LH_CALC_USE_SMALL_ENGINE
00170 #define LH_Calc3to3_Di16_Do16_Lut16_G32 LH_CALC_USE_SMALL_ENGINE
00171
00172 #define LH_Calc3to4_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00173 #define LH_Calc3to4_Di8_Do8_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00174 #define LH_Calc3to4_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00175 #define LH_Calc3to4_Di8_Do8_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00176
00177 #define LH_Calc3to4_Di8_Do16_Lut8_G16 LH_CALC_USE_DO_N_DIM
00178 #define LH_Calc3to4_Di8_Do16_Lut8_G32 LH_CALC_USE_DO_N_DIM
00179 #define LH_Calc3to4_Di8_Do16_Lut16_G16 LH_CALC_USE_DO_N_DIM
00180 #define LH_Calc3to4_Di8_Do16_Lut16_G32 LH_CALC_USE_DO_N_DIM
00181
00182 #define LH_Calc3to4_Di16_Do8_Lut8_G16 LH_CALC_USE_DO_N_DIM
00183 #define LH_Calc3to4_Di16_Do8_Lut8_G32 LH_CALC_USE_DO_N_DIM
00184 #define LH_Calc3to4_Di16_Do8_Lut16_G16 LH_CALC_USE_DO_N_DIM
00185 #define LH_Calc3to4_Di16_Do8_Lut16_G32 LH_CALC_USE_DO_N_DIM
00186
00187 #define LH_Calc3to4_Di16_Do16_Lut8_G16 LH_CALC_USE_SMALL_ENGINE
00188 #define LH_Calc3to4_Di16_Do16_Lut8_G32 LH_CALC_USE_SMALL_ENGINE
00189 #define LH_Calc3to4_Di16_Do16_Lut16_G16 LH_CALC_USE_SMALL_ENGINE
00190 #define LH_Calc3to4_Di16_Do16_Lut16_G32 LH_CALC_USE_SMALL_ENGINE
00191
00192
00193 #define LH_Calc4to3_Di8_Do8_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00194 #define LH_Calc4to3_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00195 #define LH_Calc4to3_Di8_Do8_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00196 #define LH_Calc4to3_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00197
00198 #define LH_Calc4to3_Di8_Do16_Lut8_G8 LH_CALC_USE_DO_N_DIM
00199 #define LH_Calc4to3_Di8_Do16_Lut8_G16 LH_CALC_USE_DO_N_DIM
00200 #define LH_Calc4to3_Di8_Do16_Lut16_G8 LH_CALC_USE_DO_N_DIM
00201 #define LH_Calc4to3_Di8_Do16_Lut16_G16 LH_CALC_USE_DO_N_DIM
00202
00203 #define LH_Calc4to3_Di16_Do8_Lut8_G8 LH_CALC_USE_DO_N_DIM
00204 #define LH_Calc4to3_Di16_Do8_Lut8_G16 LH_CALC_USE_DO_N_DIM
00205 #define LH_Calc4to3_Di16_Do8_Lut16_G8 LH_CALC_USE_DO_N_DIM
00206 #define LH_Calc4to3_Di16_Do8_Lut16_G16 LH_CALC_USE_DO_N_DIM
00207
00208 #define LH_Calc4to3_Di16_Do16_Lut8_G8 LH_CALC_USE_DO_N_DIM
00209 #define LH_Calc4to3_Di16_Do16_Lut8_G16 LH_CALC_USE_DO_N_DIM
00210 #define LH_Calc4to3_Di16_Do16_Lut16_G8 LH_CALC_USE_DO_N_DIM
00211 #define LH_Calc4to3_Di16_Do16_Lut16_G16 LH_CALC_USE_DO_N_DIM
00212
00213 #define LH_Calc4to4_Di8_Do8_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00214 #define LH_Calc4to4_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00215 #define LH_Calc4to4_Di8_Do8_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00216 #define LH_Calc4to4_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00217
00218 #define LH_Calc4to4_Di8_Do16_Lut8_G8 LH_CALC_USE_DO_N_DIM
00219 #define LH_Calc4to4_Di8_Do16_Lut8_G16 LH_CALC_USE_DO_N_DIM
00220 #define LH_Calc4to4_Di8_Do16_Lut16_G8 LH_CALC_USE_DO_N_DIM
00221 #define LH_Calc4to4_Di8_Do16_Lut16_G16 LH_CALC_USE_DO_N_DIM
00222
00223 #define LH_Calc4to4_Di16_Do8_Lut8_G8 LH_CALC_USE_DO_N_DIM
00224 #define LH_Calc4to4_Di16_Do8_Lut8_G16 LH_CALC_USE_DO_N_DIM
00225 #define LH_Calc4to4_Di16_Do8_Lut16_G8 LH_CALC_USE_DO_N_DIM
00226 #define LH_Calc4to4_Di16_Do8_Lut16_G16 LH_CALC_USE_DO_N_DIM
00227
00228 #define LH_Calc4to4_Di16_Do16_Lut8_G8 LH_CALC_USE_DO_N_DIM
00229 #define LH_Calc4to4_Di16_Do16_Lut8_G16 LH_CALC_USE_DO_N_DIM
00230 #define LH_Calc4to4_Di16_Do16_Lut16_G8 LH_CALC_USE_DO_N_DIM
00231 #define LH_Calc4to4_Di16_Do16_Lut16_G16 LH_CALC_USE_DO_N_DIM
00232
00233
#else
00234
00235
00236
#define LH_Calc1toX_Di8_Do8_Lut8_G128 LH_CALC_USE_SMALL_ENGINE
00237
#define LH_Calc1toX_Di8_Do8_Lut16_G128 LH_CALC_USE_SMALL_ENGINE
00238
#define LH_Calc1toX_Di8_Do16_Lut8_G128 LH_CALC_USE_SMALL_ENGINE
00239
#define LH_Calc1toX_Di8_Do16_Lut16_G128 LH_CALC_USE_SMALL_ENGINE
00240
#define LH_Calc1toX_Di16_Do8_Lut8_G128 LH_CALC_USE_SMALL_ENGINE
00241
#define LH_Calc1toX_Di16_Do8_Lut16_G128 LH_CALC_USE_SMALL_ENGINE
00242
#define LH_Calc1toX_Di16_Do16_Lut8_G128 LH_CALC_USE_SMALL_ENGINE
00243
#define LH_Calc1toX_Di16_Do16_Lut16_G128 LH_CALC_USE_SMALL_ENGINE
00244
00245
#define LH_Calc3to3_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00246
#define LH_Calc3to3_Di8_Do8_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00247
#define LH_Calc3to3_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00248
#define LH_Calc3to3_Di8_Do8_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00249
00250
#define LH_Calc3to3_Di8_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00251
#define LH_Calc3to3_Di8_Do16_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00252
#define LH_Calc3to3_Di8_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00253
#define LH_Calc3to3_Di8_Do16_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00254
00255
#define LH_Calc3to3_Di16_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00256
#define LH_Calc3to3_Di16_Do8_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00257
#define LH_Calc3to3_Di16_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00258
#define LH_Calc3to3_Di16_Do8_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00259
00260
#define LH_Calc3to3_Di16_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00261
#define LH_Calc3to3_Di16_Do16_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00262
#define LH_Calc3to3_Di16_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00263
#define LH_Calc3to3_Di16_Do16_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00264
00265
#define LH_Calc3to4_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00266
#define LH_Calc3to4_Di8_Do8_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00267
#define LH_Calc3to4_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00268
#define LH_Calc3to4_Di8_Do8_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00269
00270
#define LH_Calc3to4_Di8_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00271
#define LH_Calc3to4_Di8_Do16_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00272
#define LH_Calc3to4_Di8_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00273
#define LH_Calc3to4_Di8_Do16_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00274
00275
#define LH_Calc3to4_Di16_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00276
#define LH_Calc3to4_Di16_Do8_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00277
#define LH_Calc3to4_Di16_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00278
#define LH_Calc3to4_Di16_Do8_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00279
00280
#define LH_Calc3to4_Di16_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00281
#define LH_Calc3to4_Di16_Do16_Lut8_G32 LH_CALC_USE_BIG_ENGINE
00282
#define LH_Calc3to4_Di16_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00283
#define LH_Calc3to4_Di16_Do16_Lut16_G32 LH_CALC_USE_BIG_ENGINE
00284
00285
00286
#define LH_Calc4to3_Di8_Do8_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00287
#define LH_Calc4to3_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00288
#define LH_Calc4to3_Di8_Do8_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00289
#define LH_Calc4to3_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00290
00291
#define LH_Calc4to3_Di8_Do16_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00292
#define LH_Calc4to3_Di8_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00293
#define LH_Calc4to3_Di8_Do16_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00294
#define LH_Calc4to3_Di8_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00295
00296
#define LH_Calc4to3_Di16_Do8_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00297
#define LH_Calc4to3_Di16_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00298
#define LH_Calc4to3_Di16_Do8_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00299
#define LH_Calc4to3_Di16_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00300
00301
#define LH_Calc4to3_Di16_Do16_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00302
#define LH_Calc4to3_Di16_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00303
#define LH_Calc4to3_Di16_Do16_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00304
#define LH_Calc4to3_Di16_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00305
00306
#define LH_Calc4to4_Di8_Do8_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00307
#define LH_Calc4to4_Di8_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00308
#define LH_Calc4to4_Di8_Do8_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00309
#define LH_Calc4to4_Di8_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00310
00311
#define LH_Calc4to4_Di8_Do16_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00312
#define LH_Calc4to4_Di8_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00313
#define LH_Calc4to4_Di8_Do16_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00314
#define LH_Calc4to4_Di8_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00315
00316
#define LH_Calc4to4_Di16_Do8_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00317
#define LH_Calc4to4_Di16_Do8_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00318
#define LH_Calc4to4_Di16_Do8_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00319
#define LH_Calc4to4_Di16_Do8_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00320
00321
#define LH_Calc4to4_Di16_Do16_Lut8_G8 LH_CALC_USE_BIG_ENGINE
00322
#define LH_Calc4to4_Di16_Do16_Lut8_G16 LH_CALC_USE_BIG_ENGINE
00323
#define LH_Calc4to4_Di16_Do16_Lut16_G8 LH_CALC_USE_BIG_ENGINE
00324
#define LH_Calc4to4_Di16_Do16_Lut16_G16 LH_CALC_USE_BIG_ENGINE
00325
00326
#endif
00327
00328
#endif