--- /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 <etelmm.h>
+#include <et_phone.h>
+#include <mpbutil.h>
+#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<TUSimAppEvent>* iUSimAppEventList;
+ TInt iEventPointer;
+ CArrayFixFlat<RMobilePhone::TUSimApplicationInfoV2>* iUSimAppInfo;
+ TUSimNotifyData iNotifyInfo;
+ TNotifyData iNotifyMode;
+ TBool iTimerStarted;
+ TBool iFoundUSimAppTags;
+ };
+
+#endif