accessoryservices/accessoryserver/src/Policy/AccPolAccessoryPolicy.cpp
branchRCL_3
changeset 81 24127ea5a236
parent 61 8cb079868133
equal deleted inserted replaced
71:fdcef27a50b8 81:24127ea5a236
   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                     {
   968                         val.Val( value );
   968                         val.Val( value );
   969                         TAccPolNameValueRecord nameValueRecord( capability,
   969                         TAccPolNameValueRecord nameValueRecord( capability,
   970                                                                 value,
   970                                                                 value,
   971                                                               ( TAccPolValueType )type,
   971                                                               ( TAccPolValueType )type,
   972                                                               ( TAccPolValueLocation )location );
   972                                                               ( TAccPolValueLocation )location );
   973                         nameValueArray.AppendL( nameValueRecord );
   973                         nameValueArray.Append( nameValueRecord );
   974                         }
   974                         }
   975                     ++capabilityIter;
   975                     ++capabilityIter;
   976                     }
   976                     }
   977                 ++iterations;
   977                 ++iterations;
   978                 }
   978                 }
  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.