--- a/uiacceltk/hitchcock/goommonitor/src/goomconfigparser.cpp Fri Apr 16 15:56:24 2010 +0300
+++ b/uiacceltk/hitchcock/goommonitor/src/goomconfigparser.cpp Mon May 03 13:22:43 2010 +0300
@@ -57,6 +57,7 @@
KGOomErrBadGoodThresholdValueForAppConfig,
KGOomErrBadTargetFreeValueForAppConfig,
KGOomErrBadSkipPluginValueForAppConfig,
+KGOomErrBadUseSwRenderingValueForAppConfig,
KGOomErrSystemPluginSettingsMustComeAfterAppCloseSettings,
KGOomErrAppPluginSettingsMustComeAfterSystemPluginSettings,
KGOomErrAppPluginIdleTimeRulesMustComeAfterAppPluginSettings,
@@ -80,7 +81,8 @@
KGOomErrAppCloseIdleRuleOutsideAppCloseElement,
KGOomErrForegroundAppRuleOutsideAppCloseElement,
KGOomErrPluginIdleRuleOutsideAppPluginElement,
-KGOomErrPluginForegroundRuleOutsidePluginElement
+KGOomErrPluginForegroundRuleOutsidePluginElement,
+KGOomErrInvalidSwRendConfig
};
@@ -127,6 +129,9 @@
//App specific
_LIT8(KGOomAttributeTargetFreeOnStartup, "target_free_on_startup");
_LIT8(KGOomAttributeSkipPlugin, "skip_plugin");
+_LIT8(KGOomAttributeUseSwRendering, "use_sw_rend");
+_LIT8(KGOomConfigUseSwRend, "Yes");
+_LIT8(KGOomConfigNotUseSwRend, "No");
// System plugins
@@ -173,6 +178,10 @@
_LIT8(KGOomConfigBusyAppUid, "BUSY_APP");
_LIT8(KGOomConfigHighPriorityAppUid, "HIGH_PRIORITY_APP");
+_LIT8(KGOomAttibuteSwRend, "sw_rend");
+_LIT8(KGOomConfigSwRendSupported, "supported");
+_LIT8(KGOomConfigSwRendNotSupported, "not_supported");
+
CGOomConfigParser::CGOomConfigParser(CGOomConfig& aConfig, RFs& aFs) : iConfig(aConfig), iFs(aFs), iState(EGOomParsingStateNone)
{
}
@@ -501,7 +510,33 @@
ConfigError(KGOomErrBadSkipPluginValueForAppConfig);
}
-
+ // Get the software rendering config
+ if (err == KErrNone)
+ {
+ TPtrC8 swrendString;
+ TInt err = GetValueFromAttributeList(aAttributes, KGOomAttributeUseSwRendering, swrendString);
+ if (err == KErrNone)
+ {
+ if (swrendString == KGOomConfigUseSwRend)
+ {
+ TRACES1("Sw Rend configured for App %x", uid);
+ appConfig->iUseSwRendering = ETrue;
+ }
+ else
+ {
+ appConfig->iUseSwRendering = EFalse;
+ }
+ }
+ else if (err == KErrNotFound)
+ {
+ err = KErrNone;
+ appConfig->iUseSwRendering = EFalse;
+ }
+
+ if (err != KErrNone)
+ ConfigError(KGOomErrBadUseSwRenderingValueForAppConfig);
+ }
+
// Add the applciation config to the main config
if ((err == KErrNone) && (appConfig))
{
@@ -772,8 +807,21 @@
{
// Get the config for the sync mode for this plugin (if one is specified) and set it
SetPluginSyncMode(aAttributes, *pluginConfig);
+
+ TPtrC8 swrendString;
+ TInt err = GetValueFromAttributeList(aAttributes, KGOomAttibuteSwRend, swrendString);
+ if (err == KErrNone)
+ {
+ if (swrendString == KGOomConfigSwRendSupported)
+ pluginConfig->SetSwRend(ETrue);
+ else if (swrendString == KGOomConfigSwRendNotSupported)
+ pluginConfig->SetSwRend(EFalse);
+ else
+ ConfigError(KGOomErrInvalidSwRendConfig);
+ }
+
}
-
+
iConfig.AddPluginConfigL(pluginConfig);
CleanupStack::Pop(pluginConfig);