⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 etelbgsm.h

📁 基于SYMBIAN OS 的Moblile硬件管理器. 支持series 70平台
💻 H
📖 第 1 页 / 共 3 页
字号:
		{
		ENetworkSetModeAutomatic,
		ENetworkSetModeManual
		};

	class TNetworkInfo
		{
	public:
		void InternalizeL(RReadStream& aStream);
		void ExternalizeL(RWriteStream& aStream) const;
	public:
		IMPORT_C TNetworkInfo();
	public:
		TBscNetworkId iId;
		TNetworkStatus iStatus;
		TBuf<KShortNetworkNameSize> iShortName;
		TBuf<KLongNetworkNameSize> iLongName;
		};

	enum TRegistrationStatus
		{
		ENotRegisteredNotSearching,
		ERegisteredOnHomeNetwork,
		ENotRegisteredSearching,
		ERegistrationDenied,
		EUnknown,
		ERegisteredRoaming
		};

	struct TCurrentNetworkInfo
		{
		TNetworkInfo iNetworkInfo;		
		TUint iLocationAreaCode;
		TUint iCellId;
		};

	virtual TInt EnumerateDetectedNetworks(TInt& aNetworkCnt) const=0;	
	virtual void EnumerateDetectedNetworks(TRequestStatus& aStatus, TInt& aNetworkCnt)=0;
	virtual void EnumerateDetectedNetworksCancel() const=0;
	virtual TInt GetDetectedNetworkInfo(const TInt aIndex,TNetworkInfo& aNetworkInfo) const=0; 
	virtual void GetDetectedNetworkInfo(TRequestStatus& aStatus, const TInt aIndex,TNetworkInfo& aNetworkInfo)=0; 
	virtual void GetDetectedNetworkInfoCancel() const=0; 

	virtual CGsmNetworkList* RetrieveDetectedNetworksLC()=0;

	virtual TInt SetNetworkMode(const TNetworkSetMode aMode) const=0;
	virtual void SetNetworkMode(TRequestStatus& aStatus,const TNetworkSetMode aMode)=0;
	virtual void SetNetworkModeCancel() const=0;
	virtual TInt SetManualNetwork(const TBscNetworkId aNetworkId) const=0;
	virtual void SetManualNetwork(TRequestStatus& aStatus,const TBscNetworkId aNetworkId)=0;
	virtual void SetManualNetworkCancel() const=0;

	virtual TInt GetCurrentNetworkInfo(TCurrentNetworkInfo& aNetworkInfo) const=0;
	virtual void NotifyChangeOfCurrentNetwork(TRequestStatus& aStatus,TCurrentNetworkInfo& aNetworkInfo)=0;
	virtual void NotifyChangeOfCurrentNetworkCancel() const=0;

	virtual TInt GetNetworkRegistrationStatus(TRegistrationStatus& aRegistrationStatus) const=0;
	virtual void NotifyChangeOfNetworkRegistrationStatus(TRequestStatus& aStatus,TRegistrationStatus& aRegistrationStatus)=0;
	virtual void NotifyChangeOfNetworkRegistrationStatusCancel() const=0;

	virtual TInt GetNetworkSearchMode(TNetworkSetMode& aMode) const=0;
	virtual void NotifyChangeOfNetworkSearchMode(TRequestStatus& aStatus,TNetworkSetMode& aMode)=0;
	virtual void NotifyChangeOfNetworkSearchModeCancel() const=0;

	enum TNetworkInfoCaps
		{
		KCapsNetworkInfoAvailable=0x00000001,
		KCapsNetworkShortName=0x00000002,
		KCapsNetworkLongName=0x00000004,
		KCapsNetworkCurrentInfoAvailable=0x00000008,
		KCapsNetworkSetModeSupported=0x00000010
		};

	struct TNetworkCapsFlags
		{
		TUint iNetworkInfoCaps;
		};

	virtual TInt GetNetworkInfoCaps(TNetworkCapsFlags& aCaps) const=0;

	virtual void NetworkFreeSlot1() const=0;
	virtual void NetworkFreeSlot2() const=0;
	virtual void NetworkFreeSlot3() const=0;
	virtual void NetworkFreeSlot4() const=0;

	struct TGsmNetworkClientId
		{
		TInt iSessionHandle;
		TInt iSubSessionHandle;
		};

