20 #include <tisi.h> |
20 #include <tisi.h> |
21 #include <pn_const.h> |
21 #include <pn_const.h> |
22 #include <ctsy/serviceapi/mmtsy_ipcdefs.h> |
22 #include <ctsy/serviceapi/mmtsy_ipcdefs.h> |
23 #include "cmmmessagerouter.h" |
23 #include "cmmmessagerouter.h" |
24 #include "cmmphonebookoperationinit3G_adn.h" |
24 #include "cmmphonebookoperationinit3G_adn.h" |
25 #include "osttracedefinitions.h" |
25 #include "OstTraceDefinitions.h" |
26 #ifdef OST_TRACE_COMPILER_IN_USE |
26 #ifdef OST_TRACE_COMPILER_IN_USE |
27 #include "cmmphonebookoperationinittraces.h" |
27 #include "cmmphonebookoperationinitTraces.h" |
28 #include "OstTraceDefinitions.h" |
28 #include "OstTraceDefinitions.h" |
29 #ifdef OST_TRACE_COMPILER_IN_USE |
29 #ifdef OST_TRACE_COMPILER_IN_USE |
30 #include "cmmphonebookoperationinit3g_adnTraces.h" |
30 #include "cmmphonebookoperationinit3g_adnTraces.h" |
31 #endif |
31 #endif |
32 |
32 |
116 const CPhoneBookDataPackage* phoneBookData = |
116 const CPhoneBookDataPackage* phoneBookData = |
117 static_cast<const CPhoneBookDataPackage*>( aDataPackage ); |
117 static_cast<const CPhoneBookDataPackage*>( aDataPackage ); |
118 |
118 |
119 phoneBookData->GetPhoneBookName( phonebookTypeName ); |
119 phoneBookData->GetPhoneBookName( phonebookTypeName ); |
120 // Store phonebook name |
120 // Store phonebook name |
121 mmPhoneBookOperationInit3G_adn->iPhonebookType = phonebookTypeName; |
121 mmPhoneBookOperationInit3G_adn->iPhoneBookTypeName = phonebookTypeName; |
122 |
122 |
123 if( 0 == phonebookTypeName.CompareF( KInternalPhoneBookType ) ) |
123 if( 0 == phonebookTypeName.CompareF( KInternalPhoneBookType ) ) |
124 { |
124 { |
125 mmPhoneBookOperationInit3G_adn->iIniPhase = EPBIniPhase_Internal; |
125 mmPhoneBookOperationInit3G_adn->iIniPhase = EPBIniPhase_Internal; |
126 } |
126 } |
127 else // Full construction is not needed in case of internal initilization |
127 else // Full construction is not needed in case of internal initilization |
128 { |
128 { |
129 mmPhoneBookOperationInit3G_adn->iTransactionId = ETrIdPbInit; |
|
130 mmPhoneBookOperationInit3G_adn->ConstructL(); |
129 mmPhoneBookOperationInit3G_adn->ConstructL(); |
131 } |
130 } |
132 mmPhoneBookOperationInit3G_adn->iMmPhoneBookStoreMessHandler = |
131 mmPhoneBookOperationInit3G_adn->iMmPhoneBookStoreMessHandler = |
133 aMmPhoneBookStoreMessHandler; |
132 aMmPhoneBookStoreMessHandler; |
134 |
133 |
190 // ----------------------------------------------------------------------------- |
189 // ----------------------------------------------------------------------------- |
191 // |
190 // |
192 TInt CMmPhoneBookOperationInit3G_adn::UICCCreateReq |
191 TInt CMmPhoneBookOperationInit3G_adn::UICCCreateReq |
193 ( |
192 ( |
194 TInt aIpc, |
193 TInt aIpc, |
195 const CMmDataPackage* /*aDataPackage*/ |
194 const CMmDataPackage* /*aDataPackage*/, |
|
195 TUint8 aTransId |
196 ) |
196 ) |
197 { |
197 { |
198 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCCreateReq" ); |
198 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCCreateReq" ); |
199 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCCREATEREQ, "CMmPhoneBookOperationInit3G_adn::UICCCreateReq" ); |
199 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCCREATEREQ, "CMmPhoneBookOperationInit3G_adn::UICCCreateReq" ); |
200 |
200 |
213 iInternalInit = ETrue; |
213 iInternalInit = ETrue; |
214 |
214 |
215 } |
215 } |
216 |
216 |
217 iServiceType = UICC_APPL_FILE_INFO; |
217 iServiceType = UICC_APPL_FILE_INFO; |
218 iExtensionPresent = EFalse; // Default Extension is not present |
|
219 |
218 |
220 // Start Initialization for ADN phonebook 3G |
219 // Start Initialization for ADN phonebook 3G |
221 iIniPhase = EPBInitPhase_3GADN_PBR; |
220 iIniPhase = EPBInitPhase_3GADN_PBR; |
222 ret = UICCInitializeReq3GADN(); |
221 ret = UICCInitializeReq3GADN( aTransId ); |
223 } |
222 } |
224 else // else for if internalInit goign on |
223 else // else for if internalInit goign on |
225 { |
224 { |
226 // Simultaneous initializations are not allowed. |
225 // Simultaneous initializations are not allowed. |
227 ret = KErrInUse; |
226 ret = KErrInUse; |
247 // ----------------------------------------------------------------------------- |
246 // ----------------------------------------------------------------------------- |
248 // CMmPhoneBookOperationInit3G_adn::UICCCreateReq |
247 // CMmPhoneBookOperationInit3G_adn::UICCCreateReq |
249 // For USIM Separate different request to correct function |
248 // For USIM Separate different request to correct function |
250 // ----------------------------------------------------------------------------- |
249 // ----------------------------------------------------------------------------- |
251 // |
250 // |
252 TInt CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN() |
251 TInt CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN( TUint8 aTransId) |
253 { |
252 { |
254 TInt ret(KErrNone); |
253 TInt ret(KErrNone); |
255 |
254 |
256 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" ); |
255 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" ); |
257 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCINITIALIZEREQ3GADN, "CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" ); |
256 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCINITIALIZEREQ3GADN, "CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" ); |
258 |
257 |
259 TInt appFileID( APPL_FILE_ID ); |
258 TInt appFileID( APPL_FILE_ID ); |
260 TUiccReadLinearFixed cmdParams; |
259 TUiccReadLinearFixed cmdParams; |
261 cmdParams.messHandlerPtr = |
260 cmdParams.messHandlerPtr = |
262 static_cast<MUiccOperationBase*>( iMmPhoneBookStoreMessHandler ); |
261 static_cast<MUiccOperationBase*>( iMmPhoneBookStoreMessHandler ); |
263 cmdParams.trId = ETrIdPbInit; |
262 cmdParams.trId = static_cast<TUiccTrId>( aTransId ); |
264 |
263 |
265 cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE >> 8 )); |
264 cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE >> 8 )); |
266 cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE )); |
265 cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE )); |
267 cmdParams.filePath.Append( appFileID>>8 ); |
266 cmdParams.filePath.Append( appFileID>>8 ); |
268 cmdParams.filePath.Append( appFileID ); |
267 cmdParams.filePath.Append( appFileID ); |
392 // CmmPhonebookOperationInit::HandleUICCPbRespL |
391 // CmmPhonebookOperationInit::HandleUICCPbRespL |
393 // HAndle response for all phase init response in USIM |
392 // HAndle response for all phase init response in USIM |
394 // ----------------------------------------------------------------------------- |
393 // ----------------------------------------------------------------------------- |
395 // |
394 // |
396 |
395 |
397 TInt CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL |
396 TBool CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL |
398 ( |
397 ( |
399 TBool &aComplete, |
|
400 TInt aStatus, |
398 TInt aStatus, |
|
399 TUint8 /*aDetails*/, |
401 const TDesC8 &aFileData, |
400 const TDesC8 &aFileData, |
402 TInt /*aTransId*/ |
401 TInt aTransId |
403 ) |
402 ) |
404 { |
403 { |
405 TInt ret( KErrNone ); |
404 TInt ret( KErrNone ); |
|
405 TBool complete( EFalse ); |
406 |
406 |
407 // break immediatelly in case of internal init |
407 // break immediatelly in case of internal init |
408 if ( iInternalInit ) |
408 if ( iInternalInit ) |
409 { |
409 { |
410 TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Internal Init->Break"); |
410 TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Internal Init->Break"); |
426 case EPBInitPhase_3GADN_Type3: |
426 case EPBInitPhase_3GADN_Type3: |
427 { |
427 { |
428 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN PhoneBook Init" ); |
428 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN PhoneBook Init" ); |
429 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN Phonebook init" ); |
429 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN Phonebook init" ); |
430 |
430 |
431 ret = HandleUICCPbResp3GADN( aFileData, aStatus ); |
431 ret = HandleUICCPbResp3GADN( aFileData, aStatus, aTransId ); |
432 } |
432 } |
433 break; |
433 break; |
434 case EPBInitPhaseFDN: |
434 case EPBInitPhaseFDN: |
435 case EPBInitPhaseSDN: |
435 case EPBInitPhaseSDN: |
436 case EPBInitPhaseMBDN: |
436 case EPBInitPhaseMBDN: |
438 { |
438 { |
439 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit::HandleUICCPbRespL. Other PhoneBook Init" ); |
439 TFLOGSTRING( "TSY: CMmPhoneBookOperationInit::HandleUICCPbRespL. Other PhoneBook Init" ); |
440 OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Other Phonebook Init" ); |
440 OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Other Phonebook Init" ); |
441 |
441 |
442 // For all other phoenbook handling is same as 2g Phonebook |
442 // For all other phoenbook handling is same as 2g Phonebook |
443 ret = HandlePBRespL( aFileData, aStatus ); |
443 ret = HandlePBRespL( aFileData, aStatus, aTransId ); |
444 } |
444 } |
445 break; |
445 break; |
446 default: |
446 default: |
447 // Not to handle anything if card type is not available |
447 // Not to handle anything if card type is not available |
448 break; |
448 break; |
451 |
451 |
452 // Complete, if phonebook initalization is complete or there is some error in UICC server |
452 // Complete, if phonebook initalization is complete or there is some error in UICC server |
453 if ( KErrNone != ret || EPBIniPhase_PBInitialized == iIniPhase ) |
453 if ( KErrNone != ret || EPBIniPhase_PBInitialized == iIniPhase ) |
454 { |
454 { |
455 CPhoneBookDataPackage phoneBookData; |
455 CPhoneBookDataPackage phoneBookData; |
456 phoneBookData.SetPhoneBookName( iPhonebookType ); |
456 phoneBookData.SetPhoneBookName( iPhoneBookTypeName ); |
457 phoneBookData.PackData( iPBStoreInfoData ); |
457 phoneBookData.PackData( iPBStoreInfoData ); |
458 |
458 |
459 if ( UICC_STATUS_OK != aStatus ) |
459 if ( UICC_STATUS_OK != aStatus ) |
460 { |
460 { |
461 ret = CMmStaticUtility::UICCCSCauseToEpocError( aStatus ); |
461 ret = CMmStaticUtility::UICCCSCauseToEpocError( aStatus ); |
464 iMmPhoneBookStoreMessHandler->MessageRouter()->Complete( |
464 iMmPhoneBookStoreMessHandler->MessageRouter()->Complete( |
465 EMmTsyPhoneBookStoreInitIPC, |
465 EMmTsyPhoneBookStoreInitIPC, |
466 &phoneBookData, |
466 &phoneBookData, |
467 ret ); |
467 ret ); |
468 |
468 |
469 aComplete = ETrue; |
469 complete = ETrue; |
470 } |
470 } |
471 return ret; |
471 return complete; |
472 |
472 |
473 } |
473 } |
474 // ----------------------------------------------------------------------------- |
474 // ----------------------------------------------------------------------------- |
475 // CmmPhonebookOperationInit::HandleUICCPbResp3GADN |
475 // CmmPhonebookOperationInit::HandleUICCPbResp3GADN |
476 // Handle response for ADN phone book init in USIM |
476 // Handle response for ADN phone book init in USIM |
477 // ----------------------------------------------------------------------------- |
477 // ----------------------------------------------------------------------------- |
478 // |
478 // |
479 TInt CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN |
479 TInt CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN |
480 ( |
480 ( |
481 const TDesC8& aFileData, |
481 const TDesC8& aFileData, |
482 TInt aStatus) |
482 TInt aStatus, |
|
483 TUint8 aTransId ) |
483 { |
484 { |
484 TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN"); |
485 TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN"); |
485 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESP3GADN, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN" ); |
486 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESP3GADN, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN" ); |
486 |
487 |
487 TInt ret( KErrNone ); |
488 TInt ret( KErrNone ); |
494 { |
495 { |
495 TInt offSet( 0 ); |
496 TInt offSet( 0 ); |
496 // For File Info , get the no of records in PBR file to get the total no of entries in 3G ADN phonebook |
497 // For File Info , get the no of records in PBR file to get the total no of entries in 3G ADN phonebook |
497 if( UICC_APPL_FILE_INFO == iServiceType ) |
498 if( UICC_APPL_FILE_INFO == iServiceType ) |
498 { |
499 { |
499 // Extract Number of records in PBR EF |
500 TFci fci( aFileData ); |
500 offSet = aFileData.Find( &KTagFCIFileDescriptor,1 ); |
501 iNumOfPBRRecords = fci.GetNumberOfRecords(); |
501 if( offSet != KErrNotFound ) |
502 |
502 { |
503 ret = KErrNone; |
503 // Number of entries is 1 byte long |
|
504 //iNumOfPBRRecords = aFileData[offSet + UICC_FCI_EF_FDESC_OFFSET_NUM_ENTR]; |
|
505 // get the no of records in PBR file |
|
506 HandleFcpData(aFileData, iNumOfPBRRecords, KNoOfRecords); |
|
507 |
|
508 ret = KErrNone; |
|
509 } |
|
510 iServiceType = UICC_APPL_READ_LINEAR_FIXED; |
504 iServiceType = UICC_APPL_READ_LINEAR_FIXED; |
511 } |
505 } |
512 else if( UICC_APPL_READ_LINEAR_FIXED == iServiceType ) |
506 else if( UICC_APPL_READ_LINEAR_FIXED == iServiceType ) |
513 { |
507 { |
514 // Get the offset for Type 1 file tag "KTagConstructedTagA8" |
508 // Get the offset for Type 1 file tag "KTagConstructedTagA8" |
583 { |
577 { |
584 // get the next Phone book available in UST OR SST Table (for 2G)table |
578 // get the next Phone book available in UST OR SST Table (for 2G)table |
585 iIniPhase = GetNextAvailablePbUicc( UICC_FDN_SERVICE_NUM ); |
579 iIniPhase = GetNextAvailablePbUicc( UICC_FDN_SERVICE_NUM ); |
586 } |
580 } |
587 iServiceType = UICC_APPL_FILE_INFO; |
581 iServiceType = UICC_APPL_FILE_INFO; |
588 ret = UICCInitializeReq(); |
582 ret = UICCInitializeReq( aTransId ); |
589 } |
583 } |
590 else |
584 else |
591 { |
585 { |
592 // Call Create request for next phase |
586 // Call Create request for next phase |
593 ret = UICCInitializeReq3GADN(); |
587 ret = UICCInitializeReq3GADN( aTransId ); |
594 } |
588 } |
595 } |
589 } |
596 |
590 |
597 return ret; |
591 return ret; |
598 } |
592 } |
625 { |
619 { |
626 // Get the Tag name |
620 // Get the Tag name |
627 primTag.tagValue = aFileData[offset + i]; |
621 primTag.tagValue = aFileData[offset + i]; |
628 |
622 |
629 // get the File ID which is 2byte long |
623 // get the File ID which is 2byte long |
630 Get16bit(primTag.tagFID, aFileData, ( offset+i+2 )); |
624 primTag.tagFID = CMmStaticUtility::Get16Bit( aFileData, ( offset+i+2 )); |
631 |
625 |
632 // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present |
626 // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present |
633 if(KLengthWithSFI == aFileData[offset + i+1]) |
627 if(KLengthWithSFI == aFileData[offset + i+1]) |
634 { |
628 { |
635 primTag.tagSFI = aFileData[offset+i+4]; |
629 primTag.tagSFI = aFileData[offset+i+4]; |
679 for( TInt i = 0; i < aTagLength; ) |
673 for( TInt i = 0; i < aTagLength; ) |
680 { |
674 { |
681 // Get the Tag name |
675 // Get the Tag name |
682 primTag.tagValue = aFileData[offset+i]; |
676 primTag.tagValue = aFileData[offset+i]; |
683 // get the File ID which is 2byte long |
677 // get the File ID which is 2byte long |
684 Get16bit(primTag.tagFID, aFileData, ( offset+i+2 )); |
678 primTag.tagFID = CMmStaticUtility::Get16Bit( aFileData, ( offset+i+2 )); |
685 |
679 |
686 // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present |
680 // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present |
687 if(KLengthWithSFI == aFileData[offset+i+1]) |
681 if(KLengthWithSFI == aFileData[offset+i+1]) |
688 { |
682 { |
689 primTag.tagSFI = aFileData[offset+i+4]; |
683 primTag.tagSFI = aFileData[offset+i+4]; |
735 { |
729 { |
736 // Get the Tag name |
730 // Get the Tag name |
737 primTag.tagValue = aFileData[offset+i]; |
731 primTag.tagValue = aFileData[offset+i]; |
738 |
732 |
739 // get the File ID which is 2byte long |
733 // get the File ID which is 2byte long |
740 Get16bit( primTag.tagFID, aFileData, ( offset+i+2 )); |
734 primTag.tagFID = CMmStaticUtility::Get16Bit( aFileData, |
|
735 ( offset + i + 2 )); |
741 |
736 |
742 // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present |
737 // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present |
743 if(KLengthWithSFI == aFileData[offset+i+1]) |
738 if(KLengthWithSFI == aFileData[offset+i+1]) |
744 { |
739 { |
745 primTag.tagSFI = aFileData[offset+i+4]; |
740 primTag.tagSFI = aFileData[offset+i+4]; |
783 TUint8 tagValue = iType1FileArray[iCurrentArrayCounter].tagValue; |
778 TUint8 tagValue = iType1FileArray[iCurrentArrayCounter].tagValue; |
784 |
779 |
785 if( UICC_STATUS_OK == aStatus ) |
780 if( UICC_STATUS_OK == aStatus ) |
786 { |
781 { |
787 // Get the Record length for all linear fixed and circular EF's |
782 // Get the Record length for all linear fixed and circular EF's |
788 HandleFcpData(aFileData, recordLength, KRecordLength); |
783 TFci fci( aFileData ); |
789 |
784 recordLength = fci.GetRecordLength(); |
790 // Get the no of records |
785 noOfRecords = fci.GetNumberOfRecords(); |
791 HandleFcpData(aFileData, noOfRecords, KNoOfRecords); |
786 |
792 |
|
793 // Check for No of records in Type 1 file |
787 // Check for No of records in Type 1 file |
794 if( UICC_EF_ADN_TAG != tagValue ) |
788 if( UICC_EF_ADN_TAG != tagValue ) |
795 { |
789 { |
796 ret = CheckForNoOfRecords( noOfRecords ); |
790 ret = CheckForNoOfRecords( noOfRecords ); |
797 } |
791 } |
961 TInt noOfRecords(0); |
955 TInt noOfRecords(0); |
962 |
956 |
963 if( UICC_STATUS_OK == aStatus ) |
957 if( UICC_STATUS_OK == aStatus ) |
964 { |
958 { |
965 // Get the Record length for all linear fixed and circular EF's |
959 // Get the Record length for all linear fixed and circular EF's |
966 HandleFcpData(aFileData, recordLength, KRecordLength); |
960 TFci fci( aFileData ); |
967 |
961 recordLength = fci.GetRecordLength(); |
968 // get no of records |
962 noOfRecords = fci.GetNumberOfRecords(); |
969 HandleFcpData(aFileData, noOfRecords, KNoOfRecords); |
963 } |
970 |
964 |
971 } |
|
972 // Get the tag value for current File |
965 // Get the tag value for current File |
973 TUint tagValue = iType2FileArray[iCurrentArrayCounter].tagValue; |
966 TUint tagValue = iType2FileArray[iCurrentArrayCounter].tagValue; |
974 |
967 |
975 if( iCurrentArrayCounter < iType2FileArray.Count() ) |
968 if( iCurrentArrayCounter < iType2FileArray.Count() ) |
976 { |
969 { |
1070 TInt noOfRecords(0); |
1063 TInt noOfRecords(0); |
1071 |
1064 |
1072 |
1065 |
1073 if( UICC_STATUS_OK == aStatus ) |
1066 if( UICC_STATUS_OK == aStatus ) |
1074 { |
1067 { |
1075 // Get the Record length for all linear fixed and circular EF's |
1068 TFci fci( aFileData ); |
1076 HandleFcpData(aFileData, recordLength, KRecordLength); |
1069 recordLength = fci.GetRecordLength(); |
1077 |
1070 noOfRecords = fci.GetNumberOfRecords(); |
1078 HandleFcpData(aFileData, noOfRecords, KNoOfRecords); |
|
1079 } |
1071 } |
1080 |
1072 |
1081 // Get the tag value for current File |
1073 // Get the tag value for current File |
1082 TUint tagValue ( iType3FileArray[iCurrentArrayCounter].tagValue ); |
1074 TUint tagValue ( iType3FileArray[iCurrentArrayCounter].tagValue ); |
1083 |
1075 |