equal
deleted
inserted
replaced
49 const TInt KObjectDefStrSize = 20; |
49 const TInt KObjectDefStrSize = 20; |
50 |
50 |
51 _LIT( KTAGDaemonName, "ThumbAGDaemon" ); |
51 _LIT( KTAGDaemonName, "ThumbAGDaemon" ); |
52 _LIT( KTAGDaemonExe, "thumbagdaemon.exe" ); |
52 _LIT( KTAGDaemonExe, "thumbagdaemon.exe" ); |
53 |
53 |
|
54 _LIT(KVideo, "Video"); |
54 _LIT(KInUse, "InUse"); |
55 _LIT(KInUse, "InUse"); |
|
56 |
|
57 _LIT( KExtensionMp4, "mp4" ); |
|
58 _LIT( KExtensionMpg4, "mpg4" ); |
|
59 _LIT( KExtensionMpeg4, "mpeg4" ); |
|
60 _LIT( KExtension3gp, "3gp" ); |
|
61 _LIT( KExtension3gpp, "3gpp" ); |
|
62 _LIT( KExtension3g2, "3g2" ); |
55 |
63 |
56 CHarvesterAoPropertyDefs::CHarvesterAoPropertyDefs() : CBase() |
64 CHarvesterAoPropertyDefs::CHarvesterAoPropertyDefs() : CBase() |
57 { |
65 { |
58 } |
66 } |
59 |
67 |
65 CMdEObjectDef& objectDef = nsDef.GetObjectDefL( MdeConstants::Object::KBaseObject ); |
73 CMdEObjectDef& objectDef = nsDef.GetObjectDefL( MdeConstants::Object::KBaseObject ); |
66 iCreationDatePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KCreationDateProperty ); |
74 iCreationDatePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KCreationDateProperty ); |
67 iLastModifiedDatePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KLastModifiedDateProperty ); |
75 iLastModifiedDatePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KLastModifiedDateProperty ); |
68 iSizePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KSizeProperty ); |
76 iSizePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KSizeProperty ); |
69 iOriginPropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KOriginProperty ); |
77 iOriginPropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KOriginProperty ); |
|
78 iItemTypePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KItemTypeProperty ); |
|
79 iTitlePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KTitleProperty ); |
70 |
80 |
71 CMdEObjectDef& mediaDef = nsDef.GetObjectDefL( MdeConstants::MediaObject::KMediaObject ); |
81 CMdEObjectDef& mediaDef = nsDef.GetObjectDefL( MdeConstants::MediaObject::KMediaObject ); |
72 iPreinstalledPropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KPreinstalledProperty ); |
82 iPreinstalledPropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KPreinstalledProperty ); |
73 } |
83 } |
74 |
84 |
111 |
121 |
112 // --------------------------------------------------------------------------- |
122 // --------------------------------------------------------------------------- |
113 // CHarvesterAO |
123 // CHarvesterAO |
114 // --------------------------------------------------------------------------- |
124 // --------------------------------------------------------------------------- |
115 // |
125 // |
116 CHarvesterAO::CHarvesterAO() : CActive( KHarvesterCustomImportantPriority) |
126 CHarvesterAO::CHarvesterAO() : CActive( KHarvesterCustomImportantPriority ) |
117 { |
127 { |
118 WRITELOG( "CHarvesterAO::CHarvesterAO() - begin" ); |
128 WRITELOG( "CHarvesterAO::CHarvesterAO() - begin" ); |
119 |
129 |
120 iServerPaused = ETrue; |
130 iServerPaused = ETrue; |
121 iNextRequest = ERequestIdle; |
131 iNextRequest = ERequestIdle; |
184 iReadyPHArray.ResetAndDestroy(); |
194 iReadyPHArray.ResetAndDestroy(); |
185 iReadyPHArray.Close(); |
195 iReadyPHArray.Close(); |
186 |
196 |
187 iContainerPHArray.ResetAndDestroy(); |
197 iContainerPHArray.ResetAndDestroy(); |
188 iContainerPHArray.Close(); |
198 iContainerPHArray.Close(); |
189 |
199 |
|
200 delete iHarvesterOomAO; |
190 delete iRestoreWatcher; |
201 delete iRestoreWatcher; |
191 delete iOnDemandAO; |
202 delete iOnDemandAO; |
192 delete iMdEHarvesterSession; |
203 delete iMdEHarvesterSession; |
193 delete iMdESession; |
204 delete iMdESession; |
194 delete iQueue; |
205 delete iQueue; |
195 delete iHarvesterPluginFactory; |
206 delete iHarvesterPluginFactory; |
196 delete iMdeObjectHandler; |
207 delete iMdeObjectHandler; |
197 delete iUnmountHandlerAO; |
208 delete iUnmountHandlerAO; |
198 |
209 |
199 delete iPropDefs; |
210 delete iPropDefs; |
|
211 delete iCameraExtensionArray; |
200 |
212 |
201 RMediaIdUtil::ReleaseInstance(); |
213 RMediaIdUtil::ReleaseInstance(); |
202 |
214 |
203 REComSession::FinalClose(); |
215 REComSession::FinalClose(); |
204 } |
216 } |
248 iReHarvester = CReHarvesterAO::NewL(); |
260 iReHarvester = CReHarvesterAO::NewL(); |
249 iReHarvester->SetHarvesterQueue( iQueue ); |
261 iReHarvester->SetHarvesterQueue( iQueue ); |
250 |
262 |
251 iHarvesterPluginFactory = CHarvesterPluginFactory::NewL(); |
263 iHarvesterPluginFactory = CHarvesterPluginFactory::NewL(); |
252 iHarvesterPluginFactory->SetBlacklist( *iBlacklist ); |
264 iHarvesterPluginFactory->SetBlacklist( *iBlacklist ); |
|
265 |
|
266 iCameraExtensionArray = new ( ELeave ) CDesCArraySeg( 6 ); |
|
267 iCameraExtensionArray->InsertIsqL( KExtensionMp4 ); |
|
268 iCameraExtensionArray->InsertIsqL( KExtensionMpg4 ); |
|
269 iCameraExtensionArray->InsertIsqL( KExtensionMpeg4 ); |
|
270 iCameraExtensionArray->InsertIsqL( KExtension3gp ); |
|
271 iCameraExtensionArray->InsertIsqL( KExtension3gpp ); |
|
272 iCameraExtensionArray->InsertIsqL( KExtension3g2 ); |
253 |
273 |
254 WRITELOG( "CHarvesterAO::ConstructL() - end" ); |
274 WRITELOG( "CHarvesterAO::ConstructL() - end" ); |
255 } |
275 } |
256 |
276 |
257 // --------------------------------------------------------------------------- |
277 // --------------------------------------------------------------------------- |
702 i--; |
722 i--; |
703 endindex--; |
723 endindex--; |
704 continue; |
724 continue; |
705 } |
725 } |
706 TBuf<KObjectDefStrSize> objDefStr; |
726 TBuf<KObjectDefStrSize> objDefStr; |
707 iHarvesterPluginFactory->GetObjectDefL( *hd, objDefStr ); |
727 |
708 |
728 if( !CheckForCameraItem( hd, objDefStr ) ) |
|
729 { |
|
730 iHarvesterPluginFactory->GetObjectDefL( *hd, objDefStr ); |
|
731 } |
|
732 |
709 if( objDefStr.Length() == 0 || |
733 if( objDefStr.Length() == 0 || |
710 ( objDefStr == KInUse ) ) |
734 ( objDefStr == KInUse ) ) |
711 { |
735 { |
712 const TInt error( KErrUnknown ); |
736 const TInt error( KErrUnknown ); |
713 // notify observer, notification is needed even if file is not supported |
737 // notify observer, notification is needed even if file is not supported |
786 // set placeholder |
810 // set placeholder |
787 mdeObject->SetPlaceholder( ETrue ); |
811 mdeObject->SetPlaceholder( ETrue ); |
788 |
812 |
789 if( !iPropDefs ) |
813 if( !iPropDefs ) |
790 { |
814 { |
791 iPropDefs = CHarvesterAoPropertyDefs::NewL( mdeObjectDef ); |
815 iPropDefs = CHarvesterAoPropertyDefs::NewL( defNS.GetObjectDefL( MdeConstants::Object::KBaseObject ) ); |
792 } |
816 } |
793 |
817 |
794 // set file size |
818 // set file size |
795 mdeObject->AddUint32PropertyL( *iPropDefs->iSizePropertyDef, phData->FileSize() ); |
819 mdeObject->AddUint32PropertyL( *iPropDefs->iSizePropertyDef, phData->FileSize() ); |
796 |
820 |
801 // set modification date |
825 // set modification date |
802 mdeObject->AddTimePropertyL( *iPropDefs->iLastModifiedDatePropertyDef, phData->Modified() ); |
826 mdeObject->AddTimePropertyL( *iPropDefs->iLastModifiedDatePropertyDef, phData->Modified() ); |
803 |
827 |
804 // set origin |
828 // set origin |
805 mdeObject->AddUint8PropertyL( *iPropDefs->iOriginPropertyDef, hd->Origin() ); |
829 mdeObject->AddUint8PropertyL( *iPropDefs->iOriginPropertyDef, hd->Origin() ); |
806 |
830 |
|
831 TBuf<KMaxDataTypeLength> mimeType; |
|
832 iHarvesterPluginFactory->GetMimeType( hd->Uri(), mimeType ); |
|
833 if( mimeType.Length() > 0 ) |
|
834 { |
|
835 mdeObject->AddTextPropertyL( *iPropDefs->iItemTypePropertyDef, mimeType ); |
|
836 } |
|
837 else |
|
838 { |
|
839 mdeObject->AddTextPropertyL( *iPropDefs->iItemTypePropertyDef, KNullDesC ); |
|
840 } |
|
841 |
|
842 TPtrC name; |
|
843 TBool nameFound = MdsUtils::GetName( hd->Uri(), name ); |
|
844 |
|
845 if ( nameFound ) |
|
846 { |
|
847 mdeObject->AddTextPropertyL( *iPropDefs->iTitlePropertyDef, name ); |
|
848 } |
|
849 else |
|
850 { |
|
851 mdeObject->AddTextPropertyL( *iPropDefs->iTitlePropertyDef, KNullDesC ); |
|
852 } |
|
853 |
807 CPlaceholderData* ph = NULL; |
854 CPlaceholderData* ph = NULL; |
808 if( hd->TakeSnapshot() ) |
855 if( hd->TakeSnapshot() ) |
809 { |
856 { |
810 ph = static_cast<CPlaceholderData*>( hd->ClientData() ); |
857 ph = static_cast<CPlaceholderData*>( hd->ClientData() ); |
811 } |
858 } |
1117 |
1164 |
1118 TRAP_IGNORE( iHarvesterEventManager->DecreaseItemCountL( EHEObserverTypeMMC, 1 ) ); |
1165 TRAP_IGNORE( iHarvesterEventManager->DecreaseItemCountL( EHEObserverTypeMMC, 1 ) ); |
1119 |
1166 |
1120 delete aHD; |
1167 delete aHD; |
1121 aHD = NULL; |
1168 aHD = NULL; |
1122 return; |
|
1123 } |
1169 } |
1124 else |
1170 else |
1125 { |
1171 { |
1126 WRITELOG1( "CHarvesterAO::HarvestingCompleted() - unknown error: %d", errorCode ); |
1172 WRITELOG1( "CHarvesterAO::HarvestingCompleted() - unknown error: %d", errorCode ); |
1127 delete aHD; |
1173 delete aHD; |
1158 } |
1204 } |
1159 else |
1205 else |
1160 { |
1206 { |
1161 WRITELOG( "CHarvesterAO::HandleSessionOpened() - error creating mde harvester session" ); |
1207 WRITELOG( "CHarvesterAO::HandleSessionOpened() - error creating mde harvester session" ); |
1162 } |
1208 } |
1163 |
1209 |
1164 TRAPD( ohTrap, iMdeObjectHandler = CMdeObjectHandler::NewL( *iMdESession ) ); |
1210 #ifdef _DEBUG |
1165 if ( ohTrap != KErrNone ) |
1211 TRAP( errorTrap, iMdeObjectHandler = CMdeObjectHandler::NewL( *iMdESession ) ); |
|
1212 if ( errorTrap != KErrNone ) |
1166 { |
1213 { |
1167 WRITELOG( "CHarvesterAO::HandleSessionOpened() - ObjectHandler creation failed" ); |
1214 WRITELOG( "CHarvesterAO::HandleSessionOpened() - ObjectHandler creation failed" ); |
1168 } |
1215 } |
1169 |
1216 |
1170 #ifdef _DEBUG |
|
1171 TRAP( errorTrap, PreallocateNamespaceL( aSession.GetDefaultNamespaceDefL() ) ); |
1217 TRAP( errorTrap, PreallocateNamespaceL( aSession.GetDefaultNamespaceDefL() ) ); |
1172 if ( errorTrap != KErrNone ) |
1218 if ( errorTrap != KErrNone ) |
1173 { |
1219 { |
1174 WRITELOG( "CHarvesterAO::HandleSessionOpened() - error loading default schema" ); |
1220 WRITELOG( "CHarvesterAO::HandleSessionOpened() - error loading default schema" ); |
1175 } |
1221 } |
1185 if ( errorTrap != KErrNone ) |
1231 if ( errorTrap != KErrNone ) |
1186 { |
1232 { |
1187 WRITELOG( "CHarvesterAO::HandleSessionOpened() - couldn't start composer plugins" ); |
1233 WRITELOG( "CHarvesterAO::HandleSessionOpened() - couldn't start composer plugins" ); |
1188 } |
1234 } |
1189 #else |
1235 #else |
1190 // The idea here is that all of these three methods needs to be called, |
1236 // The idea here is that all of these methods needs to be called, |
1191 // even if some leave, thus the three TRAPs |
1237 // even if some leave, thus the several TRAPs |
|
1238 TRAP_IGNORE( iMdeObjectHandler = CMdeObjectHandler::NewL( *iMdESession ) ); |
1192 TRAP_IGNORE( PreallocateNamespaceL( aSession.GetDefaultNamespaceDefL() ) ); |
1239 TRAP_IGNORE( PreallocateNamespaceL( aSession.GetDefaultNamespaceDefL() ) ); |
1193 TRAP_IGNORE( LoadMonitorPluginsL() ); |
1240 TRAP_IGNORE( LoadMonitorPluginsL() ); |
1194 TRAP_IGNORE( StartComposersL() ); |
1241 TRAP_IGNORE( StartComposersL() ); |
1195 |
|
1196 #endif |
1242 #endif |
1197 |
1243 |
1198 if ( iContextEngineInitialized ) |
1244 if ( iContextEngineInitialized ) |
1199 { |
1245 { |
1200 iCtxEngine->SetMdeSession( iMdESession ); |
1246 iCtxEngine->SetMdeSession( iMdESession ); |
1218 WRITELOG( "CHarvesterAO::HandleSessionOpened() - couldn't create on demand observer" ); |
1264 WRITELOG( "CHarvesterAO::HandleSessionOpened() - couldn't create on demand observer" ); |
1219 } |
1265 } |
1220 |
1266 |
1221 // Initializing pause indicator |
1267 // Initializing pause indicator |
1222 iServerPaused = EFalse; |
1268 iServerPaused = EFalse; |
|
1269 |
1223 #ifdef _DEBUG |
1270 #ifdef _DEBUG |
1224 WRITELOG( "HarvesterThread::HandleSessionOpened() - Succeeded!" ); |
1271 WRITELOG( "HarvesterThread::HandleSessionOpened() - Succeeded!" ); |
1225 |
1272 |
1226 TBool isRomScanEnabled( EFalse ); |
1273 TBool isRomScanEnabled( EFalse ); |
1227 TRAP_IGNORE( CHarvesterCenRepUtil::IsRomScanEnabledL( isRomScanEnabled ) ); |
1274 TRAP_IGNORE( CHarvesterCenRepUtil::IsRomScanEnabledL( isRomScanEnabled ) ); |
1384 } |
1431 } |
1385 |
1432 |
1386 // no more items to harvest |
1433 // no more items to harvest |
1387 else |
1434 else |
1388 { |
1435 { |
1389 |
|
1390 // if container files to harvest, handle those |
1436 // if container files to harvest, handle those |
1391 if( iContainerPHArray.Count() > 0 ) |
1437 if( iContainerPHArray.Count() > 0 ) |
1392 { |
1438 { |
1393 SetNextRequest( ERequestContainerPlaceholder ); |
1439 SetNextRequest( ERequestContainerPlaceholder ); |
1394 break; |
1440 break; |
1395 } |
1441 } |
1396 |
1442 |
1397 if(iReadyPHArray.Count() > 0) |
1443 const TInt arrayCount( iReadyPHArray.Count() ); |
|
1444 if( arrayCount > 0 ) |
1398 { |
1445 { |
1399 #ifdef _DEBUG |
1446 #ifdef _DEBUG |
1400 WRITELOG1("CHarvesterAO::RunL - items in ready pharray: %d", iReadyPHArray.Count() ); |
1447 WRITELOG1("CHarvesterAO::RunL - items in ready pharray: %d", arrayCount ); |
1401 #endif |
1448 #endif |
1402 const TInt arrayCount( iReadyPHArray.Count() ); |
|
1403 TInt endIndex( KPlaceholderQueueSize ); |
1449 TInt endIndex( KPlaceholderQueueSize ); |
1404 if( arrayCount < KPlaceholderQueueSize ) |
1450 if( arrayCount < KPlaceholderQueueSize ) |
1405 { |
1451 { |
1406 endIndex = arrayCount; |
1452 endIndex = arrayCount; |
1407 } |
1453 } |
2591 ResumeMonitoring(); |
2637 ResumeMonitoring(); |
2592 |
2638 |
2593 TRAP_IGNORE( ResumeHarvesterL() ); |
2639 TRAP_IGNORE( ResumeHarvesterL() ); |
2594 } |
2640 } |
2595 |
2641 |
|
2642 TBool CHarvesterAO::CheckForCameraItem( CHarvesterData* aHd, TDes& aObjectDef ) |
|
2643 { |
|
2644 if( aHd->Origin() == MdeConstants::Object::ECamera ) |
|
2645 { |
|
2646 TPtrC ext; |
|
2647 if( !MdsUtils::GetExt( aHd->Uri(), ext ) ) |
|
2648 { |
|
2649 return EFalse; |
|
2650 } |
|
2651 TInt pos( 0 ); |
|
2652 if( iCameraExtensionArray->FindIsq( ext, pos ) == 0 ) // video extension matched |
|
2653 { |
|
2654 aObjectDef.Copy( KVideo ); |
|
2655 return ETrue; |
|
2656 } |
|
2657 } |
|
2658 return EFalse; |
|
2659 } |
|
2660 |