Switch::Switch(const GraphicsInfo &r_GfxInfo):m_OutputPin(SWITCH_FANOUT,PinInfo(r_GfxInfo.IMG->GetWidth(),r_GfxInfo.IMG->GetHeight()/2)) { ON=false; m_GfxInfo.x1 = r_GfxInfo.x1; m_GfxInfo.y1 = r_GfxInfo.y1; m_GfxInfo.x2 = r_GfxInfo.x2; m_GfxInfo.y2 = r_GfxInfo.y2; m_GfxInfo.IMG = r_GfxInfo.IMG; m_GfxInfo.IMGsel=r_GfxInfo.IMGsel; Level=0; m_Label = "-"; }
// ----------------------------------------------------------------------------- // CWimPin::RunL() // Different phases are handled here // iPhase = EEnablePinQueryStart: Sends enable PIN query message to server. // iPhase = EEnablePinQueryEnd: Deallocates pckgbuffer used for message sending // and completes request with received error code. // iPhase = EDisablePinQueryStart: Sends disable PIN query message to server. // iPhase = EDisablePinQueryEnd: Deallocates pckgbuffer used for message sending // and completes request with received error code. // iPhase = EChangePinStart: Sends change PIN message to server. // iPhase = EChangePinEnd: Dealloactes pckgbuffer used for message sending and // completes request with received error code. // iPhase = EUnblockPinStart: Sends unblock PIN message to server // iPhase = EUnblockPinEnd: Deallocates pckgbuffer used for message sending // and completes request with received error code. // iPhase = EVerifyPinStart: Sends verify PIN message to server. // iPhase = EVerifyPinEnd:Deallocates pckgbuffer used for message sending // and completes request with received error code. // ----------------------------------------------------------------------------- // void CWimPin::RunL() { _WIMTRACE ( _L( "CWimPin::RunL Start()" ) ); if( iStatus.Int() == KErrCancel ) { User::RequestComplete( iClientStatus, KErrCancel ); return; } switch( iPhase ) { case EEnablePinQueryStart: { _WIMTRACE ( _L( "CWimPin::RunL EEnablePinQueryStart" ) ); iCurrentPhase = EEnablePinQueryStart; PinParams( iPinParams ); iPinStateRequest.iEnable = ETrue; //Enable PIN query iClientSession->EnableDisablePinQueryL( iReference, iPinStateRequest, iPinParams, iStatus ); iPhase = EEnablePinQueryEnd; SetActive(); break; } case EEnablePinQueryEnd: { iCurrentPhase = EEnablePinQueryEnd; iClientSession->DeallocMemoryFromEnableDisablePinQuery(); iReceivedStatus = iStatus.Int(); iPhase = EUpdatePinStatus; SignalOwnStatusAndComplete(); break; } case EDisablePinQueryStart: { _WIMTRACE ( _L( "CWimPin::RunL EDisablePinQueryStart" ) ); iCurrentPhase = EDisablePinQueryStart; PinParams( iPinParams ); iPinStateRequest.iEnable = EFalse; //Disable PIN query iClientSession->EnableDisablePinQueryL( iReference, iPinStateRequest, iPinParams, iStatus ); iPhase = EDisablePinQueryEnd; SetActive(); break; } case EDisablePinQueryEnd: { iCurrentPhase = EDisablePinQueryEnd; iClientSession->DeallocMemoryFromEnableDisablePinQuery(); iReceivedStatus = iStatus.Int(); iPhase = EUpdatePinStatus; SignalOwnStatusAndComplete(); break; } case EChangePinStart: { _WIMTRACE ( _L( "CWimPin::RunL EChangePinStart" ) ); iCurrentPhase = EChangePinStart; PinParams( iPinParams ); iClientSession->PinOperationL( iReference, iPinParams, EChangePINReq, iStatus ); iPhase = EChangePinEnd; SetActive(); break; } case EChangePinEnd: { iCurrentPhase = EChangePinEnd; iClientSession->DeallocMemoryFromEnableDisablePinQuery(); iReceivedStatus = iStatus.Int(); iPhase = EUpdatePinStatus; SignalOwnStatusAndComplete(); break; } case EUnblockPinStart: { _WIMTRACE ( _L( "CWimPin::RunL EUnblockPinStart" ) ); iCurrentPhase = EUnblockPinStart; PinParams( iPinParams ); iClientSession->PinOperationL( iReference, iPinParams, EUnblockPinReq, iStatus ); iPhase = EUnblockPinEnd; SetActive(); break; } case EUnblockPinEnd: { iCurrentPhase = EUnblockPinEnd; iClientSession->DeallocMemoryFromEnableDisablePinQuery(); iReceivedStatus = iStatus.Int(); iPhase = EUpdatePinStatus; SignalOwnStatusAndComplete(); break; } case EVerifyPinStart: { _WIMTRACE ( _L( "CWimPin::RunL EVerfiyPinStart" ) ); iCurrentPhase = EVerifyPinStart; PinParams( iPinParams ); iClientSession->PinOperationL( iReference, iPinParams, EVerifyPinReq, iStatus ); iPhase = EVerifyPinEnd; SetActive(); break; } case EVerifyPinEnd: { iCurrentPhase = EVerifyPinEnd; iClientSession->DeallocMemoryFromEnableDisablePinQuery(); iReceivedStatus = iStatus.Int(); iPhase = EUpdatePinStatus; SignalOwnStatusAndComplete(); break; } case EUpdatePinStatus: { _WIMTRACE ( _L( "CWimPin::RunL EUpdatePinStatus" ) ); iCurrentPhase = EUpdatePinStatus; PinInfo( iStatus ); iPhase = EUpdatePinStatusDone; SetActive(); break; } case EUpdatePinStatusDone: { iCurrentPhase = EUpdatePinStatusDone; if ( iStatus.Int() == KErrNone ) { TPtr label = iLabel->Des(); label.Copy( iPinStruct.iLabel.Ptr(), iPinStruct.iLabel.Length() ); label.ZeroTerminate(); iPinStatus = iPinStruct.iStatus; iPinNumber = iPinStruct.iPinNumber; User::RequestComplete( iClientStatus, iReceivedStatus ); } else { User::RequestComplete( iClientStatus, iStatus.Int() ); } break; } default: { break; } } }