// // TKEndianUtilities.h // ThemeKit // // Created by Colin Cornaby on 11/4/06. // Copyright 2006 __MyCompanyName__. All rights reserved. // #import typedef UInt32 TKEndianness; //The struct decleration from Jason Harris's Endian Resource File Tagging code. typedef struct { UInt32 version; // always set to zero UInt32 isLittleEndian; // if zero, all data in file is big-endian. otherwise, all data is little-endian } ThemeEndianness; //Endian codes enum TKEndians { kBigEndian=0, kLittleEndian=1, kNativeEndian=2, kUnknownEndian=3 }; /*kBigEndian and kLittleEndian are 0 and 1 to match the resource file sepcifications on tagging endianness. Because of this kNativeEndian has been moved to 2.*/ TKEndianness resolveEndianness(TKEndianness endianness); unsigned short swapShort(short x, TKEndianness fromPlatform, TKEndianness toPlatform); //Declarations for Jason Haris's return types //http://www.geekspiff.com/themeEndianness/ /* * Errors * * kThemeDataNoError No errors occurred * kThemeDataBadParameter A parameter passed to a function was an unexpected value * kThemeDataBadFile The resource file could not be read * kThemeDataBadResource The resource file contained an unreadable resource * kThemeDataUnexpectedError An unexpected error prevented the operation from concluding */ enum { kThemeDataNoError = 0, kThemeDataBadParameter = 1, kThemeDataBadFile = 2, kThemeDataBadResource = 3, kThemeDataUnexpectedError = 4, }; typedef UInt32 ThemeDataError; ThemeDataError ThemeDataFormatForResourceFile(SInt16 inRefNum, TKEndianness *outFormat); ThemeDataError SetThemeDataFormatForResourceFile(SInt16 inRefNum, TKEndianness inFormat);