--- a/devsoundextensions/globalaudiosettings/src/GlobalAudioSettingsImpl.cpp Tue Jul 06 16:02:18 2010 +0300
+++ b/devsoundextensions/globalaudiosettings/src/GlobalAudioSettingsImpl.cpp Wed Aug 18 11:16:18 2010 +0300
@@ -31,6 +31,8 @@
#define PRINT_MESSAGE
#endif // _DEBUG
+const TInt KMaxLength=256;
+_LIT( KNoSound, "z:\\resource\\No_Sound.wav" );
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -51,7 +53,7 @@
//
// -----------------------------------------------------------------------------
//
-EXPORT_C CGlobalAudioSettingsImpl* CGlobalAudioSettingsImpl::NewL(
+CGlobalAudioSettingsImpl* CGlobalAudioSettingsImpl::NewL(
CGlobalAudioSettings &aGlobalAudioSettings,
MAudioSettingsObserver& aAudioSettingsObserver)
{
@@ -93,7 +95,54 @@
iAudioSettingsObserver,
iGlobalAudioSettingsData);
iVibraObserverAO->Subscribe();
-
+ iRingingTypeObserverAO = CRingingTypeObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iRingingTypeObserverAO->Subscribe();
+
+ iMessageToneObserverAO = CMessageToneObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iMessageToneObserverAO->Subscribe();
+ iEmailToneObserverAO = CEmailToneObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iEmailToneObserverAO->Subscribe();
+
+
+ iVideoCallObserverAO = CVideoCallToneObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iVideoCallObserverAO->Subscribe();
+
+ iRingingTone1ObserverAO = CRingingTone1ObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iRingingTone1ObserverAO->Subscribe();
+
+ iRingingTone2ObserverAO = CRingingTone2ObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iRingingTone2ObserverAO->Subscribe();
+
+ iKeypadToneObserverAO = CKeypadToneObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iKeypadToneObserverAO->Subscribe();
+
+ iSilenceModeObserverAO = CSilenceModeObserverAO::NewL(
+ iGlobalAudioSettings,
+ iAudioSettingsObserver,
+ iGlobalAudioSettingsData);
+ iSilenceModeObserverAO->Subscribe();
+
RProperty publicSilenceProperty;
User::LeaveIfError(publicSilenceProperty.Attach(KGASPSUidGlobalAudioSettings, KGASPublicSilence));
User::LeaveIfError(publicSilenceProperty.Get(iGlobalAudioSettingsData.iPublicSilence));
@@ -105,12 +154,20 @@
}
// Destructor
-EXPORT_C CGlobalAudioSettingsImpl::~CGlobalAudioSettingsImpl()
+CGlobalAudioSettingsImpl::~CGlobalAudioSettingsImpl()
{
delete iWarningTonesObserverAO;
delete iMessagingTonesObserverAO;
delete iSilentProfileObserverAO;
delete iVibraObserverAO;
+ delete iRingingTypeObserverAO;
+ delete iMessageToneObserverAO;
+ delete iEmailToneObserverAO;
+ delete iVideoCallObserverAO;
+ delete iRingingTone1ObserverAO;
+ delete iRingingTone2ObserverAO;
+ delete iKeypadToneObserverAO;
+ delete iSilenceModeObserverAO;
delete iCAudioClientsListManagerAO;
delete iPausedClientsListManagerAO;
iAudioClientsListObserverArray.Close();
@@ -121,7 +178,7 @@
// Static function for creating an instance of the EnvironmentalReverb object.
// -----------------------------------------------------------------------------
//
-EXPORT_C TBool CGlobalAudioSettingsImpl::IsWarningTonesEnabled()
+ TBool CGlobalAudioSettingsImpl::IsWarningTonesEnabled()
{
if(iGlobalAudioSettingsData.iWarningTones)
return(ETrue);
@@ -134,7 +191,7 @@
//
// -----------------------------------------------------------------------------
//
-EXPORT_C TBool CGlobalAudioSettingsImpl::IsMessageTonesEnabled()
+TBool CGlobalAudioSettingsImpl::IsMessageTonesEnabled()
{
if(iGlobalAudioSettingsData.iMessageTones)
return(ETrue);
@@ -147,7 +204,7 @@
//
// -----------------------------------------------------------------------------
//
-EXPORT_C TBool CGlobalAudioSettingsImpl::IsSilentProfileEnabled()
+TBool CGlobalAudioSettingsImpl::IsSilentProfileEnabled()
{
if(iGlobalAudioSettingsData.iSilentProfile)
return(ETrue);
@@ -160,7 +217,7 @@
//
// -----------------------------------------------------------------------------
//
-EXPORT_C TBool CGlobalAudioSettingsImpl::IsVibraEnabled()
+ TBool CGlobalAudioSettingsImpl::IsVibraEnabled()
{
if(iGlobalAudioSettingsData.iVibra)
return(ETrue);
@@ -173,7 +230,7 @@
//
// -----------------------------------------------------------------------------
//
-EXPORT_C TBool CGlobalAudioSettingsImpl::IsPublicSilenceEnabled()
+TBool CGlobalAudioSettingsImpl::IsPublicSilenceEnabled()
{
if(iGlobalAudioSettingsData.iPublicSilence)
return(ETrue);
@@ -181,6 +238,90 @@
return(EFalse);
}
+
+
+
+TDesC& CGlobalAudioSettingsImpl::MessageAlertTone()
+ {
+ return *iGlobalAudioSettingsData.iMessageToneName;
+
+ }
+
+TBool CGlobalAudioSettingsImpl::IsMessageAlertToneEnabled()
+ {
+ if(iGlobalAudioSettingsData.iMessageToneName->CompareF(KNoSound)==0)
+ return EFalse;
+ else
+ return ETrue;
+
+ }
+ TDesC& CGlobalAudioSettingsImpl::EmailAlertTone()
+ {
+ return *iGlobalAudioSettingsData.iEmailToneName;
+
+ }
+ TBool CGlobalAudioSettingsImpl::IsEmailAlertToneEnabled()
+ {
+ if(iGlobalAudioSettingsData.iEmailToneName->CompareF(KNoSound)==0)
+ return EFalse;
+ else
+ return ETrue;
+
+ }
+ CGlobalAudioSettings::TGASRingingType CGlobalAudioSettingsImpl::RingingType()
+ {
+ CGlobalAudioSettings::TGASRingingType type;
+ type= ( CGlobalAudioSettings::TGASRingingType)iGlobalAudioSettingsData.iRingingType;
+
+ return type;
+ }
+
+ TDesC& CGlobalAudioSettingsImpl::VideoCallAlertTone()
+ {
+ return *iGlobalAudioSettingsData.iVideoCallToneName;
+ }
+ TBool CGlobalAudioSettingsImpl::IsVideoCallAlertToneEnabled()
+ {
+ if(iGlobalAudioSettingsData.iVideoCallToneName->CompareF(KNoSound)==0)
+ return EFalse;
+ else
+ return ETrue;
+
+ }
+ TDesC& CGlobalAudioSettingsImpl::RingingAlertTone1()
+ {
+ return *iGlobalAudioSettingsData.iRingingTone1Name;
+ }
+ TBool CGlobalAudioSettingsImpl::IsRingingAlertTone1Enabled()
+ {
+ if(iGlobalAudioSettingsData.iRingingTone1Name->CompareF(KNoSound)==0)
+ return EFalse;
+ else
+ return ETrue;
+
+ }
+ TDesC& CGlobalAudioSettingsImpl::RingingAlertTone2()
+ {
+ return *iGlobalAudioSettingsData.iRingingTone2Name;
+ }
+
+ TBool CGlobalAudioSettingsImpl::IsRingingAlertTone2Enabled()
+ {
+ if(iGlobalAudioSettingsData.iRingingTone2Name->CompareF(KNoSound)==0)
+ return EFalse;
+ else
+ return ETrue;
+
+ }
+ CGlobalAudioSettings::TGASKeypadVolume CGlobalAudioSettingsImpl::KeyPadToneVolume()
+ {
+ return (CGlobalAudioSettings::TGASKeypadVolume)iGlobalAudioSettingsData.iKeyPadVolume;
+ }
+
+ TBool CGlobalAudioSettingsImpl::IsSilenceModeEnabled()
+ {
+ return iGlobalAudioSettingsData.iSilenceMode;
+ }
// -----------------------------------------------------------------------------
// CGlobalAudioSettingsImpl::RegisterAudioClientsListObserver
//
@@ -319,7 +460,8 @@
status = iWarningTonesProperty.Get(iGlobalAudioSettingsData.iWarningTones);
if(status == KErrNone)
{
- iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, MAudioSettingsObserver::KWarningTones );
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASWarningTones;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
}
#ifdef PRINT_MESSAGE
else
@@ -402,7 +544,8 @@
status = iMessagingTonesProperty.Get(iGlobalAudioSettingsData.iMessageTones);
if(status == KErrNone)
{
- iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, MAudioSettingsObserver::KMessageTones);
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASMessageTones;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
}
#ifdef PRINT_MESSAGE
else
@@ -485,7 +628,8 @@
status = iSilentProfileProperty.Get(iGlobalAudioSettingsData.iSilentProfile);
if(status == KErrNone)
{
- iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, MAudioSettingsObserver::KSilentProfile);
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASSilentProfile;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
}
#ifdef PRINT_MESSAGE
else
@@ -569,7 +713,8 @@
status = iVibraProperty.Get(iGlobalAudioSettingsData.iVibra);
if( status == KErrNone)
{
- iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, MAudioSettingsObserver::KVibra);
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASVibra;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings,id);
}
#ifdef PRINT_MESSAGE
else
@@ -590,4 +735,787 @@
return KErrNone;
}
+//////////////////////////////////////////////////////////////////////
+// CRingingTypeObserverAO //
+//////////////////////////////////////////////////////////////////////
+CRingingTypeObserverAO::CRingingTypeObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CRingingTypeObserverAO::~CRingingTypeObserverAO()
+ {
+ Cancel();
+ iRingingTypeProperty.Close();
+ }
+
+CRingingTypeObserverAO* CRingingTypeObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CRingingTypeObserverAO* self = new (ELeave) CRingingTypeObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CRingingTypeObserverAO::ConstructL()
+ {
+ User::LeaveIfError(iRingingTypeProperty.Attach(KGASPSUidGlobalAudioSettings, KGASRingingType));
+ TInt value=KErrNone;
+ User::LeaveIfError(iRingingTypeProperty.Get(value));
+ iGlobalAudioSettingsData.iRingingType=(CGlobalAudioSettings::TGASRingingType)value;
+
+ }
+
+void CRingingTypeObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iRingingTypeProperty.Subscribe(iStatus);
+ }
+ }
+
+void CRingingTypeObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CRingingTypeObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+ TInt value=KErrNone;
+ status=(iRingingTypeProperty.Get(value));
+ iGlobalAudioSettingsData.iRingingType=(CGlobalAudioSettings::TGASRingingType)value;
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASRingingType;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CRingingTypeObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CRingingTypeObserverAO::DoCancel()
+ {
+ iRingingTypeProperty.Cancel();
+ }
+
+TInt CRingingTypeObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+//////////////////////////////////////////////////////////////////////
+// CMessageToneObserverAO //
+//////////////////////////////////////////////////////////////////////
+CMessageToneObserverAO::CMessageToneObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CMessageToneObserverAO::~CMessageToneObserverAO()
+ {
+ Cancel();
+ iMessageToneNameProperty.Close();
+ if( iGlobalAudioSettingsData.iMessageToneName)
+ {
+ delete iGlobalAudioSettingsData.iMessageToneName;
+ iGlobalAudioSettingsData.iMessageToneName=NULL;
+ }
+ }
+
+CMessageToneObserverAO* CMessageToneObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CMessageToneObserverAO* self = new (ELeave) CMessageToneObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CMessageToneObserverAO::ConstructL()
+ {
+ iGlobalAudioSettingsData.iMessageToneName=HBufC::NewL(KMaxLength);
+ User::LeaveIfError(iMessageToneNameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASMessageToneName));
+ TPtr16 ptr=iGlobalAudioSettingsData.iMessageToneName->Des();
+ User::LeaveIfError(iMessageToneNameProperty.Get(ptr));
+
+ }
+
+void CMessageToneObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iMessageToneNameProperty.Subscribe(iStatus);
+ }
+ }
+
+void CMessageToneObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CMessageToneObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+ delete iGlobalAudioSettingsData.iMessageToneName;
+ iGlobalAudioSettingsData.iMessageToneName=NULL;
+ iGlobalAudioSettingsData.iMessageToneName=HBufC::NewL(KMaxLength);
+ TPtr16 ptr=iGlobalAudioSettingsData.iMessageToneName->Des();
+ status = iMessageToneNameProperty.Get(ptr);
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASMessageToneName;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CMessageToneObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CMessageToneObserverAO::DoCancel()
+ {
+ iMessageToneNameProperty.Cancel();
+ }
+
+TInt CMessageToneObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+
+/////////////////////////////////////////////////////////////////////
+// CEmailToneObserverAO //
+//////////////////////////////////////////////////////////////////////
+CEmailToneObserverAO::CEmailToneObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CEmailToneObserverAO::~CEmailToneObserverAO()
+ {
+ Cancel();
+ iEmailToneNameProperty.Close();
+
+ if(iGlobalAudioSettingsData.iEmailToneName)
+ {
+ delete iGlobalAudioSettingsData.iEmailToneName;
+ iGlobalAudioSettingsData.iEmailToneName=NULL;
+ }
+
+ }
+
+CEmailToneObserverAO* CEmailToneObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CEmailToneObserverAO* self = new (ELeave) CEmailToneObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CEmailToneObserverAO::ConstructL()
+ {
+
+ iGlobalAudioSettingsData.iEmailToneName=HBufC::NewL(KMaxLength);
+ User::LeaveIfError(iEmailToneNameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASEmailToneName));
+ TPtr16 ptr=iGlobalAudioSettingsData.iEmailToneName->Des();
+ User::LeaveIfError(iEmailToneNameProperty.Get(ptr));
+
+ }
+
+void CEmailToneObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iEmailToneNameProperty.Subscribe(iStatus);
+ }
+ }
+
+void CEmailToneObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CEmailToneObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+ delete iGlobalAudioSettingsData.iEmailToneName;
+ iGlobalAudioSettingsData.iEmailToneName=NULL;
+ iGlobalAudioSettingsData.iEmailToneName=HBufC::NewL(KMaxLength);
+ TPtr16 ptr=iGlobalAudioSettingsData.iEmailToneName->Des();
+ status = iEmailToneNameProperty.Get(ptr);
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASEmailToneName;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CEmailToneObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CEmailToneObserverAO::DoCancel()
+ {
+ iEmailToneNameProperty.Cancel();
+ }
+
+TInt CEmailToneObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+
+/////////////////////////////////////////////////////////////////////
+// CVideoCallToneObserverAO //
+//////////////////////////////////////////////////////////////////////
+CVideoCallToneObserverAO::CVideoCallToneObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CVideoCallToneObserverAO::~CVideoCallToneObserverAO()
+ {
+ Cancel();
+ iVideoCallToneNameProperty.Close();
+ if( iGlobalAudioSettingsData.iVideoCallToneName)
+ {
+ delete iGlobalAudioSettingsData.iVideoCallToneName;
+ iGlobalAudioSettingsData.iVideoCallToneName=NULL;
+ }
+
+
+ }
+
+CVideoCallToneObserverAO* CVideoCallToneObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CVideoCallToneObserverAO* self = new (ELeave) CVideoCallToneObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CVideoCallToneObserverAO::ConstructL()
+ {
+
+ iGlobalAudioSettingsData.iVideoCallToneName=HBufC::NewL(KMaxLength);
+ User::LeaveIfError(iVideoCallToneNameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASVideoCallToneName));
+ TPtr16 ptr=iGlobalAudioSettingsData.iVideoCallToneName->Des();
+ User::LeaveIfError(iVideoCallToneNameProperty.Get(ptr));
+
+ }
+
+void CVideoCallToneObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iVideoCallToneNameProperty.Subscribe(iStatus);
+ }
+ }
+
+void CVideoCallToneObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CVideocallToneObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+ delete iGlobalAudioSettingsData.iVideoCallToneName;
+ iGlobalAudioSettingsData.iVideoCallToneName=NULL;
+ iGlobalAudioSettingsData.iVideoCallToneName=HBufC::NewL(KMaxLength);
+ TPtr16 ptr=iGlobalAudioSettingsData.iVideoCallToneName->Des();
+ status = iVideoCallToneNameProperty.Get(ptr);
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASVideoCallToneName;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CVideoCallToneObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CVideoCallToneObserverAO::DoCancel()
+ {
+ iVideoCallToneNameProperty.Cancel();
+ }
+
+TInt CVideoCallToneObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+/////////////////////////////////////////////////////////////////////
+// CRingingToneObserverAO //
+//////////////////////////////////////////////////////////////////////
+CRingingTone1ObserverAO::CRingingTone1ObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CRingingTone1ObserverAO::~CRingingTone1ObserverAO()
+ {
+ Cancel();
+ iRingingTone1NameProperty.Close();
+ if( iGlobalAudioSettingsData.iRingingTone1Name)
+ {
+ delete iGlobalAudioSettingsData.iRingingTone1Name;
+ iGlobalAudioSettingsData.iRingingTone1Name=NULL;
+ }
+ }
+
+CRingingTone1ObserverAO* CRingingTone1ObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CRingingTone1ObserverAO* self = new (ELeave) CRingingTone1ObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CRingingTone1ObserverAO::ConstructL()
+ {
+
+ iGlobalAudioSettingsData.iRingingTone1Name=HBufC::NewL(KMaxLength);
+ User::LeaveIfError(iRingingTone1NameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASRingingTone1Name));
+ TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone1Name->Des();
+ User::LeaveIfError(iRingingTone1NameProperty.Get(ptr));
+
+ }
+
+void CRingingTone1ObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iRingingTone1NameProperty.Subscribe(iStatus);
+ }
+ }
+
+void CRingingTone1ObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CRingingTone1ObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+ delete iGlobalAudioSettingsData.iRingingTone1Name;
+ iGlobalAudioSettingsData.iRingingTone1Name=NULL;
+ iGlobalAudioSettingsData.iRingingTone1Name=HBufC::NewL(KMaxLength);
+ TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone1Name->Des();
+ status = iRingingTone1NameProperty.Get(ptr);
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASRingingTone1Name;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CRingingToneObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CRingingTone1ObserverAO::DoCancel()
+ {
+ iRingingTone1NameProperty.Cancel();
+ }
+
+TInt CRingingTone1ObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+////////////////////////////////////////////////////////////////////
+// CRingingToneObserverAO //
+//////////////////////////////////////////////////////////////////////
+CRingingTone2ObserverAO::CRingingTone2ObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CRingingTone2ObserverAO::~CRingingTone2ObserverAO()
+ {
+ Cancel();
+ iRingingTone2NameProperty.Close();
+ if(iGlobalAudioSettingsData.iRingingTone2Name)
+ {
+ delete iGlobalAudioSettingsData.iRingingTone2Name;
+ iGlobalAudioSettingsData.iRingingTone2Name=NULL;
+ }
+
+
+ }
+
+CRingingTone2ObserverAO* CRingingTone2ObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CRingingTone2ObserverAO* self = new (ELeave) CRingingTone2ObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CRingingTone2ObserverAO::ConstructL()
+ {
+
+ iGlobalAudioSettingsData.iRingingTone2Name=HBufC::NewL(KMaxLength);
+ User::LeaveIfError(iRingingTone2NameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASRingingTone2Name));
+ TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone2Name->Des();
+ User::LeaveIfError(iRingingTone2NameProperty.Get(ptr));
+
+ }
+
+void CRingingTone2ObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iRingingTone2NameProperty.Subscribe(iStatus);
+ }
+ }
+
+void CRingingTone2ObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CRingingTone2ObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+ delete iGlobalAudioSettingsData.iRingingTone2Name;
+ iGlobalAudioSettingsData.iRingingTone2Name=NULL;
+ iGlobalAudioSettingsData.iRingingTone2Name=HBufC::NewL(KMaxLength);
+ TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone2Name->Des();
+ status = iRingingTone2NameProperty.Get(ptr);
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASRingingTone2Name;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CRingingToneObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CRingingTone2ObserverAO::DoCancel()
+ {
+ iRingingTone2NameProperty.Cancel();
+ }
+
+TInt CRingingTone2ObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+/////////////////////////////////////////////////////////////////////
+// CKeypadToneObserverAO //
+//////////////////////////////////////////////////////////////////////
+CKeypadToneObserverAO::CKeypadToneObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CKeypadToneObserverAO::~CKeypadToneObserverAO()
+ {
+ Cancel();
+ iKeypadToneVolumeProperty.Close();
+ }
+
+CKeypadToneObserverAO* CKeypadToneObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CKeypadToneObserverAO* self = new (ELeave) CKeypadToneObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CKeypadToneObserverAO::ConstructL()
+ {
+
+
+ User::LeaveIfError(iKeypadToneVolumeProperty.Attach(KGASPSUidGlobalAudioSettings, KGASKeypadToneVolume));
+ TInt value=KErrNone;
+ User::LeaveIfError(iKeypadToneVolumeProperty.Get(value));
+ iGlobalAudioSettingsData.iKeyPadVolume=(CGlobalAudioSettings::TGASKeypadVolume)value;
+ }
+
+void CKeypadToneObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iKeypadToneVolumeProperty.Subscribe(iStatus);
+ }
+ }
+
+void CKeypadToneObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CKeypadToneObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+ TInt value=KErrNone;
+ status=iKeypadToneVolumeProperty.Get(value);
+ iGlobalAudioSettingsData.iKeyPadVolume=(CGlobalAudioSettings::TGASKeypadVolume)value;
+
+
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASKeyPadVolume;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CKeypadToneObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CKeypadToneObserverAO::DoCancel()
+ {
+ iKeypadToneVolumeProperty.Cancel();
+ }
+
+TInt CKeypadToneObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
+
+/////////////////////////////////////////////////////////////////////
+// CSilenceModeObserverAO //
+//////////////////////////////////////////////////////////////////////
+CSilenceModeObserverAO::CSilenceModeObserverAO(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+:CActive(EPriorityStandard),
+ iGlobalAudioSettings(aGlobalAudioSettings),
+ iAudioSettingsObserver(aAudioSettingsObserver),
+ iGlobalAudioSettingsData(aGlobalAudioSettingsData)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+CSilenceModeObserverAO::~CSilenceModeObserverAO()
+ {
+ Cancel();
+ iSilenceModeProperty.Close();
+ }
+
+CSilenceModeObserverAO* CSilenceModeObserverAO::NewL(
+ CGlobalAudioSettings &aGlobalAudioSettings,
+ MAudioSettingsObserver& aAudioSettingsObserver,
+ TGlobalAudioSettings& aGlobalAudioSettingsData)
+ {
+ CSilenceModeObserverAO* self = new (ELeave) CSilenceModeObserverAO(
+ aGlobalAudioSettings,
+ aAudioSettingsObserver,
+ aGlobalAudioSettingsData);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+void CSilenceModeObserverAO::ConstructL()
+ {
+
+
+ User::LeaveIfError(iSilenceModeProperty.Attach(KGASPSUidGlobalAudioSettings, KGASSilenceMode));
+
+ User::LeaveIfError(iSilenceModeProperty.Get(iGlobalAudioSettingsData.iSilenceMode));
+ RDebug::Printf("in constructL,silence mode %d",iGlobalAudioSettingsData.iSilenceMode);
+
+ }
+
+void CSilenceModeObserverAO::Subscribe()
+ {
+ if (!IsActive())
+ {
+ SetActive();
+
+ iSilenceModeProperty.Subscribe(iStatus);
+ }
+ }
+
+void CSilenceModeObserverAO::RunL()
+ {
+ TInt status(iStatus.Int());
+#ifdef PRINT_MESSAGE
+ RDebug::Print(_L(" CSilenceModeObserverAO::RunL:iStatus[%d]"), status);
+#endif // PRINT_MESSAGE
+ if ( status == KErrNone )
+ {
+ Subscribe();
+
+ status=iSilenceModeProperty.Get( iGlobalAudioSettingsData.iSilenceMode);
+ RDebug::Printf("value of silent mode :%d",iGlobalAudioSettingsData.iSilenceMode);
+
+
+ if( status == KErrNone)
+ {
+ MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASSilenceMode;
+ iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
+ }
+#ifdef PRINT_MESSAGE
+ else
+ {
+ RDebug::Print(_L(" CKeypadToneObserverAO::RunL:Property.Get Error[%d]"), status);
+ }
+#endif // PRINT_MESSAGE
+ }
+ }
+
+void CSilenceModeObserverAO::DoCancel()
+ {
+ iSilenceModeProperty.Cancel();
+ }
+
+TInt CSilenceModeObserverAO::RunError(TInt /*aError*/)
+ {
+ return KErrNone;
+ }
+
//End of file