/** * Performs cleanup of Sony-CLIE specific features. */ static Err SonySilkLibFree(DIA_Settings* diaSettings) { UInt32 vskVersion=0; Err error; Assert(diaSettings); Assert(DIA_HasSonySilkLib(diaSettings)); Assert(diaSettings->sonySilkLibRefNum); error=FtrGet(sonySysFtrCreator, sonySysFtrNumVskVersion, &vskVersion); if (error) { SilkLibDisableResize(diaSettings->sonySilkLibRefNum); error=SilkLibClose(diaSettings->sonySilkLibRefNum); if (silkLibErrStillOpen==error) error=errNone; if (error) goto OnErrorFreeLib; } else { error=VskClose(diaSettings->sonySilkLibRefNum); if (vskErrStillOpen==error) error=errNone; if (error) goto OnErrorFreeLib; } OnErrorFreeLib: if (DIA_TestFlag(diaSettings, diaLoadedSonySilkLib)) { Err tmpErr=SysLibRemove(diaSettings->sonySilkLibRefNum); if (tmpErr) error=tmpErr; } diaSettings->sonySilkLibRefNum=0; return error; }
void SetDIAAllowResize( Boolean allow ) { switch ( hardware ) { #ifdef SUPPORT_DIA_SONY case DIA_HARDWARE_SONY2: if ( allow ) { /* If available, enable horizontal resize */ if ( 0x03 <= VskGetAPIVersion( sonyRefNum ) ) VskSetState( sonyRefNum, vskStateEnable, vskResizeHorizontally ); /* Enable vertical resize */ VskSetState( sonyRefNum, vskStateEnable, vskResizeVertically ); } else { VskSetState( sonyRefNum, vskStateEnable, 0 ); } break; case DIA_HARDWARE_SONY1: if ( allow ) SilkLibEnableResize( sonyRefNum ); else SilkLibDisableResize( sonyRefNum ); sony1AllowResize = allow; break; #endif #ifdef HAVE_PALM_DIA_SDK case DIA_HARDWARE_PALM11: case DIA_HARDWARE_PALM10: PINSetInputTriggerState( allow ? pinInputTriggerEnabled : pinInputTriggerDisabled ); SysSetOrientationTriggerState( allow ? sysOrientationTriggerEnabled : sysOrientationTriggerDisabled ); break; #endif /* Note: On Handera, resizing is always enabled */ default: break; } }
void SonySetSilkResizable(UInt8 state) { if (silk_ver == -1) return; if (silk_ver == 0) { if (state) { SilkLibEnableResize(silk_ref); } else { SilkLibResizeDispWin(silk_ref, silkResizeNormal); SilkLibDisableResize(silk_ref); } } else { if (!state) VskSetState(silk_ref, vskStateEnable, state); else if (silk_ver >= 0x03) VskSetState(silk_ref, vskStateEnable, vskResizeVertically | vskResizeHorizontally); else VskSetState(silk_ref, vskStateEnable, 1); } }
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 ); if ( width < hrWidth ) { width = hrWidth; height = hrHeight; if ( errNone != HRWinScreenMode( sonyHiResRefNum, winScreenModeSet, &width, &height, NULL, NULL ) ) { HRClose( sonyHiResRefNum ); return DIA_HARDWARE_NONE; } } HRClose( sonyHiResRefNum ); } else return DIA_HARDWARE_NONE; } SilkLibDisableResize( sonyRefNum ); sony1AllowResize = false; return DIA_HARDWARE_SONY1; } return DIA_HARDWARE_NONE; }