protected:
	MBasicGsmPhoneNetwork();
	};
//
// Battery and Power Information
//
class MBasicGsmPhoneBatteryAndPower
	{
public:
	enum TBatteryStatus
		{
		EPoweredByBattery,
		EBatteryConnectedButExternallyPowered,
		ENoBatteryConnected,
		EPowerFault
		};

	struct TBatteryInfo
		{
		TBatteryStatus iStatus;
		TUint iChargeLevel;
		};

	virtual TInt GetBatteryInfo(TBatteryInfo& aBatteryInfo) const=0;
	virtual void GetBatteryInfo(TRequestStatus& aStatus, TBatteryInfo& aBatteryInfo)=0;
	virtual void GetBatteryInfoCancel() const=0;
	virtual void BatteryInfoNotification(TRequestStatus& aStatus,TBatteryInfo& aBatteryInfo)=0;
	virtual void BatteryInfoNotificationCancel() const=0;

	enum TBatteryPowerCaps
		{
		KCapsBatteryInfoAvailable=0x00000001,
		KCapsBatteryInfoUpdatesAvailable=0x00000002
		};

	struct TBatteryAndPowerCapsFlags
		{
		TUint iBatteryInfoCaps;
		};

	virtual TInt GetBatteryPowerCaps(TBatteryAndPowerCapsFlags& aCaps) const=0;

	virtual void BatteryFreeSlot1() const=0;
	virtual void BatteryFreeSlot2() const=0;
	virtual void BatteryFreeSlot3() const=0;
	virtual void BatteryFreeSlot4() const=0;

protected:
	MBasicGsmPhoneBatteryAndPower();
	};

//
// Phone Indicator Access
//
class MBasicGsmPhoneIndicator
	{
public:
	enum TIndicatorType
		{
		EIndBatteryCharge,
		EIndSignalQuality,
		EIndServiceAvail,
		EIndSounderActivity,
		EIndMessageReceived,
		EIndCallInProgress,
		EIndTxActivatedByVoiceActivity,
		EIndRoamingIndicator,
		EIndSmsStorageFull
		};

	struct TIndicatorInfo
		{
		TIndicatorType iIndicator;
		TUint iValue;
		};

	virtual void IndicatorNotification(TRequestStatus& aStatus,TIndicatorInfo& aIndicator)=0;
	virtual void IndicatorNotificationCancel() const=0;
	virtual TInt GetIndicator(const TIndicatorType aIndicator,TUint& aValue) const=0;

	enum TPhoneEquipmentIndicatorCaps
		{
		KCapsEquipmentIndicatorCapture=0x00000001
		};

	struct TIndicatorCapsFlags
		{
		TUint iIndicatorCapture;
		};

	virtual TInt GetIndicatorCaptureCaps(TIndicatorCapsFlags& aCaps) const=0;

	virtual void IndicatorFreeSlot1() const=0;
	virtual void IndicatorFreeSlot2() const=0;
	virtual void IndicatorFreeSlot3() const=0;
	virtual void IndicatorFreeSlot4() const=0;

protected:
	MBasicGsmPhoneIndicator();
	};

