gssettingsuis/Gs/GSDisplayPlugin/Src/PSMDisplayPlugin.cpp
author hgs
Thu, 04 Nov 2010 13:38:47 +0800
changeset 68 13e71d907dc3
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
68
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Stub imlementation
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// INCLUDE FILES
hgs
parents:
diff changeset
    20
#include <psmsettingsprovider.h>
hgs
parents:
diff changeset
    21
#include "PSMDisplayPlugin.h"
hgs
parents:
diff changeset
    22
#include "GSDisplayPluginModel.h"
hgs
parents:
diff changeset
    23
#include "GsLogger.h"
hgs
parents:
diff changeset
    24
#include <psmsrvdomaincrkeys.h>
hgs
parents:
diff changeset
    25
#include <featmgr.h>
hgs
parents:
diff changeset
    26
#include <settingsinternalcrkeys.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#ifndef __WINS__
hgs
parents:
diff changeset
    29
#include <power_save_display_mode.h>
hgs
parents:
diff changeset
    30
#endif
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// CONSTANT DEFINITIONS
hgs
parents:
diff changeset
    33
const TUint32 KPSMDisplayPluginStorageId = 0x2000B591;
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
enum TPsmDisplayPluginKeys
hgs
parents:
diff changeset
    36
    {
hgs
parents:
diff changeset
    37
    EContrast = 1,
hgs
parents:
diff changeset
    38
    EBacklightPeriod,
hgs
parents:
diff changeset
    39
    EBrightness,
hgs
parents:
diff changeset
    40
    EAmbientLightSensor,
hgs
parents:
diff changeset
    41
    EScreenSaverPeriod,
hgs
parents:
diff changeset
    42
    EAutomaticBrightnessControl
hgs
parents:
diff changeset
    43
    };
hgs
parents:
diff changeset
    44
//
hgs
parents:
diff changeset
    45
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
    46
// CPSMDisplayPlugin::CPSMDisplayPlugin()
hgs
parents:
diff changeset
    47
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
    48
//
hgs
parents:
diff changeset
    49
CPSMDisplayPlugin::CPSMDisplayPlugin( TPsmPluginCTorParams& aInitParams ) :
hgs
parents:
diff changeset
    50
    CPsmPluginBase( aInitParams )
hgs
parents:
diff changeset
    51
	{
hgs
parents:
diff changeset
    52
	}
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    55
// CPSMDisplayPlugin::ConstructL(
hgs
parents:
diff changeset
    56
// Symbian 2nd phase constructor can leave.
hgs
parents:
diff changeset
    57
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    58
//
hgs
parents:
diff changeset
    59
void CPSMDisplayPlugin::ConstructL()
hgs
parents:
diff changeset
    60
    {
hgs
parents:
diff changeset
    61
    iModel = CGSDisplayPluginModel::NewL( EFalse );
hgs
parents:
diff changeset
    62
#ifndef __WINS__ 
hgs
parents:
diff changeset
    63
    iDisplayModel = CPowerSaveDisplayMode::NewL();
hgs
parents:
diff changeset
    64
#endif
hgs
parents:
diff changeset
    65
    }
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
//
hgs
parents:
diff changeset
    68
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
// CPSMDisplayPlugin::NewL()
hgs
parents:
diff changeset
    70
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
    71
//
hgs
parents:
diff changeset
    72
// Two-phased constructor.
hgs
parents:
diff changeset
    73
CPSMDisplayPlugin* CPSMDisplayPlugin::NewL( TPsmPluginCTorParams& aInitParams )
hgs
parents:
diff changeset
    74
	{
hgs
parents:
diff changeset
    75
	CPSMDisplayPlugin* self = new ( ELeave ) CPSMDisplayPlugin( aInitParams );
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
	CleanupStack::PushL( self );
hgs
parents:
diff changeset
    78
    self->ConstructL();
hgs
parents:
diff changeset
    79
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    return self;
hgs
parents:
diff changeset
    82
	}
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
    85
// CPSMDisplayPlugin::~CPSMDisplayPlugin()
hgs
parents:
diff changeset
    86
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
    87
//
hgs
parents:
diff changeset
    88
// Destructor.
hgs
parents:
diff changeset
    89
