diff -r a2fdc35b8f46 -r 4e5b531d23cb voicerecorder/UtilsSrc/VRUtils.cpp --- a/voicerecorder/UtilsSrc/VRUtils.cpp Tue Apr 27 16:40:59 2010 +0300 +++ b/voicerecorder/UtilsSrc/VRUtils.cpp Tue May 11 16:15:58 2010 +0300 @@ -138,9 +138,9 @@ else { TUint status( 0 ); - VRUtils::GetDriveInfo(memoDrive, status); + TInt err = VRUtils::GetDriveInfo(memoDrive, status); // check if drive status is ok - if ( (status & DriveInfo::EDrivePresent) && !(status & DriveInfo::EDriveLocked) && + if ( ( err == KErrNone ) && (status & DriveInfo::EDrivePresent) && !(status & DriveInfo::EDriveLocked) && !( status & DriveInfo::EDriveCorrupt ) && !( status & DriveInfo::EDriveReadOnly ) ) { // Drive usage is OK. @@ -1053,6 +1053,29 @@ return mode; } +// --------------------------------------------------------------------------- +// DriveValid checks the drive is valid or not +// --------------------------------------------------------------------------- +// +EXPORT_C TBool VRUtils::DriveValid( const TInt aDrive ) + { + TUint status( 0 ); + TBool flag( ETrue ); + TInt err = VRUtils::GetDriveInfo( aDrive, status ); + if ( err != KErrNone ) + { flag = EFalse; } + else + { + if ( !(status & DriveInfo::EDrivePresent) || + (status & DriveInfo::EDriveLocked) || + (status & DriveInfo::EDriveReadOnly) || + (status & DriveInfo::EDriveCorrupt) || + (status & DriveInfo::EDriveInUse) ) + { flag = EFalse; } + } + return flag; + + } #ifdef RD_MULTIPLE_DRIVE // --------------------------------------------------------------------------- @@ -1103,7 +1126,7 @@ EXPORT_C TInt VRUtils::DefaultMemoDriveL() { TInt drive(0); - User::LeaveIfError( DriveInfo::GetDefaultDrive(DriveInfo::EDefaultPhoneMemory, drive ) ); + User::LeaveIfError( DriveInfo::GetDefaultDrive(DriveInfo::EDefaultMassStorage, drive ) ); return drive; } @@ -1113,10 +1136,11 @@ // it is for multiple drive feature // --------------------------------------------------------------------------- // -EXPORT_C void VRUtils::GetDriveInfo( TInt aDrive, TUint& aDriveInfo ) +EXPORT_C TInt VRUtils::GetDriveInfo( TInt aDrive, TUint& aDriveInfo ) { RFs& iFs = CCoeEnv::Static()->FsSession() ; - DriveInfo::GetDriveStatus( iFs, aDrive, aDriveInfo ); + TInt err = DriveInfo::GetDriveStatus( iFs, aDrive, aDriveInfo ); + return err; } #endif