//
// Phone Clock and Alarm Access
//
class MBasicGsmPhoneClockAndAlarm
	{
public:
	enum { KAlarmTextSize=256 };
	struct TAlarm
		{
		TGsmDateTime iDateTime;
		TBuf<KAlarmTextSize> iText;
		};

	virtual TInt ReadClock(TGsmDateTime& aGsmDateTime) const=0;
	virtual void ReadClock(TRequestStatus& aStatus, TGsmDateTime& aGsmDateTime) const=0;
	virtual void ReadClockCancel() const=0;
	virtual TInt SetClock(const TGsmDateTime& aGsmDateTime) const=0;
	virtual void SetClock(TRequestStatus& aStatus, const TGsmDateTime& aGsmDateTime) const=0;
	virtual void SetClockCancel() const=0;

	virtual TInt EnumerateAlarm(TInt& aCount) const=0;
	virtual void EnumerateAlarm(TRequestStatus& aStatus, TInt& aCount) const=0;
	virtual void EnumerateAlarmCancel() const=0;
	virtual TInt GetAlarm(const TInt aIndex,TAlarm& aAlarm) const=0;
	virtual void GetAlarm(TRequestStatus& aStatus, const TInt aIndex, TAlarm& aAlarm) const=0;
	virtual void GetAlarmCancel() const=0;
	virtual TInt SetAlarm(const TInt aIndex,const TAlarm& aAlarm) const=0;
	virtual void SetAlarm(TRequestStatus& aStatus, const TInt aIndex,const TAlarm& aAlarm) const=0;
	virtual void SetAlarmCancel() const=0;
	
	enum TClockCaps
		{
		KCapsClkClockAvailable=0x00000001,
		KCapsClkAlarmAvailable=0x00000002
		};

	struct TClockAndAlarmCapsFlags
		{
		TUint iClockAndAlarmCaps;
		};

	virtual TInt GetClockCaps(TClockAndAlarmCapsFlags& aCaps) const=0;
	virtual void NotifyClockCaps(TRequestStatus& aStatus, TClockAndAlarmCapsFlags& aCaps)=0;
	virtual void NotifyClockCapsCancel() const=0;

	virtual void ClockFreeSlot1() const=0;
	virtual void ClockFreeSlot2() const=0;
	virtual void ClockFreeSlot3() const=0;
	virtual void ClockFreeSlot4() const=0;

protected:
	MBasicGsmPhoneClockAndAlarm();
	};

