devsoundextensions/globalaudiosettings/src/GlobalAudioSettingsImpl.cpp
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
* All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
* Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
* Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
* Description:   Implementation of the Phone Profile Settings API
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
// INCLUDE FILES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include "GlobalAudioSettingsImpl.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include <e32std.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include <GlobalAudioSettingsPSKeys.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include <MGlobalAudioSettingsObserver.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include <centralrepository.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
#include "AudioClientsListManagerAO.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
#include <AudioClientsListPSKeys.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
#ifdef _DEBUG
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
#define PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
#endif // _DEBUG
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
const TInt KMaxLength=256;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
_LIT( KNoSound, "z:\\resource\\No_Sound.wav" );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
// ============================ MEMBER FUNCTIONS ===============================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
// CGlobalAudioSettingsImpl::NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
CGlobalAudioSettingsImpl::CGlobalAudioSettingsImpl(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
                            MAudioSettingsObserver& aAudioSettingsObserver)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
:iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
 iAudioSettingsObserver(aAudioSettingsObserver)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
// CGlobalAudioSettingsImpl::NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
CGlobalAudioSettingsImpl* CGlobalAudioSettingsImpl::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
                                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
                                        MAudioSettingsObserver& aAudioSettingsObserver)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	CGlobalAudioSettingsImpl* self = new (ELeave) CGlobalAudioSettingsImpl(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	                                    aGlobalAudioSettings,aAudioSettingsObserver);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
    CleanupStack::PushL( self );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
    CleanupStack::Pop( self );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
// CGlobalAudioSettingsImpl::ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
void CGlobalAudioSettingsImpl::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
    CreatePropertiesL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	iWarningTonesObserverAO = CWarningTonesObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
                	                                        iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
                	                                        iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
                	                                        iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
	iWarningTonesObserverAO->Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
	iMessagingTonesObserverAO = CMessagingTonesObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
                                        	                iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
                                        	                iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
                                        	                iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
	iMessagingTonesObserverAO->Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
	iSilentProfileObserverAO = CSilentProfileObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
                                        	                iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
                                        	                iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
                                        	                iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
	iSilentProfileObserverAO->Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
	iVibraObserverAO = CVibraObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
                        	                iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
                        	                iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
                        	                iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
	iVibraObserverAO->Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
	iRingingTypeObserverAO = CRingingTypeObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
	                                            iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
	                                            iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	                                            iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
    iRingingTypeObserverAO->Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
     
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
	iMessageToneObserverAO = CMessageToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
	                                            iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	                                            iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	                                            iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
	iMessageToneObserverAO->Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	iEmailToneObserverAO = CEmailToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	                                                iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
	                                                iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	                                                iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	iEmailToneObserverAO->Subscribe();   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
    iVideoCallObserverAO = CVideoCallToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
                                                            iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
                                                            iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
                                                            iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
    iVideoCallObserverAO->Subscribe();  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
    iRingingTone1ObserverAO = CRingingTone1ObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
                                                                    iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
                                                                    iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
                                                                    iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
    iRingingTone1ObserverAO->Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
    iRingingTone2ObserverAO = CRingingTone2ObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
                                                                            iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
                                                                            iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
                                                                            iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
    iRingingTone2ObserverAO->Subscribe();  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
    iKeypadToneObserverAO = CKeypadToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
                                                                            iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
                                                                            iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
                                                                            iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
    iKeypadToneObserverAO->Subscribe();  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
                
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
    iSilenceModeObserverAO = CSilenceModeObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
                                                                                iGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
                                                                                iAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
                                                                                iGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
     iSilenceModeObserverAO->Subscribe();  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
	                    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
    RProperty publicSilenceProperty;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
	User::LeaveIfError(publicSilenceProperty.Attach(KGASPSUidGlobalAudioSettings, KGASPublicSilence));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	User::LeaveIfError(publicSilenceProperty.Get(iGlobalAudioSettingsData.iPublicSilence));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	publicSilenceProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
    iCAudioClientsListManagerAO = CAudioClientsListManagerAO::NewL( iGlobalAudioSettings,iAudioClientsListObserverArray,KAudioPolicyAudioClients);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
            
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
    iPausedClientsListManagerAO = CAudioClientsListManagerAO::NewL( iGlobalAudioSettings,iAudioClientsListObserverArray,KAudioPolicyApplicationAudioStatePaused );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
// Destructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
CGlobalAudioSettingsImpl::~CGlobalAudioSettingsImpl()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
    {   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
        DeleteProperties();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
        delete iWarningTonesObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
        delete iMessagingTonesObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
        delete iSilentProfileObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
        delete iVibraObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
        delete iRingingTypeObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
        delete iMessageToneObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
        delete iEmailToneObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
        delete iVideoCallObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
        delete iRingingTone1ObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
        delete iRingingTone2ObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
        delete iKeypadToneObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
        delete iSilenceModeObserverAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
        delete iCAudioClientsListManagerAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
        delete iPausedClientsListManagerAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
        iAudioClientsListObserverArray.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
// CGlobalAudioSettingsImpl::NewL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
// Static function for creating an instance of the EnvironmentalReverb object.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
 TBool CGlobalAudioSettingsImpl::IsWarningTonesEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	if(iGlobalAudioSettingsData.iWarningTones)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	    return(ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	    return(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
// CGlobalAudioSettingsImpl::IsMessageTonesEnabled
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
TBool CGlobalAudioSettingsImpl::IsMessageTonesEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	if(iGlobalAudioSettingsData.iMessageTones)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	    return(ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
	    return(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
// CGlobalAudioSettingsImpl::IsSilentProfileEnabled
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
TBool CGlobalAudioSettingsImpl::IsSilentProfileEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
	if(iGlobalAudioSettingsData.iSilentProfile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
	    return(ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	    return(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
// CGlobalAudioSettingsImpl::IsVibraEnabled
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
 TBool CGlobalAudioSettingsImpl::IsVibraEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
	if(iGlobalAudioSettingsData.iVibra)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	    return(ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
	    return(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
// CGlobalAudioSettingsImpl::IsPublicSilenceEnabled
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
TBool CGlobalAudioSettingsImpl::IsPublicSilenceEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
	if(iGlobalAudioSettingsData.iPublicSilence)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
	    return(ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	    return(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
TDesC& CGlobalAudioSettingsImpl::MessageAlertTone()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
     return *iGlobalAudioSettingsData.iMessageToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
TBool CGlobalAudioSettingsImpl::IsMessageAlertToneEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
     if(iGlobalAudioSettingsData.iMessageToneName->CompareF(KNoSound)==0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
         return EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
     else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
         return ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
 TDesC& CGlobalAudioSettingsImpl::EmailAlertTone()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
    return *iGlobalAudioSettingsData.iEmailToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
 TBool CGlobalAudioSettingsImpl::IsEmailAlertToneEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
     {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
      if(iGlobalAudioSettingsData.iEmailToneName->CompareF(KNoSound)==0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
          return EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
      else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
          return ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
     
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
     }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
  CGlobalAudioSettings::TGASRingingType CGlobalAudioSettingsImpl::RingingType()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
    CGlobalAudioSettings::TGASRingingType type;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
   type= ( CGlobalAudioSettings::TGASRingingType)iGlobalAudioSettingsData.iRingingType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
      return type;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
  TDesC& CGlobalAudioSettingsImpl::VideoCallAlertTone()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
      {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
      return *iGlobalAudioSettingsData.iVideoCallToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
      }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
  TBool CGlobalAudioSettingsImpl::IsVideoCallAlertToneEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
      {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
       if(iGlobalAudioSettingsData.iVideoCallToneName->CompareF(KNoSound)==0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
           return EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
       else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
           return ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
      
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
      }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
  TDesC& CGlobalAudioSettingsImpl::RingingAlertTone1()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
     {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
     return *iGlobalAudioSettingsData.iRingingTone1Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
     }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
  TBool CGlobalAudioSettingsImpl::IsRingingAlertTone1Enabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
      {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
       if(iGlobalAudioSettingsData.iRingingTone1Name->CompareF(KNoSound)==0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
           return EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
       else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
           return ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
      
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
      }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
  TDesC& CGlobalAudioSettingsImpl::RingingAlertTone2()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
     {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
     return *iGlobalAudioSettingsData.iRingingTone2Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
     }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
  TBool CGlobalAudioSettingsImpl::IsRingingAlertTone2Enabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
      {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
       if(iGlobalAudioSettingsData.iRingingTone2Name->CompareF(KNoSound)==0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
           return EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
       else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
           return ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
      
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
      }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
 CGlobalAudioSettings::TGASKeypadVolume CGlobalAudioSettingsImpl::KeyPadToneVolume()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
     {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
     return (CGlobalAudioSettings::TGASKeypadVolume)iGlobalAudioSettingsData.iKeyPadVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
     }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
 TBool CGlobalAudioSettingsImpl::IsSilenceModeEnabled()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
     {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
      return iGlobalAudioSettingsData.iSilenceMode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
     }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
// CGlobalAudioSettingsImpl::RegisterAudioClientsListObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
TInt CGlobalAudioSettingsImpl::RegisterAudioClientsListObserver(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
                            MAudioClientsListObserver& aObserver )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
	TInt status(KErrAlreadyExists);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
	if ( iAudioClientsListObserverArray.Find( &aObserver ) == KErrNotFound )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	    status = iAudioClientsListObserverArray.Append( &aObserver);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	    if ( ( status == KErrNone ) && (iAudioClientsListObserverArray.Count() == 1 ) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
	        {  	       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
	 	    iCAudioClientsListManagerAO->MonitorStart();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
	        iPausedClientsListManagerAO->MonitorStart();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
	        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
	return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
// CGlobalAudioSettingsImpl::UnregisterAudioClientsListObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
TInt CGlobalAudioSettingsImpl::UnregisterAudioClientsListObserver(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
                            MAudioClientsListObserver& aObserver)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
	TInt status(KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
	status = iAudioClientsListObserverArray.Find( &aObserver );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
	if ( status != KErrNotFound )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
	    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
	    iAudioClientsListObserverArray.Remove( status );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
	    if ( iAudioClientsListObserverArray.Count() == 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	        iCAudioClientsListManagerAO->MonitorStop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	        iPausedClientsListManagerAO->MonitorStop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
	        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
	return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
// CGlobalAudioSettingsImpl::GetAudioClientsList
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
TInt CGlobalAudioSettingsImpl::GetAudioClientsList(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
                        CGlobalAudioSettings::TAudioClientListType aType,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
                        RArray<TProcessId>& aList )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
	TInt status(KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
	switch(aType)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
		case CGlobalAudioSettings::EActiveAudioClients:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
			status = iCAudioClientsListManagerAO->GetAudioClientsList( aType, aList );	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
        case CGlobalAudioSettings::EPausedAudioClients:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
        	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
        	status = iPausedClientsListManagerAO->GetAudioClientsList( aType, aList );     	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
        	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
        	break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
		default:		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
	 return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
void CGlobalAudioSettingsImpl::CreatePropertiesL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
    TSecurityPolicy read = TSecurityPolicy(ECapabilityWriteDeviceData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
        TSecurityPolicy write = TSecurityPolicy(ECapabilityMultimediaDD);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
        RProperty property;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
    TInt err = RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
                                           KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
                                           KGASWarningTones,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
                                           RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
                                           read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
                                           write);   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
    if(err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
    iPropertiesCreated=ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
                                        KGASMessageTones,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
                                        RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
    User::LeaveIfError(RProperty::Define( 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
                                        KGASSilentProfile,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
                                        RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
                                       KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
                                       KGASVibra,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
                                       RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
                                       read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
                                       write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
                                        KGASPublicSilence,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
                                        RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
                                        KGASRingingType,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
                                        RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
                                        KGASMessageToneName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
                                        RProperty::EText,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
    CleanupClosePushL(property);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
    User::LeaveIfError(property.Attach(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
                                                    KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
                                                    KGASMessageToneName));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
        User::LeaveIfError(property.Set(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
                                                    KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
                                                    KGASMessageToneName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
                                                    KNullDesC));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
        CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
        property.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
                                       KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
                                       KGASEmailToneName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
                                       RProperty::EText,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
                                       read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
                                       write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
    CleanupClosePushL(property);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
    User::LeaveIfError(property.Attach(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
                                                  KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
                                                  KGASEmailToneName));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
       User::LeaveIfError(property.Set(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
                                                  KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
                                                  KGASEmailToneName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
                                                  KNullDesC));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
       CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
    property.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
                                        KGASVideoCallToneName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
                                        RProperty::EText,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
    CleanupClosePushL(property);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
    User::LeaveIfError(property.Attach(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
                                                  KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
                                                  KGASVideoCallToneName));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
       User::LeaveIfError(property.Set(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
                                                  KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
                                                  KGASVideoCallToneName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
                                                  KNullDesC));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
       CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
       property.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
                                        KGASRingingTone1Name,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
                                        RProperty::EText,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
    CleanupClosePushL(property);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
    User::LeaveIfError(property.Attach(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
                                                  KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
                                                  KGASRingingTone1Name));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
       User::LeaveIfError(property.Set(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
                                                  KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
                                                  KGASRingingTone1Name,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
                                                  KNullDesC));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
       CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
       property.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
                                        KGASRingingTone2Name,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
                                        RProperty::EText,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
    CleanupClosePushL(property);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
    User::LeaveIfError(property.Attach(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
                                                   KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
                                                   KGASRingingTone2Name));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
        User::LeaveIfError(property.Set(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
                                                   KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
                                                   KGASRingingTone2Name,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
                                                   KNullDesC));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
        CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
        property.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
                                        KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
                                        KGASKeypadToneVolume,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
                                        RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
                                        read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
                                        write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
    User::LeaveIfError(RProperty::Define(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
                                            KGASPSUidGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
                                            KGASSilenceMode,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
                                            RProperty::EInt,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
                                            read,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
                                            write));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
    else if(err != KErrAlreadyExists)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
           
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
            User::Leave(err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
         
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
          return;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
void CGlobalAudioSettingsImpl::DeleteProperties()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
       if(iPropertiesCreated)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
           {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
       RProperty::Delete(KGASPSUidGlobalAudioSettings, KGASWarningTones);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
        RProperty::Delete(KGASPSUidGlobalAudioSettings, KGASMessageTones);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
        RProperty::Delete(KGASPSUidGlobalAudioSettings, KGASSilentProfile);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
        RProperty::Delete(KGASPSUidGlobalAudioSettings, KGASVibra);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
        RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASRingingType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
        RProperty::Delete(KGASPSUidGlobalAudioSettings, KGASMessageToneName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
        RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASEmailToneName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
        RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASVideoCallToneName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
        RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASRingingTone1Name);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
        RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASRingingTone2Name);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
        RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASKeypadToneVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
        RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASSilenceMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
        iPropertiesCreated = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
//	CWarningTonesObserverAO											//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
CWarningTonesObserverAO::CWarningTonesObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
	CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
CWarningTonesObserverAO::~CWarningTonesObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
	Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
	iWarningTonesProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
CWarningTonesObserverAO* CWarningTonesObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
	CWarningTonesObserverAO* self = new (ELeave) CWarningTonesObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	                                                    aGlobalAudioSettings, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	                                                    aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
	                                                    aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
void CWarningTonesObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
	User::LeaveIfError(iWarningTonesProperty.Attach(KGASPSUidGlobalAudioSettings, KGASWarningTones));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
    User::LeaveIfError(iWarningTonesProperty.Get(iGlobalAudioSettingsData.iWarningTones));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
void CWarningTonesObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
	if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
    	SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
    	iWarningTonesProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
void CWarningTonesObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
	TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
    RDebug::Print(_L(" CWarningTonesObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
        status = iWarningTonesProperty.Get(iGlobalAudioSettingsData.iWarningTones);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
        if(status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
        MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASWarningTones;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
            RDebug::Print(_L(" CWarningTonesObserverAO::RunL:Property.Get Error[%d]"), status);            
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
void CWarningTonesObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
	iWarningTonesProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
TInt CWarningTonesObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
	return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
//	CMessagingTonesObserverAO											//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
CMessagingTonesObserverAO::CMessagingTonesObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
                                CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
                                MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
                                TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
	CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
CMessagingTonesObserverAO::~CMessagingTonesObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
	Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
	iMessagingTonesProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
CMessagingTonesObserverAO* CMessagingTonesObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
                                               CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
                                               MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
                                               TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	CMessagingTonesObserverAO* self = new (ELeave) CMessagingTonesObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
                    	                        aGlobalAudioSettings, aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
                    	                        aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
	CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
void CMessagingTonesObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
	User::LeaveIfError(iMessagingTonesProperty.Attach(KGASPSUidGlobalAudioSettings, KGASMessageTones));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
	User::LeaveIfError(iMessagingTonesProperty.Get(iGlobalAudioSettingsData.iMessageTones));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
void CMessagingTonesObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
	if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
	    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
    	SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
    	iMessagingTonesProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
void CMessagingTonesObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
    RDebug::Print(_L(" CMessagingTonesObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
        status = iMessagingTonesProperty.Get(iGlobalAudioSettingsData.iMessageTones);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
        if(status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
        MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASMessageTones;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
            RDebug::Print(_L(" CMessagingTonesObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
void CMessagingTonesObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
	iMessagingTonesProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
TInt CMessagingTonesObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
	return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
//	CSilentProfileObserverAO											//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
CSilentProfileObserverAO::CSilentProfileObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
                                CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
                                MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
                                TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
	CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
CSilentProfileObserverAO::~CSilentProfileObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
	Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
	iSilentProfileProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
CSilentProfileObserverAO* CSilentProfileObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
                                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
                                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
                                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	CSilentProfileObserverAO* self = new (ELeave) CSilentProfileObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
                    	                        aGlobalAudioSettings, aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
                    	                        aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
	CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
void CSilentProfileObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
	User::LeaveIfError(iSilentProfileProperty.Attach(KGASPSUidGlobalAudioSettings, KGASSilentProfile));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
	User::LeaveIfError(iSilentProfileProperty.Get(iGlobalAudioSettingsData.iSilentProfile));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
void CSilentProfileObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
	if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
	    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
    	SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
    	iSilentProfileProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
void CSilentProfileObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
	TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
    RDebug::Print(_L(" CSilentProfileObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
        status = iSilentProfileProperty.Get(iGlobalAudioSettingsData.iSilentProfile);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
        if(status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
        MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASSilentProfile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
            RDebug::Print(_L(" CSilentProfileObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
void CSilentProfileObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
	iSilentProfileProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
TInt CSilentProfileObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
	return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
//	CVibraObserverAO											    //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
CVibraObserverAO::CVibraObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
	CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
CVibraObserverAO::~CVibraObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
	Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
	iVibraProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
CVibraObserverAO* CVibraObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
	CVibraObserverAO* self = new (ELeave) CVibraObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
                	                        aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
                	                        aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
                	                        aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
	CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
void CVibraObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
	User::LeaveIfError(iVibraProperty.Attach(KGASPSUidGlobalAudioSettings, KGASVibra));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
	User::LeaveIfError(iVibraProperty.Get(iGlobalAudioSettingsData.iVibra));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
void CVibraObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
	if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
	    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
    	SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
    	iVibraProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
void CVibraObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
	TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
    RDebug::Print(_L(" CVibraObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
        status = iVibraProperty.Get(iGlobalAudioSettingsData.iVibra);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
        MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASVibra;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings,id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
            RDebug::Print(_L(" CVibraObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
void CVibraObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
	iVibraProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
TInt CVibraObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
	return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
//  CRingingTypeObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
CRingingTypeObserverAO::CRingingTypeObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
CRingingTypeObserverAO::~CRingingTypeObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
    iRingingTypeProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
CRingingTypeObserverAO* CRingingTypeObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
    CRingingTypeObserverAO* self = new (ELeave) CRingingTypeObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
void CRingingTypeObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
    User::LeaveIfError(iRingingTypeProperty.Attach(KGASPSUidGlobalAudioSettings, KGASRingingType));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
    TInt value=KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
    User::LeaveIfError(iRingingTypeProperty.Get(value));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
    iGlobalAudioSettingsData.iRingingType=(CGlobalAudioSettings::TGASRingingType)value;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
void CRingingTypeObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
        iRingingTypeProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
void CRingingTypeObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
    RDebug::Print(_L(" CRingingTypeObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
        TInt value=KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
        status=(iRingingTypeProperty.Get(value));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
        iGlobalAudioSettingsData.iRingingType=(CGlobalAudioSettings::TGASRingingType)value;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
        MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASRingingType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
            RDebug::Print(_L(" CRingingTypeObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
void CRingingTypeObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
    iRingingTypeProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
TInt CRingingTypeObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
//  CMessageToneObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
CMessageToneObserverAO::CMessageToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
CMessageToneObserverAO::~CMessageToneObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
    iMessageToneNameProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
    if( iGlobalAudioSettingsData.iMessageToneName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
          delete  iGlobalAudioSettingsData.iMessageToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
          iGlobalAudioSettingsData.iMessageToneName=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
CMessageToneObserverAO* CMessageToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
    CMessageToneObserverAO* self = new (ELeave) CMessageToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
void CMessageToneObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
    iGlobalAudioSettingsData.iMessageToneName=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
    User::LeaveIfError(iMessageToneNameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASMessageToneName));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
    TPtr16 ptr=iGlobalAudioSettingsData.iMessageToneName->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
    User::LeaveIfError(iMessageToneNameProperty.Get(ptr));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
void CMessageToneObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
        iMessageToneNameProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
void CMessageToneObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
    RDebug::Print(_L(" CMessageToneObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
        delete iGlobalAudioSettingsData.iMessageToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
        iGlobalAudioSettingsData.iMessageToneName=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
        iGlobalAudioSettingsData.iMessageToneName=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
        TPtr16 ptr=iGlobalAudioSettingsData.iMessageToneName->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
        status = iMessageToneNameProperty.Get(ptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
            MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASMessageToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
            RDebug::Print(_L(" CMessageToneObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
void CMessageToneObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
    iMessageToneNameProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
TInt CMessageToneObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
/////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
//  CEmailToneObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
CEmailToneObserverAO::CEmailToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
CEmailToneObserverAO::~CEmailToneObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
    iEmailToneNameProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
    if(iGlobalAudioSettingsData.iEmailToneName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
        delete  iGlobalAudioSettingsData.iEmailToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
        iGlobalAudioSettingsData.iEmailToneName=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
CEmailToneObserverAO* CEmailToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
    CEmailToneObserverAO* self = new (ELeave) CEmailToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
void CEmailToneObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
    iGlobalAudioSettingsData.iEmailToneName=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
    User::LeaveIfError(iEmailToneNameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASEmailToneName));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
    TPtr16 ptr=iGlobalAudioSettingsData.iEmailToneName->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
    User::LeaveIfError(iEmailToneNameProperty.Get(ptr));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
void CEmailToneObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
        iEmailToneNameProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
void CEmailToneObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
    RDebug::Print(_L(" CEmailToneObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
        delete iGlobalAudioSettingsData.iEmailToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
        iGlobalAudioSettingsData.iEmailToneName=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
        iGlobalAudioSettingsData.iEmailToneName=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
        TPtr16 ptr=iGlobalAudioSettingsData.iEmailToneName->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
        status = iEmailToneNameProperty.Get(ptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
            MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASEmailToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
            RDebug::Print(_L(" CEmailToneObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
void CEmailToneObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
    iEmailToneNameProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
TInt CEmailToneObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
/////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
//  CVideoCallToneObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
CVideoCallToneObserverAO::CVideoCallToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
CVideoCallToneObserverAO::~CVideoCallToneObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
    iVideoCallToneNameProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
    if( iGlobalAudioSettingsData.iVideoCallToneName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
    delete  iGlobalAudioSettingsData.iVideoCallToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
    iGlobalAudioSettingsData.iVideoCallToneName=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
     
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
CVideoCallToneObserverAO* CVideoCallToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
    CVideoCallToneObserverAO* self = new (ELeave) CVideoCallToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
void CVideoCallToneObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
    iGlobalAudioSettingsData.iVideoCallToneName=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
    User::LeaveIfError(iVideoCallToneNameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASVideoCallToneName));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
    TPtr16 ptr=iGlobalAudioSettingsData.iVideoCallToneName->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
    User::LeaveIfError(iVideoCallToneNameProperty.Get(ptr));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
void CVideoCallToneObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
        iVideoCallToneNameProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
void CVideoCallToneObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
    RDebug::Print(_L(" CVideocallToneObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
        delete iGlobalAudioSettingsData.iVideoCallToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
        iGlobalAudioSettingsData.iVideoCallToneName=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
        iGlobalAudioSettingsData.iVideoCallToneName=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
        TPtr16 ptr=iGlobalAudioSettingsData.iVideoCallToneName->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
        status = iVideoCallToneNameProperty.Get(ptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
        MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASVideoCallToneName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
            RDebug::Print(_L(" CVideoCallToneObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
void CVideoCallToneObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
    iVideoCallToneNameProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
TInt CVideoCallToneObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
/////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
//  CRingingToneObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
CRingingTone1ObserverAO::CRingingTone1ObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
CRingingTone1ObserverAO::~CRingingTone1ObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
    iRingingTone1NameProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
    if( iGlobalAudioSettingsData.iRingingTone1Name)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
        delete  iGlobalAudioSettingsData.iRingingTone1Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
        iGlobalAudioSettingsData.iRingingTone1Name=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
CRingingTone1ObserverAO* CRingingTone1ObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
    CRingingTone1ObserverAO* self = new (ELeave) CRingingTone1ObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1376
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1377
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1378
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1379
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1380
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1381
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1382
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1383
void CRingingTone1ObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1384
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1385
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1386
    iGlobalAudioSettingsData.iRingingTone1Name=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1387
    User::LeaveIfError(iRingingTone1NameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASRingingTone1Name));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1388
    TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone1Name->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1389
    User::LeaveIfError(iRingingTone1NameProperty.Get(ptr));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1390
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1391
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1392
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1393
void CRingingTone1ObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1394
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1395
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1396
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1397
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1398
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1399
        iRingingTone1NameProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1400
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1401
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1402
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1403
void CRingingTone1ObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1404
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1405
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1406
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1407
    RDebug::Print(_L(" CRingingTone1ObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1408
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1409
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1410
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1411
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1412
        delete iGlobalAudioSettingsData.iRingingTone1Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1413
        iGlobalAudioSettingsData.iRingingTone1Name=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1414
        iGlobalAudioSettingsData.iRingingTone1Name=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1415
        TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone1Name->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1416
        status = iRingingTone1NameProperty.Get(ptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1417
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1418
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1419
            MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASRingingTone1Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1420
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1421
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1422
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1423
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1424
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1425
            RDebug::Print(_L(" CRingingToneObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1426
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1427
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1428
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1429
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1430
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1431
void CRingingTone1ObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1432
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1433
    iRingingTone1NameProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1434
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1435
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1436
TInt CRingingTone1ObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1437
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1438
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1439
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1440
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1441
////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1442
//  CRingingToneObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1443
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1444
CRingingTone2ObserverAO::CRingingTone2ObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1445
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1446
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1447
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1448
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1449
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1450
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1451
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1452
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1453
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1454
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1455
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1456
CRingingTone2ObserverAO::~CRingingTone2ObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1457
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1458
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1459
    iRingingTone2NameProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1460
    if(iGlobalAudioSettingsData.iRingingTone2Name)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1461
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1462
    delete iGlobalAudioSettingsData.iRingingTone2Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1463
    iGlobalAudioSettingsData.iRingingTone2Name=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1464
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1465
     
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1466
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1467
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1468
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1469
CRingingTone2ObserverAO* CRingingTone2ObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1470
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1471
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1472
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1473
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1474
    CRingingTone2ObserverAO* self = new (ELeave) CRingingTone2ObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1475
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1476
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1477
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1478
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1479
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1480
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1481
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1482
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1483
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1484
void CRingingTone2ObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1485
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1486
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1487
    iGlobalAudioSettingsData.iRingingTone2Name=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1488
    User::LeaveIfError(iRingingTone2NameProperty.Attach(KGASPSUidGlobalAudioSettings, KGASRingingTone2Name));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1489
    TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone2Name->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1490
    User::LeaveIfError(iRingingTone2NameProperty.Get(ptr));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1491
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1492
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1493
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1494
void CRingingTone2ObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1495
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1496
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1497
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1498
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1499
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1500
        iRingingTone2NameProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1501
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1502
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1503
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1504
void CRingingTone2ObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1505
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1506
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1507
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1508
    RDebug::Print(_L(" CRingingTone2ObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1509
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1510
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1511
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1512
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1513
        delete iGlobalAudioSettingsData.iRingingTone2Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1514
        iGlobalAudioSettingsData.iRingingTone2Name=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1515
        iGlobalAudioSettingsData.iRingingTone2Name=HBufC::NewL(KMaxLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1516
        TPtr16 ptr=iGlobalAudioSettingsData.iRingingTone2Name->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1517
        status = iRingingTone2NameProperty.Get(ptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1518
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1519
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1520
        MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASRingingTone2Name;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1521
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1522
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1523
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1524
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1525
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1526
            RDebug::Print(_L(" CRingingToneObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1527
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1528
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1529
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1530
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1531
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1532
void CRingingTone2ObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1533
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1534
    iRingingTone2NameProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1535
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1536
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1537
TInt CRingingTone2ObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1538
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1539
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1540
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1541
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1542
/////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1543
//  CKeypadToneObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1544
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1545
CKeypadToneObserverAO::CKeypadToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1546
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1547
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1548
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1549
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1550
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1551
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1552
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1553
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1554
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1555
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1556
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1557
CKeypadToneObserverAO::~CKeypadToneObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1558
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1559
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1560
    iKeypadToneVolumeProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1561
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1562
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1563
CKeypadToneObserverAO* CKeypadToneObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1564
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1565
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1566
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1567
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1568
    CKeypadToneObserverAO* self = new (ELeave) CKeypadToneObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1569
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1570
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1571
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1572
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1573
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1574
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1575
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1576
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1577
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1578
void CKeypadToneObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1579
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1580
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1581
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1582
    User::LeaveIfError(iKeypadToneVolumeProperty.Attach(KGASPSUidGlobalAudioSettings, KGASKeypadToneVolume));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1583
    TInt value=KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1584
    User::LeaveIfError(iKeypadToneVolumeProperty.Get(value));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1585
    iGlobalAudioSettingsData.iKeyPadVolume=(CGlobalAudioSettings::TGASKeypadVolume)value;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1586
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1587
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1588
void CKeypadToneObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1589
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1590
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1591
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1592
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1593
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1594
        iKeypadToneVolumeProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1595
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1596
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1597
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1598
void CKeypadToneObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1599
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1600
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1601
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1602
    RDebug::Print(_L(" CKeypadToneObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1603
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1604
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1605
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1606
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1607
        TInt value=KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1608
            status=iKeypadToneVolumeProperty.Get(value);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1609
            iGlobalAudioSettingsData.iKeyPadVolume=(CGlobalAudioSettings::TGASKeypadVolume)value;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1610
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1611
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1612
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1613
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1614
            MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASKeyPadVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1615
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1616
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1617
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1618
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1619
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1620
            RDebug::Print(_L(" CKeypadToneObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1621
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1622
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1623
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1624
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1625
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1626
void CKeypadToneObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1627
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1628
    iKeypadToneVolumeProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1629
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1630
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1631
TInt CKeypadToneObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1632
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1633
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1634
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1635
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1636
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1637
/////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1638
//  CSilenceModeObserverAO                                                //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1639
//////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1640
CSilenceModeObserverAO::CSilenceModeObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1641
                        CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1642
                        MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1643
                        TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1644
:CActive(EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1645
 iGlobalAudioSettings(aGlobalAudioSettings),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1646
 iAudioSettingsObserver(aAudioSettingsObserver),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1647
 iGlobalAudioSettingsData(aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1648
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1649
    CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1650
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1651
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1652
CSilenceModeObserverAO::~CSilenceModeObserverAO()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1653
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1654
    Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1655
    iSilenceModeProperty.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1656
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1657
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1658
CSilenceModeObserverAO* CSilenceModeObserverAO::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1659
                            CGlobalAudioSettings &aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1660
                            MAudioSettingsObserver& aAudioSettingsObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1661
                            TGlobalAudioSettings& aGlobalAudioSettingsData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1662
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1663
    CSilenceModeObserverAO* self = new (ELeave) CSilenceModeObserverAO(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1664
                                            aGlobalAudioSettings,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1665
                                            aAudioSettingsObserver, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1666
                                            aGlobalAudioSettingsData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1667
    CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1668
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1669
    CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1670
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1671
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1672
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1673
void CSilenceModeObserverAO::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1674
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1675
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1676
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1677
    User::LeaveIfError(iSilenceModeProperty.Attach(KGASPSUidGlobalAudioSettings, KGASSilenceMode));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1678
   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1679
    User::LeaveIfError(iSilenceModeProperty.Get(iGlobalAudioSettingsData.iSilenceMode));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1680
    RDebug::Printf("in constructL,silence mode %d",iGlobalAudioSettingsData.iSilenceMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1681
  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1682
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1683
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1684
void CSilenceModeObserverAO::Subscribe()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1685
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1686
    if (!IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1687
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1688
        SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1689
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1690
        iSilenceModeProperty.Subscribe(iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1691
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1692
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1693
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1694
void CSilenceModeObserverAO::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1695
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1696
    TInt status(iStatus.Int());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1697
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1698
    RDebug::Print(_L(" CSilenceModeObserverAO::RunL:iStatus[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1699
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1700
    if ( status == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1701
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1702
        Subscribe();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1703
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1704
            status=iSilenceModeProperty.Get(  iGlobalAudioSettingsData.iSilenceMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1705
            RDebug::Printf("value of silent mode :%d",iGlobalAudioSettingsData.iSilenceMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1706
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1707
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1708
        if( status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1709
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1710
            MAudioSettingsObserver::TGASEventId id=MAudioSettingsObserver::EGASSilenceMode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1711
            iAudioSettingsObserver.SettingsChanged(iGlobalAudioSettings, id);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1712
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1713
#ifdef PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1714
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1715
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1716
            RDebug::Print(_L(" CKeypadToneObserverAO::RunL:Property.Get Error[%d]"), status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1717
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1718
#endif // PRINT_MESSAGE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1719
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1720
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1721
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1722
void CSilenceModeObserverAO::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1723
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1724
    iSilenceModeProperty.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1725
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1726
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1727
TInt CSilenceModeObserverAO::RunError(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1728
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1729
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1730
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1731
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1732
//End of file