summaryrefslogtreecommitdiff
path: root/source/XMPFiles/FormatSupport/EndianUtils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/XMPFiles/FormatSupport/EndianUtils.hpp')
-rw-r--r--source/XMPFiles/FormatSupport/EndianUtils.hpp422
1 files changed, 0 insertions, 422 deletions
diff --git a/source/XMPFiles/FormatSupport/EndianUtils.hpp b/source/XMPFiles/FormatSupport/EndianUtils.hpp
deleted file mode 100644
index 684c539..0000000
--- a/source/XMPFiles/FormatSupport/EndianUtils.hpp
+++ /dev/null
@@ -1,422 +0,0 @@
-#ifndef __EndianUtils_hpp__
-#define __EndianUtils_hpp__ 1
-
-// =================================================================================================
-// ADOBE SYSTEMS INCORPORATED
-// 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.
-// =================================================================================================
-
-#include "XMP_Environment.h" // ! This must be the first include.
-#include "XMP_Const.h"
-
-// *** These should be in a more common location. The Unicode conversions of XMPCore have similar utils.
-// *** May want to improve with PowerPC swapping load/store, or SSE instructions.
-
-// =================================================================================================
-
-#define kLittleEndianHost (! kBigEndianHost)
-#if XMP_WinBuild
- #define kBigEndianHost 0
-#elif XMP_MacBuild
- #if __MWERKS__
- #if __POWERPC__
- #define kBigEndianHost 1
- #else
- #error "CodeWarrior must only be for PowerPC"
- #endif
- #else // Must be an Xcode build.
- #if __BIG_ENDIAN__
- #define kBigEndianHost 1
- #elif __LITTLE_ENDIAN__
- #define kBigEndianHost 0
- #else
- #error "Neither __BIG_ENDIAN__ nor __LITTLE_ENDIAN__ is set"
- #endif
- #endif
-#elif XMP_UNIXBuild
- #error "Endian macros not set up for generic UNIX yet"
-#else
- #error "Unknown build environment"
-#endif
-
-// =================================================================================================
-
-typedef XMP_Uns16 (*GetUns16_Proc) ( const void* addr );
-typedef XMP_Uns32 (*GetUns32_Proc) ( const void* addr );
-typedef XMP_Uns64 (*GetUns64_Proc) ( const void* addr );
-typedef float (*GetFloat_Proc) ( const void* addr );
-typedef double (*GetDouble_Proc) ( const void* addr );
-
-typedef XMP_Uns16 (*MakeUns16_Proc) ( XMP_Uns16 value );
-typedef XMP_Uns32 (*MakeUns32_Proc) ( XMP_Uns32 value );
-typedef XMP_Uns64 (*MakeUns64_Proc) ( XMP_Uns64 value );
-typedef float (*MakeFloat_Proc) ( float value );
-typedef double (*MakeDouble_Proc) ( double value );
-
-typedef void (*PutUns16_Proc) ( XMP_Uns16 value, void* addr );
-typedef void (*PutUns32_Proc) ( XMP_Uns32 value, void* addr );
-typedef void (*PutUns64_Proc) ( XMP_Uns64 value, void* addr );
-typedef void (*PutFloat_Proc) ( float value, void* addr );
-typedef void (*PutDouble_Proc) ( double value, void* addr );
-
-// =================================================================================================
-
-static inline XMP_Uns16 Flip2 ( XMP_Uns16 value )
-{
- value = ((value & 0x00FF) << 8) | ((value & 0xFF00) >> 8);
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void Flip2 ( void * addr )
-{
- XMP_Uns16 * u16Ptr = (XMP_Uns16*) addr;
- *u16Ptr = Flip2 ( *u16Ptr );
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns32 Flip4 ( XMP_Uns32 value )
-{
- value = ((value & 0x000000FF) << 24) | ((value & 0x0000FF00) << 8) |
- ((value >> 8) & 0x0000FF00) | ((value >> 24) & 0x000000FF);
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void Flip4 ( void * addr )
-{
- XMP_Uns32 * u32Ptr = (XMP_Uns32*) addr;
- *u32Ptr = Flip4 ( *u32Ptr );
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns64 Flip8 ( XMP_Uns64 value )
-{
- XMP_Uns32 oldLow = (XMP_Uns32)(value);
- XMP_Uns32 oldHigh = (XMP_Uns32)(value >> 32);
- return (((XMP_Uns64)Flip4(oldLow)) << 32) | ((XMP_Uns64)Flip4(oldHigh));
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void Flip8 ( void * addr )
-{
- XMP_Uns64 * u64Ptr = (XMP_Uns64*) addr;
- *u64Ptr = Flip8 ( *u64Ptr );
-}
-
-// =================================================================================================
-
-static inline XMP_Uns16
-GetUns16BE ( const void * addr )
-{
- XMP_Uns16 value = *((XMP_Uns16*)addr);
- if ( kLittleEndianHost ) value = Flip2 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns16
-GetUns16LE ( const void * addr )
-{
- XMP_Uns16 value = *((XMP_Uns16*)addr);
- if ( kBigEndianHost ) value = Flip2 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns32
-GetUns32BE ( const void * addr )
-{
- XMP_Uns32 value = *((XMP_Uns32*)addr);
- if ( kLittleEndianHost ) value = Flip4 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns32
-GetUns32LE ( const void * addr )
-{
- XMP_Uns32 value = *((XMP_Uns32*)addr);
- if ( kBigEndianHost ) value = Flip4 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns64
-GetUns64BE ( const void * addr )
-{
- XMP_Uns64 value = *((XMP_Uns64*)addr);
- if ( kLittleEndianHost ) value = Flip8 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns64
-GetUns64LE ( const void * addr )
-{
- XMP_Uns64 value = *((XMP_Uns64*)addr);
- if ( kBigEndianHost ) value = Flip8 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline float
-GetFloatBE ( const void * addr )
-{
- XMP_Uns32 value = *((XMP_Uns32*)addr);
- if ( kLittleEndianHost ) value = Flip4 ( value );
- return *((float*)&value);
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline float
-GetFloatLE ( const void * addr )
-{
- XMP_Uns32 value = *((XMP_Uns32*)addr);
- if ( kBigEndianHost ) value = Flip4 ( value );
- return *((float*)&value);
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline double
-GetDoubleBE ( const void * addr )
-{
- XMP_Uns64 value = *((XMP_Uns64*)addr);
- if ( kLittleEndianHost ) value = Flip8 ( value );
- return *((double*)&value);
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline double
-GetDoubleLE ( const void * addr )
-{
- XMP_Uns64 value = *((XMP_Uns64*)addr);
- if ( kBigEndianHost ) value = Flip8 ( value );
- return *((double*)&value);
-}
-
-// =================================================================================================
-
-static inline XMP_Uns16
-MakeUns16BE ( XMP_Uns16 value )
-{
- if ( kLittleEndianHost ) value = Flip2 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns16
-MakeUns16LE ( XMP_Uns16 value )
-{
- if ( kBigEndianHost ) value = Flip2 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns32
-MakeUns32BE ( XMP_Uns32 value )
-{
- if ( kLittleEndianHost ) value = Flip4 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns32
-MakeUns32LE ( XMP_Uns32 value )
-{
- if ( kBigEndianHost ) value = Flip4 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns64
-MakeUns64BE ( XMP_Uns64 value )
-{
- if ( kLittleEndianHost ) value = Flip8 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline XMP_Uns64
-MakeUns64LE ( XMP_Uns64 value )
-{
- if ( kBigEndianHost ) value = Flip8 ( value );
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline float
-MakeFloatBE ( float value )
-{
- if ( kLittleEndianHost ) {
- XMP_Uns32* intPtr = (XMP_Uns32*) &value;
- *intPtr = Flip4 ( *intPtr );
- }
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline float
-MakeFloatLE ( float value )
-{
- if ( kBigEndianHost ) {
- XMP_Uns32* intPtr = (XMP_Uns32*) &value;
- *intPtr = Flip4 ( *intPtr );
- }
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline double
-MakeDoubleBE ( double value )
-{
- if ( kLittleEndianHost ) {
- XMP_Uns64* intPtr = (XMP_Uns64*) &value;
- *intPtr = Flip8 ( *intPtr );
- }
- return value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline double
-MakeDoubleLE ( double value )
-{
- if ( kBigEndianHost ) {
- XMP_Uns64* intPtr = (XMP_Uns64*) &value;
- *intPtr = Flip8 ( *intPtr );
- }
- return value;
-}
-
-// =================================================================================================
-
-static inline void
-PutUns16BE ( XMP_Uns16 value, void * addr )
-{
- if ( kLittleEndianHost ) value = Flip2 ( value );
- *((XMP_Uns16*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutUns16LE ( XMP_Uns16 value, void * addr )
-{
- if ( kBigEndianHost ) value = Flip2 ( value );
- *((XMP_Uns16*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutUns32BE ( XMP_Uns32 value, void * addr )
-{
- if ( kLittleEndianHost ) value = Flip4 ( value );
- *((XMP_Uns32*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutUns32LE ( XMP_Uns32 value, void * addr )
-{
- if ( kBigEndianHost ) value = Flip4 ( value );
- *((XMP_Uns32*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutUns64BE ( XMP_Uns64 value, void * addr )
-{
- if ( kLittleEndianHost ) value = Flip8 ( value );
- *((XMP_Uns64*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutUns64LE ( XMP_Uns64 value, void * addr )
-{
- if ( kBigEndianHost ) value = Flip8 ( value );
- *((XMP_Uns64*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutFloatBE ( float value, void * addr )
-{
- if ( kLittleEndianHost ) {
- XMP_Uns32* intPtr = (XMP_Uns32*) &value;
- *intPtr = Flip4 ( *intPtr );
- }
- *((float*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutFloatLE ( float value, void * addr )
-{
- if ( kBigEndianHost ) {
- XMP_Uns32* intPtr = (XMP_Uns32*) &value;
- *intPtr = Flip4 ( *intPtr );
- }
- *((float*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutDoubleBE ( double value, void * addr )
-{
- if ( kLittleEndianHost ) {
- XMP_Uns64* intPtr = (XMP_Uns64*) &value;
- *intPtr = Flip8 ( *intPtr );
- }
- *((double*)addr) = value;
-}
-
-// -------------------------------------------------------------------------------------------------
-
-static inline void
-PutDoubleLE ( double value, void * addr )
-{
- if ( kBigEndianHost ) {
- XMP_Uns64* intPtr = (XMP_Uns64*) &value;
- *intPtr = Flip8 ( *intPtr );
- }
- *((double*)addr) = value;
-}
-
-// =================================================================================================
-
-#endif // __EndianUtils_hpp__