charconvfw/charconvplugins/src/shared/CnvPictographShared.cpp
changeset 40 91ef7621b7fc
parent 0 1fb32624e06b
child 55 336bee5c2d35
equal deleted inserted replaced
21:f2f7b3284356 40:91ef7621b7fc
   203 // -----------------------------------------------------------------------------
   203 // -----------------------------------------------------------------------------
   204 //
   204 //
   205 void CnvPictographShared::SetMethodsForPictograph(
   205 void CnvPictographShared::SetMethodsForPictograph(
   206         RArray<CnvUtilities::SMethod>& aArrayOfMethods, TOriginalCharset aOriginalCharset)
   206         RArray<CnvUtilities::SMethod>& aArrayOfMethods, TOriginalCharset aOriginalCharset)
   207     {
   207     {
       
   208     TInt ret = KErrNone;
   208     CnvUtilities::SMethod method;
   209     CnvUtilities::SMethod method;
   209     switch (aOriginalCharset)
   210     switch (aOriginalCharset)
   210         {
   211         {
   211         case ECharsetShiftJis:
   212         case ECharsetShiftJis:
   212             method.iNumberOfBytesAbleToConvert =
   213             method.iNumberOfBytesAbleToConvert =
   215                 DummyConvertToIntermediateBufferInPlace;
   216                 DummyConvertToIntermediateBufferInPlace;
   216             method.iConversionData =
   217             method.iConversionData =
   217                 &CnvShiftJisDirectmap::ConversionData();
   218                 &CnvShiftJisDirectmap::ConversionData();
   218             method.iNumberOfBytesPerCharacter = 2;
   219             method.iNumberOfBytesPerCharacter = 2;
   219             method.iNumberOfCoreBytesPerCharacter = 2;
   220             method.iNumberOfCoreBytesPerCharacter = 2;
   220             aArrayOfMethods.Append(method);
   221             ret |= aArrayOfMethods.Append(method);
   221             break;
   222             break;
   222         case ECharsetEucJp:
   223         case ECharsetEucJp:
   223             method.iNumberOfBytesAbleToConvert =
   224             method.iNumberOfBytesAbleToConvert =
   224                 CnvPictographShared::NumberOfBytesAbleToConvertToEucJpDirectMap1;
   225                 CnvPictographShared::NumberOfBytesAbleToConvertToEucJpDirectMap1;
   225             method.iConvertToIntermediateBufferInPlace =
   226             method.iConvertToIntermediateBufferInPlace =
   226                 CnvPictographShared::ConvertToPictographFromEucJpPackedInPlace;
   227                 CnvPictographShared::ConvertToPictographFromEucJpPackedInPlace;
   227             method.iConversionData =
   228             method.iConversionData =
   228                 &CnvShiftJisDirectmap::ConversionData();
   229                 &CnvShiftJisDirectmap::ConversionData();
   229             method.iNumberOfBytesPerCharacter = 2;
   230             method.iNumberOfBytesPerCharacter = 2;
   230             method.iNumberOfCoreBytesPerCharacter = 2;
   231             method.iNumberOfCoreBytesPerCharacter = 2;
   231             aArrayOfMethods.Append(method);
   232             ret |= aArrayOfMethods.Append(method);
   232             method.iNumberOfBytesAbleToConvert =
   233             method.iNumberOfBytesAbleToConvert =
   233                 CnvPictographShared::NumberOfBytesAbleToConvertToEucJpDirectMap2;
   234                 CnvPictographShared::NumberOfBytesAbleToConvertToEucJpDirectMap2;
   234             method.iConvertToIntermediateBufferInPlace =
   235             method.iConvertToIntermediateBufferInPlace =
   235                 CnvPictographShared::ConvertToPictographFromEucJpPackedInPlace;
   236                 CnvPictographShared::ConvertToPictographFromEucJpPackedInPlace;
   236             method.iConversionData =
   237             method.iConversionData =
   237                 &CnvShiftJisDirectmap::ConversionData();
   238                 &CnvShiftJisDirectmap::ConversionData();
   238             method.iNumberOfBytesPerCharacter = 3;
   239             method.iNumberOfBytesPerCharacter = 3;
   239             method.iNumberOfCoreBytesPerCharacter = 2;
   240             method.iNumberOfCoreBytesPerCharacter = 2;
   240             aArrayOfMethods.Append(method);
   241             ret |= aArrayOfMethods.Append(method);
   241             break;
   242             break;
   242         default:
   243         default:
   243             break;
   244             break;
   244         }
   245         }
   245 
   246     __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret));
   246     // SAMPLE CODE
   247     // SAMPLE CODE
   247     // If this module needs to support escape sequence pictograph,
   248     // If this module needs to support escape sequence pictograph,
   248     // Remove the comment from the following code.
   249     // Remove the comment from the following code.
   249 
   250 
   250     // method.iNumberOfBytesAbleToConvert =
   251     // method.iNumberOfBytesAbleToConvert =
   267 //
   268 //
   268 void CnvPictographShared::SetCharacterSetsForPictograph(
   269 void CnvPictographShared::SetCharacterSetsForPictograph(
   269         RArray<CnvUtilities::SCharacterSet>& aArrayOfStates,
   270         RArray<CnvUtilities::SCharacterSet>& aArrayOfStates,
   270         TOriginalCharset aOriginalCharset)
   271         TOriginalCharset aOriginalCharset)
   271     {
   272     {
       
   273     TInt ret = KErrNone;
   272     CnvUtilities::SCharacterSet characterSet;
   274     CnvUtilities::SCharacterSet characterSet;
   273     switch (aOriginalCharset)
   275     switch (aOriginalCharset)
   274         {
   276         {
   275         case ECharsetShiftJis:
   277         case ECharsetShiftJis:
   276             // Append the character set for pictograph
   278             // Append the character set for pictograph
   277             characterSet.iConversionData =
   279             characterSet.iConversionData =
   278                 &CnvShiftJisDirectmap::ConversionData();
   280                 &CnvShiftJisDirectmap::ConversionData();
   279             characterSet.iConvertFromIntermediateBufferInPlace =
   281             characterSet.iConvertFromIntermediateBufferInPlace =
   280                 DummyConvertFromIntermediateBufferInPlace;
   282                 DummyConvertFromIntermediateBufferInPlace;
   281             characterSet.iEscapeSequence = &KNullDesC8;
   283             characterSet.iEscapeSequence = &KNullDesC8;
   282             aArrayOfStates.Append(characterSet);
   284             ret |= aArrayOfStates.Append(characterSet);
   283             break;
   285             break;
   284         case ECharsetEucJp:
   286         case ECharsetEucJp:
   285             // Append the character set for pictograph1
   287             // Append the character set for pictograph1
   286             characterSet.iConversionData = &CnvShiftJisDirectmap::ConversionData();
   288             characterSet.iConversionData = &CnvShiftJisDirectmap::ConversionData();
   287             characterSet.iConvertFromIntermediateBufferInPlace =
   289             characterSet.iConvertFromIntermediateBufferInPlace =
   288                 ConvertFromPictogaphToEucJpDirectmapInPlace;
   290                 ConvertFromPictogaphToEucJpDirectmapInPlace;
   289             characterSet.iEscapeSequence = &KNullDesC8;
   291             characterSet.iEscapeSequence = &KNullDesC8;
   290             aArrayOfStates.Append(characterSet);
   292             ret |= aArrayOfStates.Append(characterSet);
   291 
   293 
   292             // Append the character set for pictograph2
   294             // Append the character set for pictograph2
   293             characterSet.iConversionData = &CnvShiftJisDirectmap::ConversionData();
   295             characterSet.iConversionData = &CnvShiftJisDirectmap::ConversionData();
   294             characterSet.iConvertFromIntermediateBufferInPlace =
   296             characterSet.iConvertFromIntermediateBufferInPlace =
   295                 ConvertFromPictogaphToEucJpDirectmapInPlace;
   297                 ConvertFromPictogaphToEucJpDirectmapInPlace;
   296             characterSet.iEscapeSequence = &KNullDesC8;
   298             characterSet.iEscapeSequence = &KNullDesC8;
   297             aArrayOfStates.Append(characterSet);
   299             ret |= aArrayOfStates.Append(characterSet);
   298             break;
   300             break;
   299         default:
   301         default:
   300             break;
   302             break;
   301         }
   303         }
       
   304     __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret));
   302     }
   305     }
   303 
   306 
   304 // -----------------------------------------------------------------------------
   307 // -----------------------------------------------------------------------------
   305 // CnvPictographShared::SetStatesForPictograph
   308 // CnvPictographShared::SetStatesForPictograph
   306 // It sets parameters to SState array. It called in ConvertToUnicode().
   309 // It sets parameters to SState array. It called in ConvertToUnicode().