817 resSB.Val( val64, EDecimal ); |
817 resSB.Val( val64, EDecimal ); |
818 TUint64 valU64( ( TUint64 ) val64 ); |
818 TUint64 valU64( ( TUint64 ) val64 ); |
819 TAccPolGenericIDAccessor::SetFeatureAttributeL( |
819 TAccPolGenericIDAccessor::SetFeatureAttributeL( |
820 genericID, KAccPolSBCapabilities, valU64 ); |
820 genericID, KAccPolSBCapabilities, valU64 ); |
821 |
821 |
822 ParseSubblocksL( valU64, foundCapabilityGroups ); |
822 ParseSubblocks( valU64, foundCapabilityGroups ); |
823 |
823 |
824 //set "values" to point to firts value |
824 //set "values" to point to firts value |
825 TLex8 values; |
825 TLex8 values; |
826 values.Assign( buf ); |
826 values.Assign( buf ); |
827 while ( ( values.Peek() != KLineEnd1 ) && |
827 while ( ( values.Peek() != KLineEnd1 ) && |
869 } |
869 } |
870 TLex lVal( capabilityGroupVal ); |
870 TLex lVal( capabilityGroupVal ); |
871 TUint32 capabilityGroupValue(0); |
871 TUint32 capabilityGroupValue(0); |
872 lVal.Val( capabilityGroupValue, EDecimal ); |
872 lVal.Val( capabilityGroupValue, EDecimal ); |
873 |
873 |
874 ParseNamesL( capabilityGroupValue, foundCapability ); |
874 ParseNames( capabilityGroupValue, foundCapability ); |
875 |
875 |
876 TInt capabilityIter(0); |
876 TInt capabilityIter(0); |
877 TInt foundCapabilityCount( foundCapability.Count() ); |
877 TInt foundCapabilityCount( foundCapability.Count() ); |
878 while ( capabilityIter < foundCapabilityCount ) |
878 while ( capabilityIter < foundCapabilityCount ) |
879 { |
879 { |
1002 |
1002 |
1003 API_TRACE_( "[AccFW:SrvUtil] CAccPolAccessoryPolicy::ParseGenericIDContentL - return void" ); |
1003 API_TRACE_( "[AccFW:SrvUtil] CAccPolAccessoryPolicy::ParseGenericIDContentL - return void" ); |
1004 } |
1004 } |
1005 |
1005 |
1006 // ----------------------------------------------------------------------------- |
1006 // ----------------------------------------------------------------------------- |
1007 // CAccPolAccessoryPolicy::ParseSubblocksL |
1007 // CAccPolAccessoryPolicy::ParseSubblocks |
1008 // Detecting subblocks and store them to destination array |
1008 // Detecting subblocks and store them to destination array |
1009 // (other items were commented in a header). |
1009 // (other items were commented in a header). |
1010 // ----------------------------------------------------------------------------- |
1010 // ----------------------------------------------------------------------------- |
1011 // |
1011 // |
1012 void CAccPolAccessoryPolicy::ParseSubblocksL( const TUint64& aVal, RArray<TUint64>& aCaps ) |
1012 void CAccPolAccessoryPolicy::ParseSubblocks( const TUint64& aVal, RArray<TUint64>& aCaps ) |
1013 { |
1013 { |
1014 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocksL()" ); |
1014 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocks()" ); |
1015 |
1015 |
1016 TUint64 sum( 0 ); |
1016 TUint64 sum( 0 ); |
1017 TUint64 curVal( 1 ); |
1017 TUint64 curVal( 1 ); |
1018 TInt curBit( 0 ); |
1018 TInt curBit( 0 ); |
1019 |
1019 |
1023 |
1023 |
1024 // Check if this subblock is defined in SB-def block |
1024 // Check if this subblock is defined in SB-def block |
1025 if ( ( curVal & aVal ) == curVal ) |
1025 if ( ( curVal & aVal ) == curVal ) |
1026 { |
1026 { |
1027 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::(Cap) MATCH! HI:0x%x LO:0x%x", I64HIGH( curVal ), I64LOW( curVal ) ); |
1027 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::(Cap) MATCH! HI:0x%x LO:0x%x", I64HIGH( curVal ), I64LOW( curVal ) ); |
1028 aCaps.AppendL( curVal ); // Append to found caps array |
1028 aCaps.Append( curVal ); // Append to found caps array |
1029 sum += curVal; |
1029 sum += curVal; |
1030 } |
1030 } |
1031 curBit++; |
1031 curBit++; |
1032 curVal = 2 * curVal; |
1032 curVal = 2 * curVal; |
1033 } |
1033 } |
1034 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1034 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1035 |
1035 |
1036 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocksL - return void" ); |
1036 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocks - return void" ); |
1037 } |
1037 } |
1038 |
1038 |
1039 // ----------------------------------------------------------------------------- |
1039 // ----------------------------------------------------------------------------- |
1040 // CAccPolAccessoryPolicy::ParseNamesL |
1040 // CAccPolAccessoryPolicy::ParseNames |
1041 // Detect all subblock names and append them to the gicen array. |
1041 // Detect all subblock names and append them to the gicen array. |
1042 // (other items were commented in a header). |
1042 // (other items were commented in a header). |
1043 // ----------------------------------------------------------------------------- |
1043 // ----------------------------------------------------------------------------- |
1044 // |
1044 // |
1045 void CAccPolAccessoryPolicy::ParseNamesL( const TUint32& aVal, RArray<TUint32>& aNames ) |
1045 void CAccPolAccessoryPolicy::ParseNames( const TUint32& aVal, RArray<TUint32>& aNames ) |
1046 { |
1046 { |
1047 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL()" ); |
1047 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames()" ); |
1048 TUint32 sum( 0 ); |
1048 TUint32 sum( 0 ); |
1049 TUint32 curVal( 1 ); |
1049 TUint32 curVal( 1 ); |
1050 TInt curBit( 0 ); |
1050 TInt curBit( 0 ); |
1051 |
1051 |
1052 do { |
1052 do { |
1053 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL Binary for this roundtrip is 0x%x, total sum is 0x%x", curVal, sum ); |
1053 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames Binary for this roundtrip is 0x%x, total sum is 0x%x", curVal, sum ); |
1054 COM_TRACE_1( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL & 0x%x", curVal & aVal ); |
1054 COM_TRACE_1( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames & 0x%x", curVal & aVal ); |
1055 // Check if this subblock is defined in SB-def block |
1055 // Check if this subblock is defined in SB-def block |
1056 |
1056 |
1057 if ( ( curVal & aVal ) == curVal ) |
1057 if ( ( curVal & aVal ) == curVal ) |
1058 { |
1058 { |
1059 COM_TRACE_1( "[AccFW:SrvUtil] (Name) MATCH! 0x%x",curVal ); |
1059 COM_TRACE_1( "[AccFW:SrvUtil] (Name) MATCH! 0x%x",curVal ); |
1060 aNames.AppendL( curVal ); // Append to found caps array |
1060 aNames.Append( curVal ); // Append to found caps array |
1061 sum += curVal; |
1061 sum += curVal; |
1062 } |
1062 } |
1063 curBit++; |
1063 curBit++; |
1064 curVal = 2 * curVal; |
1064 curVal = 2 * curVal; |
1065 } |
1065 } |
1066 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1066 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1067 |
1067 |
1068 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL - return void" ); |
1068 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames - return void" ); |
1069 } |
1069 } |
1070 |
1070 |
1071 // ----------------------------------------------------------------------------- |
1071 // ----------------------------------------------------------------------------- |
1072 // CAccPolAccessoryPolicy::BitNumber |
1072 // CAccPolAccessoryPolicy::BitNumber |
1073 // Find a bit from aBitmask. |
1073 // Find a bit from aBitmask. |