___________________________________ * * * Useful Mac OS Gestalt Selectors * *___________________________________* Note: all selector values are four bytes big endian in length * _Name_ -> _Selector_Name_ _Type_Name_ _API_call_ -> _Possible_Values_ * Component Manager -> Version 'cpnt' - gestaltComponentMgr -> Available = 0 * Image Compression Manager -> Version 'icmp' - gestaltCompressionMgr -> Available = 0 * Display Manager -> Version 'dplv' - gestaltDisplayMgrVers -> hex version = xxxx.yy.zz -> Options 'dply' - gestaltDisplayMgrAttr -> Available = bit 0 * Font Manager -> Options 'font' - gestaltFontMgrAttr -> Supports Outline (TrueType) Fonts = bit 0 * Native CPU -> Type 'cput' - gestaltNativeCPUtype -> 680x0 CPU = decimal 0 - 4 -> PPC60x CPU = 0x0101 , 0x0103 , 0x0104 -> PPC603e CPU = 0x0106 -> PPC603ev CPU = 0x0107 -> PPC G3 CPU = 0x0108 -> PPC604e CPU = 0x0109 -> PPC604ev CPU = 0x010A -> PPC G4 CPU = 0x010C -> Intel 486 CPU = 'i486' -> Intel Pentium CPUs = 'i586' , 'i5pr' , 'i5ii' , etc -> Any Intel CPU = 'ixxx' * Mac CPU Type -> Code 'proc' - gestaltProcessorType -> Available = decimal 0 -> 680x0 CPUs = decimal 1 - 5 * Mac Model -> Code 'mach' - gestaltMachineType -> see Inside Macintosh: Operating System Utilities * Mac OS System -> Version 'sysv' - gestaltSystemVersion -> hex version = xxxxxx.y.z eg. 0x0904; 0x0860; 0x0850; 0x0810; 0x0760 * Installed RAM -> Decimal Size 'ram ' - gestaltPhysicalRAMSize * Available RAM after VM and any display RAM used -> Decimal Size 'lram' - gestaltLogicalRAMSize * Low Memory/System Heap memory -> Decimal Size 'lmem' - gestaltLowMemorySize * QuickDraw -> Version 'qd ' - gestaltQuickdrawVersion -> hex version = xxxxxx.y.z -> Black/White = decimal 0 -> 8-bit color 1.x = 0x00000100 -> 32-bit color 2.x = 0x00000200 -> Options 'qdrw' - gestaltQuickdrawFeatures -> Color Available = bit 0 -> Color Graphic Worlds = bit 1 -> Direct 16/32-bit Pixal Maps = bit 2 -> Greyish text mode available = bit 3 -> Mirroring supported = bit 4 * QuickTime -> Version 'qtim' - gestaltQuickTime -> hex version = vv.w.x.yy.zz eg. 0x04128000; 0x0411; 0x04108000; 0x04038000; 0x03028000 - 2 bytes version format is decimal byte release; hex byte revision/fix - 2 bytes test version format is hex byte stage; decimal byte stage level - hex byte stages are development = 0x20; alpha = 0x40; beta = 0x60; release = 0x80 * Sound Manager -> Version 'Sndv' -> hex version = vv.w.x.yy.zz eg. 0x03658000 - 2 bytes version format is decimal byte release; hex byte revision/fix - 2 bytes test version format is hex byte stage; decimal byte stage level - hex byte stages are development = 0x20; alpha = 0x40; beta = 0x60; release = 0x80 * Sound Manager -> Options 'snd ' - gestaltSoundAttr -> Stereo Available = bit 0 -> Stereo Mixing = bit 1 -> Input available = bit 3 -> Has built-in input = bit 4 -> Has input = bit 5 -> Play/Record simultaneously = bit 6 -> Play/Record 16-bit = bit 7 -> Record Stereo = bit 8 -> Has playback double buffer = bit 10 -> Has multi channel = bit 11 -> 16-bit audio data = bit 12 * Thread Manager -> Options 'thds' - gestaltThreadMgrAtt -> Available = bit 0 -> exact match creation = bit 1 -> shared library = bit 2 * Gestalt -> Version 'vers' - gestaltVersion -> unsigned decimal * Virtual Memory -> Options 'vm ' - gestaltVMAttr -> Active = bit 0