// ----------------------------------------------------------------------------- // Is passed string one of those listed in ActionList in ccetestconfigurations.h // ----------------------------------------------------------------------------- // TBool CConfigurationHandler::IsConfigRequest( TDesC8& aValue ) { HBufC8* result = GetTokenValue(aValue, KId); if( !result ) { return EFalse; } if( FindActionIndex(*result)==KErrNotFound ) { delete result; return EFalse; } delete result; return ETrue; }
VOID ShowCurrentPowerActionPolicy(HWND hDlgCtrl, POWER_ACTION *lpAction, DWORD dwActionSize, POWER_ACTION_POLICY *Policy) { int poActionIndex; POWER_ACTION poAction; poAction = GetPowerActionFromPolicy(Policy); poActionIndex = FindActionIndex(lpAction, dwActionSize, poAction); if (poActionIndex < 0) { return; } SendMessage(hDlgCtrl, CB_SETCURSEL, (WPARAM)poActionIndex, (LPARAM)0); }
// ----------------------------------------------------------------------------- // parse passed data // ID + RETURN or LEAVE has to be found // ----------------------------------------------------------------------------- // TBool CConfigurationHandler::ParseData( TDesC8& aData, CONFIGURATION_ITEM& aItem ) { // get value for ID= HBufC8* id = GetTokenValue(aData, KId); if( !id ) { RDebug::Print(_L("[TESTPLUGIN] CConfigurationHandler::ParseData ID= not found") ); delete id; return EFalse; } // store index to action array aItem.iActionIndex = FindActionIndex(*id); delete id; // get value for TYPE= HBufC8* type = GetTokenValue(aData, KType); if( !type ) { RDebug::Print(_L("[TESTPLUGIN] CConfigurationHandler::ParseData TYPE= not found") ); delete type; return EFalse; } // todo is numeric check when needed // get value for RETURN= aItem.iIsLeaveValue = EFalse; HBufC8* strvalue = GetTokenValue(aData, KReturn); if( !strvalue ) { delete strvalue; strvalue = NULL; // get value for LEAVE= as return value was not found strvalue = GetTokenValue(aData, KLeave); aItem.iIsLeaveValue = ETrue; } if( !strvalue ) { RDebug::Print(_L("[TESTPLUGIN] CConfigurationHandler::ParseData: No RETURN= or LEAVE= found") ); return EFalse; } // optional parameter HBufC8* persistant = GetTokenValue(aData, KPersistant ); if( persistant ) { TBool b; TLex8 l(*persistant); l.Val(b); aItem.iIsPersistant = b; } else { aItem.iIsPersistant = EFalse; } delete persistant; if( type->Compare(_L8("TInt"))==KErrNone ) { TInt v = 0; TLex8 lex(*strvalue); lex.Val(v); aItem.iValuePtr = new TInt(v); } else if( type->Compare(_L8("TUint"))==KErrNone ) { TUint v = 0; TLex8 lex(*strvalue); lex.Val(v); aItem.iValuePtr = new TUint(v); } else if( type->Compare(_L8("TUid"))==KErrNone ) { TInt v = 0; TLex8 lex(*strvalue); lex.Val(v); TUid u; u.iUid = v; aItem.iValuePtr = new TUid(u); } else if( type->Compare(_L8("TBool"))==KErrNone ) { TBool b; TLex8 l(*strvalue); l.Val(b); aItem.iValuePtr = new TBool(b); } else if( type->Compare(_L8("TDesC8"))==KErrNone ) { HBufC8* buf = HBufC8::NewL(strvalue->Length()); TPtr8 des = buf->Des(); des.Append(*strvalue); aItem.iValuePtr = buf; } else if( type->Compare(_L8("CCCPCallParameters"))==KErrNone ) { //CCCPCallParameters } else { RDebug::Print(_L("[TESTPLUGIN] CConfigurationHandler::ParseData: No valid type found") ); return EFalse; } delete type; delete strvalue; return ETrue; }