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(). |