harvester/monitorplugins/mmcplugin/src/mmcmonitorplugin.cpp
changeset 43 c5e73110f733
parent 40 910a23996aa0
child 48 1389872e7c51
equal deleted inserted replaced
40:910a23996aa0 43:c5e73110f733
   252         {
   252         {
   253         case EMounted:
   253         case EMounted:
   254             {
   254             {
   255             WRITELOG( "CMMCMonitorPlugin::MountEvent with parameter EMounted" );
   255             WRITELOG( "CMMCMonitorPlugin::MountEvent with parameter EMounted" );
   256             mountData->iMountType = TMountData::EMount;
   256             mountData->iMountType = TMountData::EMount;
       
   257             
       
   258             // If mass storage mounting was delayed in boot so that mount event
       
   259             // occures in mmc monitor, update the mass storage media id in the
       
   260             // db in case factory settings were reseted and mass storage formatted
       
   261             TInt drive( -1 );
       
   262             TInt internalMassStorageError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, drive ) );
       
   263             if( internalMassStorageError == KErrNone )
       
   264                 {
       
   265                 TVolumeInfo internalMassStorageVolumeInfo;
       
   266                 internalMassStorageError = iFs.Volume( internalMassStorageVolumeInfo, drive );
       
   267                 if( internalMassStorageError == KErrNone )
       
   268                     {
       
   269                     const TUint32 massStorageMediaId( internalMassStorageVolumeInfo.iUniqueID );
       
   270                     TUint32 mmcMediaId( 0 );
       
   271                     TInt mmcError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive ) );
       
   272                     if( mmcError == KErrNone )
       
   273                         {
       
   274                         TVolumeInfo mmcVolumeInfo;
       
   275                         mmcError = iFs.Volume( mmcVolumeInfo, drive );
       
   276                         if( mmcError == KErrNone )
       
   277                             {
       
   278                             mmcMediaId = mmcVolumeInfo.iUniqueID;
       
   279                             }
       
   280                         }
       
   281                     
       
   282                     // If removable storage is not found, assume internal mass storage was mounted
       
   283                     if( mmcError )
       
   284                         {
       
   285                         if( massStorageMediaId != 0 && 
       
   286                             massStorageMediaId == aMediaID )
       
   287                             {
       
   288                             iMdEClient->CheckMassStorageMediaId( massStorageMediaId );
       
   289                             }                    
       
   290                         }
       
   291                     else if( massStorageMediaId != mmcMediaId && 
       
   292                                 massStorageMediaId != 0 && 
       
   293                                 massStorageMediaId == aMediaID )
       
   294                         {
       
   295                         iMdEClient->CheckMassStorageMediaId( massStorageMediaId );
       
   296                         }          
       
   297                     }
       
   298                 }
       
   299             
   257             TRAPD(err, iMountTask->StartMountL( *mountData ))
   300             TRAPD(err, iMountTask->StartMountL( *mountData ))
   258 			
   301 			
   259             if(err != KErrNone )
   302             if(err != KErrNone )
   260                 {
   303                 {
   261                 delete mountData;
   304                 delete mountData;