mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp
branchRCL_3
changeset 63 91d5ad76f5c6
parent 56 63223d4fd956
child 67 16db3449d7ba
equal deleted inserted replaced
59:666f9a5a90a9 63:91d5ad76f5c6
    38 #include "mmmtpdputility.h"
    38 #include "mmmtpdputility.h"
    39 #include "tmmmtpdppanic.h"
    39 #include "tmmmtpdppanic.h"
    40 #include "mmmtpvideodbdefs.h"
    40 #include "mmmtpvideodbdefs.h"
    41 #include "tobjectdescription.h"
    41 #include "tobjectdescription.h"
    42 
    42 
    43 const TInt KStorageRootMaxLength = 10;
    43 _LIT( KMTPNoBackupFolder, "nobackup\\" );
    44 
    44 
    45 #ifdef _DEBUG
    45 #ifdef _DEBUG
    46 static const TInt KMtpMaxStringDescLength = KMtpMaxStringLength - 1;
    46 static const TInt KMtpMaxStringDescLength = KMtpMaxStringLength - 1;
    47 #endif
    47 #endif
    48 
    48 
   107 //
   107 //
   108 TInt CMmMtpDpMetadataVideoAccess::OpenDatabase()
   108 TInt CMmMtpDpMetadataVideoAccess::OpenDatabase()
   109     {
   109     {
   110     PRINT( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::OpenDatabase" ) );
   110     PRINT( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::OpenDatabase" ) );
   111 
   111 
   112     iRfs.CreatePrivatePath( iStoreNum );
   112     TFileName dbFileName;
   113     TInt err = iRfs.SetSessionToPrivate( iStoreNum );
   113     TDriveUnit dbDrive( iStoreNum );
   114 
   114     iRfs.PrivatePath( dbFileName );
   115     if ( err == KErrNone )
   115     dbFileName.Insert( 0, dbDrive.Name() );
   116         {
   116     dbFileName.Append( KMTPNoBackupFolder );
   117         TRAP( err, iFileStore = CPermanentFileStore::OpenL( iRfs, KMtpVideoDb, EFileRead | EFileWrite ) );
   117     dbFileName.Append( KMtpVideoDb );
       
   118     TInt err = iRfs.MkDirAll( dbFileName );
       
   119 
       
   120     if ( err == KErrNone || err == KErrAlreadyExists )
       
   121         {
       
   122         TRAP( err, iFileStore = CPermanentFileStore::OpenL( iRfs, dbFileName, EFileRead | EFileWrite ) );
   118 
   123 
   119         if ( err == KErrNone )
   124         if ( err == KErrNone )
   120             TRAP( err, iFileStore->SetTypeL( iFileStore->Layout() ) );
   125             TRAP( err, iFileStore->SetTypeL( iFileStore->Layout() ) );
   121 
   126 
   122         if ( err == KErrNone )
   127         if ( err == KErrNone )
   125             PRINT1( _L( "MM MTP <> OpenDatabase RDbNamedDatabase::OpenL, err = %d" ), err );
   130             PRINT1( _L( "MM MTP <> OpenDatabase RDbNamedDatabase::OpenL, err = %d" ), err );
   126             }
   131             }
   127 
   132 
   128         if ( err != KErrNone )
   133         if ( err != KErrNone )
   129             {
   134             {
   130             iRfs.Delete( KMtpVideoDb );   // delete first before creating a new one
   135             iRfs.Delete( dbFileName );   // delete first before creating a new one
   131             TRAP( err, iFileStore = CPermanentFileStore::CreateL( iRfs, KMtpVideoDb, EFileRead | EFileWrite ) );
   136             TRAP( err, iFileStore = CPermanentFileStore::CreateL( iRfs, dbFileName, EFileRead | EFileWrite ) );
   132             PRINT1( _L( "MM MTP <> OpenDatabase RDbNamedDatabase::CreateL, err = %d" ), err );
   137             PRINT1( _L( "MM MTP <> OpenDatabase RDbNamedDatabase::CreateL, err = %d" ), err );
   133 
   138 
   134             if ( err == KErrNone )
   139             if ( err == KErrNone )
   135                 {
   140                 {
   136                 TRAP( err, iFileStore->SetTypeL( iFileStore->Layout() ) );
   141                 TRAP( err, iFileStore->SetTypeL( iFileStore->Layout() ) );
   147                     TRAP( err, CreateDatabaseTablesL() );
   152                     TRAP( err, CreateDatabaseTablesL() );
   148 
   153 
   149                 if ( KErrNone != err )
   154                 if ( KErrNone != err )
   150                     {
   155                     {
   151                     iDatabase.Close();
   156                     iDatabase.Close();
   152                     iRfs.Delete( KMtpVideoDb );
   157                     iRfs.Delete( dbFileName );
   153                     }
   158                     }
   154                 }
   159                 }
   155             }
   160             }
   156         }
   161         }
   157 
   162 
   158     if ( err == KErrNone )
   163     if ( err == KErrNone )
   159         {
   164         {
   160         iDbOpened = ETrue;
   165         iDbOpened = ETrue;
   161         }
   166         }
   162 
   167 
   163     TBuf<KStorageRootMaxLength> storeRoot;
   168     PRINT1( _L( "MM MTP <= CMmMtpDpMetadataVideoAccess::OpenDatabase err = %d" ), err );
   164     if( PathInfo::GetRootPath( storeRoot, iStoreNum ) == KErrNone )
       
   165         {
       
   166         iRfs.SetSessionPath( storeRoot );
       
   167         }
       
   168 
       
   169     PRINT( _L( "MM MTP <= CMmMtpDpMetadataVideoAccess::OpenDatabase" ) );
       
   170     return err;
   169     return err;
   171     }
   170     }
   172 
   171 
   173 // ---------------------------------------------------------------------------
   172 // ---------------------------------------------------------------------------
   174 // CMmMtpDpMetadataVideoAccess::OpenDatabaseL
   173 // CMmMtpDpMetadataVideoAccess::OpenDatabaseL