//
//
// RBasicGsmPhone
//
//
class RBasicGsmPhone : public RPhone, public MBasicGsmPhoneId, public MBasicGsmPhoneBookSupport,
					   public MBasicGsmPhoneSignalandBer, public MBasicGsmPhoneNetwork,
					   public MBasicGsmPhoneBatteryAndPower, public MBasicGsmPhoneIndicator,
					   public MBasicGsmPhoneClockAndAlarm
	{
public:
	friend class CBasicGsmRetrieveDetectedNetworks;

	IMPORT_C RBasicGsmPhone();

//
//	General notification information
//
	class TPhoneInfo : public RPhone::TPhoneInfo
		{
	public:
		TInt32 iSignalStrength;
		TUint iBer;
		TCurrentNetworkInfo iCurrentNetworkInfo;
		TBatteryInfo iBatteryInfo;
		TIndicatorInfo iIndicatorInfo;
		TNetworkSetMode iNetworkSetMode;	
		TRegistrationStatus iNetworkRegistrationStatus;
	public:
		IMPORT_C TPhoneInfo();		
		};

	IMPORT_C TInt GetInfoBasicGsm(TPhoneInfo& aPhoneInfo) const;

	//
	//	These virtual functions implement the pure virtual functions in Mixin classes
	//
	IMPORT_C virtual TInt GetGsmPhoneId(TId& aId) const;

	IMPORT_C virtual TInt EnumeratePhoneBooks(TInt& aPhoneBookCount) const;
	IMPORT_C virtual TInt GetPhoneBookInfo(const TInt aIndex, TPhoneBookInfo& aInfo) const;
	IMPORT_C virtual void GetPhoneBookInfo(TRequestStatus& aStatus, const TInt aIndex, TPhoneBookInfo& aInfo) const;
	IMPORT_C virtual void GetPhoneBookInfoCancel() const;

	IMPORT_C virtual TInt GetSignalStrength(TInt32& aSignalStrength) const;
	IMPORT_C virtual void GetSignalStrength(TRequestStatus& aStatus, TInt32& aSignalStrength);
	IMPORT_C virtual void GetSignalStrengthCancel() const;
	IMPORT_C virtual void SignalStrengthNotification(TRequestStatus& aStatus,TInt32& aSignalStrength);
	IMPORT_C virtual void SignalStrengthNotificationCancel() const;
	IMPORT_C virtual TInt GetBer(TUint& aBer) const;
	IMPORT_C virtual void GetBer(TRequestStatus& aStatus, TUint& aBer);
	IMPORT_C virtual void GetBerCancel() const;
	IMPORT_C virtual void BerNotification(TRequestStatus& aStatus,TUint& aBer);
	IMPORT_C virtual void BerNotificationCancel() const;
	IMPORT_C virtual TInt GetSignalCaps(TSignalAndBerCapsFlags& aCaps) const;
	IMPORT_C virtual void NotifySignalCaps(TRequestStatus& aStatus, TSignalAndBerCapsFlags& aCaps);
	IMPORT_C virtual void NotifySignalCapsCancel() const;

	IMPORT_C virtual TInt EnumerateDetectedNetworks(TInt& aNetworkCnt) const;
	IMPORT_C virtual void EnumerateDetectedNetworks(TRequestStatus& aStatus, TInt& aNetworkCnt);
	IMPORT_C virtual void EnumerateDetectedNetworksCancel() const;
	IMPORT_C virtual TInt GetDetectedNetworkInfo(const TInt aIndex,TNetworkInfo& aNetworkInfo) const;
	IMPORT_C virtual void GetDetectedNetworkInfo(TRequestStatus& aStatus, const TInt aIndex,TNetworkInfo& aNetworkInfo);
	IMPORT_C virtual void GetDetectedNetworkInfoCancel() const;

	IMPORT_C virtual TInt SetNetworkMode(const TNetworkSetMode aMode) const;
	IMPORT_C virtual void SetNetworkMode(TRequestStatus& aStatus,const TNetworkSetMode aMode);
	IMPORT_C virtual void SetNetworkModeCancel() const;
	IMPORT_C virtual TInt SetManualNetwork(const TBscNetworkId aNetworkId) const;
	IMPORT_C virtual void SetManualNetwork(TRequestStatus& aStatus,const TBscNetworkId aNetworkId);
	IMPORT_C virtual void SetManualNetworkCancel() const;

	IMPORT_C virtual TInt GetCurrentNetworkInfo(TCurrentNetworkInfo& aNetworkInfo) const;
	IMPORT_C virtual void NotifyChangeOfCurrentNetwork(TRequestStatus& aStatus,TCurrentNetworkInfo& aNetworkInfo);
	IMPORT_C virtual void NotifyChangeOfCurrentNetworkCancel() const;
	IMPORT_C virtual TInt GetNetworkRegistrationStatus(TRegistrationStatus& aRegistrationStatus) const;
	IMPORT_C virtual void NotifyChangeOfNetworkRegistrationStatus(TRequestStatus& aStatus,TRegistrationStatus& aRegistrationStatus);
	IMPORT_C virtual void NotifyChangeOfNetworkRegistrationStatusCancel() const;
	IMPORT_C virtual TInt GetNetworkSearchMode(TNetworkSetMode& aMode) const;
	IMPORT_C virtual void NotifyChangeOfNetworkSearchMode(TRequestStatus& aStatus,TNetworkSetMode& aMode);
	IMPORT_C virtual void NotifyChangeOfNetworkSearchModeCancel() const;

	IMPORT_C virtual CGsmNetworkList* RetrieveDetectedNetworksLC();

	IMPORT_C virtual TInt GetNetworkInfoCaps(TNetworkCapsFlags& aCaps) const;

	IMPORT_C virtual TInt GetBatteryInfo(TBatteryInfo& aBatteryInfo) const;
	IMPORT_C virtual void GetBatteryInfo(TRequestStatus& aStatus, TBatteryInfo& aBatteryInfo);
	IMPORT_C virtual void GetBatteryInfoCancel() const;
	IMPORT_C virtual void BatteryInfoNotification(TRequestStatus& aStatus,TBatteryInfo& aBatteryInfo);
	IMPORT_C virtual void BatteryInfoNotificationCancel() const;
	IMPORT_C virtual TInt GetBatteryPowerCaps(TBatteryAndPowerCapsFlags& aCaps) const;

	IMPORT_C virtual void IndicatorNotification(TRequestStatus& aStatus,TIndicatorInfo& aIndicator);
	IMPORT_C virtual void IndicatorNotificationCancel() const;
	IMPORT_C virtual TInt GetIndicator(const TIndicatorType aIndicator,TUint& aValue) const;
	IMPORT_C virtual TInt GetIndicatorCaptureCaps(TIndicatorCapsFlags& aCaps) const;

	IMPORT_C virtual TInt ReadClock(TGsmDateTime& aGsmDateTime) const;
	IMPORT_C virtual void ReadClock(TRequestStatus& aStatus, TGsmDateTime& aGsmDateTime) const;
	IMPORT_C virtual void ReadClockCancel() const;
	IMPORT_C virtual TInt SetClock(const TGsmDateTime& aGsmDateTime) const;
	IMPORT_C virtual void SetClock(TRequestStatus& aStatus, const TGsmDateTime& aGsmDateTime) const;
	IMPORT_C virtual void SetClockCancel() const;
	IMPORT_C virtual TInt EnumerateAlarm(TInt& aCount) const;
	IMPORT_C virtual void EnumerateAlarm(TRequestStatus& aStatus, TInt& aCount) const;
	IMPORT_C virtual void EnumerateAlarmCancel() const;
	IMPORT_C virtual TInt GetAlarm(const TInt aIndex,TAlarm& aAlarm) const;
	IMPORT_C virtual void GetAlarm(TRequestStatus& aStatus, const TInt aIndex, TAlarm& aAlarm) const;
	IMPORT_C virtual void GetAlarmCancel() const;
	IMPORT_C virtual TInt SetAlarm(const TInt aIndex,const TAlarm& aAlarm) const;
	IMPORT_C virtual void SetAlarm(TRequestStatus& aStatus, const TInt aIndex,const TAlarm& aAlarm) const;
	IMPORT_C virtual void SetAlarmCancel() const;
	IMPORT_C virtual TInt GetClockCaps(TClockAndAlarmCapsFlags& aCaps) const;
	IMPORT_C virtual void NotifyClockCaps(TRequestStatus& aStatus, TClockAndAlarmCapsFlags& aCaps);
	IMPORT_C virtual void NotifyClockCapsCancel() const;

	// These are "free slots", to allow subsequent additional functions in Mixins without 
	// breaking BC.

 	IMPORT_C virtual void IdFreeSlot1() const;
	IMPORT_C virtual void IdFreeSlot2() const;
	IMPORT_C virtual void IdFreeSlot3() const;
	IMPORT_C virtual void IdFreeSlot4() const;
	IMPORT_C virtual void PhBookSupportFreeSlot3() const;
	IMPORT_C virtual void PhBookSupportFreeSlot4() const;
 	IMPORT_C virtual void SignalFreeSlot1() const;
	IMPORT_C virtual void SignalFreeSlot2() const;
	IMPORT_C virtual void SignalFreeSlot3() const;
	IMPORT_C virtual void SignalFreeSlot4() const;
	IMPORT_C virtual void NetworkFreeSlot1() const;
	IMPORT_C virtual void NetworkFreeSlot2() const;
	IMPORT_C virtual void NetworkFreeSlot3() const;
	IMPORT_C virtual void NetworkFreeSlot4() const; 
	IMPORT_C virtual void BatteryFreeSlot1() const;
	IMPORT_C virtual void BatteryFreeSlot2() const;
	IMPORT_C virtual void BatteryFreeSlot3() const;
	IMPORT_C virtual void BatteryFreeSlot4() const;
	IMPORT_C virtual void IndicatorFreeSlot1() const;
	IMPORT_C virtual void IndicatorFreeSlot2() const;
	IMPORT_C virtual void IndicatorFreeSlot3() const;
	IMPORT_C virtual void IndicatorFreeSlot4() const;
	IMPORT_C virtual void ClockFreeSlot1() const;
	IMPORT_C virtual void ClockFreeSlot2() const;
	IMPORT_C virtual void ClockFreeSlot3() const;
	IMPORT_C virtual void ClockFreeSlot4() const;
	  
private:
	CBasicPtrHolder* iBasicPtrHolder;
protected:
	IMPORT_C virtual void ConstructL();
	IMPORT_C virtual void Destruct();
protected:
	void BasicPhoneGet(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes1,TDes8& aDes2) const;
	void BasicPhoneGet(const TInt aIpc,TRequestStatus& aStatus,TDes16& aDes1,TDes16& aDes2) const;
	TInt BasicPhoneCancel(const TInt aIpc,const TInt aIpcToCancel) const;
	};