CPSMDisplayPlugin::~CPSMDisplayPlugin()
hgs
parents:
diff changeset
    90
	{
hgs
parents:
diff changeset
    91
    __GSLOGSTRING( "[CPSMDisplayPlugin::~CPSMDisplayPlugin]" );
hgs
parents:
diff changeset
    92
    if( iModel ) delete iModel;
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
#ifndef __WINS__
hgs
parents:
diff changeset
    95
    if ( iDisplayModel )
hgs
parents:
diff changeset
    96
        {
hgs
parents:
diff changeset
    97
        delete iDisplayModel;
hgs
parents:
diff changeset
    98
        }
hgs
parents:
diff changeset
    99
#endif
hgs
parents:
diff changeset
   100
    
hgs
parents:
diff changeset
   101
	}
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
   104
// CPSMDisplayPlugin::NotifyModeChange()
hgs
parents:
diff changeset
   105
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
   106
//
hgs
parents:
diff changeset
   107
void CPSMDisplayPlugin::NotifyModeChange( const TInt aMode )
hgs
parents:
diff changeset
   108
    {
hgs
parents:
diff changeset
   109
    TInt err = KErrNone;
hgs
parents:
diff changeset
   110
    TRAP( err, DoModeChangeL( aMode ) );
hgs
parents:
diff changeset
   111
    __GSLOGSTRING2( "[CPSMDisplayPlugin::NotifyModeChange]: Mode:%d Err:%d", aMode, err );
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    }
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
   117
// CPSMDisplayPlugin::NotifyModeChange()
hgs
parents:
diff changeset
   118
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
   119
//
hgs
parents:
diff changeset
   120
void CPSMDisplayPlugin::DoModeChangeL( const TInt aMode )
hgs
parents:
diff changeset
   121
    {
hgs
parents:
diff changeset
   122
    RConfigInfoArray infoArray;
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    TPsmsrvConfigInfo info1;
hgs
parents:
diff changeset
   125
    info1.iConfigId = EContrast;
hgs
parents:
diff changeset
   126
    info1.iConfigType = EConfigTypeInt;
hgs
parents:
diff changeset
   127
    info1.iIntValue = iModel->ContrastL();
hgs
parents:
diff changeset
   128
    infoArray.Append( info1 );
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
    TPsmsrvConfigInfo info2;
hgs
parents:
diff changeset
   131
    info2.iConfigId = EBacklightPeriod;
hgs
parents:
diff changeset
   132
    info2.iConfigType = EConfigTypeInt;
hgs
parents:
diff changeset
   133
    info2.iIntValue = iModel->BacklightPeriodL();
hgs
parents:
diff changeset
   134
    infoArray.Append( info2 );
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    TPsmsrvConfigInfo info3;
hgs
parents:
diff changeset
   137
    info3.iConfigId = EBrightness;
hgs
parents:
diff changeset
   138
    info3.iConfigType = EConfigTypeInt;
hgs
parents:
diff changeset
   139
    info3.iIntValue = iModel->BrightnessL();
hgs
parents:
diff changeset
   140
    infoArray.Append( info3 );
hgs
parents:
diff changeset
   141
    
hgs
parents:
diff changeset
   142
    TPsmsrvConfigInfo info4;
hgs
parents:
diff changeset
   143
    info4.iConfigId = EAmbientLightSensor;
hgs
parents:
diff changeset
   144
    info4.iConfigType = EConfigTypeInt;
hgs
parents:
diff changeset
   145
    info4.iIntValue = iModel->AmbientLightSensorL();
hgs
parents:
diff changeset
   146
    infoArray.Append( info4 );
hgs
parents:
diff changeset
   147
    
hgs
parents:
diff changeset
   148
    TPsmsrvConfigInfo info5;
hgs
parents:
diff changeset
   149
    info5.iConfigId = EScreenSaverPeriod;
hgs
parents:
diff changeset
   150
    info5.iConfigType = EConfigTypeInt;
hgs
parents:
diff changeset
   151
    info5.iIntValue = iModel->ScreenSaverAndKeyguardPeriodL();
hgs
parents:
diff changeset
   152
    infoArray.Append( info5 );
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
#ifndef __WINS__
hgs
parents:
diff changeset
   155
    TPsmsrvConfigInfo info6;
hgs
parents:
diff changeset
   156
    info6.iConfigId = EAutomaticBrightnessControl;
hgs
parents:
diff changeset
   157
    info6.iConfigType = EConfigTypeInt;
hgs
parents:
diff changeset
   158
    info6.iIntValue = iDisplayModel->GetPowerSaveLevel();
hgs
parents:
diff changeset
   159
    infoArray.Append( info6 );
hgs
parents:
diff changeset
   160
#endif
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL] Switching to mode:%d", aMode );
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
    // Print old values from array
hgs
parents:
diff changeset
   165
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: oldValue info1: %d", infoArray[0].iIntValue );
hgs
parents:
diff changeset
   166
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: oldValue info2: %d", infoArray[1].iIntValue );
hgs
parents:
diff changeset
   167
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: oldValue info3: %d", infoArray[2].iIntValue );   
hgs
parents:
diff changeset
   168
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: oldValue info4: %d", infoArray[3].iIntValue );   
hgs
parents:
diff changeset
   169
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: oldValue info5: %d", infoArray[4].iIntValue );
hgs
parents:
diff changeset
   170
#ifndef __WINS__
hgs
parents:
diff changeset
   171
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: oldValue info6: %d", infoArray[5].iIntValue );
hgs
parents:
diff changeset
   172
#endif
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
    iSettingsProvider.BackupAndGetSettingsL( infoArray, KPSMDisplayPluginStorageId );
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    // Print new values from array
hgs
parents:
diff changeset
   177
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: newValue info1: %d", infoArray[0].iIntValue );
hgs
parents:
diff changeset
   178
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: newValue info2: %d", infoArray[1].iIntValue );
hgs
parents:
diff changeset
   179
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: newValue info3: %d", infoArray[2].iIntValue );
hgs
parents:
diff changeset
   180
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: newValue info4: %d", infoArray[3].iIntValue );   
hgs
parents:
diff changeset
   181
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: newValue info5: %d", infoArray[4].iIntValue );
hgs
parents:
diff changeset
   182
#ifndef __WINS__
hgs
parents:
diff changeset
   183
    __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: newValue info6: %d", infoArray[5].iIntValue );
hgs
parents:
diff changeset
   184
#endif
hgs
parents:
diff changeset
   185
    
hgs
parents:
diff changeset
   186
    if ( iModel->ContrastL ( )!= KErrNotSupported )
hgs
parents:
diff changeset
   187
        {
hgs
parents:
diff changeset
   188
        iModel->SetContrastL ( infoArray[0].iIntValue );
hgs
parents:
diff changeset
   189
        }
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
    if ( FeatureManager::FeatureSupported ( KFeatureIdBrightnessControl ) )
hgs
parents:
diff changeset
   192
        {
hgs
parents:
diff changeset
   193
        iModel->SetBrightnessL ( infoArray[2].iIntValue );
hgs
parents:
diff changeset
   194
        }
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
    if ( iModel->CheckScreenSaverTimeoutSupportL() )
hgs
parents:
diff changeset
   197
        {
hgs
parents:
diff changeset
   198
        iModel->SetScreenSaverAndKeyguardPeriodL( infoArray[4].iIntValue );
hgs
parents:
diff changeset
   199
        }
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
    iModel->SetBacklightPeriodL( infoArray[1].iIntValue );
hgs
parents:
diff changeset
   202
    iModel->SetAmbientLightSensorL( infoArray[3].iIntValue );
hgs
parents:
diff changeset
   203
 
hgs
parents:
diff changeset
   204
#ifndef __WINS__
hgs
parents:
diff changeset
   205
    if ( FeatureManager::FeatureSupported( KFeatureIdFfAbcAgressiveUi ) )
hgs
parents:
diff changeset
   206
        {
hgs
parents:
diff changeset
   207
        iDisplayModel->SetPowerSaveLevel( 
hgs
parents:
diff changeset
   208
              (CPowerSaveDisplayMode::TPowerSaveLevel)infoArray[5].iIntValue );
hgs
parents:
diff changeset
   209
        __GSLOGSTRING1( "[CPSMDisplayPlugin::NotifyModeChangeL]: level: %d", 
hgs
parents:
diff changeset
   210
                iDisplayModel->GetPowerSaveLevel() );
hgs
parents:
diff changeset
   211
        }
hgs
parents:
diff changeset
   212
#endif
hgs
parents:
diff changeset
   213
    
hgs
parents:
diff changeset
   214
    infoArray.Reset();
hgs
parents:
diff changeset
   215
    }
hgs
parents:
diff changeset
   216
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
//End of file