// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
// Dummy Sat TSY classes implementation.
//
//
/**
@file
*/
#include "sattsy.h"
#include "testdef.h"
#include "Etelsat.h"
#include <et_clsvr.h>
#include "Dsatlog.h"
#include <satcs.h>
#include <utf.h>
#include "coretsy.h"
/**************************************************************************/
//
// CSatDSatTsy
//
/**************************************************************************/
CSatDSatTsy* CSatDSatTsy::NewL(CPhoneFactoryDummyBase* aFac)
{
CSatDSatTsy* subsession=new(ELeave) CSatDSatTsy(aFac);
CleanupStack::PushL(subsession);
subsession->ConstructL();
CleanupStack::Pop();
return subsession;
}
void CSatDSatTsy::Init()
{}
CSatDSatTsy::CSatDSatTsy(CPhoneFactoryDummyBase* aFac)
:CSubSessionExtDummyBase(aFac)
{
iTsyAsyncReqHandle=0;
iNotifyCallControlRequest=0;
iNotifyMoSmControlRequest=0;
iNotifyDisplayTextPCmd=0;
iNotifyGetInkeyPCmd=0;
iNotifyGetInputPCmd=0;
iNotifyPlayTonePCmd=0;
iNotifySetUpMenuPCmd=0;
iNotifySelectItemPCmd=0;
iNotifySendSmPCmd=0;
iNotifySendSsPCmd=0;
iNotifySendUssdPCmd=0;
iNotifySetUpCallPCmd=0;
iNotifyRefreshPCmd=0;
iNotifySetUpEventListPCmd=0;
iNotifySetUpIdleModeTextPCmd=0;
iNotifySendDtmfPCmd=0;
iGetIcon=0;
iGetImageInstance=0;
iGetClut=0;
iDisplayTextTerminalRsp=0;
iGetInkeyTerminalRsp=0;
iGetInputTerminalRsp=0;
iPlayToneTerminalRsp=0;
iSetUpMenuTerminalRsp=0;
iSelectItemTerminalRsp=0;
iSendSmTerminalRsp=0;
iSendSsTerminalRsp=0;
iSendUssdTerminalRsp=0;
iSetUpCallTerminalRsp=0;
iRefreshTerminalRsp=0;
iSetUpEventListTerminalRsp=0;
iSetUpIdleModeTextTerminalRsp=0;
iSendDtmfTerminalRsp=0;
iGetMeSideSatProfile=0;
iClientSatProfileIndication=0;
iMenuSelection=0;
iEventDownload=0;
iNotifyPerformCardApduPCmd=0;
iNotifyPowerOffCardPCmd=0;
iNotifyPowerOnCardPCmd=0;
iNotifyGetReaderStatusPCmd=0;
iNotifyRunAtCommandPCmd=0;
iNotifyLanguageNotificationPCmd=0;
iGetProvisioningRefFile=0;
iNotifyOpenChannelPCmd=0;
iNotifyCloseChannelPCmd=0;
iNotifyReceiveDataPCmd=0;
iNotifySendDataPCmd=0;
iNotifyGetChannelStatusPCmd=0;
iNotifyServiceSearchPCmd=0;
iNotifyGetServiceInfoPCmd=0;
iNotifyDeclareServicePCmd=0;
iNotifyLaunchBrowserPCmd=0;
iNotifyLaunchBrowserCount=0;
iNotifySetUpMenuTestNumber=0;
iNotifyCallControlRequestTestNumber=0;
iNotifyOpenChannelTestNumber=0;
iSendMessageNoLogging=0;
iNotifyProactiveSimSessionEnd=0;
iNotifyProactiveSimSessionStart=0;
iNotifyTimerExpiration=0;
iNotifySmsPpDownload=0;
iNotifyCbDownload=0;
iNotifyTimerManagtPCmd=0;
iNotifyLocalInfoPCmd=0;
iNotifyPollingIntervalPCmd=0;
iNotifyPollingOffPCmd=0;
iTimerMgmtTerminalRsp=0;
iLocalInfoTerminalRsp=0;
iPollingIntervalTerminalRsp=0;
iPollingOffTerminalRsp=0;
iNotifyTsyStateUpdated=0;
iNotifyRefreshRequired=0;
iRefreshAllowed=0;
iNotifyRetrieveMultimediaMsgPCmd=0;
iNotifySubmitMultimediaMsgPCmd=0;
iNotifyDisplayMultimediaMsgPCmd=0;
iNotifySetFramesPCmd=0;
iNotifyGetFramesStatusPCmd=0;
iRetrieveMultimediaMsgTerminalRsp=0;
iSubmitMultimediaMsgTerminalRsp=0;
iDisplayMultimediaMsgTerminalRsp=0;
iSetFramesTerminalRsp=0;
iGetFramesStatusTerminalRsp=0;
iMmsNotificationDownload=0;
iMmsTransferStatus=0;
iUssdDataDownload=0;
}
void CSatDSatTsy::ConstructL()
{
LOGTEXT(_L8("CSatDSatTsy: Entered constructor"));
}
CSatDSatTsy::~CSatDSatTsy()
{
LOGTEXT(_L8("CSatDSatTsy: Entered destructor"));
}
CTelObject* CSatDSatTsy::OpenNewObjectByNameL(const TDesC& /*aName*/)
/**
* Opening object(s) from RSat is not supported
*/
{
User::Leave(KErrNotSupported);
return NULL;
}
CTelObject* CSatDSatTsy::OpenNewObjectL(TDes& /*aNewName*/)
/**
* Opening object(s) from RSat is not supported
*/
{
User::Leave(KErrNotSupported);
return NULL;
}
CTelObject::TReqMode CSatDSatTsy::ReqModeL(const TInt aIpc)
/**
* ReqModeL is called from the server's CTelObject::ReqAnalyserL
* in order to check the type of request it has.
*
* The following are example request types for this dummy TSY
* All TSYs do not have to have these request types but they have been given
* "sensible" values in this test code
*/
{
CTelObject::TReqMode ret=0;
switch (aIpc)
{
case ESatNotifyProactiveSimSessionStart:
case ESatNotifyProactiveSimSessionEnd:
case ESatNotifyCallControlRequest:
case ESatNotifyMoSmControlRequest:
case ESatNotifyDisplayTextPCmd:
case ESatNotifyGetInkeyPCmd:
case ESatNotifyGetInputPCmd:
case ESatNotifyPlayTonePCmd:
case ESatNotifySetUpMenuPCmd:
case ESatNotifySelectItemPCmd:
case ESatNotifySendSmPCmd:
case ESatNotifySendSsPCmd:
case ESatNotifySendUssdPCmd:
case ESatNotifySetUpCallPCmd:
case ESatNotifyRefreshPCmd:
case ESatNotifySetUpEventListPCmd:
case ESatNotifySetUpIdleModeTextPCmd:
case ESatNotifySendDtmfPCmd:
case ESatNotifyPerformCardApduPCmd:
case ESatNotifyPowerOffCardPCmd:
case ESatNotifyPowerOnCardPCmd:
case ESatNotifyGetReaderStatusPCmd:
case ESatNotifyRunAtCommandPCmd:
case ESatNotifyLanguageNotificationPCmd:
case ESatNotifyLaunchBrowserPCmd:
case ESatNotifyOpenChannelPCmd:
case ESatNotifyCloseChannelPCmd:
case ESatNotifyReceiveDataPCmd:
case ESatNotifySendDataPCmd:
case ESatNotifyGetChannelStatusPCmd:
case ESatNotifyServiceSearchPCmd:
case ESatNotifyGetServiceInfoPCmd:
case ESatNotifyDeclareServicePCmd:
case ESatNotifyTimerExpiration:
case ESatNotifySmsPpDownload:
case ESatNotifyCbDownload:
case ESatNotifyTimerMgmtPCmd:
case ESatNotifyLocalInfoPCmd:
case ESatNotifyPollingIntervalPCmd:
case ESatNotifyPollingOffPCmd:
case ESatNotifyTsyStateUpdated:
case ESatNotifyRefreshRequired:
case ESatNotifyRefreshRequiredParam:
case ESatNotifyRetrieveMultimediaMsgPCmd:
case ESatNotifySubmitMultimediaMsgPCmd:
case ESatNotifyDisplayMultimediaMsgPCmd:
case ESatNotifySetFramesPCmd:
case ESatNotifyGetFramesStatusPCmd:
ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
break;
case ESatGetIcon:
case ESatGetImageInstance:
case ESatGetClut:
case ESatTerminalRsp:
case ESatGetMeSideSatProfile:
case ESatClientSatProfileIndication:
case ESatMenuSelection:
case ESatEventDownload:
case ESatUsatClientReadyIndication:
case ESatGetProvisioningRefFile:
case ESatSendMessageNoLogging:
case ESatRefreshAllowed:
case ETestCustomIPC1:
case ESatGetOpenChannelPCmd:
case ESatMmsNotificationDownload:
case ESatMmsTransferStatus:
case ESatUssdDataDownload:
break;
case ESatNotifyProactiveSimSessionStartCancel:
case ESatNotifyProactiveSimSessionEndCancel:
case ESatGetIconCancel:
case ESatGetImageInstanceCancel:
case ESatGetClutCancel:
case ESatTerminalRspCancel:
case ESatGetMeSideSatProfileCancel:
case ESatMenuSelectionCancel:
case ESatNotifyCallControlRequestCancel:
case ESatNotifyMoSmControlRequestCancel:
case ESatEventDownloadCancel:
case ESatNotifyDisplayTextPCmdCancel:
case ESatNotifyGetInkeyPCmdCancel:
case ESatNotifyGetInputPCmdCancel:
case ESatNotifyPlayTonePCmdCancel:
case ESatNotifySetUpMenuPCmdCancel:
case ESatNotifySelectItemPCmdCancel:
case ESatNotifySendSmPCmdCancel:
case ESatNotifySendSsPCmdCancel:
case ESatNotifySendUssdPCmdCancel:
case ESatNotifySetUpCallPCmdCancel:
case ESatNotifyRefreshPCmdCancel:
case ESatNotifySetUpEventListPCmdCancel:
case ESatNotifySetUpIdleModeTextPCmdCancel:
case ESatNotifySendDtmfPCmdCancel:
case ESatGetProvisioningRefFileCancel:
case ESatNotifyPerformCardApduPCmdCancel:
case ESatNotifyPowerOffCardPCmdCancel:
case ESatNotifyPowerOnCardPCmdCancel:
case ESatNotifyGetReaderStatusPCmdCancel:
case ESatNotifyRunAtCommandPCmdCancel:
case ESatNotifyLanguageNotificationPCmdCancel:
case ESatNotifyLaunchBrowserPCmdCancel:
case ESatNotifyOpenChannelPCmdCancel:
case ESatNotifyCloseChannelPCmdCancel:
case ESatNotifyReceiveDataPCmdCancel:
case ESatNotifySendDataPCmdCancel:
case ESatNotifyGetChannelStatusPCmdCancel:
case ESatNotifyServiceSearchPCmdCancel:
case ESatNotifyGetServiceInfoPCmdCancel:
case ESatNotifyDeclareServicePCmdCancel:
case ESatSendMessageNoLoggingCancel:
case ESatNotifyTimerExpirationCancel:
case ESatNotifySmsPpDownloadCancel:
case ESatNotifyCbDownloadCancel:
case ESatNotifyTimerMgmtPCmdCancel:
case ESatNotifyLocalInfoPCmdCancel:
case ESatNotifyPollingIntervalPCmdCancel:
case ESatNotifyPollingOffPCmdCancel:
case ESatNotifyTsyStateUpdatedCancel:
case ESatNotifyRefreshRequiredCancel:
case ESatRefreshAllowedCancel:
case ESatNotifyRefreshRequiredParamCancel:
case ESatGetOpenChannelPCmdCancel:
case ESatNotifyRetrieveMultimediaMsgPCmdCancel:
case ESatNotifySubmitMultimediaMsgPCmdCancel:
case ESatNotifyDisplayMultimediaMsgPCmdCancel:
case ESatNotifySetFramesPCmdCancel:
case ESatNotifyGetFramesStatusPCmdCancel:
case ESatMmsNotificationDownloadCancel:
case ESatMmsTransferStatusCancel:
case ESatUssdDataDownloadCancel:
// The server should not use ReqMode on Cancel requests
User::Leave(KErrNotSupported);
break;
default:
User::Leave(KErrNotSupported);
break;
}
return ret;
}
TInt CSatDSatTsy::RegisterNotification(const TInt aIpc)
/**
* RegisterNotification is called when the server recognises that this notification
* is being posted for the first time on this sub-session object.
*
* It enables the TSY to "turn on" any regular notification messages that it may
* receive from the phone
*/
{
switch (aIpc)
{
case ESatNotifyProactiveSimSessionStart:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Start"));
return KErrNone;
case ESatNotifyProactiveSimSessionEnd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Stop"));
return KErrNone;
case ESatNotifyCallControlRequest:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Call Control Request"));
return KErrNone;
case ESatNotifyMoSmControlRequest:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - MO SM Control Request"));
return KErrNone;
case ESatNotifyDisplayTextPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Text PCmd"));
return KErrNone;
case ESatNotifyGetInkeyPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Inkey PCmd"));
return KErrNone;
case ESatNotifyGetInputPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Input PCmd"));
return KErrNone;
case ESatNotifyPlayTonePCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Play Tone PCmd"));
return KErrNone;
case ESatNotifySetUpMenuPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Menu PCmd"));
return KErrNone;
case ESatNotifySelectItemPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Select Item PCmd"));
return KErrNone;
case ESatNotifySendSmPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SM PCmd"));
return KErrNone;
case ESatNotifySendSsPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SS PCmd"));
return KErrNone;
case ESatNotifySendUssdPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send USSD PCmd"));
return KErrNone;
case ESatNotifySetUpCallPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Call PCmd"));
return KErrNone;
case ESatNotifyRefreshPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh PCmd"));
return KErrNone;
case ESatNotifySetUpEventListPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Event List PCmd"));
return KErrNone;
case ESatNotifySetUpIdleModeTextPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Idle Mode Text PCmd"));
return KErrNone;
case ESatNotifySendDtmfPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send DTMF PCmd"));
return KErrNone;
case ESatNotifyPerformCardApduPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Perform Card APDU"));
return KErrNone;
case ESatNotifyPowerOffCardPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power Off Card"));
return KErrNone;
case ESatNotifyPowerOnCardPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power On Card"));
return KErrNone;
case ESatNotifyGetReaderStatusPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Reader Status"));
return KErrNone;
case ESatNotifyRunAtCommandPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Run AT Command"));
return KErrNone;
case ESatNotifyLanguageNotificationPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Language Notification"));
return KErrNone;
case ESatNotifyLaunchBrowserPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Launch Browser"));
return KErrNone;
case ESatNotifyOpenChannelPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Open Channel"));
return KErrNone;
case ESatNotifyCloseChannelPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Close Channel"));
return KErrNone;
case ESatNotifyReceiveDataPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Receive Data"));
return KErrNone;
case ESatNotifySendDataPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send Data"));
return KErrNone;
case ESatNotifyGetChannelStatusPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Channel Status"));
return KErrNone;
case ESatNotifyServiceSearchPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Service Search"));
return KErrNone;
case ESatNotifyGetServiceInfoPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Service Info"));
return KErrNone;
case ESatNotifyDeclareServicePCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Declare Service"));
return KErrNone;
case ESatNotifyTimerExpiration:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer expiration"));
return KErrNone;
case ESatNotifySmsPpDownload:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Sms PP Dowmload"));
return KErrNone;
case ESatNotifyCbDownload:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - CB Download"));
return KErrNone;
case ESatNotifyTimerMgmtPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer Managt"));
return KErrNone;
case ESatNotifyLocalInfoPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Local Info"));
return KErrNone;
case ESatNotifyPollingIntervalPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Interval"));
return KErrNone;
case ESatNotifyPollingOffPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Pff"));
return KErrNone;
case ESatNotifyTsyStateUpdated:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - TSY State Updated"));
return KErrNone;
case ESatNotifyRefreshRequired:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required"));
return KErrNone;
case ESatNotifyRefreshRequiredParam:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required Param"));
return KErrNone;
case ESatNotifyRetrieveMultimediaMsgPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Retrieve Multimedia Message"));
return KErrNone;
case ESatNotifySubmitMultimediaMsgPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Submit Multimedia Message"));
return KErrNone;
case ESatNotifyDisplayMultimediaMsgPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Multimedia Message"));
return KErrNone;
case ESatNotifySetFramesPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Frames"));
return KErrNone;
case ESatNotifyGetFramesStatusPCmd:
LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Frames Status"));
return KErrNone;
default:
// Unknown or invalid IPC
LOGTEXT(_L8("CSatDSatTsy: Register error, unknown IPC"));
return KErrNotSupported;
}
}
TInt CSatDSatTsy::DeregisterNotification(const TInt aIpc)
/**
* DeregisterNotification is called when the server recognises that this notification
* will not be posted again because the last client to have a handle on this sub-session
* object has just closed the handle.
*
* It enables the TSY to "turn off" any regular notification messages that it may
* receive from the phone
*/
{
switch (aIpc)
{
case ESatNotifyProactiveSimSessionStart:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Start"));
return KErrNone;
case ESatNotifyProactiveSimSessionEnd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Stop"));
return KErrNone;
case ESatNotifyCallControlRequest:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Call Control Request"));
return KErrNone;
case ESatNotifyMoSmControlRequest:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - MO SM Control Request"));
return KErrNone;
case ESatNotifyDisplayTextPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Text PCmd"));
return KErrNone;
case ESatNotifyGetInkeyPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Inkey PCmd"));
return KErrNone;
case ESatNotifyGetInputPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Input PCmd"));
return KErrNone;
case ESatNotifyPlayTonePCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Play Tone PCmd"));
return KErrNone;
case ESatNotifySetUpMenuPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Menu PCmd"));
return KErrNone;
case ESatNotifySelectItemPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Select Item PCmd"));
return KErrNone;
case ESatNotifySendSmPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SM PCmd"));
return KErrNone;
case ESatNotifySendSsPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SS PCmd"));
return KErrNone;
case ESatNotifySendUssdPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send USSD PCmd"));
return KErrNone;
case ESatNotifySetUpCallPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Call PCmd"));
return KErrNone;
case ESatNotifyRefreshPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh PCmd"));
return KErrNone;
case ESatNotifySetUpEventListPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Event List PCmd"));
return KErrNone;
case ESatNotifySetUpIdleModeTextPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Idle Mode Text PCmd"));
return KErrNone;
case ESatNotifySendDtmfPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send DTMF PCmd"));
return KErrNone;
case ESatNotifyPerformCardApduPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Perform Card APDU"));
return KErrNone;
case ESatNotifyPowerOffCardPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power Off Card"));
return KErrNone;
case ESatNotifyPowerOnCardPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power On Card"));
return KErrNone;
case ESatNotifyGetReaderStatusPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Reader Status"));
return KErrNone;
case ESatNotifyRunAtCommandPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Run AT Command"));
return KErrNone;
case ESatNotifyLanguageNotificationPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Language Notification"));
return KErrNone;
case ESatNotifyLaunchBrowserPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Launch Browser"));
return KErrNone;
case ESatNotifyOpenChannelPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Open Channel"));
return KErrNone;
case ESatNotifyCloseChannelPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Close Channel"));
return KErrNone;
case ESatNotifyReceiveDataPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Receive Data"));
return KErrNone;
case ESatNotifySendDataPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send Data"));
return KErrNone;
case ESatNotifyGetChannelStatusPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Channel Status"));
return KErrNone;
case ESatNotifyServiceSearchPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Service Search"));
return KErrNone;
case ESatNotifyGetServiceInfoPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Service Info"));
return KErrNone;
case ESatNotifyDeclareServicePCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Declare Service"));
return KErrNone;
case ESatNotifyTimerExpiration:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer expiration"));
return KErrNone;
case ESatNotifySmsPpDownload:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Sms PP Dowmload"));
return KErrNone;
case ESatNotifyCbDownload:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - CB Download"));
return KErrNone;
case ESatNotifyTimerMgmtPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer Managt"));
return KErrNone;
case ESatNotifyLocalInfoPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Local Info"));
return KErrNone;
case ESatNotifyPollingIntervalPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Interval"));
return KErrNone;
case ESatNotifyPollingOffPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Pff"));
return KErrNone;
case ESatNotifyTsyStateUpdated:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - TSY State Updated"));
return KErrNone;
case ESatNotifyRefreshRequired:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required"));
return KErrNone;
case ESatNotifyRefreshRequiredParam:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required Param"));
return KErrNone;
case ESatNotifyRetrieveMultimediaMsgPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Retrieve Multimedia Message"));
return KErrNone;
case ESatNotifySubmitMultimediaMsgPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Submit Multimedia Message"));
return KErrNone;
case ESatNotifyDisplayMultimediaMsgPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Multimedia Message"));
return KErrNone;
case ESatNotifySetFramesPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Frames"));
return KErrNone;
case ESatNotifyGetFramesStatusPCmd:
LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Frames Status"));
return KErrNone;
default:
// Unknown or invalid IPC
LOGTEXT(_L8("CSatDSatTsy: Deregister error, unknown IPC"));
return KErrNotSupported;
}
}
TInt CSatDSatTsy::NumberOfSlotsL(const TInt aIpc)
/**
* NumberOfSlotsL is called by the server when it is registering a new notification
* It enables the TSY to tell the server how many buffer slots to allocate for
* "repost immediately" notifications that may trigger before clients collect them
*/
{
TInt numberOfSlots=1;
switch (aIpc)
{
case ESatNotifyProactiveSimSessionStart:
case ESatNotifyProactiveSimSessionEnd:
LOGTEXT(_L8("CSatDSatTsy: Registered with 1 slot"));
numberOfSlots=1;
break;
case ESatNotifyCallControlRequest:
case ESatNotifyMoSmControlRequest:
case ESatNotifyDisplayTextPCmd:
case ESatNotifyGetInkeyPCmd:
case ESatNotifyGetInputPCmd:
case ESatNotifyPlayTonePCmd:
case ESatNotifySetUpMenuPCmd:
case ESatNotifySelectItemPCmd:
case ESatNotifySendSmPCmd:
case ESatNotifySendSsPCmd:
case ESatNotifySendUssdPCmd:
case ESatNotifySetUpCallPCmd:
case ESatNotifyRefreshPCmd:
case ESatNotifySetUpEventListPCmd:
case ESatNotifySetUpIdleModeTextPCmd:
case ESatNotifySendDtmfPCmd:
case ESatNotifyPerformCardApduPCmd:
case ESatNotifyPowerOffCardPCmd:
case ESatNotifyPowerOnCardPCmd:
case ESatNotifyGetReaderStatusPCmd:
case ESatNotifyRunAtCommandPCmd:
case ESatNotifyLanguageNotificationPCmd:
case ESatNotifyLaunchBrowserPCmd:
case ESatNotifyOpenChannelPCmd:
case ESatNotifyCloseChannelPCmd:
case ESatNotifyReceiveDataPCmd:
case ESatNotifySendDataPCmd:
case ESatNotifyGetChannelStatusPCmd:
case ESatNotifyServiceSearchPCmd:
case ESatNotifyGetServiceInfoPCmd:
case ESatNotifyDeclareServicePCmd:
case ESatNotifyTimerExpiration:
case ESatNotifySmsPpDownload:
case ESatNotifyCbDownload:
case ESatNotifyTimerMgmtPCmd:
case ESatNotifyLocalInfoPCmd:
case ESatNotifyPollingIntervalPCmd:
case ESatNotifyPollingOffPCmd:
case ESatNotifyTsyStateUpdated:
case ESatNotifyRefreshRequired:
case ESatNotifyRefreshRequiredParam:
case ESatNotifyRetrieveMultimediaMsgPCmd:
case ESatNotifySubmitMultimediaMsgPCmd:
case ESatNotifyDisplayMultimediaMsgPCmd:
case ESatNotifySetFramesPCmd :
case ESatNotifyGetFramesStatusPCmd:
LOGTEXT(_L8("CSatDSatTsy: Registered with 2 slot"));
numberOfSlots=2;
break;
default:
// Unknown or invalid IPC
LOGTEXT(_L8("CSatDSatTsy: Number of Slots error, unknown IPC"));
User::Leave(KErrNotSupported);
break;
}
return numberOfSlots;
}
TInt CSatDSatTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,
const TDataPackage& aPackage)
/**
* ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request
* for the TSY to process
* A request handle, request type and request data are passed to the TSY
*/
{
TAny* dataPtr=aPackage.Ptr1();
TAny* dataPtr2=aPackage.Ptr2();
switch (aIpc)
{
case ESatNotifyProactiveSimSessionStart:
return NotifyProactiveSimSessionStart(aTsyReqHandle);
case ESatNotifyProactiveSimSessionEnd:
return NotifyProactiveSimSessionEnd(aTsyReqHandle);
case ESatNotifyCallControlRequest:
return NotifyCallControlRequest(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyMoSmControlRequest:
return NotifyMoSmControlRequest(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyDisplayTextPCmd:
return NotifyDisplayTextPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyGetInkeyPCmd:
return NotifyGetInkeyPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyGetInputPCmd:
return NotifyGetInputPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyPlayTonePCmd:
return NotifyPlayTonePCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySetUpMenuPCmd:
return NotifySetUpMenuPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySelectItemPCmd:
return NotifySelectItemPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySendSmPCmd:
return NotifySendSmPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySendSsPCmd:
return NotifySendSsPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySendUssdPCmd:
return NotifySendUssdPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySetUpCallPCmd:
return NotifySetUpCallPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyRefreshPCmd:
return NotifyRefreshPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySetUpEventListPCmd:
return NotifySetUpEventListPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySetUpIdleModeTextPCmd:
return NotifySetUpIdleModeTextPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySendDtmfPCmd:
return NotifySendDtmfPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatGetIcon:
return GetIcon(aTsyReqHandle,
REINTERPRET_CAST(TUint8*, dataPtr),
REINTERPRET_CAST(RSat::TIcon*, dataPtr2));
case ESatGetImageInstance:
return GetImageInstance(aTsyReqHandle,
aPackage.Des1n(),
aPackage.Des2n());
case ESatGetClut:
return GetClut(aTsyReqHandle,
REINTERPRET_CAST(RSat::TInstanceNumberAndOffset*, dataPtr),
aPackage.Des2n());
case ESatTerminalRsp:
return TerminalRsp(aTsyReqHandle,
REINTERPRET_CAST(RSat::TPCmd*, dataPtr),aPackage.Des2n());
case ESatGetMeSideSatProfile:
return GetMeSideSatProfile(aTsyReqHandle, aPackage.Des1n());
case ESatClientSatProfileIndication:
return ClientSatProfileIndication(aTsyReqHandle, aPackage.Des1n());
case ESatMenuSelection:
return MenuSelection(aTsyReqHandle, aPackage.Des1n());
case ESatEventDownload:
return EventDownload(aTsyReqHandle,
REINTERPRET_CAST(RSat::TEventList*, dataPtr),
aPackage.Des2n());
case ESatRefreshAllowed:
return RefreshAllowed(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyPerformCardApduPCmd:
return NotifyPerformCardApduPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyPowerOffCardPCmd:
return NotifyPowerOffCardPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyPowerOnCardPCmd:
return NotifyPowerOnCardPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyGetReaderStatusPCmd:
return NotifyGetReaderStatusPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyRunAtCommandPCmd:
return NotifyRunAtCommandPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyLanguageNotificationPCmd:
return NotifyLanguageNotificationPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyLaunchBrowserPCmd:
return NotifyLaunchBrowserPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyOpenChannelPCmd:
return NotifyOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatGetOpenChannelPCmd:
return GetOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyCloseChannelPCmd:
return NotifyCloseChannelPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyReceiveDataPCmd:
return NotifyReceiveDataPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySendDataPCmd:
return NotifySendDataPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyGetChannelStatusPCmd:
return NotifyGetChannelStatusPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyServiceSearchPCmd:
return NotifyServiceSearchPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyGetServiceInfoPCmd:
return NotifyGetServiceInfoPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyDeclareServicePCmd:
return NotifyDeclareServicePCmd(aTsyReqHandle, aPackage.Des1n());
case ESatUsatClientReadyIndication:
return UsatClientReadyIndication(aTsyReqHandle);
case ESatGetProvisioningRefFile:
return GetProvisioningRefFile(aTsyReqHandle,
REINTERPRET_CAST(RSat::TProvisioningFileRef*, dataPtr),
aPackage.Des2n());
case ESatSendMessageNoLogging:
return SendMessageNoLogging(aTsyReqHandle,
aPackage.Des1n(),
REINTERPRET_CAST(TUint16*, dataPtr2));
case ESatNotifyTimerExpiration:
return NotifyTimerExpiration(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySmsPpDownload:
return NotifySmsPpDownload(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyCbDownload:
return NotifyCbDownload(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyTimerMgmtPCmd:
return NotifyTimerManagtPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyLocalInfoPCmd:
return NotifyLocalInfoPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyPollingIntervalPCmd:
return NotifyPollingIntervalPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyPollingOffPCmd:
return NotifyPollingOffPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyTsyStateUpdated:
return NotifyTsyStateUpdated(aTsyReqHandle,
REINTERPRET_CAST(RSat::TPCmd*, dataPtr));
case ESatNotifyRefreshRequired:
return NotifyRefreshRequired(aTsyReqHandle);
case ESatNotifyRefreshRequiredParam:
return NotifyRefreshRequired(aTsyReqHandle, aPackage.Des1n());
case ETestCustomIPC1:
ReqCompleted(aTsyReqHandle,KErrNone);
return KErrNone;
case ESatNotifyRetrieveMultimediaMsgPCmd:
return NotifyRetrieveMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySubmitMultimediaMsgPCmd:
return NotifySubmitMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyDisplayMultimediaMsgPCmd:
return NotifyDisplayMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifySetFramesPCmd:
return NotifySetFramesPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatNotifyGetFramesStatusPCmd:
return NotifyGetFramesStatusPCmd(aTsyReqHandle, aPackage.Des1n());
case ESatMmsNotificationDownload:
return MmsNotificationDownload(aTsyReqHandle, aPackage.Des1n());
case ESatMmsTransferStatus:
return MmsTransferStatus(aTsyReqHandle, aPackage.Des1n());
case ESatUssdDataDownload :
return UssdDataDownload(aTsyReqHandle, aPackage.Des1n());
default:
return KErrNotSupported;
}
}
TInt CSatDSatTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
/**
* CancelService is called by the server when it is "cleaning-up" any still outstanding
* asynchronous requests before closing a client's sub-session.
*
* CancelService is also called when individual cancel methods are called by the client,
* who wishes to cancel an outstanding asynchronous request.
*
* This will happen if a client closes its R-class handle without cancelling outstanding
* asynchronous requests.
*/
{
LOGTEXT(_L8("CSatDSatTsy: - CancelService called"));
switch (aIpc)
{
case ESatNotifyProactiveSimSessionEnd:
return NotifyProactiveSimSessionEndCancel(aTsyReqHandle);
case ESatNotifyProactiveSimSessionStart:
return NotifyProactiveSimSessionStartCancel(aTsyReqHandle);
case ESatGetIcon:
return GetIconCancel(aTsyReqHandle);
case ESatGetImageInstance:
return GetImageInstanceCancel(aTsyReqHandle);
case ESatGetClut:
return GetClutCancel(aTsyReqHandle);
case ESatTerminalRsp:
return TerminalRspCancel(aTsyReqHandle);
case ESatGetMeSideSatProfile:
return GetMeSideSatProfileCancel(aTsyReqHandle);
case ESatMenuSelection:
return MenuSelectionCancel(aTsyReqHandle);
case ESatRefreshAllowed:
return RefreshAllowedCancel(aTsyReqHandle);
case ESatNotifyCallControlRequest:
return NotifyCallControlRequestCancel(aTsyReqHandle);
case ESatNotifyMoSmControlRequest:
return NotifyMoSmControlRequestCancel(aTsyReqHandle);
case ESatEventDownload:
return EventDownloadCancel(aTsyReqHandle);
case ESatNotifyDisplayTextPCmd:
return NotifyDisplayTextPCmdCancel(aTsyReqHandle);
case ESatNotifyGetInkeyPCmd:
return NotifyGetInkeyPCmdCancel(aTsyReqHandle);
case ESatNotifyGetInputPCmd:
return NotifyGetInputPCmdCancel(aTsyReqHandle);
case ESatNotifyPlayTonePCmd:
return NotifyPlayTonePCmdCancel(aTsyReqHandle);
case ESatNotifySetUpMenuPCmd:
return NotifySetUpMenuPCmdCancel(aTsyReqHandle);
case ESatNotifySelectItemPCmd:
return NotifySelectItemPCmdCancel(aTsyReqHandle);
case ESatNotifySendSmPCmd:
return NotifySendSmPCmdCancel(aTsyReqHandle);
case ESatNotifySendSsPCmd:
return NotifySendSsPCmdCancel(aTsyReqHandle);
case ESatNotifySendUssdPCmd:
return NotifySendUssdPCmdCancel(aTsyReqHandle);
case ESatNotifySetUpCallPCmd:
return NotifySetUpCallPCmdCancel(aTsyReqHandle);
case ESatNotifyRefreshPCmd:
return NotifyRefreshPCmdCancel(aTsyReqHandle);
case ESatNotifySetUpEventListPCmd:
return NotifySetUpEventListPCmdCancel(aTsyReqHandle);
case ESatNotifySetUpIdleModeTextPCmd:
return NotifySetUpIdleModeTextPCmdCancel(aTsyReqHandle);
case ESatNotifySendDtmfPCmd:
return NotifySendDtmfPCmdCancel(aTsyReqHandle);
case ESatNotifyPerformCardApduPCmd:
return NotifyPerformCardApduPCmdCancel(aTsyReqHandle);
case ESatNotifyPowerOffCardPCmd:
return NotifyPowerOffCardPCmdCancel(aTsyReqHandle);
case ESatNotifyPowerOnCardPCmd:
return NotifyPowerOnCardPCmdCancel(aTsyReqHandle);
case ESatNotifyGetReaderStatusPCmd:
return NotifyGetReaderStatusPCmdCancel(aTsyReqHandle);
case ESatNotifyRunAtCommandPCmd:
return NotifyRunAtCommandPCmdCancel(aTsyReqHandle);
case ESatNotifyLanguageNotificationPCmd:
return NotifyLanguageNotificationPCmdCancel(aTsyReqHandle);
case ESatNotifyLaunchBrowserPCmd:
return NotifyLaunchBrowserPCmdCancel(aTsyReqHandle);
case ESatNotifyOpenChannelPCmd:
return NotifyOpenChannelPCmdCancel(aTsyReqHandle);
case ESatGetOpenChannelPCmd:
return GetOpenChannelPCmdCancel(aTsyReqHandle);
case ESatNotifyCloseChannelPCmd:
return NotifyCloseChannelPCmdCancel(aTsyReqHandle);
case ESatNotifyReceiveDataPCmd:
return NotifyReceiveDataPCmdCancel(aTsyReqHandle);
case ESatNotifySendDataPCmd:
return NotifySendDataPCmdCancel(aTsyReqHandle);
case ESatNotifyGetChannelStatusPCmd:
return NotifyGetChannelStatusPCmdCancel(aTsyReqHandle);
case ESatNotifyServiceSearchPCmd:
return NotifyServiceSearchPCmdCancel(aTsyReqHandle);
case ESatNotifyGetServiceInfoPCmd:
return NotifyGetServiceInfoPCmdCancel(aTsyReqHandle);
case ESatNotifyDeclareServicePCmd:
return NotifyDeclareServicePCmdCancel(aTsyReqHandle);
case ESatGetProvisioningRefFile:
return GetProvisioningRefFileCancel(aTsyReqHandle);
case ESatSendMessageNoLogging:
return SendMessageNoLoggingCancel(aTsyReqHandle);
case ESatNotifyTimerExpiration:
return NotifyTimerExpirationCancel(aTsyReqHandle);
case ESatNotifySmsPpDownload:
return NotifySmsPpDownloadCancel(aTsyReqHandle);
case ESatNotifyCbDownload:
return NotifyCbDownloadCancel(aTsyReqHandle);
case ESatNotifyTimerMgmtPCmd:
return NotifyTimerManagtPCmdCancel(aTsyReqHandle);
case ESatNotifyLocalInfoPCmd:
return NotifyLocalInfoPCmdCancel(aTsyReqHandle);
case ESatNotifyPollingIntervalPCmd:
return NotifyPollingIntervalPCmdCancel(aTsyReqHandle);
case ESatNotifyPollingOffPCmd:
return NotifyPollingOffPCmdCancel(aTsyReqHandle);
case ESatNotifyTsyStateUpdated:
return NotifyTsyStateUpdatedCancel(aTsyReqHandle);
case ESatNotifyRefreshRequired:
return NotifyRefreshRequiredCancel(aTsyReqHandle);
case ESatNotifyRefreshRequiredParam:
return NotifyRefreshRequiredCancel(aTsyReqHandle);
case ESatNotifyRetrieveMultimediaMsgPCmd:
return NotifyRetrieveMultimediaMsgPCmdCancel(aTsyReqHandle);
case ESatNotifySubmitMultimediaMsgPCmd:
return NotifySubmitMultimediaMsgPCmdCancel(aTsyReqHandle);
case ESatNotifyDisplayMultimediaMsgPCmd:
return NotifyDisplayMultimediaMsgPCmdCancel(aTsyReqHandle);
case ESatNotifySetFramesPCmd:
return NotifySetFramesPCmdCancel(aTsyReqHandle);
case ESatNotifyGetFramesStatusPCmd:
return NotifyGetFramesStatusPCmdCancel(aTsyReqHandle);
case ESatMmsNotificationDownload:
return MmsNotificationDownloadCancel(aTsyReqHandle);
case ESatMmsTransferStatus:
return MmsTransferStatusCancel(aTsyReqHandle);
case ESatUssdDataDownload:
return UssdDataDownloadCancel(aTsyReqHandle);
default:
return KErrGeneral;
}
}
/***********************************************************************************/
//
// The following methods are called from ExtFunc and/or CancelService.
// Each of these will process a TSY request or cancel a TSY request
// Here, example values are returned or checked within this dummy TSY in order to ensure
// that the integrity of the data passed to/from client is maintained
//
/***********************************************************************************/
TInt CSatDSatTsy::GetIcon(const TTsyReqHandle aTsyReqHandle, TUint8* aRecordNumber, RSat::TIcon* aIconEf)
{
if((iGetIcon==0)||(iGetIcon==1))
{
iGetIcon++;
LOGTEXT(_L8("CSatDSatTsy::GetIcon called"));
switch(*aRecordNumber)
{
case 1:
*aIconEf=DSATTSY_ICON_EF1;
break;
case 2:
*aIconEf=DSATTSY_ICON_EF2;
break;
default:
*aIconEf=DSATTSY_ICON_EF1;
break;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetIconCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::GetIconCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::GetImageInstance(const TTsyReqHandle aTsyReqHandle, TDesC8* aCallParams, TDes8* aInstance)
/**
* The first time that this method is called, iGetImageInstance=0
* The request completes - ReqCompleted is called. One of the test cases for
* aInstanceNumber can be tested.
*
* The second time that this method is called, iGetImageInstance=1
* The request completes - ReqCompleted is called. Another one of the test cases
* for aInstanceNumber can be tested.
*
* The third time that this method is called, iGetImageInstance=2
* The request does not complete.
*
* This mechanism prevents an infinite loop as each time a notification completes,
* it is reposted automatically by the server, which would in this test code create an
* infinite loop of posting, completing and reposting the notification.
*
* This mechanism also allows the test client to test the cancel method associated.
*
* If parameters become corrupted in either of the two tests then 'KErrCorrupt'
* and an unknown image instance returned.
*/
{
LOGTEXT(_L8("CSatDSatTsy::GetImageInstance called"));
TInt result=KErrNone;
RSat::TInstanceInfoV3Pckg* paramsPckgV3 = (RSat::TInstanceInfoV3Pckg*)aCallParams;
RSat::TInstanceInfoV3& paramsV3 = (*paramsPckgV3)();
if((iGetImageInstance==0)||(iGetImageInstance==1))
{
iGetImageInstance++;
if(paramsV3.ExtensionId()== RSat::KSatV3)
{
// check that all parameters are being passed correctly
if( paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER1 &&
paramsV3.iLength==DSATTSY_INSTANCE_LENGTH1 &&
paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET1 &&
paramsV3.iCoding==DSATTSY_INSTANCE_CODING_BASIC &&
paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_1 &&
paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_1 &&
paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_1 )
{
*aInstance=DSATTSY_IMG_INSTANCE1;
}
else if(paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER2 &&
paramsV3.iLength==DSATTSY_INSTANCE_LENGTH2 &&
paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET2 &&
paramsV3.iCoding==DSATTSY_INSTANCE_CODING_COLOUR &&
paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_2 &&
paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_2 &&
paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_2 )
{
*aInstance=DSATTSY_IMG_INSTANCE2;
}
else
{
// parameters have been corrupted
*aInstance=DSATTSY_IMG_INSTANCE_UNKNOWN;
result=KErrCorrupt;
}
}
ReqCompleted(aTsyReqHandle,result);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return result;
}
TInt CSatDSatTsy::GetImageInstanceCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::GetImageInstanceCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::GetClut(const TTsyReqHandle aTsyReqHandle, RSat::TInstanceNumberAndOffset* aClutInfo, TDes8* aClut)
{
LOGTEXT(_L8("CSatDSatTsy::GetClut called"));
if((aClutInfo->iInstanceNumber!=DSATTSY_INSTANCE_NUMBER1)
||(aClutInfo->iOffset!=DSATTSY_CLUT_OFFSET))
ReqCompleted(aTsyReqHandle,KErrCorrupt);
if(iGetClut==0)
{
iGetClut++;
*aClut= DSATTSY_CLUT1;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetClutCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::GetClutCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::DisplayTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TDisplayTextRspV1Pckg* aRspPckg = (RSat::TDisplayTextRspV1Pckg*)aRsp;
RSat::TDisplayTextRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.PCmdNumber()!=DSATTSY_DISPLAY_TEXT_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iDisplayTextTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetInkeyTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TGetInkeyRspV1Pckg* aRspPckg = (RSat::TGetInkeyRspV1Pckg*)aRsp;
RSat::TGetInkeyRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
||(rspV1.iRspFormat!=DSATTSY_USER_RSP_FORMAT)
||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
||(rspV1.PCmdNumber()!=DSATTSY_GET_INKEY_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iGetInkeyTerminalRsp++)
{
if(rspV1.ExtensionId()==RSat::KSatV2)
{
RSat::TGetInkeyRspV2Pckg* aV2RspPckg = (RSat::TGetInkeyRspV2Pckg*)aRsp;
RSat::TGetInkeyRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iDuration.iTimeUnit!=DSATTSY_TIME_UNIT)
|| (rspV2.iDuration.iNumOfUnits!=DSATTSY_NUM_OF_UNITS))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetInputTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TGetInputRspV1Pckg* aRspPckg = (RSat::TGetInputRspV1Pckg*)aRsp;
RSat::TGetInputRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
||(rspV1.iRspFormat!=DSATTSY_GET_INPUT_RSP_FORMAT)
||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
||(rspV1.PCmdNumber()!=DSATTSY_GET_INPUT_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iGetInputTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::PlayToneTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TPlayToneRspV1Pckg* aRspPckg = (RSat::TPlayToneRspV1Pckg*)aRsp;
RSat::TPlayToneRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_PLAY_TONE_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iPlayToneTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SetUpMenuRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSetUpMenuRspV1Pckg* aRspPckg = (RSat::TSetUpMenuRspV1Pckg*)aRsp;
RSat::TSetUpMenuRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_MENU_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSetUpMenuTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SelectItemTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSelectItemRspV1Pckg* aRspPckg = (RSat::TSelectItemRspV1Pckg*)aRsp;
RSat::TSelectItemRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_ITEM_ID)
||(rspV1.iAdditionalInfo!=DSATTSY_RSP_ITEM_ID)
||(rspV1.PCmdNumber()!=DSATTSY_SELECT_ITEM_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSelectItemTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SendSmTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSendSmRspV1Pckg* aRspPckg = (RSat::TSendSmRspV1Pckg*)aRsp;
RSat::TSendSmRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_SEND_SM_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSendSmTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SendSSTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSendSsRspV1Pckg* aRspPckg = (RSat::TSendSsRspV1Pckg*)aRsp;
RSat::TSendSsRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_SEND_SS_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
RSat::TControlResult ccResult;
rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
RSat::TCallControlType ccType;
rspV1.iCcRequestedAction.GetCallControlType(ccType);
RSat::TCallSetUpParams address;
rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
RSat::TAlphaIdValidity validity;
RSat::TAlphaId alphaId;
rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
RSat::TBCRepeatIndicator indicator;
rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress)
|| (address.iCcp1!=DSATTSY_CCP1)
||(address.iSubAddress!=DSATTSY_SUBADDRESS)
|| (address.iCcp2!=DSATTSY_CCP2)
|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
|| (address.iAddress.iNumberPlan!=DSATTSY_NPI)
|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER)
|| (validity!=DSATTSY_NO_ALPHAID)
|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSendSsTerminalRsp++)
{
if(rspV1.ExtensionId()==RSat::KSatV2)
{
RSat::TSendSsRspV2Pckg* aV2RspPckg = (RSat::TSendSsRspV2Pckg*)aRsp;
RSat::TSendSsRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))
ReqCompleted(aTsyReqHandle,KErrCorrupt);
else
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SendUssdTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSendUssdRspV1Pckg* aRspPckg = (RSat::TSendUssdRspV1Pckg*)aRsp;
RSat::TSendUssdRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
||(rspV1.iAdditionalInfo!=DSATTSY_NETWORK_TEXT_STRING)
||(rspV1.PCmdNumber()!=DSATTSY_SEND_USSD_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
RSat::TControlResult ccResult;
rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
RSat::TCallControlType ccType;
rspV1.iCcRequestedAction.GetCallControlType(ccType);
RSat::TCallSetUpParams address;
rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
RSat::TAlphaIdValidity validity;
RSat::TAlphaId alphaId;
rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
RSat::TBCRepeatIndicator indicator;
rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress)
|| (address.iCcp1!=DSATTSY_CCP1)
||(address.iSubAddress!=DSATTSY_SUBADDRESS)
|| (address.iCcp2!=DSATTSY_CCP2)
|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
|| (address.iAddress.iNumberPlan!=DSATTSY_NPI)
|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER)
|| (validity!=DSATTSY_NO_ALPHAID)
|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS
|| indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSendUssdTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SetUpCallTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSetUpCallRspV1Pckg* aRspPckg = (RSat::TSetUpCallRspV1Pckg*)aRsp;
RSat::TSetUpCallRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_CALL_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
if(rspV1.ExtensionId()==RSat::KSatV2)
{
RSat::TSetUpCallRspV2Pckg* aRspV2Pckg = (RSat::TSetUpCallRspV2Pckg*)aRsp;
RSat::TSetUpCallRspV2& rspV2 = (*aRspV2Pckg)();
if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
RSat::TControlResult ccResult;
rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
RSat::TCallControlType ccType;
rspV1.iCcRequestedAction.GetCallControlType(ccType);
RSat::TCallSetUpParams address;
rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
RSat::TAlphaIdValidity validity;
RSat::TAlphaId alphaId;
rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
RSat::TBCRepeatIndicator indicator;
rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress)
|| (address.iCcp1!=DSATTSY_CCP1)
|| (address.iSubAddress!=DSATTSY_SUBADDRESS)
|| (address.iCcp2!=DSATTSY_CCP2)
|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
|| (address.iAddress.iNumberPlan!=DSATTSY_NPI)
|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER)
|| (validity!=DSATTSY_NO_ALPHAID)
|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_ALTERNATE))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSetUpCallTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::RefreshTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRsp;
RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_REFRESH_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iRefreshTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SetUpEventListTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSetUpEventListRspV1Pckg* aRspPckg = (RSat::TSetUpEventListRspV1Pckg*)aRsp;
RSat::TSetUpEventListRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_EVENT_LIST_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSetUpEventListTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SetUpIdleModeTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSetUpIdleModeTextRspV1Pckg* aRspPckg = (RSat::TSetUpIdleModeTextRspV1Pckg*)aRsp;
RSat::TSetUpIdleModeTextRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSetUpIdleModeTextTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SendDtmfTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSendDtmfRspV1Pckg* aRspPckg = (RSat::TSendDtmfRspV1Pckg*)aRsp;
RSat::TSendDtmfRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV1.PCmdNumber()!=DSATTSY_SEND_DTMF_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSendDtmfTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::PerformCardApduTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TPerformCardApduRspV2Pckg* aV2RspPckg = (RSat::TPerformCardApduRspV2Pckg*)aRsp;
RSat::TPerformCardApduRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_PERFORM_CARD_APDU_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iPerformCardApduTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::PowerOffCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TPowerOffCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOffCardRspV2Pckg*)aRsp;
RSat::TPowerOffCardRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_POWER_OFF_CARD_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iPowerOffCardTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::PowerOnCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TPowerOnCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOnCardRspV2Pckg*)aRsp;
RSat::TPowerOnCardRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_POWER_ON_CARD_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iPowerOnCardTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetReaderStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TGetReaderStatusRspV2Pckg* aV2RspPckg = (RSat::TGetReaderStatusRspV2Pckg*)aRsp;
RSat::TGetReaderStatusRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_GET_READER_STATUS_NUMBER)
||(rspV2.iMode!=DSATTSY_GET_READER_STATUS_MODE))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iGetReaderStatusTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::RunAtCommandTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TRunAtCommandRspV2Pckg* aV2RspPckg = (RSat::TRunAtCommandRspV2Pckg*)aRsp;
RSat::TRunAtCommandRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_RUN_AT_COMMAND_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iRunAtCommandTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::LanguageNotificationTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TLanguageNotificationRspV2Pckg* aV2RspPckg = (RSat::TLanguageNotificationRspV2Pckg*)aRsp;
RSat::TLanguageNotificationRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_LANGUAGE_NOTIFICATION_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iLanguageNotificationTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::LaunchBrowserTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TLaunchBrowserRspV2Pckg* aV2RspPckg = (RSat::TLaunchBrowserRspV2Pckg*)aRsp;
RSat::TLaunchBrowserRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_LAUNCH_BROWSER_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iLaunchBrowserTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::OpenChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TOpenChannelRspV2Pckg* aV2RspPckg = (RSat::TOpenChannelRspV2Pckg*)aRsp;
RSat::TOpenChannelRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_OPEN_CHANNEL_NUMBER)
||(rspV2.iBearer.iType!=DSATTSY_CSD_BEARER_TYPE)
||(rspV2.iBearer.iParams!=DSATTSY_BEARER_PARAMS)
||(rspV2.iBufferSize!=DSATTSY_BUFFER_SIZE))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iOpenChannelTerminalRsp++)
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::CloseChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TCloseChannelRspV2Pckg* aV2RspPckg = (RSat::TCloseChannelRspV2Pckg*)aRsp;
RSat::TCloseChannelRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_CLOSE_CHANNEL_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iCloseChannelTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::ReceiveDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TReceiveDataRspV2Pckg* aV2RspPckg = (RSat::TReceiveDataRspV2Pckg*)aRsp;
RSat::TReceiveDataRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_RECEIVE_DATA_NUMBER)
||(rspV2.iChannelDataLength!=DSATTSY_DATA_LENGTH))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iReceiveDataTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SendDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TSendDataRspV2Pckg* aV2RspPckg = (RSat::TSendDataRspV2Pckg*)aRsp;
RSat::TSendDataRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_SEND_DATA_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iSendDataTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetChannelStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TGetChannelStatusRspV2Pckg* aV2RspPckg = (RSat::TGetChannelStatusRspV2Pckg*)aRsp;
RSat::TGetChannelStatusRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_GET_CHANNEL_STATUS_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iGetChannelStatusTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetServiceInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TGetServiceInfoRspV2Pckg* aV2RspPckg = (RSat::TGetServiceInfoRspV2Pckg*)aRsp;
RSat::TGetServiceInfoRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_GET_SERVICE_INFO_NUMBER)
||(rspV2.iRecordInfo.iBearerId!=DSATTSY_BEARER_NOT_PRESENT)
||(rspV2.iRecordInfo.iServiceId!=DSATTSY_NULL_BEARER_ID)
||(rspV2.iRecordInfo.iRecord!=DSATTSY_NULL_NARROW_BUF))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iGetServiceInfoTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::DeclareServiceTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TDeclareServiceRspV2Pckg* aV2RspPckg = (RSat::TDeclareServiceRspV2Pckg*)aRsp;
RSat::TDeclareServiceRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_DECLARE_SERVICE_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iDeclareServiceTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::ServiceSearchTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TServiceSearchRspV2Pckg* aV2RspPckg = (RSat::TServiceSearchRspV2Pckg*)aRsp;
RSat::TServiceSearchRspV2& rspV2 = (*aV2RspPckg)();
if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV2.PCmdNumber()!=DSATTSY_SERVICE_SEARCH_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iServiceSearchTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::TimerMgmtTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TTimerMgmtRspV3Pckg* aV3RspPckg = (RSat::TTimerMgmtRspV3Pckg*)aRsp;
RSat::TTimerMgmtRspV3& rspV3 = (*aV3RspPckg)();
if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV3.PCmdNumber()!=DSATTSY_TIMER_MNGT_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iTimerMgmtTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::LocalInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TLocalInfoRspV3Pckg* aV3RspPckg = (RSat::TLocalInfoRspV3Pckg*)aRsp;
RSat::TLocalInfoRspV3& rspV3 = (*aV3RspPckg)();
if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV3.PCmdNumber()!=DSATTSY_LOCAL_INFO_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iLocalInfoTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::PollingIntvTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TPollingIntervalRspV3Pckg* aV3RspPckg = (RSat::TPollingIntervalRspV3Pckg*)aRsp;
RSat::TPollingIntervalRspV3& rspV3 = (*aV3RspPckg)();
if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV3.PCmdNumber()!=DSATTSY_POLLING_INTERVAL_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iPollingIntervalTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::PollingOffTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
{
RSat::TPollingOffRspV3Pckg* aV3RspPckg = (RSat::TPollingOffRspV3Pckg*)aRsp;
RSat::TPollingOffRspV3& rspV3 = (*aV3RspPckg)();
if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
||(rspV3.PCmdNumber()!=DSATTSY_POLLING_OFF_NUMBER))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iPollingOffTerminalRsp++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::RetrieveMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iRetrieveMultimediaMsgTerminalRsp++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
RSat::TRetrieveMultimediaMessageRspV6Pckg* retrieveMmRspV6PCmdPckg = (RSat::TRetrieveMultimediaMessageRspV6Pckg*)aPCmd;
RSat::TRetrieveMultimediaMessageRspV6& retrieveMmRspV6 = (*retrieveMmRspV6PCmdPckg)();
if((retrieveMmRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS) ||
(retrieveMmRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
(retrieveMmRspV6.PCmdNumber()!=DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SubmitMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iSubmitMultimediaMsgTerminalRsp++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
RSat::TSubmitMultimediaMessageRspV6Pckg* submitMMRspV6PCmdPckg = (RSat::TSubmitMultimediaMessageRspV6Pckg*)aPCmd;
RSat::TSubmitMultimediaMessageRspV6& submitMMRspV6 = (*submitMMRspV6PCmdPckg)();
if((submitMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS) ||
(submitMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
(submitMMRspV6.PCmdNumber()!=DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::DisplayMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iDisplayMultimediaMsgTerminalRsp++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
RSat::TDisplayMultimediaMessageRspV6Pckg* displayMMRspV6PCmdPckg = (RSat::TDisplayMultimediaMessageRspV6Pckg*)aPCmd;
RSat::TDisplayMultimediaMessageRspV6& displayMMRspV6 = (*displayMMRspV6PCmdPckg)();
if((displayMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS) ||
(displayMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
(displayMMRspV6.PCmdNumber()!=DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SetFramesTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iSetFramesTerminalRsp++)
{
LOGTEXT(_L8("CSatDSatTsy::SetFramesTerminalRsp called"));
RSat::TSetFramesRspV6Pckg* setFramesRspV6PCmdPckg = (RSat::TSetFramesRspV6Pckg*)aPCmd;
RSat::TSetFramesRspV6& setFramesRspV6 = (*setFramesRspV6PCmdPckg)();
if((setFramesRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS) ||
(setFramesRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
(setFramesRspV6.PCmdNumber()!=DSATTSY_SET_FRAMES) ||
(setFramesRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID) ||
(setFramesRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetFramesStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iGetFramesStatusTerminalRsp++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
RSat::TGetFramesStatusRspV6Pckg* getFramesStatusRspV6PCmdPckg = (RSat::TGetFramesStatusRspV6Pckg*)aPCmd;
RSat::TGetFramesStatusRspV6& getFramesStatusRspV6 = (*getFramesStatusRspV6PCmdPckg)();
if((getFramesStatusRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(getFramesStatusRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(getFramesStatusRspV6.PCmdNumber()!=DSATTSY_GET_FRAMES_STATUS)
||(getFramesStatusRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID)
||(getFramesStatusRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::TerminalRsp(const TTsyReqHandle aTsyReqHandle, RSat::TPCmd* aPCmd, TDes8* aRsp)
{
LOGTEXT(_L8("CSatDSatTsy::TerminalRsp called"));
switch (*aPCmd)
{
case RSat::EDisplayText:
return DisplayTextTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EGetInkey:
return GetInkeyTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EGetInput:
return GetInputTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EPlayTone:
return PlayToneTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESetUpMenu:
return SetUpMenuRsp(aTsyReqHandle, aRsp);
case RSat::ESelectItem:
return SelectItemTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESendSm:
return SendSmTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESendSs:
return SendSSTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESendUssd:
return SendUssdTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESetUpCall:
return SetUpCallTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ERefresh:
return RefreshTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESetUpEventList:
return SetUpEventListTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESetUpIdleModeText:
return SetUpIdleModeTextTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESendDtmf:
return SendDtmfTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EPerformCardApdu:
return PerformCardApduTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EPowerOffCard:
return PowerOffCardTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EPowerOnCard:
return PowerOnCardTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EGetReaderStatus:
return GetReaderStatusTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ERunAtCommand:
return RunAtCommandTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ELanguageNotification:
return LanguageNotificationTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ELaunchBrowser:
return LaunchBrowserTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EOpenChannelCs:
case RSat::EOpenChannelGprs:
case RSat::EOpenChannelLocal:
case RSat::EOpenChannelUiccServerMode:
return OpenChannelTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ECloseChannel:
return CloseChannelTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EReceiveData:
return ReceiveDataTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESendData:
return SendDataTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EGetChannelStatus:
return GetChannelStatusTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EDeclareService:
return DeclareServiceTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EServiceSearch:
return ServiceSearchTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EGetServiceInformation:
return GetServiceInfoTerminalRsp(aTsyReqHandle,aRsp);
case RSat::ETimerMngt:
return TimerMgmtTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ELocalInfo:
return LocalInfoTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EPollingInterval:
return PollingIntvTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EPollingOff:
return PollingOffTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ERetrieveMultimediaMsg:
return RetrieveMultimediaMsgTerminalRsp(aTsyReqHandle,aRsp);
case RSat::ESubmitMultimediaMsg:
return SubmitMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EDisplayMultimediaMsg:
return DisplayMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
case RSat::ESetFrames:
return SetFramesTerminalRsp(aTsyReqHandle, aRsp);
case RSat::EGetFramesStatus:
return GetFramesStatusTerminalRsp(aTsyReqHandle, aRsp);
default:
return KErrGeneral;
}
}
TInt CSatDSatTsy::TerminalRspCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::TerminalRspCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::GetMeSideSatProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aMeSimSatProfile)
{
// First call by test code is RSat::GetMeSideSatProfile() with V2 param.
// Second call is RSat::GetMeSideSatProfile() followed by Cancel
// Third call is RSat::GetMeSideSatProfile() with V5 param.
if((iGetMeSideSatProfile == 0) || (iGetMeSideSatProfile == 2))
{
LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfile called"));
RSat::TSatProfileV1Pckg* aProfilePckg = (RSat::TSatProfileV1Pckg*)aMeSimSatProfile;
RSat::TSatProfileV1& profileV1 = (*aProfilePckg)();
profileV1.iSatProfileByte1=0x01;
profileV1.iSatProfileByte2=0x02;
profileV1.iSatProfileByte3=0x03;
profileV1.iSatProfileByte4=0x04;
profileV1.iSatProfileByte5=0x05;
profileV1.iSatProfileByte6=0x06;
profileV1.iSatProfileByte7=0x07;
profileV1.iSatProfileByte8=0x08;
profileV1.iSatProfileByte9=0x09;
if ((profileV1.ExtensionId() == RSat::KSatV2) ||
(profileV1.ExtensionId() == RSat::KSatV5) ||
(profileV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSatProfileV2Pckg* v2ProfilePckg = (RSat::TSatProfileV2Pckg*)aMeSimSatProfile;
RSat::TSatProfileV2& profileV2 = (*v2ProfilePckg)();
profileV2.iSatProfileByte10=0x0A;
profileV2.iSatProfileByte11=0x0B;
profileV2.iSatProfileByte12=0x0C;
profileV2.iSatProfileByte13=0x0D;
profileV2.iSatProfileByte14=0x0E;
profileV2.iSatProfileByte15=0x0F;
profileV2.iSatProfileByte16=0x10;
profileV2.iSatProfileByte17=0x20;
profileV2.iSatProfileByte18=0x30;
profileV2.iNumOfChannels=DSATTSY_NUMBER_OF_CHANNELS;
profileV2.iScreenHeight=DSATTSY_SCREEN_HEIGHT;
profileV2.iScreenWidth=DSATTSY_SCREEN_WIDTH;
profileV2.iTiaEiaProtoVersion=DSATTSY_PROTO_VERSION;
profileV2.iWidthReduction=DSATTSY_WIDTH_REDUCTION;
}
if ((profileV1.ExtensionId() == RSat::KSatV5) ||
(profileV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSatProfileV5Pckg* profileV5Pckg = (RSat::TSatProfileV5Pckg*)aMeSimSatProfile;
RSat::TSatProfileV5& profileV5 = (*profileV5Pckg)();
// Set profileV5.iSatProfileByte28 to:
// (KCapsTextAttributeAlignmentLeft | KCapsTextAttributeAlignmentCentre |
// KCapsTextAttributeAlignmentRight | KCapsTextAttributeFontSizeNormal |
// KCapsTextAttributeFontSizeLarge | KCapsTextAttributeFontSizeSmall)
profileV5.iSatProfileByte28 = 0x3F;
// Set profileV5.iSatProfileByte29 to
// (KCapsTextAttributeStyleNormal | KCapsTextAttributeStyleBold |
// KCapsTextAttributeStyleItalic | KCapsTextAttributeStyleUnderline |
// KCapsTextAttributeStyleStrikethrough | KCapsTextAttributeStyleForeground |
// KCapsTextAttributeStyleBackground)
profileV5.iSatProfileByte29 = 0x7F;
}
if (profileV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSatProfileV6Pckg* profileV6Pckg = (RSat::TSatProfileV6Pckg*)aMeSimSatProfile;
RSat::TSatProfileV6& profileV6 = (*profileV6Pckg)();
// Set profileV6.iSatProfileByte21 to:
//(KCapsWML | KCapsXHTML |
// KCapsHTML | KCapsCHTML )
profileV6.iSatProfileByte21 = 0x0F;
// Set profileV6.iSatProfileByte22 to:
//(KCapsProvideLocalInfoUTRAN | KCapsProvideLocalInfoBatteryState |
// KCapsPlayThemedAndMelodyTone | KCapsSetUpCallMultimediaCall |
// KCapsRefreshGBA | KCapsRetrieveMultimediaMessage |
// KCapsSubmitMultimediaMessage | KCapsDisplayMultimediaMesage)
profileV6.iSatProfileByte22 = 0xFF;
// Set profileV6.iSatProfileByte23 to:
//(KCapsSetFrames | KCapsGetFramesStatus |
// KCapsMmsNotificationDownload | KCapsProvideLocalInfoMEID |
// KCapsProvideLocalInfoNmrUTRAN | KCapsUssdDataDownload)
profileV6.iSatProfileByte23 = 0xE7;
// Set profileV6.iSatProfileByte24 to:
//(KCapsMaxNumFramesBit1 | KCapsMaxNumFramesBit2 |
// KCapsMaxNumFramesBit3 | KCapsMaxNumFramesBit4)
profileV6.iSatProfileByte24 = 0x0F;
// Set profileV6.iSatProfileByte25 to:
// (KCapsBrowsingStatusEvent | KCapsMmsTransferStatusEvent |
// KCapsFrameParametersChangeEvent)
profileV6.iSatProfileByte25 = 0x07;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iGetMeSideSatProfile++;
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetMeSideSatProfileCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfileCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::ClientSatProfileIndication(const TTsyReqHandle aTsyReqHandle, TDes8* aClientSatProfile)
{
// First call by test code is with version 2 parameter
// Second call is with version 5 parameter
if (iClientSatProfileIndication<2)
{
LOGTEXT(_L8("CSatDSatTsy::ClientSatProfileIndication called"));
RSat::TSatProfileV1Pckg* aClientSatProfilePckg = (RSat::TSatProfileV1Pckg*)aClientSatProfile;
RSat::TSatProfileV1& satProfileV1 = (*aClientSatProfilePckg)();
// Check version 1 parameters
if ((satProfileV1.iSatProfileByte1!=0x01)
||(satProfileV1.iSatProfileByte2!=0x02)
||(satProfileV1.iSatProfileByte3!=0x03)
||(satProfileV1.iSatProfileByte4!=0x04)
||(satProfileV1.iSatProfileByte5!=0x05)
||(satProfileV1.iSatProfileByte6!=0x06)
||(satProfileV1.iSatProfileByte7!=0x07)
||(satProfileV1.iSatProfileByte8!=0x08)
||(satProfileV1.iSatProfileByte9!=0x09))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
// Check version 2 parameters
if( (satProfileV1.ExtensionId()==RSat::KSatV2) ||
(satProfileV1.ExtensionId()==RSat::KSatV5) ||
(satProfileV1.ExtensionId()==RSat::KSatV6))
{
RSat::TSatProfileV2Pckg* aV2ClientSatProfilePckg = (RSat::TSatProfileV2Pckg*)aClientSatProfile;
RSat::TSatProfileV2& satProfileV2 = (*aV2ClientSatProfilePckg)();
if ((satProfileV2.iSatProfileByte10!=0x0A)
||(satProfileV2.iSatProfileByte11!=0x0B)
||(satProfileV2.iSatProfileByte12!=0x0C)
||(satProfileV2.iSatProfileByte13!=0x0D)
||(satProfileV2.iSatProfileByte14!=0x0E)
||(satProfileV2.iSatProfileByte15!=0x0F)
||(satProfileV2.iSatProfileByte16!=0x10)
||(satProfileV2.iSatProfileByte17!=0x20)
||(satProfileV2.iSatProfileByte18!=0x30)
||(satProfileV2.iNumOfChannels!=DSATTSY_NUMBER_OF_CHANNELS)
||(satProfileV2.iScreenHeight!=DSATTSY_SCREEN_HEIGHT)
||(satProfileV2.iScreenWidth!=DSATTSY_SCREEN_WIDTH)
||(satProfileV2.iTiaEiaProtoVersion!=DSATTSY_PROTO_VERSION)
||(satProfileV2.iWidthReduction!=DSATTSY_WIDTH_REDUCTION))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
}
// Check version 5 parameters
if ((satProfileV1.ExtensionId() == RSat::KSatV5) ||
(satProfileV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSatProfileV5Pckg* clientSatProfilePckgV5 = (RSat::TSatProfileV5Pckg*) aClientSatProfile;
RSat::TSatProfileV5& satProfileV5 = (*clientSatProfilePckgV5)();
if ((satProfileV5.iSatProfileByte28 != 0x3F) ||
(satProfileV5.iSatProfileByte29 != 0x7F))
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
}
// Check version 6 parameters
if (satProfileV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSatProfileV6Pckg* clientSatProfilePckgV6 = (RSat::TSatProfileV6Pckg*) aClientSatProfile;
RSat::TSatProfileV6& satProfileV6 = (*clientSatProfilePckgV6)();
if ((satProfileV6.iSatProfileByte21 != 0x0F) ||
(satProfileV6.iSatProfileByte22 != 0xFF) ||
(satProfileV6.iSatProfileByte23 != 0xE7) ||
(satProfileV6.iSatProfileByte24 != 0x0F) ||
(satProfileV6.iSatProfileByte25 != 0x07))
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iClientSatProfileIndication++;
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::MenuSelection(const TTsyReqHandle aTsyReqHandle, TDes8* aSelection)
{
LOGTEXT(_L8("CSatDSatTsy::MenuSelection called"));
RSat::TMenuSelectionV1Pckg* aSelectionPckg = (RSat::TMenuSelectionV1Pckg*)aSelection;
RSat::TMenuSelectionV1& menuSelectionV1 = (*aSelectionPckg)();
if ((menuSelectionV1.iItemId!=DSATTSY_ITEM_ID)
||(menuSelectionV1.iHelp!=DSATTSY_HELP_REQUESTED))
ReqCompleted(aTsyReqHandle,KErrCorrupt);
else
if(!iMenuSelection++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::MenuSelectionCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::MenuSelectionCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::NotifyCallControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aCallControlDetails)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlRequest called"));
if(!iNotifyCallControlRequest++)
{
RSat::TAlphaId nullBuf;
nullBuf.iAlphaId=DSATTSY_NULL_BUF;
nullBuf.iStatus=DSATTSY_ALPHAID_STATUS;
if(iNotifyCallControlRequestTestNumber==0)
{
RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
RSat::TCallSetUpParams aParams;
aParams.iCcp1 =DSATTSY_CCP1;
aParams.iSubAddress =DSATTSY_SUBADDRESS;
aParams.iCcp2 =DSATTSY_CCP2;
aParams.iAddress.iTypeOfNumber =DSATTSY_TON;
aParams.iAddress.iNumberPlan =DSATTSY_NPI;
aParams.iAddress.iTelNumber =DSATTSY_TEL_NUMBER;
cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
cmdV1.SetCallSetUpDetails(aParams);
cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
iNotifyCallControlRequestTestNumber++;
if (cmdV1.ExtensionId() == RSat::KSatV2)
{
RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
RSat::TCallControlV2& callControlV2 = (*aV2PCmdPckg)();
callControlV2.SetCallName(DSATTSY_CALL_NAME);
callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
else if (iNotifyCallControlRequestTestNumber==1)
{
RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
RSat::TSsString ssString;
ssString.iTypeOfNumber = DSATTSY_TON;
ssString.iNumberPlan = DSATTSY_NPI;
ssString.iSsString = DSATTSY_SS_STRING;
cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
cmdV1.SetSendSsDetails(ssString);
iNotifyCallControlRequestTestNumber++;
if (cmdV1.ExtensionId() == RSat::KSatV2)
{
RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
RSat::TCallControlV2& callControlV2 = (*aV2PCmdPckg)();
callControlV2.SetCallName(DSATTSY_CALL_NAME);
callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
else if (iNotifyCallControlRequestTestNumber==2)
{
RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
RSat::TUssdString ussdString;
ussdString.iDcs=DSATTSY_DCS;
ussdString.iUssdString=DSATTSY_USSD_STRING;
cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
cmdV1.SetSendUssdDetails(ussdString);
iNotifyCallControlRequestTestNumber++;
if (cmdV1.ExtensionId() == RSat::KSatV2)
{
RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
RSat::TCallControlV2& callControlV2 = (*aV2PCmdPckg)();
callControlV2.SetCallName(DSATTSY_CALL_NAME);
callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
else if (iNotifyCallControlRequestTestNumber==3)
{
RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
RSat::TCallControlV5& cmd = (*cmdPckg)();
cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_FALLBACK);
TPdpParameters pdpParams(DSATTSY_PDP_PARAMETERS);
cmd.SetPdpParameters(pdpParams);
iNotifyCallControlRequestTestNumber++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else if (iNotifyCallControlRequestTestNumber==4)
{
RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
RSat::TCallControlV5& cmd = (*cmdPckg)();
cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
TPdpParameters pdpParams(DSATTSY_PDP_PARAMETERS2);
cmd.SetPdpParameters(pdpParams);
cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
iNotifyCallControlRequestTestNumber++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else if (iNotifyCallControlRequestTestNumber==5)
{
RSat::TCallControlV6Pckg* cmdPckg = (RSat::TCallControlV6Pckg*)aCallControlDetails;
RSat::TCallControlV6& cmd = (*cmdPckg)();
cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
TPdpParameters pdpParams(DSATTSY_PDP_PARAMETERS2);
cmd.SetPdpParameters(pdpParams);
cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
cmd.SetCallParamOrigin(DSATTSY_CC_CALL_PARAM_ORIGIN);
iNotifyCallControlRequestTestNumber++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyCallControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyCallControlRequest=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyMoSmControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aMoSmDetails)
{
if(!iNotifyMoSmControlRequest++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequest called"));
RSat::TMoSmControlV1Pckg* cmdPckg = (RSat::TMoSmControlV1Pckg*)aMoSmDetails;
RSat::TMoSmControlV1& cmdV1 = (*cmdPckg)();
cmdV1.iRpAddress.iTypeOfNumber =DSATTSY_TON;
cmdV1.iRpAddress.iNumberPlan =DSATTSY_NPI;
cmdV1.iRpAddress.iTelNumber =DSATTSY_TEL_NUMBER;
cmdV1.iTpAddress.iTypeOfNumber =DSATTSY_TON;
cmdV1.iTpAddress.iNumberPlan =DSATTSY_NPI;
cmdV1.iTpAddress.iTelNumber =DSATTSY_TEL_NUMBER;
cmdV1.iResult =DSATTSY_CONTROL_RESULT;
cmdV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
cmdV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyMoSmControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequestCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::EventDownload(const TTsyReqHandle aTsyReqHandle, RSat::TEventList* aSingleEvent, TDes8* aEventInfo)
{
LOGTEXT(_L8("CSatDSatTsy::Event Download called"));
RSat::TEventDownloadBaseV2Pckg* eventBaseV2Pckg = (RSat::TEventDownloadBaseV2Pckg*)aEventInfo;
RSat::TEventDownloadBaseV2& eventBaseV2 = (*eventBaseV2Pckg)();
if (!iEventDownload++)
{
switch( *aSingleEvent )
{
case RSat::KUserActivity: // Allow KuserActivity to fall through to KidleScreenAvailable
case RSat::KIdleScreenAvailable:
// Don't expect any data for these events
if (eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
ReqCompleted(aTsyReqHandle, KErrNone);
break;
case RSat::KCardReaderStatus:
// Expect TCardReaderStatusEventV2
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TCardReaderStatusEventV2Pckg* cardReaderEventV2Pckg = (RSat::TCardReaderStatusEventV2Pckg *)aEventInfo;
RSat::TCardReaderStatusEventV2& cardReaderEventV2 = (*cardReaderEventV2Pckg)();
if (cardReaderEventV2.iCardReaderStatus != DSATTSY_EVENT_CARD_READER_STATUS)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KLanguageSelection:
// Expect TLanguageSelectionEventV2
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TLanguageSelectionEventV2Pckg* languageV2Pckg = (RSat::TLanguageSelectionEventV2Pckg *)aEventInfo;
RSat::TLanguageSelectionEventV2& languageV2 = (*languageV2Pckg)();
if (languageV2.iLanguage != DSATTSY_EVENT_LANGUAGE_SELECTION)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KBrowserTermination:
// Expect TBrowserTerminationEventV2
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TBrowserTerminationEventV2Pckg* terminationV2Pckg = (RSat::TBrowserTerminationEventV2Pckg *)aEventInfo;
RSat::TBrowserTerminationEventV2& terminationV2 = (*terminationV2Pckg)();
if (terminationV2.iCause != DSATTSY_EVENT_BROWSER_TERMINATION_CAUSE)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KDataAvailable:
// Expect TDataAvailableEventV2
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TDataAvailableEventV2Pckg* dataV2Pckg = (RSat::TDataAvailableEventV2Pckg *)aEventInfo;
RSat::TDataAvailableEventV2& dataV2 = (*dataV2Pckg)();
if ((dataV2.iStatus != DSATTSY_EVENT_DATA_AVAILABLE_STATUS)
|| (dataV2.iLength != DSATTSY_EVENT_DATA_AVAILABLE_LENGTH))
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KChannelStatus:
// Expect TChannelStatusEventV2
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TChannelStatusEventV2Pckg* channelV2Pckg = (RSat::TChannelStatusEventV2Pckg *)aEventInfo;
RSat::TChannelStatusEventV2& channelV2 = (*channelV2Pckg)();
if (channelV2.iStatus != DSATTSY_EVENT_CHANNEL_STATUS)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KDisplayParamsChanges:
// Expect TDisplayParamsEventV2
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TDisplayParamsEventV2Pckg* displayV2Pckg = (RSat::TDisplayParamsEventV2Pckg *)aEventInfo;
RSat::TDisplayParamsEventV2& displayV2 = (*displayV2Pckg)();
if ((displayV2.iSatProfileByte14 != DSATTSY_EVENT_DISPLAY_PROF14)
|| (displayV2.iScreenHeight != DSATTSY_SCREEN_HEIGHT)
|| (displayV2.iSatProfileByte15 != DSATTSY_EVENT_DISPLAY_PROF15)
|| (displayV2.iScreenWidth != DSATTSY_SCREEN_WIDTH)
|| (displayV2.iSatProfileByte16 != DSATTSY_EVENT_DISPLAY_PROF16)
|| (displayV2.iWidthReduction != DSATTSY_WIDTH_REDUCTION))
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KLocalConnection:
// Expect TLocalConnectionEventV2
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TLocalConnectionEventV2Pckg* localV2Pckg = (RSat::TLocalConnectionEventV2Pckg *)aEventInfo;
RSat::TLocalConnectionEventV2& localV2 = (*localV2Pckg)();
if ((localV2.iRecord.iBearerId != DSATTSY_EVENT_LOCAL_BEARER_ID)
|| (localV2.iRecord.iServiceId != DSATTSY_EVENT_LOCAL_SERVICE_ID)
|| (localV2.iRecord.iRecord != DSATTSY_EVENT_LOCAL_SERVICE_RECORD)
|| (localV2.iAddress.iCoding != DSATTSY_EVENT_LOCAL_ADDR_CODING)
|| (localV2.iAddress.iAddress != DSATTSY_EVENT_LOCAL_ADDRESS))
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KNetworkSearchModeChange:
// Expect TNetworkSearchModeChangeV6
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TNetworkSearchModeChangeEventV6Pckg* networkSearchV6Pckg = (RSat::TNetworkSearchModeChangeEventV6Pckg *)aEventInfo;
RSat::TNetworkSearchModeChangeEventV6& networkSearchV6 = (*networkSearchV6Pckg)();
if (networkSearchV6.iNetworkSearchMode != DSATTSY_NETWORK_SEARCH_MODE1)
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KBrowsingStatusChange:
// Expect TBrowsingStatusEventV6
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TBrowsingStatusEventV6Pckg* browsingStatusEventV6Pckg = (RSat::TBrowsingStatusEventV6Pckg *)aEventInfo;
RSat::TBrowsingStatusEventV6& browsingStatusEventV6 = (*browsingStatusEventV6Pckg)();
if (browsingStatusEventV6.iBrowserStatus != DSATTSY_BROWSING_STATUS1)
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
case RSat::KFramesInformationChange:
// Expect TFramesInformationChangeV6
if (!eventBaseV2.iDataAvailable)
ReqCompleted(aTsyReqHandle, KErrCorrupt);
else
{
RSat::TFramesInformationChangedEventV6Pckg* framesInfoChangedEventV6Pckg = (RSat::TFramesInformationChangedEventV6Pckg *)aEventInfo;
RSat::TFramesInformationChangedEventV6& framesInfoChangedEventV6 = (*framesInfoChangedEventV6Pckg)();
if ((framesInfoChangedEventV6.iFramesInformation.iFrameId != DSATTSY_FRAMES_INFORMATION_FRAMEID )
|| (framesInfoChangedEventV6.iFramesInformation.iFrameList != DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
else
ReqCompleted(aTsyReqHandle, KErrNone);
}
break;
default:
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::EventDownloadCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::EventDownloadCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iEventDownload = 0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyDisplayTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyDisplayTextPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmd called"));
RSat::TDisplayTextV1Pckg* aPCmdPckg = (RSat::TDisplayTextV1Pckg*)aPCmd;
RSat::TDisplayTextV1& displayTextV1 = (*aPCmdPckg)();
displayTextV1.SetPCmdNumber(DSATTSY_DISPLAY_TEXT_NUMBER);
displayTextV1.iPriority =DSATTSY_TEXT_PRIORITY;
displayTextV1.iClearScreenTrigger =DSATTSY_CLEAR_SCREEN_TRIGGER;
displayTextV1.iText =DSATTSY_TEXT_TO_DISPLAY;
displayTextV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
displayTextV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
displayTextV1.iImmediateRsp =DSATTSY_IMMEDIATE_RSP;
if ((displayTextV1.ExtensionId() == RSat::KSatV2) ||
(displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
{
RSat::TDisplayTextV2Pckg* aV2PCmdPckg = (RSat::TDisplayTextV2Pckg*)aPCmd;
RSat::TDisplayTextV2& displayTextV2 = (*aV2PCmdPckg)();
displayTextV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
displayTextV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
}
if ((displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
{
RSat::TDisplayTextV5Pckg* aV5PCmdPckg = (RSat::TDisplayTextV5Pckg*)aPCmd;
RSat::TDisplayTextV5& displayTextV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
displayTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
displayTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (displayTextV1.ExtensionId() == RSat::KSatV6)
{
RSat::TDisplayTextV6Pckg* displayTextV6PCmdPckg = (RSat::TDisplayTextV6Pckg*)aPCmd;
RSat::TDisplayTextV6& displayTextV6 = (*displayTextV6PCmdPckg)();
displayTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyDisplayTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyDisplayTextPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetInkeyPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyGetInkeyPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmd called"));
RSat::TGetInkeyV1Pckg* aPCmdPckg = (RSat::TGetInkeyV1Pckg*)aPCmd;
RSat::TGetInkeyV1& getInkeyV1 = (*aPCmdPckg)();
getInkeyV1.SetPCmdNumber(DSATTSY_GET_INKEY_NUMBER);
getInkeyV1.iRspFormat =DSATTSY_USER_RSP_FORMAT;
getInkeyV1.iText =DSATTSY_TEXT_TO_DISPLAY;
getInkeyV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
getInkeyV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
getInkeyV1.iHelp =DSATTSY_HELP;
if ((getInkeyV1.ExtensionId() == RSat::KSatV2) ||
(getInkeyV1.ExtensionId() == RSat::KSatV5) ||
(getInkeyV1.ExtensionId() == RSat::KSatV6))
{
RSat::TGetInkeyV2Pckg* aV2PCmdPckg = (RSat::TGetInkeyV2Pckg*)aPCmd;
RSat::TGetInkeyV2& getInkeyV2 = (*aV2PCmdPckg)();
getInkeyV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
getInkeyV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
getInkeyV2.iMode=DSATTSY_GET_INKEY_RSP_MODE;
}
if ((getInkeyV1.ExtensionId() == RSat::KSatV5) ||
(getInkeyV1.ExtensionId() == RSat::KSatV6))
{
RSat::TGetInkeyV5Pckg* aV5PCmdPckg = (RSat::TGetInkeyV5Pckg*)aPCmd;
RSat::TGetInkeyV5& getInkeyV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
getInkeyV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
getInkeyV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (getInkeyV1.ExtensionId() == RSat::KSatV6)
{
RSat::TGetInkeyV6Pckg* getInkeyV6PCmdPckg = (RSat::TGetInkeyV6Pckg*)aPCmd;
RSat::TGetInkeyV6& getInkeyV6 = (*getInkeyV6PCmdPckg)();
getInkeyV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetInkeyPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyGetInkeyPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetInputPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyGetInputPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmd called"));
RSat::TGetInputV1Pckg* aPCmdPckg = (RSat::TGetInputV1Pckg*)aPCmd;
RSat::TGetInputV1& getInputV1 = (*aPCmdPckg)();
getInputV1.SetPCmdNumber(DSATTSY_GET_INPUT_NUMBER);
getInputV1.iInputDisplayOption =DSATTSY_INPUT_DISPLAY_OPTION;
getInputV1.iRspFormat =DSATTSY_GET_INPUT_RSP_FORMAT;
getInputV1.iText =DSATTSY_TEXT_TO_DISPLAY;
getInputV1.iRspLength.iMinRspLength =DSATTSY_MIN_RSP_LENGTH;
getInputV1.iRspLength.iMaxRspLength =DSATTSY_MAX_RSP_LENGTH;
getInputV1.iDefaultText =DSATTSY_DEFAULT_TEXT;
getInputV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
getInputV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
getInputV1.iHelp =DSATTSY_HELP;
if ((getInputV1.ExtensionId() == RSat::KSatV5) ||
(getInputV1.ExtensionId() == RSat::KSatV6))
{
RSat::TGetInputV5Pckg* aV5PCmdPckg = (RSat::TGetInputV5Pckg*)aPCmd;
RSat::TGetInputV5& getInputV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
getInputV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
getInputV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (getInputV1.ExtensionId() == RSat::KSatV6)
{
RSat::TGetInputV6Pckg* getInputV6PCmdPckg = (RSat::TGetInputV6Pckg*)aPCmd;
RSat::TGetInputV6& getInputV6 = (*getInputV6PCmdPckg)();
getInputV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetInputPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyGetInputPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPlayTonePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyPlayTonePCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmd called"));
RSat::TPlayToneV1Pckg* aPCmdPckg = (RSat::TPlayToneV1Pckg*)aPCmd;
RSat::TPlayToneV1& playToneV1 = (*aPCmdPckg)();
playToneV1.SetPCmdNumber(DSATTSY_PLAY_TONE_NUMBER);
playToneV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
playToneV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
playToneV1.iTone =DSATTSY_TONE;
playToneV1.iDuration.iTimeUnit =DSATTSY_TIME_UNIT;
playToneV1.iDuration.iNumOfUnits =DSATTSY_NUM_OF_UNITS;
if ((playToneV1.ExtensionId() == RSat::KSatV2) ||
(playToneV1.ExtensionId() == RSat::KSatV5) || (playToneV1.ExtensionId() == RSat::KSatV6))
{
RSat::TPlayToneV2Pckg* aV2PCmdPckg = (RSat::TPlayToneV2Pckg*)aPCmd;
RSat::TPlayToneV2& playToneV2 = (*aV2PCmdPckg)();
playToneV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
playToneV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
}
if ((playToneV1.ExtensionId() == RSat::KSatV5) ||
(playToneV1.ExtensionId() == RSat::KSatV6))
{
RSat::TPlayToneV5Pckg* aV5PCmdPckg = (RSat::TPlayToneV5Pckg*)aPCmd;
RSat::TPlayToneV5& playToneV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
playToneV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
playToneV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (playToneV1.ExtensionId() == RSat::KSatV6)
{
RSat::TPlayToneV6Pckg* playToneV6PCmdPckg = (RSat::TPlayToneV6Pckg*)aPCmd;
RSat::TPlayToneV6& playToneV6 = (*playToneV6PCmdPckg)();
playToneV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
playToneV6.iTone=DSATTSY_TONEV6;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPlayTonePCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyPlayTonePCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpMenuPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
RSat::TItem item1, item2, item3, item4;
TUint action1=0x01, action2=0x02, action3=0x03, action4=0x04;
TUint iconId1=0x01, iconId2=0x02, iconId3=0x03, iconId4=0x04;
RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3, textAttribute4;
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmd called"));
RSat::TSetUpMenuV1Pckg* aPCmdPckg = (RSat::TSetUpMenuV1Pckg*)aPCmd;
RSat::TSetUpMenuV1& setUpMenuV1 = (*aPCmdPckg)();
item1.iItemId=0x01;
item1.iItemString=DSATTSY_ITEM1;
item2.iItemId=0x02;
item2.iItemString=DSATTSY_ITEM2;
item3.iItemId=0x03;
item3.iItemString=DSATTSY_ITEM3;
item4.iItemId=0x04;
item4.iItemString=DSATTSY_ITEM4;
textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
textAttribute4.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS4;
const TUint8 textAttributeData4[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA4;
textAttribute4.iTextAttributeData.Append(textAttributeData4, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
setUpMenuV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
setUpMenuV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
setUpMenuV1.iHelp =DSATTSY_HELP;
setUpMenuV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
setUpMenuV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
setUpMenuV1.iIconListQualifier =DSATTSY_ICON_QUALIFIER2;
setUpMenuV1.SetPCmdNumber(DSATTSY_SET_UP_MENU_NUMBER);
if( (setUpMenuV1.ExtensionId() == RSat::KSatV2) ||
(setUpMenuV1.ExtensionId() == RSat::KSatV5))
{
RSat::TSetUpMenuV2Pckg* aV2PCmdPckg = (RSat::TSetUpMenuV2Pckg*)aPCmd;
RSat::TSetUpMenuV2& setUpMenuV2 = (*aV2PCmdPckg)();
setUpMenuV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
}
if(!iNotifySetUpMenuPCmd++)
{
switch (iNotifySetUpMenuTestNumber)
{
case 0:
setUpMenuV1.AddItem(item1);
setUpMenuV1.AddItem(item2);
setUpMenuV1.AddItem(item3);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 1:
setUpMenuV1.AddItem(item1, action1);
setUpMenuV1.AddItem(item2, action2);
setUpMenuV1.AddItem(item3, action3);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 2:
setUpMenuV1.AddItemIcon(item1, iconId1);
setUpMenuV1.AddItemIcon(item2, iconId2);
setUpMenuV1.AddItemIcon(item3, iconId3);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 3:
setUpMenuV1.AddItem(item1, action1, iconId1);
setUpMenuV1.AddItem(item2, action2, iconId2);
setUpMenuV1.AddItem(item3, action3, iconId3);
setUpMenuV1.AddItem(item4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 4:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV5.AddItem(item1, textAttribute1);
setUpMenuV5.AddItem(item2, textAttribute2);
setUpMenuV5.AddItem(item3, textAttribute3);
setUpMenuV5.AddItem(item4, textAttribute4);
setUpMenuV5.iTextAttribute.iStatus = textAttribute1.iStatus;
setUpMenuV5.iTextAttribute.iTextAttributeData = textAttribute1.iTextAttributeData;
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 5:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV5.AddItem(item1, textAttribute1, action1);
setUpMenuV5.AddItem(item2, textAttribute2, action2);
setUpMenuV5.AddItem(item3, textAttribute3, action3);
setUpMenuV5.AddItem(item4, textAttribute4, action4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 6:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV5.AddItemIcon(item1, textAttribute1, iconId1);
setUpMenuV5.AddItemIcon(item2, textAttribute2, iconId2);
setUpMenuV5.AddItemIcon(item3, textAttribute3, iconId3);
setUpMenuV5.AddItemIcon(item4, textAttribute4, iconId4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 7:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV5.AddItem(item1, textAttribute1, action1, iconId1);
setUpMenuV5.AddItem(item2, textAttribute2, action2, iconId2);
setUpMenuV5.AddItem(item3, textAttribute3, action3, iconId3);
setUpMenuV5.AddItem(item4, textAttribute4, action4, iconId4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 8:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV5.AddItem(item1);
setUpMenuV5.AddItem(item2);
setUpMenuV5.AddItem(item3);
setUpMenuV5.AddItem(item4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 9:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV5.AddItem(item1, action1);
setUpMenuV5.AddItem(item2, action2);
setUpMenuV5.AddItem(item3, action3);
setUpMenuV5.AddItem(item4, action4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 10:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV1.AddItemIcon(item1, iconId1);
setUpMenuV1.AddItemIcon(item2, iconId2);
setUpMenuV1.AddItemIcon(item3, iconId3);
setUpMenuV1.AddItemIcon(item4, iconId4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 11:
if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
{
RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();
setUpMenuV5.AddItem(item1, action1, iconId1);
setUpMenuV5.AddItem(item2, action2, iconId2);
setUpMenuV5.AddItem(item3, action3, iconId3);
setUpMenuV5.AddItem(item4, action4, iconId4);
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
}
else
{
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
break;
case 12:
iNotifySetUpMenuTestNumber ++;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
default:
break;
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpMenuPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySetUpMenuPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySelectItemPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySelectItemPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmd called"));
RSat::TSelectItemV1Pckg* aPCmdPckg = (RSat::TSelectItemV1Pckg*)aPCmd;
RSat::TSelectItemV1& selectItemV1 = (*aPCmdPckg)();
TUint action1=0x01, action2=0x02, action3=0x03;
RSat::TItem item1, item2, item3;
TUint iconId1=0x01, iconId2=0x02, iconId3=0x03;
item1.iItemId=0x01;
item1.iItemString=DSATTSY_ITEM1;
item2.iItemId=0x02;
item2.iItemString=DSATTSY_ITEM2;
item3.iItemId=0x03;
item3.iItemString=DSATTSY_ITEM3;
selectItemV1.SetPCmdNumber(DSATTSY_SELECT_ITEM_NUMBER);
selectItemV1.iPresentationType =DSATTSY_PRESENTATION_TYPE;
selectItemV1.iHelp =DSATTSY_HELP;
selectItemV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
selectItemV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
selectItemV1.iDefaultItemId =DSATTSY_DEFAULT_ITEM;
selectItemV1.iIconId.iIdentifier=DSATTSY_ICON_ID1;
selectItemV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
selectItemV1.iIconListQualifier =DSATTSY_ICON_QUALIFIER2;
if ((selectItemV1.ExtensionId() == RSat::KSatV1) ||
(selectItemV1.ExtensionId() == RSat::KSatV2))
{
selectItemV1.AddItem(item1, action1, iconId1);
selectItemV1.AddItem(item2, action2, iconId2);
selectItemV1.AddItem(item3, action3, iconId3);
}
if ((selectItemV1.ExtensionId() == RSat::KSatV2) ||
(selectItemV1.ExtensionId() == RSat::KSatV5) || (selectItemV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSelectItemV2Pckg* aV2PCmdPckg = (RSat::TSelectItemV2Pckg*)aPCmd;
RSat::TSelectItemV2& selectItemV2 = (*aV2PCmdPckg)();
selectItemV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
}
if ((selectItemV1.ExtensionId() == RSat::KSatV5) ||
(selectItemV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSelectItemV5Pckg* aV5PCmdPckg = (RSat::TSelectItemV5Pckg*)aPCmd;
RSat::TSelectItemV5& selectItemV5 = (*aV5PCmdPckg)();
RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3;
textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
selectItemV5.AddItem(item1, textAttribute1, action1, iconId1);
selectItemV5.AddItem(item2, textAttribute2, action2, iconId2);
selectItemV5.AddItem(item3, textAttribute3, action3, iconId3);
selectItemV5.iTextAttribute = textAttribute1;
}
if (selectItemV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSelectItemV6Pckg* selectItemV6PCmdPckg = (RSat::TSelectItemV6Pckg*)aPCmd;
RSat::TSelectItemV6& selectItemV6 = (*selectItemV6PCmdPckg)();
selectItemV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySelectItemPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySelectItemPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendSmPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySendSmPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmd called"));
RSat::TSendSmV1Pckg* aPCmdPckg = (RSat::TSendSmV1Pckg*)aPCmd;
RSat::TSendSmV1& sendSmV1 = (*aPCmdPckg)();
sendSmV1.SetPCmdNumber(DSATTSY_SEND_SM_NUMBER);
sendSmV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
sendSmV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
sendSmV1.iAddress.iTypeOfNumber =DSATTSY_TON;
sendSmV1.iAddress.iNumberPlan =DSATTSY_NPI;
sendSmV1.iAddress.iTelNumber =DSATTSY_TEL_NUMBER;
sendSmV1.iSmsTpdu =DSATTSY_SMS_TPDU;
sendSmV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
sendSmV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
if ((sendSmV1.ExtensionId() == RSat::KSatV5) ||
(sendSmV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSendSmV5Pckg* aV5PCmdPckg = (RSat::TSendSmV5Pckg*)aPCmd;
RSat::TSendSmV5& sendSmV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
sendSmV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
sendSmV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (sendSmV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSendSmV6Pckg* sendSmV6PCmdPckg = (RSat::TSendSmV6Pckg*)aPCmd;
RSat::TSendSmV6& sendSmV6 = (*sendSmV6PCmdPckg)();
sendSmV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendSmPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySendSmPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::SendMessageNoLogging(const TTsyReqHandle aTsyReqHandle, const TDesC8* aMsg, TUint16* aMsgRef)
{
LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLogging called"));
RSat::TSatSmsV1Pckg* aMsgPckg = (RSat::TSatSmsV1Pckg*)aMsg;
RSat::TSatSmsV1& msgV1 = (*aMsgPckg)();
*aMsgRef=DSATTSY_SMS_REF;
if ((msgV1.iServiceCenter.iNumberPlan!=DSATTSY_NPI)
||(msgV1.iServiceCenter.iTypeOfNumber!=DSATTSY_TON)
||(msgV1.iServiceCenter.iTelNumber!=DSATTSY_TEL_NUMBER)
||(msgV1.iBuf!=DSATTSY_SMS_TPDU))
ReqCompleted(aTsyReqHandle,KErrCorrupt);
else
if(!iSendMessageNoLogging++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::SendMessageNoLoggingCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLoggingCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::NotifySendSsPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySendSsPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmd called"));
RSat::TSendSsV1Pckg* aPCmdPckg = (RSat::TSendSsV1Pckg*)aPCmd;
RSat::TSendSsV1& sendSsV1 = (*aPCmdPckg)();
sendSsV1.SetPCmdNumber(DSATTSY_SEND_SS_NUMBER);
sendSsV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
sendSsV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
sendSsV1.iSsString.iTypeOfNumber =DSATTSY_TON;
sendSsV1.iSsString.iNumberPlan =DSATTSY_NPI;
sendSsV1.iSsString.iSsString =DSATTSY_SS_STRING;
sendSsV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
sendSsV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
if (sendSsV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSendSsV6Pckg* sendSsV6PCmdPckg = (RSat::TSendSsV6Pckg*)aPCmd;
RSat::TSendSsV6& sendSsV6 = (*sendSsV6PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
sendSsV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
sendSsV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendSsPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySendSsPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendUssdPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySendUssdPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmd called"));
RSat::TSendUssdV1Pckg* aPCmdPckg = (RSat::TSendUssdV1Pckg*)aPCmd;
RSat::TSendUssdV1& sendUssdV1 = (*aPCmdPckg)();
sendUssdV1.SetPCmdNumber(DSATTSY_SEND_USSD_NUMBER);
sendUssdV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
sendUssdV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
sendUssdV1.iUssdString.iDcs =DSATTSY_DCS;
sendUssdV1.iUssdString.iUssdString =DSATTSY_USSD_STRING;
sendUssdV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
sendUssdV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
if (sendUssdV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSendUssdV6Pckg* sendUssdV6PCmdPckg = (RSat::TSendUssdV6Pckg*)aPCmd;
RSat::TSendUssdV6& sendUssdV6 = (*sendUssdV6PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
sendUssdV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
sendUssdV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendUssdPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySendUssdPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpCallPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySetUpCallPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmd called"));
RSat::TSetUpCallV1Pckg* aPCmdPckg = (RSat::TSetUpCallV1Pckg*)aPCmd;
RSat::TSetUpCallV1& setUpCallV1 = (*aPCmdPckg)();
setUpCallV1.SetPCmdNumber(DSATTSY_SET_UP_CALL_NUMBER);
setUpCallV1.iType =DSATTSY_SET_UP_CALL_TYPE;
setUpCallV1.iAlphaIdConfirmationPhase.iAlphaId =DSATTSY_ALPHA_ID1;
setUpCallV1.iAlphaIdConfirmationPhase.iStatus =DSATTSY_ALPHA_ID1_STATUS;
setUpCallV1.iIconIdConfirmationPhase.iIdentifier=DSATTSY_ICON_ID1;
setUpCallV1.iIconIdConfirmationPhase.iQualifier =DSATTSY_ICON_QUALIFIER1;
setUpCallV1.iAddress.iTypeOfNumber =DSATTSY_TON;
setUpCallV1.iAddress.iNumberPlan =DSATTSY_NPI;
setUpCallV1.iAddress.iTelNumber =DSATTSY_TEL_NUMBER;
setUpCallV1.iCapabilityConfigParams =DSATTSY_CCP1;
setUpCallV1.iSubAddress =DSATTSY_SUBADDRESS;
setUpCallV1.iDuration.iTimeUnit =DSATTSY_TIME_UNIT;
setUpCallV1.iDuration.iNumOfUnits =DSATTSY_NUM_OF_UNITS;
setUpCallV1.iAlphaIdCallSetUpPhase.iAlphaId =DSATTSY_ALPHA_ID2;
setUpCallV1.iAlphaIdCallSetUpPhase.iStatus =DSATTSY_ALPHA_ID2_STATUS;
setUpCallV1.iIconIdCallSetUpPhase.iIdentifier =DSATTSY_ICON_ID2;
setUpCallV1.iIconIdCallSetUpPhase.iQualifier =DSATTSY_ICON_QUALIFIER2;
if ((setUpCallV1.ExtensionId() == RSat::KSatV5) ||
(setUpCallV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSetUpCallV5Pckg* aV5PCmdPckg = (RSat::TSetUpCallV5Pckg*)aPCmd;
RSat::TSetUpCallV5& setUpCallV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
setUpCallV5.iTextAttributeConfirmationPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
setUpCallV5.iTextAttributeConfirmationPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
setUpCallV5.iTextAttributeCallSetUpPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
setUpCallV5.iTextAttributeCallSetUpPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (setUpCallV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSetUpCallV6Pckg* setUpCallV6PCmdPckg = (RSat::TSetUpCallV6Pckg*)aPCmd;
RSat::TSetUpCallV6& setUpCallV6 = (*setUpCallV6PCmdPckg)();
setUpCallV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpCallPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySetUpCallPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRefreshPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyRefreshPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmd called"));
RSat::TRefreshV1Pckg* aPCmdPckg = (RSat::TRefreshV1Pckg*)aPCmd;
RSat::TRefreshV1& refreshV1 = (*aPCmdPckg)();
refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
refreshV1.iType = DSATTSY_REFRESH_TYPE;
refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
if (refreshV1.ExtensionId()==RSat::KSatV2)
{
RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
refreshV2.iAid=DSATTSY_AID;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRefreshPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyRefreshPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpEventListPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySetUpEventListPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmd called"));
RSat::TSetUpEventListV1Pckg* aPCmdPckg = (RSat::TSetUpEventListV1Pckg*)aPCmd;
RSat::TSetUpEventListV1& setUpEventListV1 = (*aPCmdPckg)();
setUpEventListV1.SetPCmdNumber(DSATTSY_SET_UP_EVENT_LIST_NUMBER);
setUpEventListV1.iType =DSATTSY_SET_UP_EVENT_LIST_TYPE;
setUpEventListV1.iEvents =DSATTSY_EVENTS;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpEventListPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySetUpEventListPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySetUpIdleModeTextPCmd++)
{
// First Request: set idle text mode to max length Unicode string
if (iSetUpIdleModeTextCommandCount++ == 0)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
setUpIdleModeTextV1.iType =DSATTSY_IDLE_MODE_TXT_TYPE;
setUpIdleModeTextV1.iText =DSATTSY_IDLE_MODE_TEXT;
setUpIdleModeTextV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
setUpIdleModeTextV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
setUpIdleModeTextV1.iCodingScheme =DSATTSY_TEXT_ENCODING_SCHEME;
if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5)||
(setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
else // second request: set idle text mode to max length 8-bit string
{
// reset command count
iSetUpIdleModeTextCommandCount = 0;
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
setUpIdleModeTextV1.iType =DSATTSY_IDLE_MODE_TXT_TYPE;
CnvUtfConverter::ConvertToUnicodeFromUtf8(setUpIdleModeTextV1.iText,DSATTSY_IDLE_MODE_TEXT_8BIT);
setUpIdleModeTextV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
setUpIdleModeTextV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
setUpIdleModeTextV1.iCodingScheme =DSATTSY_TEXT_ENCODING_SCHEME_8;
if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5) ||
(setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySetUpIdleModeTextPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendDtmfPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySendDtmfPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmd called"));
RSat::TSendDtmfV1Pckg* aPCmdPckg = (RSat::TSendDtmfV1Pckg*)aPCmd;
RSat::TSendDtmfV1& sendDtmfV1 = (*aPCmdPckg)();
sendDtmfV1.SetPCmdNumber(DSATTSY_SEND_DTMF_NUMBER);
sendDtmfV1.iAlphaId.iAlphaId =DSATTSY_ALPHA_ID1;
sendDtmfV1.iAlphaId.iStatus =DSATTSY_ALPHA_ID1_STATUS;
sendDtmfV1.iDtmfString =DSATTSY_DTMF_STRING;
sendDtmfV1.iIconId.iIdentifier =DSATTSY_ICON_ID1;
sendDtmfV1.iIconId.iQualifier =DSATTSY_ICON_QUALIFIER1;
if ((sendDtmfV1.ExtensionId() == RSat::KSatV5) ||
(sendDtmfV1.ExtensionId() == RSat::KSatV6))
{
RSat::TSendDtmfV5Pckg* aV5PCmdPckg = (RSat::TSendDtmfV5Pckg*)aPCmd;
RSat::TSendDtmfV5& sendDtmfV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
sendDtmfV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
sendDtmfV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (sendDtmfV1.ExtensionId() == RSat::KSatV6)
{
RSat::TSendDtmfV6Pckg* sendDtmfV6PCmdPckg = (RSat::TSendDtmfV6Pckg*)aPCmd;
RSat::TSendDtmfV6& sendDtmfV6 = (*sendDtmfV6PCmdPckg)();
sendDtmfV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendDtmfPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySendDtmfPCmd=0;
return KErrNone;
}
//
// New Typhoon and Jetstream API
//
TInt CSatDSatTsy::UsatClientReadyIndication(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::UsatClientReadyIndication called"));
ReqCompleted(aTsyReqHandle,KErrNone);
return KErrNone;
}
TInt CSatDSatTsy::NotifyPerformCardApduPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyPerformCardApduPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmd called"));
RSat::TPerformCardApduV2Pckg* aV2PCmdPckg = (RSat::TPerformCardApduV2Pckg*)aPCmd;
RSat::TPerformCardApduV2& performCardApduV2 = (*aV2PCmdPckg)();
performCardApduV2.SetPCmdNumber(DSATTSY_PERFORM_CARD_APDU_NUMBER);
performCardApduV2.iDestination=DSATTSY_CARD_READER_1;
performCardApduV2.iCApdu.iCla=DSATTSY_CLA;
performCardApduV2.iCApdu.iIns=DSATTSY_INS;
performCardApduV2.iCApdu.iLc=DSATTSY_LC;
performCardApduV2.iCApdu.iLe=DSATTSY_LE;
performCardApduV2.iCApdu.iP1=DSATTSY_P1;
performCardApduV2.iCApdu.iP2=DSATTSY_P2;
performCardApduV2.iCApdu.iData=DSATTSY_CAPDU;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPerformCardApduPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyPerformCardApduPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPowerOffCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyPowerOffCardPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmd called"));
RSat::TPowerOffCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOffCardV2Pckg*)aPCmd;
RSat::TPowerOffCardV2& powerOffCardV2 = (*aV2PCmdPckg)();
powerOffCardV2.SetPCmdNumber(DSATTSY_POWER_OFF_CARD_NUMBER);
powerOffCardV2.iDestination=DSATTSY_CARD_READER_1;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPowerOffCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyPowerOffCardPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPowerOnCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyPowerOnCardPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmd called"));
RSat::TPowerOnCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOnCardV2Pckg*)aPCmd;
RSat::TPowerOnCardV2& powerOnCardV2 = (*aV2PCmdPckg)();
powerOnCardV2.SetPCmdNumber(DSATTSY_POWER_ON_CARD_NUMBER);
powerOnCardV2.iDestination=DSATTSY_CARD_READER_1;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPowerOnCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyPowerOnCardPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetReaderStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyGetReaderStatusPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmd called"));
RSat::TGetReaderStatusV2Pckg* aV2PCmdPckg = (RSat::TGetReaderStatusV2Pckg*)aPCmd;
RSat::TGetReaderStatusV2& getReaderStatusV2 = (*aV2PCmdPckg)();
getReaderStatusV2.SetPCmdNumber(DSATTSY_GET_READER_STATUS_NUMBER);
getReaderStatusV2.iDestination=DSATTSY_CARD_READER_1;
getReaderStatusV2.iMode=DSATTSY_GET_READER_STATUS_MODE;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetReaderStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyGetReaderStatusPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRunAtCommandPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyRunAtCommandPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmd called"));
RSat::TRunAtCommandV2Pckg* aV2PCmdPckg = (RSat::TRunAtCommandV2Pckg*)aPCmd;
RSat::TRunAtCommandV2& runAtCmdV2 = (*aV2PCmdPckg)();
runAtCmdV2.SetPCmdNumber(DSATTSY_RUN_AT_COMMAND_NUMBER);
runAtCmdV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
runAtCmdV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
runAtCmdV2.iAtCommand=DSATTSY_AT_COMMAND;
runAtCmdV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
runAtCmdV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
if ((runAtCmdV2.ExtensionId() == RSat::KSatV5) ||
(runAtCmdV2.ExtensionId() == RSat::KSatV6))
{
RSat::TRunAtCommandV5Pckg* aV5PCmdPckg = (RSat::TRunAtCommandV5Pckg*)aPCmd;
RSat::TRunAtCommandV5& runAtCmdV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
runAtCmdV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
runAtCmdV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (runAtCmdV2.ExtensionId() == RSat::KSatV6)
{
RSat::TRunAtCommandV6Pckg* runAtCmdV6PCmdPckg = (RSat::TRunAtCommandV6Pckg*)aPCmd;
RSat::TRunAtCommandV6& runAtCmdV6 = (*runAtCmdV6PCmdPckg)();
runAtCmdV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRunAtCommandPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyRunAtCommandPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyLanguageNotificationPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyLanguageNotificationPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmd called"));
RSat::TLanguageNotificationV2Pckg* aV2PCmdPckg = (RSat::TLanguageNotificationV2Pckg*)aPCmd;
RSat::TLanguageNotificationV2& languageNotificationV2 = (*aV2PCmdPckg)();
languageNotificationV2.SetPCmdNumber(DSATTSY_LANGUAGE_NOTIFICATION_NUMBER);
languageNotificationV2.iNotificationType=DSATTSY_SPECIFIC_LANGUAGE;
languageNotificationV2.iLanguage=DSATTSY_FRENCH;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyLanguageNotificationPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyLanguageNotificationPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::GetProvisioningRefFile(const TTsyReqHandle aTsyReqHandle, const RSat::TProvisioningFileRef* aFileRef, TDes8* aFile)
/**
* GetProviosioningRefFile is called to ask the ICC to return a file name
* that corresponds to a given file reference.
*
* This test code can only return 2 files - it distinguishes between them based on
* the length of the file reference passed. Any 1 byte ref will return file1, any
* 128 byte ref will return file2. Any other length will return "not found".
*/
{
if(!iGetProvisioningRefFile++)
{
LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFile called"));
// We only understand 2 references (at the moment) - use the simple minded approach and select by length
TInt len = aFileRef->Length();
switch (len)
{
case 1:
*aFile = DSATTSY_FILE1;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 128:
*aFile = DSATTSY_FILE2;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
default:
ReqCompleted(aTsyReqHandle,KErrNotFound);
break;
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetProvisioningRefFileCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFileCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iGetProvisioningRefFile = 0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyLaunchBrowserPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyLaunchBrowserPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmd called"));
RSat::TLaunchBrowserV2Pckg* aV2PCmdPckg = (RSat::TLaunchBrowserV2Pckg*)aPCmd;
RSat::TLaunchBrowserV2& launchBrowserV2 = (*aV2PCmdPckg)();
launchBrowserV2.SetPCmdNumber(DSATTSY_LAUNCH_BROWSER_NUMBER);
launchBrowserV2.iBrowserSel = DSATTSY_BROWSER_SELECTION_MODE;
launchBrowserV2.iBrowserId = DSATTSY_BROWSER_ID;
launchBrowserV2.iUrl = DSATTSY_URL;
launchBrowserV2.iBearerList = DSATTSY_BEARER_LIST;
launchBrowserV2.iText = DSATTSY_PROXY_NAME;
launchBrowserV2.iAlphaId.iStatus = DSATTSY_ALPHA_ID1_STATUS;
launchBrowserV2.iAlphaId.iAlphaId = DSATTSY_ALPHA_ID1;
launchBrowserV2.iIconId.iIdentifier = DSATTSY_ICON_ID1;
launchBrowserV2.iIconId.iQualifier = DSATTSY_ICON_QUALIFIER1;
if ((launchBrowserV2.ExtensionId() == RSat::KSatV5) || (launchBrowserV2.ExtensionId() == RSat::KSatV6))
{
RSat::TLaunchBrowserV5Pckg* aV5PCmdPckg = (RSat::TLaunchBrowserV5Pckg*)aPCmd;
RSat::TLaunchBrowserV5& launchBrowserV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
launchBrowserV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
launchBrowserV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (launchBrowserV2.ExtensionId() == RSat::KSatV6)
{
RSat::TLaunchBrowserV6Pckg* launchBrowserV6PCmdPckg = (RSat::TLaunchBrowserV6Pckg*)aPCmd;
RSat::TLaunchBrowserV6& launchBrowserV6 = (*launchBrowserV6PCmdPckg)();
launchBrowserV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
RSat::TProvisioningFileRef file;
switch(iNotifyLaunchBrowserCount++)
{
case 0: // Return 1 file ref of 1 byte length
launchBrowserV2.ResetFileRef();
file = DSATTSY_FILE_REF_DATA_1;
launchBrowserV2.AddFileRef( file );
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 1: // Return 1 file ref of 128 byte length
launchBrowserV2.ResetFileRef();
file = DSATTSY_FILE_REF_DATA_128;
launchBrowserV2.AddFileRef( file );
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 2: // Return 2 files refs of 1 byte length (each)
launchBrowserV2.ResetFileRef();
file = DSATTSY_FILE_REF_DATA_1;
launchBrowserV2.AddFileRef( file );
launchBrowserV2.AddFileRef( file );
ReqCompleted(aTsyReqHandle,KErrNone);
break;
case 3: // Partial failure, try to add 2 file refs of 128 bytes each,
// Second add should fail with KErrOverflow as combined length
// is bigger than buffer
// - actually returns 1 file ref of 128 bytes unless unexpected result from add
{
launchBrowserV2.ResetFileRef();
file = DSATTSY_FILE_REF_DATA_128;
launchBrowserV2.AddFileRef( file );
TInt status = launchBrowserV2.AddFileRef( file ); // Expect to fail on this one
if (status != KErrOverflow)
ReqCompleted(aTsyReqHandle, status);
else
ReqCompleted(aTsyReqHandle,KErrNone);
}
break;
case 4: // Fall through to default case from case 4
default: // Return 2 file refs, 1st=128 bytes long, 2nd=1 byte long
iNotifyLaunchBrowserCount = 0; // Reset selection count - next time through will use case 0
launchBrowserV2.ResetFileRef();
file = DSATTSY_FILE_REF_DATA_128;
launchBrowserV2.AddFileRef( file );
file = DSATTSY_FILE_REF_DATA_1;
launchBrowserV2.AddFileRef( file );
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyLaunchBrowserPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyLaunchBrowserPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
/**
* If this function is called with PCmd type of RSat::EAnyBearer then the code will
* return a type of RSat::ECsBearer. Subsequent calls will return the sequence
* RSat::EGprsBearer, RSat::ELocalLinksBearer, RSat::EPCmdTypeNotSet. The
* sequence then restarts with RSat::ECsBearer.
*/
{
if(!iNotifyOpenChannelPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmd called"));
RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
RSat::TOpenChannelBaseV2& openChannelBaseV2 = (*aV2PCmdPckg)();
openChannelBaseV2.SetPCmdNumber(DSATTSY_OPEN_CHANNEL_NUMBER);
openChannelBaseV2.iLinkEst=DSATTSY_ON_DEMAND_ESTABLISHMENT;
openChannelBaseV2.iReconnectionMode=DSATTSY_AUTO_RECONNECTION;
openChannelBaseV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
openChannelBaseV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
openChannelBaseV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
openChannelBaseV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
openChannelBaseV2.iBearer.iType=DSATTSY_CSD_BEARER_TYPE;
openChannelBaseV2.iBearer.iParams=DSATTSY_BEARER_PARAMS;
openChannelBaseV2.iBufferSize=DSATTSY_BUFFER_SIZE;
openChannelBaseV2.iSimMeInterface.iPrtNumber=DSATTSY_PORT_1;
openChannelBaseV2.iSimMeInterface.iTransportProto=DSATTSY_TCP_PROTO;
openChannelBaseV2.iDestinationAddress.iType=DSATTSY_IPV4_TYPE;
openChannelBaseV2.iDestinationAddress.iAddress=DSATTSY_ADDRESS;
switch (openChannelBaseV2.iPCmdType)
{
case RSat::EPCmdTypeNotSet:
ReqCompleted(aTsyReqHandle,KErrArgument);
break;
case RSat::ECsBearer:
{
RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
if ((openCsChannelV2.ExtensionId() == RSat::KSatV5)
|| (openCsChannelV2.ExtensionId() == RSat::KSatV6))
{
RSat::TOpenCsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenCsChannelV5Pckg*)aPCmd;
RSat::TOpenCsChannelV5& openCsChannelV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
openCsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
openCsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (openCsChannelV2.ExtensionId() == RSat::KSatV6)
{
RSat::TOpenCsChannelV6Pckg* csV6PCmdPckg = (RSat::TOpenCsChannelV6Pckg*)aPCmd;
RSat::TOpenCsChannelV6& openCsChannelV6 = (*csV6PCmdPckg)();
openCsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case RSat::EGprsBearer:
{
RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
if ((openGprsChannelV2.ExtensionId() == RSat::KSatV4)
|| (openGprsChannelV2.ExtensionId() == RSat::KSatV5)
|| (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
{
RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
}
if ((openGprsChannelV2.ExtensionId() == RSat::KSatV5)
|| (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
{
RSat::TOpenGprsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenGprsChannelV5Pckg*)aPCmd;
RSat::TOpenGprsChannelV5& openGprsChannelV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
openGprsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
openGprsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (openGprsChannelV2.ExtensionId() == RSat::KSatV6)
{
RSat::TOpenGprsChannelV6Pckg* gprsV6PCmdPckg = (RSat::TOpenGprsChannelV6Pckg*)aPCmd;
RSat::TOpenGprsChannelV6& openGprsChannelV6 = (*gprsV6PCmdPckg)();
openGprsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
openGprsChannelV6.iBearer.iType=DSATTSYV6_GPRS_BEARER_TYPE1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case RSat::ELocalLinksBearer:
{
RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
if ((openLocalChannelV2.ExtensionId() == RSat::KSatV5)
|| (openLocalChannelV2.ExtensionId() == RSat::KSatV6))
{
RSat::TOpenLocalLinksChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenLocalLinksChannelV5Pckg*)aPCmd;
RSat::TOpenLocalLinksChannelV5& openLocalChannelV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
openLocalChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
openLocalChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (openLocalChannelV2.ExtensionId() == RSat::KSatV6)
{
RSat::TOpenLocalLinksChannelV6Pckg* localV6PCmdPckg = (RSat::TOpenLocalLinksChannelV6Pckg*)aPCmd;
RSat::TOpenLocalLinksChannelV6& openLocalChannelV6 = (*localV6PCmdPckg)();
openLocalChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case RSat::EUiccServerMode:
{
RSat::TOpenUiccServerModeChannelV7Pckg* aV7PCmdPckg = (RSat::TOpenUiccServerModeChannelV7Pckg*)aPCmd;
RSat::TOpenUiccServerModeChannelV7& uiccServerModeChannelV7 = (*aV7PCmdPckg)();
uiccServerModeChannelV7.iPCmdType = DSATTSY_UICC_SERVER_MODE;
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
uiccServerModeChannelV7.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
uiccServerModeChannelV7.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
uiccServerModeChannelV7.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case RSat::EAnyBearer:
{
// Monitor all kind of open channel PCmd
// Select type of channel PCmd that has 'opened'
switch(iNotifyAnyBearerCount++)
{
case 0:
{
// This iteration set bearer type to "CS"
RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
openCsChannelV2.iPCmdType = RSat::ECsBearer;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case 1:
{
// This iteration set bearer type to "GPRS"
RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
openGprsChannelV2.iPCmdType = RSat::EGprsBearer;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case 2:
{
// This iteration set bearer type to "Local Link"
RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
openLocalChannelV2.iPCmdType = RSat::ELocalLinksBearer;
ReqCompleted(aTsyReqHandle, KErrNone);
break;
}
default:
{
// Next iteration bearer will be "CS"
iNotifyAnyBearerCount = 0;
// Current iteration will return a failure ("type not set") in base channel
openChannelBaseV2.iPCmdType = RSat::EPCmdTypeNotSet;
ReqCompleted(aTsyReqHandle,KErrNone);
}
}
}
default:
ReqCompleted(aTsyReqHandle,KErrArgument);
}
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::GetOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
/**
* This function should be called with PCmd type set to RSat::ECsBearer,
* RSat::EGprsBearer or RSat::ELocalLinksBearer.
*/
LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmd called"));
RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
RSat::TOpenChannelBaseV2& openChannelV2 = (*aV2PCmdPckg)();
switch (openChannelV2.iPCmdType)
{
case RSat::EPCmdTypeNotSet:
ReqCompleted(aTsyReqHandle,KErrArgument);
break;
case RSat::ECsBearer:
{
RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case RSat::EGprsBearer:
{
RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
if (openGprsChannelV2.ExtensionId() == RSat::KSatV4)
{
RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
}
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case RSat::ELocalLinksBearer:
{
RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
ReqCompleted(aTsyReqHandle,KErrNone);
break;
}
case RSat::EAnyBearer:
{
ReqCompleted(aTsyReqHandle,KErrArgument);
break;
}
default:
ReqCompleted(aTsyReqHandle,KErrArgument);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyOpenChannelPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::GetOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::NotifyCloseChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyCloseChannelPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmd called"));
RSat::TCloseChannelV2Pckg* aV2PCmdPckg = (RSat::TCloseChannelV2Pckg*)aPCmd;
RSat::TCloseChannelV2& closeChannelV2 = (*aV2PCmdPckg)();
closeChannelV2.SetPCmdNumber(DSATTSY_CLOSE_CHANNEL_NUMBER);
closeChannelV2.iDestination=DSATTSY_CARD_READER_1;
closeChannelV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
closeChannelV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
closeChannelV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
closeChannelV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
if ((closeChannelV2.ExtensionId() == RSat::KSatV5) ||
(closeChannelV2.ExtensionId() == RSat::KSatV6))
{
RSat::TCloseChannelV5Pckg* aV5PCmdPckg = (RSat::TCloseChannelV5Pckg*)aPCmd;
RSat::TCloseChannelV5& closeChannelV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
closeChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
closeChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (closeChannelV2.ExtensionId() == RSat::KSatV6)
{
RSat::TCloseChannelV6Pckg* closeChannelV6PCmdPckg = (RSat::TCloseChannelV6Pckg*)aPCmd;
RSat::TCloseChannelV6& closeChannelV6 = (*closeChannelV6PCmdPckg)();
closeChannelV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyCloseChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyCloseChannelPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyReceiveDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyReceiveDataPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmd called"));
RSat::TReceiveDataV2Pckg* aV2PCmdPckg = (RSat::TReceiveDataV2Pckg*)aPCmd;
RSat::TReceiveDataV2& receiveDataV2 = (*aV2PCmdPckg)();
receiveDataV2.SetPCmdNumber(DSATTSY_RECEIVE_DATA_NUMBER);
receiveDataV2.iDestination=DSATTSY_CARD_READER_1;
receiveDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
receiveDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
receiveDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
receiveDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
receiveDataV2.iChannelDataLength=DSATTSY_DATA_LENGTH;
if ((receiveDataV2.ExtensionId() == RSat::KSatV5) ||
(receiveDataV2.ExtensionId() == RSat::KSatV6))
{
RSat::TReceiveDataV5Pckg* aV5PCmdPckg = (RSat::TReceiveDataV5Pckg*)aPCmd;
RSat::TReceiveDataV5& receiveDataV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
receiveDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
receiveDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (receiveDataV2.ExtensionId() == RSat::KSatV6)
{
RSat::TReceiveDataV6Pckg* receiveDataV6PCmdPckg = (RSat::TReceiveDataV6Pckg*)aPCmd;
RSat::TReceiveDataV6& receiveDataV6 = (*receiveDataV6PCmdPckg)();
receiveDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyReceiveDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyReceiveDataPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySendDataPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmd called"));
RSat::TSendDataV2Pckg* aV2PCmdPckg = (RSat::TSendDataV2Pckg*)aPCmd;
RSat::TSendDataV2& sendDataV2 = (*aV2PCmdPckg)();
sendDataV2.SetPCmdNumber(DSATTSY_SEND_DATA_NUMBER);
sendDataV2.iDestination=DSATTSY_CARD_READER_1;
sendDataV2.iMode=DSATTSY_SEND_DATA_MODE;
sendDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
sendDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
sendDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
sendDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
sendDataV2.iChannelData=DSATTSY_CHANNEL_DATA;
if ((sendDataV2.ExtensionId() == RSat::KSatV5) ||
(sendDataV2.ExtensionId() == RSat::KSatV6))
{
RSat::TSendDataV5Pckg* aV5PCmdPckg = (RSat::TSendDataV5Pckg*)aPCmd;
RSat::TSendDataV5& sendDataV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
sendDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
sendDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (sendDataV2.ExtensionId() == RSat::KSatV6)
{
RSat::TSendDataV6Pckg* sendDataV6PCmdPckg = (RSat::TSendDataV6Pckg*)aPCmd;
RSat::TSendDataV6& sendDataV6 = (*sendDataV6PCmdPckg)();
sendDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySendDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySendDataPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetChannelStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyGetChannelStatusPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmd called"));
RSat::TGetChannelStatusV2Pckg* aV2PCmdPckg = (RSat::TGetChannelStatusV2Pckg*)aPCmd;
RSat::TGetChannelStatusV2& getStatusV2 = (*aV2PCmdPckg)();
getStatusV2.SetPCmdNumber(DSATTSY_GET_CHANNEL_STATUS_NUMBER);
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetChannelStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyGetChannelStatusPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyServiceSearchPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyServiceSearchPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmd called"));
RSat::TServiceSearchV2Pckg* aV2PCmdPckg = (RSat::TServiceSearchV2Pckg*)aPCmd;
RSat::TServiceSearchV2& serviceSearchV2 = (*aV2PCmdPckg)();
serviceSearchV2.SetPCmdNumber(DSATTSY_SERVICE_SEARCH_NUMBER);
serviceSearchV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
serviceSearchV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
serviceSearchV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
serviceSearchV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
serviceSearchV2.iSearch.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
serviceSearchV2.iSearch.iSearchParam=DSATTSY_SERVICE_SEARCH_PARAMS;
serviceSearchV2.iFilter.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
serviceSearchV2.iFilter.iDeviceFilter=DSATTSY_FILTER_INFO;
if ((serviceSearchV2.ExtensionId() == RSat::KSatV5) ||
(serviceSearchV2.ExtensionId() == RSat::KSatV6))
{
RSat::TServiceSearchV5Pckg* aV5PCmdPckg = (RSat::TServiceSearchV5Pckg*)aPCmd;
RSat::TServiceSearchV5& serviceSearchV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
serviceSearchV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
serviceSearchV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (serviceSearchV2.ExtensionId() == RSat::KSatV6)
{
RSat::TServiceSearchV6Pckg* serviceSearchV6PCmdPckg = (RSat::TServiceSearchV6Pckg*)aPCmd;
RSat::TServiceSearchV6& serviceSearchV6 = (*serviceSearchV6PCmdPckg)();
serviceSearchV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyServiceSearchPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyServiceSearchPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetServiceInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyGetServiceInfoPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmd called"));
RSat::TGetServiceInfoV2Pckg* aV2PCmdPckg = (RSat::TGetServiceInfoV2Pckg*)aPCmd;
RSat::TGetServiceInfoV2& getServiceInfoV2 = (*aV2PCmdPckg)();
getServiceInfoV2.SetPCmdNumber(DSATTSY_GET_SERVICE_INFO_NUMBER);
getServiceInfoV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
getServiceInfoV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
getServiceInfoV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
getServiceInfoV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
getServiceInfoV2.iAttributeInfo.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
getServiceInfoV2.iAttributeInfo.iAttributeInfo=DSATTSY_ATTRIBUTE_INFO;
if ((getServiceInfoV2.ExtensionId() == RSat::KSatV5) ||
(getServiceInfoV2.ExtensionId() == RSat::KSatV6))
{
RSat::TGetServiceInfoV5Pckg* aV5PCmdPckg = (RSat::TGetServiceInfoV5Pckg*)aPCmd;
RSat::TGetServiceInfoV5& getServiceInfoV5 = (*aV5PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
getServiceInfoV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
getServiceInfoV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
}
if (getServiceInfoV2.ExtensionId() == RSat::KSatV6)
{
RSat::TGetServiceInfoV6Pckg* getServiceInfoV6PCmdPckg = (RSat::TGetServiceInfoV6Pckg*)aPCmd;
RSat::TGetServiceInfoV6& getServiceInfoV6 = (*getServiceInfoV6PCmdPckg)();
getServiceInfoV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetServiceInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyGetServiceInfoPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyDeclareServicePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyDeclareServicePCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmd called"));
RSat::TDeclareServiceV2Pckg* aV2PCmdPckg = (RSat::TDeclareServiceV2Pckg*)aPCmd;
RSat::TDeclareServiceV2& declareServiceV2 = (*aV2PCmdPckg)();
declareServiceV2.SetPCmdNumber(DSATTSY_DECLARE_SERVICE_NUMBER);
declareServiceV2.iType=DSATTSY_DECLARE_SERVICE_TYPE;
declareServiceV2.iServiceRecord.iBearerId=DSATTSY_BEARER_NOT_PRESENT;
declareServiceV2.iServiceRecord.iServiceId=DSATTSY_NULL_BEARER_ID;
declareServiceV2.iServiceRecord.iRecord=DSATTSY_NULL_NARROW_BUF;
declareServiceV2.iInterface.iPrtNumber=DSATTSY_PORT_1;
declareServiceV2.iInterface.iTransportProto=DSATTSY_TCP_PROTO;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyDeclareServicePCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyDeclareServicePCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyProactiveSimSessionStart(const TTsyReqHandle aTsyReqHandle)
{
if(!iNotifyProactiveSimSessionStart++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStart called"));
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyProactiveSimSessionStartCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStartCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyProactiveSimSessionStart=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyProactiveSimSessionEnd(const TTsyReqHandle aTsyReqHandle)
{
if(!iNotifyProactiveSimSessionEnd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEnd called"));
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyProactiveSimSessionEndCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEndCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyProactiveSimSessionEnd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyTimerExpiration(const TTsyReqHandle aTsyReqHandle, TDes8* aTimerDetails)
{
if(!iNotifyTimerExpiration++)
{
LOGTEXT(_L8("CSatDSatTsy::Notify Timer expiration called"));
RSat::TTimerExpirationV3Pckg* cmdPckg = (RSat::TTimerExpirationV3Pckg*)aTimerDetails;
RSat::TTimerExpirationV3& cmdV3 = (*cmdPckg)();
cmdV3.iTimerId = RSat::KTimer1;
cmdV3.iTimerValue.iTimeUnit = RSat::ESeconds;
cmdV3.iTimerValue.iNumOfUnits = 10;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyTimerExpirationCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyTimerExpirationCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyTimerExpiration=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySmsPpDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aSmsPpDownloadDetails)
{
if(!iNotifySmsPpDownload++)
{
LOGTEXT(_L8("CSatDSatTsy::Notify Sms Pp Download called"));
RSat::TSmsPpDownloadV3Pckg* cmdPckg = (RSat::TSmsPpDownloadV3Pckg*)aSmsPpDownloadDetails;
RSat::TSmsPpDownloadV3& cmdV3 = (*cmdPckg)();
cmdV3.iDeviceId=RSat::KEarPiece;
cmdV3.iRpAddress.iTypeOfNumber =DSATTSY_TON;
cmdV3.iRpAddress.iNumberPlan =DSATTSY_NPI;
cmdV3.iRpAddress.iTelNumber =DSATTSY_TEL_NUMBER;
cmdV3.iPdu=DSATTSY_SMS_TPDU;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyTsyStateUpdated(const TTsyReqHandle aTsyReqHandle,RSat::TPCmd* aPCmd)
{
if(!iNotifyTsyStateUpdated++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdated called"));
*aPCmd = DSATTSY_SENDSS;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyTsyStateUpdatedCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdatedCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
return KErrNone;
}
TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle)
{
if(!iNotifyRefreshRequired++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called"));
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyRefreshRequired++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called (with param)"));
RSat::TRefreshV1Pckg* refreshPckg = (RSat::TRefreshV1Pckg*)aPCmd;
RSat::TRefreshV1& refreshV1 = (*refreshPckg)();
refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
refreshV1.iType = DSATTSY_REFRESH_TYPE;
refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
if (refreshV1.ExtensionId()==RSat::KSatV2)
{
RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
refreshV2.iAid=DSATTSY_AID;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRefreshRequiredCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequiredCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyRefreshRequired=0;
return KErrNone;
}
TInt CSatDSatTsy::RefreshAllowed(const TTsyReqHandle aTsyReqHandle, TDes8* aRefreshAllowedRsp)
{
RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRefreshAllowedRsp;
RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iRefreshAllowed++)
ReqCompleted(aTsyReqHandle,KErrNone);
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::RefreshAllowedCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::RefreshAllowedCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyRefreshRequired=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySmsPpDownloadCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySmsPpDownloadCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySmsPpDownload=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyCbDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aCbDownloadDetails)
{
if(!iNotifyCbDownload++)
{
LOGTEXT(_L8("CSatDSatTsy::Notify CB Download called"));
RSat::TCbDownloadV3Pckg* cmdPckg = (RSat::TCbDownloadV3Pckg*)aCbDownloadDetails;
RSat::TCbDownloadV3& cmdV3 = (*cmdPckg)();
cmdV3.iDeviceId=RSat::KEarPiece;
cmdV3.iPdu= DSATTSY_CB_PDU;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyCbDownloadCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyCbDownloadCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyCbDownload=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyTimerManagtPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyTimerManagtPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyTimerManagtPCmd called"));
RSat::TTimerMgmtV3Pckg* aV3PCmdPckg = (RSat::TTimerMgmtV3Pckg*)aPCmd;
RSat::TTimerMgmtV3& timerMngtV3 = (*aV3PCmdPckg)();
timerMngtV3.iTimerId = RSat::KTimer1;
timerMngtV3.iTimerValue.iTimeUnit = RSat::ESeconds;
timerMngtV3.iTimerValue.iNumOfUnits = 10;
timerMngtV3.iOperation = RSat::EStartTimer;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyTimerManagtPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyTmerManagtPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyTimerManagtPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyLocalInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyLocalInfoPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmd called"));
RSat::TLocalInfoV3Pckg* aV3PCmdPckg = (RSat::TLocalInfoV3Pckg*)aPCmd;
RSat::TLocalInfoV3& localInfoV3 = (*aV3PCmdPckg)();
localInfoV3.iDevideId = RSat::KKeypad;
localInfoV3.iInfoType = RSat::KProvideLocalInfo;
if(localInfoV3.ExtensionId()== RSat::KSatV6)
{
RSat::TLocalInfoV6Pckg* localInfoV6PCmdPckg = (RSat::TLocalInfoV6Pckg*)aPCmd;
RSat::TLocalInfoV6& localInfoV6 = (*localInfoV6PCmdPckg)();
localInfoV6.iUtranMeasurementQualifier=DSATTSYV6_LOCAL_INFOV6;
localInfoV6.iInfoType = RSat::KProvideLocalInfoSearchMode;
}
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyLocalInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyLocalInfoPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPollingIntervalPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyPollingIntervalPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmd called"));
RSat::TPollingIntervalV3Pckg* aV3PCmdPckg = (RSat::TPollingIntervalV3Pckg*)aPCmd;
RSat::TPollingIntervalV3& pollingIntvV3 = (*aV3PCmdPckg)();
pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
pollingIntvV3.iIntv.iNumOfUnits = DSATTSY_NUM_OF_UNITS;
pollingIntvV3.iDestination=RSat::KEarPiece;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPollingIntervalPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyPollingIntervalPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPollingOffPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyPollingOffPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmd called"));
RSat::TPollingOffV3Pckg* aV3PCmdPckg = (RSat::TPollingOffV3Pckg*)aPCmd;
RSat::TPollingOffV3& pollingIntvV3 = (*aV3PCmdPckg)();
pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
pollingIntvV3.iIntv.iNumOfUnits = 20;
pollingIntvV3.iDestination=RSat::KNetwork;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyPollingOffPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyPollingOffPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyRetrieveMultimediaMsgPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
RSat::TRetrieveMultimediaMessageV6Pckg* retrieveMmV6PCmdPckg = (RSat::TRetrieveMultimediaMessageV6Pckg*)aPCmd;
RSat::TRetrieveMultimediaMessageV6& retrieveMMV6 = (*retrieveMmV6PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
retrieveMMV6.SetPCmdNumber(DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE);
retrieveMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
retrieveMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
retrieveMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
retrieveMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
retrieveMMV6.iIconId.iQualifier = DSATTSYV6_ICON_QUALIFIER3;
retrieveMMV6.iMultimediaContentId = DSATTSYV6_MULTIMEDIA_CONTENT_ID1;
retrieveMMV6.iMultimediaMessageRef = DSATTSYV6_MULTIMEDIA_MESSAGE_REF1;
retrieveMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
retrieveMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
retrieveMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyRetrieveMultimediaMsgPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySubmitMultimediaMsgPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
RSat::TSubmitMultimediaMessageV6Pckg* submitMMV6PCmdPckg = (RSat::TSubmitMultimediaMessageV6Pckg*)aPCmd;
RSat::TSubmitMultimediaMessageV6& submitMMV6 = (*submitMMV6PCmdPckg)();
const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
submitMMV6.SetPCmdNumber(DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE);
submitMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
submitMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
submitMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
submitMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
submitMMV6.iIconId.iQualifier = DSATTSYV6_ICON_QUALIFIER3;
submitMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
submitMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
submitMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
submitMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySubmitMultimediaMsgPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyDisplayMultimediaMsgPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
RSat::TDisplayMultimediaMessageV6Pckg* displayMMV6PCmdPckg = (RSat::TDisplayMultimediaMessageV6Pckg*)aPCmd;
RSat::TDisplayMultimediaMessageV6& displayMMV6 = (*displayMMV6PCmdPckg)();
displayMMV6.SetPCmdNumber(DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE);
displayMMV6.iDestination = DSATTSYV6_DEVICE_ID3;
displayMMV6.iDisplayPriority = DSATTSYV6_DISPLAY_PRIORITY1;
displayMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
displayMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
displayMMV6.iImmediateRsp = DSATTSYV6_IMMEDIATE_RESPONSE1;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyDisplayMultimediaMsgPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetFramesPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifySetFramesPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifySetFramesPCmd called"));
RSat::TSetFramesV6Pckg* setFramesV6PCmdPckg = (RSat::TSetFramesV6Pckg*)aPCmd;
RSat::TSetFramesV6& setFramesV6 = (*setFramesV6PCmdPckg)();
setFramesV6.SetPCmdNumber(DSATTSY_SET_FRAMES);
setFramesV6.iDestination = DSATTSYV6_DEVICE_ID1;
setFramesV6.iDefaultFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
setFramesV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
setFramesV6.iFrameLayout.iFramesLayout = DSATTSYV6_FRAME_LAYOUT_FORMAT1;
setFramesV6.iFrameLayout.iFrameLayoutBuf = DSATTSYV6_FRAME_LAYOUT1;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifySetFramesPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::SetFramesPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifySetFramesPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetFramesStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
if(!iNotifyGetFramesStatusPCmd++)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
RSat::TGetFramesStatusV6Pckg* getFramesStatusV6PCmdPckg = (RSat::TGetFramesStatusV6Pckg*)aPCmd;
RSat::TGetFramesStatusV6& getFramesStatusV6 = (*getFramesStatusV6PCmdPckg)();
getFramesStatusV6.SetPCmdNumber(DSATTSY_GET_FRAMES_STATUS);
getFramesStatusV6.iDestination = DSATTSYV6_DEVICE_ID1;
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::NotifyGetFramesStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmdCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iNotifyGetFramesStatusPCmd=0;
return KErrNone;
}
TInt CSatDSatTsy::MmsNotificationDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownload called"));
RSat::TMmsNotificationDownloadV6Pckg* mMSNotificationDownloadV6PCmdPckg = (RSat::TMmsNotificationDownloadV6Pckg*)aPCmd;
RSat::TMmsNotificationDownloadV6& mMSNotificationDownloadV6 = (*mMSNotificationDownloadV6PCmdPckg)();
if((mMSNotificationDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) ||
(mMSNotificationDownloadV6.iLastEnvelope != DSATTSYV6_LAST_ENVELOPE1) ||
(mMSNotificationDownloadV6.iMMSNotification != DSATTSYV6_MMS_NOTIFICATION1))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iMmsNotificationDownload++)
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::MmsNotificationDownloadCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownloadCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iMmsNotificationDownload=0;
return KErrNone;
}
TInt CSatDSatTsy::MmsTransferStatus(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
{
LOGTEXT(_L8("CSatDSatTsy::MmsTransferStatus called"));
RSat::TMmsTransferStatusV6Pckg* mMSTransferStatusV6PCmdPckg = (RSat::TMmsTransferStatusV6Pckg*)aPCmd;
RSat::TMmsTransferStatusV6& mMSTransferStatusV6 = (*mMSTransferStatusV6PCmdPckg)();
if((mMSTransferStatusV6.iDeviceId != DSATTSYV6_DEVICE_ID3) ||
(mMSTransferStatusV6.iMultimediaMessageId !=DSATTSYV6_MULTIMEDIA_MESSAGE_ID1) ||
(mMSTransferStatusV6.iMultimediaMessageStatus !=DSATTSYV6_MULTIMEDIA_MESSAGE_STATUS))
{
ReqCompleted(aTsyReqHandle,KErrCorrupt);
}
else if(!iMmsTransferStatus++)
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::MmsTransferStatusCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::MMTransferStatusCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iMmsTransferStatus=0;
return KErrNone;
}
TInt CSatDSatTsy::UssdDataDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aUssdDataDownload)
{
LOGTEXT(_L8("CSatDSatTsy::UssdDataDownload called"));
RSat::TUssdDataDownloadV6Pckg* ussdDataDownloadPckg = (RSat::TUssdDataDownloadV6Pckg*)aUssdDataDownload;
RSat::TUssdDataDownloadV6& ussdDataDownloadV6 = (*ussdDataDownloadPckg)();
if((ussdDataDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) ||
(ussdDataDownloadV6.iUssdString.iUssdString != DSATTSY_USSD_STRING))
{
ReqCompleted(aTsyReqHandle, KErrCorrupt);
}
else if(!iUssdDataDownload++)
{
ReqCompleted(aTsyReqHandle,KErrNone);
}
iTsyAsyncReqHandle = aTsyReqHandle;
return KErrNone;
}
TInt CSatDSatTsy::UssdDataDownloadCancel(const TTsyReqHandle aTsyReqHandle)
{
LOGTEXT(_L8("CSatDSatTsy::UssdDataDownloadCancel called"));
if(aTsyReqHandle == iTsyAsyncReqHandle)
ReqCompleted(aTsyReqHandle,KErrCancel);
else
ReqCompleted(aTsyReqHandle,KErrCorrupt);
iUssdDataDownload=0;
return KErrNone;
}
TSecurityPolicy CSatDSatTsy::GetRequiredPlatSecCaps(const TInt aIpc)
{
switch(aIpc)
{
case ETestCustomIPC1:
return TSecurityPolicy(ECapabilityNetworkServices);
default:
//For any non-Custom IPCs return a policy that will always cause the capability check to pass
return TSecurityPolicy(TSecurityPolicy::EAlwaysPass);
}
}