//
// Async retrieval of network results
//

class CBasicGsmRetrieveDetectedNetworks : public CActive
	{
public:
	IMPORT_C static CBasicGsmRetrieveDetectedNetworks* NewL(RBasicGsmPhone& aPhone);
	IMPORT_C ~CBasicGsmRetrieveDetectedNetworks();
//
// Start the retrieval
//
	IMPORT_C void Start(TRequestStatus& aStatus);
//
// Get the results of the retrieval
//
	IMPORT_C CGsmNetworkList* RetrieveResults() const;

protected:
	CBasicGsmRetrieveDetectedNetworks(RBasicGsmPhone& aPhone);
	void ConstructL();

	virtual void StartPhase2L();
//
// CActive pure virtual functions
// 
	virtual void DoCancel();
private:
	virtual void RunL();

protected:
	enum {
		EIdle,
		ERetrievePhase1,
		ERetrievePhase2
		} iState;

	RBasicGsmPhone& iPhone;
	TRequestStatus* iUserStatus;
	TInt iNumOfEntries;
	RBasicGsmPhone::TGsmNetworkClientId iId;
	CGsmNetworkList* iResults;
	CBufFlat* iResultsBuf;
	TPtr8 iIdPtr;
	TPtr8 iResultsPtr;
	TPtr8 iReadPtr;
	};

