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