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 |