class CGsmNetworkList : public CBase
	{
public:
	IMPORT_C static CGsmNetworkList* NewL(TInt aNoOfEntries);
	IMPORT_C ~CGsmNetworkList();
//
// Streaming - for use to pass array over IPC
//
	void InternalizeL(RReadStream& aStream);
	void ExternalizeL(RWriteStream& aStream) const;
	IMPORT_C CBufFlat* StoreLC();
	IMPORT_C void StoreL(TDes8& aDes);
	IMPORT_C void RestoreL(const TDesC8& aBuf);
	IMPORT_C void AddEmptyEntriesL();
//
// Panic constant for browsing list
//
	enum 
		{ KPanicInvalidResultsIndex };
//
// Accessing results
// 
	IMPORT_C TInt GetNextEntry(RBasicGsmPhone::TNetworkInfo& aEntry);
	IMPORT_C TInt GetPreviousEntry(RBasicGsmPhone::TNetworkInfo& aEntry);
	IMPORT_C TInt GetEntry(const TInt aIndex, RBasicGsmPhone::TNetworkInfo& aEntry);
//
// Adding an entry 
//
	IMPORT_C TInt AddEntryL(const RBasicGsmPhone::TNetworkInfo& aEntry);
	IMPORT_C TInt InsertEntryL(const TInt aIndex, const RBasicGsmPhone::TNetworkInfo& aEntry);
	IMPORT_C TInt ChangeEntry(const TInt aIndex, const RBasicGsmPhone::TNetworkInfo& aEntry);
	IMPORT_C TInt DeleteEntry(const TInt aIndex);

//
// Counting entries
//
	IMPORT_C TInt EnumerateEntries(TInt& aCount);
	IMPORT_C TInt GetMaxNumEntries(TInt& aMaxNumber);
	IMPORT_C TInt SetMaxNumEntries(TInt aMaxNumber);
//
// Reset all entries

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -