TBool CMMCMonitorAO::StartMonitoring( MMMCMonitorObserver& aObserver, RArray<TMdEMediaInfo>& aMedias ) { WRITELOG( "CMMCMonitorAO::StartMonitoring" ); // DEBUG INFO iObserver = &aObserver; BuildDriveList(); const TInt count( aMedias.Count() ); for ( TInt i = 0; i < count; i++ ) { TInt drive(0); const TInt err = iFs.CharToDrive( aMedias[i].iDrive, drive ); if ( err == KErrNone ) { WRITELOG2( "CMMCMonitorAO::StartMonitoring - set drive %d mediaid to %d ", drive, aMedias[i].iMediaId ); iDriveList[drive] = 1; // fake value for startup (not KDriveAbsent) iMediaIdList[drive] = aMedias[i].iMediaId; } } iPreviousDriveList.Zero(); iPreviousDriveList.Copy( iDriveList ); #ifdef _DEBUG PrintAllLists(); #endif CompareDriveLists(); StartNotify(); return ETrue; }
void CMMCStorageStatus::RunL() { #ifdef SYMBIAN_3_1 TDriveInfo driveInfo; TDriveNumber driveLetter = EDriveE; // Have to use hardcoded MMC drive letter for 3.1 if (iFs.Drive(driveInfo, driveLetter) == KErrNone) { bool driveInserted = false; switch (driveInfo.iType) { case EMediaNotPresent: driveInserted = false; break; default: driveInserted = true; break; } TChar volumeChar; QString volume; if (RFs::DriveToChar(driveLetter, volumeChar) == KErrNone) volume = QChar(volumeChar).toAscii(); foreach (MStorageStatusObserver *observer, m_observers) observer->storageStatusChanged(driveInserted, volume); } #else // SYMBIAN_3_1 CompareDriveLists(PopulateDriveList()); #endif // SYMBIAN_3_1 startMonitoring(); }
void CMMCMonitorAO::RunL() { #ifdef _DEBUG WRITELOG1( "CMMCMonitorAO::RunL iStatus: %d", iStatus.Int() ); // DEBUG INFO #endif if ( iStatus.Int() != KErrNone ) { StartNotify(); return; } StartNotify(); iPreviousDriveList.Zero(); iPreviousDriveList.Copy( iDriveList ); BuildDriveList(); #ifdef _DEBUG PrintAllLists(); #endif CompareDriveLists(); #ifdef _DEBUG PrintAllLists(); #endif }
void QDriveWatcherEngine::RunL() { #ifdef SYMBIAN_3_1 TDriveInfo driveInfo; TDriveNumber driveLetter = EDriveE; // Have to use hardcoded MMC drive letter for 3.1 if (iFs.Drive(driveInfo, driveLetter) == KErrNone) { bool driveInserted = driveInfo.iType != EMediaNotPresent; TChar volumeChar; QString volume; if (RFs::DriveToChar(driveLetter, volumeChar) == KErrNone) volume = QChar(volumeChar).toLatin1(); foreach (MStorageStatusObserver *observer, m_observers) observer->storageStatusChanged(driveInserted, volume); } #else CompareDriveLists(PopulateDriveList()); #endif startMonitoring(); }