static Err GetPhoneLib(UInt16* refNum, Boolean* fNeedToRemove) { *fNeedToRemove = false; Err error=SysLibFind(phnLibCDMAName, refNum); if (error) error=SysLibFind(phnLibGSMName, refNum); if (error) { error=SysLibLoad(phnLibDbType, phnLibCDMADbCreator, refNum); if (error) error=SysLibLoad(phnLibDbType, phnLibGSMDbCreator, refNum); if (!error) *fNeedToRemove=true; } return error; }
/** * Performs detection and initialization of Sony CLIE-specific features. * @param diaSettings structure used to store detected configuration. * @return error code. */ static Err SonySilkLibInit(DIA_Settings* diaSettings) { UInt32 vskVersion=0; Err error=SysLibFind(sonySysLibNameSilk, &diaSettings->sonySilkLibRefNum); if (sysErrLibNotFound==error) { error=SysLibLoad('libr', sonySysFileCSilkLib, &diaSettings->sonySilkLibRefNum); if (!error) DIA_SetFlag(diaSettings, diaLoadedSonySilkLib); } if (!error) { DIA_SetFlag(diaSettings, diaHasSonySilkLib); error = FtrGet(sonySysFtrCreator, sonySysFtrNumVskVersion, &vskVersion); if (error) { error=SilkLibOpen(diaSettings->sonySilkLibRefNum); if (error) goto OnError; SilkLibEnableResize(diaSettings->sonySilkLibRefNum); } else if (vskVersionNum2==vskVersion) { error=VskOpen(diaSettings->sonySilkLibRefNum); if (error) goto OnError; VskSetState(diaSettings->sonySilkLibRefNum, vskStateEnable, vskResizeVertically); } else { error=VskOpen(diaSettings->sonySilkLibRefNum); if (error) goto OnError; VskSetState(diaSettings->sonySilkLibRefNum, vskStateEnable, vskResizeHorizontally); } } else error=errNone; OnError: return error; }
/* try to load the AxxPac library to check if AxxPac is present */ Int16 LoadAxxPac(void) { Err err; /* try to open already installed axxPac driver lib */ err = SysLibFind(AXXPAC_LIB_NAME, &LibRef); /* didn't work, try to load it */ if ( err != errNone ) err = SysLibLoad('libr', AXXPAC_LIB_CREATOR, &LibRef); if ( err != errNone ) { /* ERROR: unable to access library */ axxPacStatus = AXXPAC_NOT_PRESENT; } else { /* try to open lib */ if ( axxPacLibOpen(LibRef) != 0 ) { /* ERROR: unable to open library */ axxPacStatus = AXXPAC_NOT_PRESENT; } else { axxPacStatus = AXXPAC_PRESENT; } } return axxPacStatus; }
bool MsaCDPlayer::init() { SonySysFtrSysInfoP sonySysFtrSysInfoP; Err error = errNone; if (!(error = FtrGet(sonySysFtrCreator, sonySysFtrNumSysInfoP, (UInt32*)&sonySysFtrSysInfoP))) { // not found with audio adapter ?! //if (sonySysFtrSysInfoP->libr & sonySysFtrSysInfoLibrMsa) { if ((error = SysLibFind(sonySysLibNameMsa, &_msaRefNum))) if (error == sysErrLibNotFound) error = SysLibLoad(sonySysFileTMsaLib, sonySysFileCMsaLib, &_msaRefNum); // FIXME : still don't understand how this lib works, it seems to be very unstable // and with the very bad documentation provided by Sony it's difficult to find out why // this doesn't work the same way on build-in MP3 device and external MP3 devices if (!error) { //MsaLibClose(_msaRefNum, msaLibOpenModeAlbum); // close the lib if we previously let it open (?) Need to add Notify for sonySysNotifyMsaEnforceOpenEvent just in case ... error = MsaLibOpen(_msaRefNum, msaLibOpenModeAlbum); //if (error == msaErrAlreadyOpen) // error = MsaLibEnforceOpen(_msaRefNum, msaLibOpenModeAlbum, appFileCreator); //error = (error != msaErrStillOpen) ? error : errNone; } //} } // if (error) // _msaRefNum = sysInvalidRefNum; _isInitialized = (_msaRefNum != sysInvalidRefNum); initInternal(); return _isInitialized; }
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; }
/* * ClibLoad * 装载并初始化通讯录拼音查找库 * * 参数: * refNumP <-> 给予的UInt16指针,用于返回查找库的引用 * clientContextP <-> 给予的UInt32指针,用于返回clientContext * * 返回: * 当成功装载并初始化时,返回errNone;否则返回对应的错误代码 */ Err CLibLoad(UInt16 *refNumP, UInt32 *clientContextP) { UInt16 error = CNLB_RUNTIME_ERROR; if (SysLibLoad(CLibTypeID, CLibCreatorID, refNumP) == errNone) { error = CLibOpen((*refNumP), clientContextP); } return error; }
Err ZDicToolsLibInitial(UInt32 libType, UInt32 libCreator, const Char *nameP, UInt16 *refNumP, Boolean *bLoadP) { Err err; *refNumP = 0; *bLoadP = false; err = SysLibFind(nameP, refNumP); if(err) { err = SysLibLoad(libType, libCreator, refNumP); if (!err) *bLoadP = true; } return err; }
Boolean SonySilk(void) { Err error = errNone; UInt32 version; UInt16 cardNo; LocalID dbID; if (silk_ref != -1) return (silk_ref != 0); if (SysLibFind(sonySysLibNameSilk, &silk_ref)) { error = SysLibLoad('libr', sonySysFileCSilkLib, &silk_ref); } if (error == sysErrLibNotFound || silk_ref == -1) { silk_ref = 0; return (0); } WriteLog("found sony silk library "); error = FtrGet(sonySysFtrCreator, sonySysFtrNumVskVersion, &version); if (error || !version) { silk_ver = 0; SilkLibOpen(silk_ref); } else { VskOpen(silk_ref); silk_ver = VskGetAPIVersion(silk_ref); } WriteLog("version: %d\n", silk_ver); SonySetSilkResizable(true); SysCurAppDatabase(&cardNo, &dbID); SysNotifyRegister(cardNo, dbID, sysNotifyDisplayChangeEvent, SonyNotifyHook, sysNotifyNormalPriority, NULL); return (silk_ref != 0); }
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); }