static DIAHardwareType InitializeSony( void ) { Err err; UInt32 version; err = SysLibFind( sonySysLibNameSilk, &sonyRefNum ); if ( err == sysErrLibNotFound ) { err = SysLibLoad( 'libr', sonySysFileCSilkLib, &sonyRefNum ); } if ( err != errNone ) return DIA_HARDWARE_NONE; if ( errNone == FtrGet( sonySysFtrCreator, sonySysFtrNumVskVersion, &version ) ) { /* Version 2 and up */ err = VskOpen( sonyRefNum ); if ( errNone == err ) return DIA_HARDWARE_SONY2; } else { /* Version 1 and up */ err = SilkLibOpen( sonyRefNum ); if ( errNone == err ) { /* Make sure we are in a Hi-Res mode */ UInt32 width; UInt32 height; UInt16 sonyHiResRefNum; err = SysLibFind( sonySysLibNameHR, &sonyHiResRefNum ); if ( err == sysErrLibNotFound ) err = SysLibLoad( 'libr', sonySysFileCHRLib, &sonyHiResRefNum ); if ( err == errNone ) { err = HROpen( sonyHiResRefNum ); HRWinScreenMode( sonyHiResRefNum, winScreenModeGet, &width, &height, NULL, NULL ); HRClose( sonyHiResRefNum ); if ( width < 320 ) return DIA_HARDWARE_NONE; } else return DIA_HARDWARE_NONE; } return DIA_HARDWARE_SONY1; } return DIA_HARDWARE_NONE; }
Err loadHiRes(void) { SonySysFtrSysInfoP sonySysFtrSysInfoP; Err error = 0; UInt16 refNum; if (highDensityFeatureSet() != 0) return (errNone); if ((error = FtrGet(sonySysFtrCreator, sonySysFtrNumSysInfoP, (UInt32*)&sonySysFtrSysInfoP))) { /* Not CLIE: maybe not available */ } else { if (sonySysFtrSysInfoP->libr & sonySysFtrSysInfoLibrHR) { /* HR available */ if ((error = SysLibFind(sonySysLibNameHR, &refNum))) { if (error == sysErrLibNotFound) { /* couldn't find lib */ error = SysLibLoad('libr', sonySysFileCHRLib, &refNum); } if (!error) didl = 1; } if (!error) { hires = refNum; /* Now we can use HR lib */ HROpen(hires); } ErrFatalDisplayIf(error, "could not load hires lib"); } } if (!error) error = goHires(); return (error); }