diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/simtsy/inc/CSimPhoneUSimApp.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/simtsy/inc/CSimPhoneUSimApp.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,113 @@ +// 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: +// + +#ifndef __SIMPHONEUSIMAPP_H_ +#define __SIMPHONEUSIMAPP_H_ + +/** + * @file + * + * Contains the class definitions required for the Phone USim applications. + * @internalAll + */ + +#include +#include +#include +#include "csimtimer.h" +#include "CSimPhone.h" + +const TInt KMaxUSimApps = 3; + +/** + * The main Phone USim applications class which simulates USim applications features. + */ +class CSimPhone; +class CTestConfigSection; +class CTestConfigItem; +class CSimPhoneUSimApp : public CSubSessionExtBase, public MTimerCallBack + { +public: + static CSimPhoneUSimApp* NewL(CSimPhone* aPhone); + CSimPhoneUSimApp(CSimPhone* aPhone); + ~CSimPhoneUSimApp(); + + virtual CTelObject::TReqMode ReqModeL(const TInt aIpc); +// MTelObjectTSY pure virtual + virtual TInt RegisterNotification(const TInt aIpc); + virtual TInt DeregisterNotification(const TInt aIpc); + virtual void Init(); + virtual CTelObject* OpenNewObjectByNameL(const TDesC& aName); + virtual CTelObject* OpenNewObjectL(TDes& aNewName); + virtual TInt NumberOfSlotsL(const TInt aIpc); + virtual TInt CancelService(const TInt aIpc, const TTsyReqHandle aTsyReqHandle); + +// MSubSessionExtBaseTSY pure virtual + virtual TInt ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage); + virtual void TimerCallBack(TInt aId); + const CTestConfigSection* CfgFile(); + RMobilePhone::TAID GetActiveUSim(); + + TBool FoundUSimAppTags(); + +protected: + void ConstructL(); + +private: + class TUSimAppEvent + { + public: + TUint32 iDuration; + RMobilePhone::TAID iAid; + }; + + class TUSimNotifyData + { + public: + TBool iNotifyPending; //indicates if a notification is pending + TTsyReqHandle iNotifyHandle; //the TSY notification handle + TAny* iNotifyData; //Holds the data for the notification pending + TAny* iNotifyDataXtra; //Holds the data for the notification pending + }; + + TInt EnumerateUSimApplications(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID); + TInt EnumerateUSimApplicationsCancel(const TTsyReqHandle aTsyReqHandle); + TInt GetUSimApplicationInfo(const TTsyReqHandle aTsyReqHandle, TInt* aUSimAppIndex, TDes8* aInfo); + TInt GetUSimApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle); + TInt NotifyUSimApplicationsInfoChange(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID); + TInt NotifyUSimApplicationsInfoChangeCancel(const TTsyReqHandle aTsyReqHandle); + TInt SetUSimApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TUSimAppAction* aUsimAppAction); + TInt SetUSimApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle); + TInt SetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aUSimSelectionMode); + TInt GetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aUSimSelectionMode); + TInt NotifyUSIMAppsSelectionModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aUSimSelectionMode); + TInt NotifyUSIMAppsSelectionModeChangeCancel(const TTsyReqHandle aTsyReqHandle); + + +private: + CSimPhone* iPhone; + CSimTimer* iTimer; + RMobilePhone::TUSimSelectionMode iCurrentSelection; + RMobilePhone::TAID iActiveAID; + CArrayFixFlat* iUSimAppEventList; + TInt iEventPointer; + CArrayFixFlat* iUSimAppInfo; + TUSimNotifyData iNotifyInfo; + TNotifyData iNotifyMode; + TBool iTimerStarted; + TBool iFoundUSimAppTags; + }; + +#endif