changeset 30 | b67379558a75 |
parent 29 | 4bdfb6b5c9b4 |
child 31 | d429f823a6b7 |
child 36 | c5df59b4ae2d |
29:4bdfb6b5c9b4 | 30:b67379558a75 |
---|---|
81 iActiveCount = 0; |
81 iActiveCount = 0; |
82 |
82 |
83 // set auto create values from cenrep |
83 // set auto create values from cenrep |
84 CheckAutoCreateValuesL(); |
84 CheckAutoCreateValuesL(); |
85 |
85 |
86 iPeriodicTimer = CPeriodic::NewL(CActive::EPriorityIdle); |
86 iPeriodicTimer = CPeriodic::NewL(CActive::EPriorityStandard); |
87 |
87 |
88 iMountTimer = CPeriodic::NewL(CActive::EPriorityUserInput); |
88 iMountTimer = CPeriodic::NewL(CActive::EPriorityUserInput); |
89 |
89 |
90 SetForceRun( EFalse ); |
90 SetForceRun( EFalse ); |
91 |
91 |
606 { |
606 { |
607 TThumbnailGenerationItem item; |
607 TThumbnailGenerationItem item; |
608 item.iItemId = aIDArray[i]; |
608 item.iItemId = aIDArray[i]; |
609 item.iItemType = aItemType; |
609 item.iItemType = aItemType; |
610 |
610 |
611 SetGenerationItemType(item, aItemType); |
611 SetGenerationItemAction(item, aItemType); |
612 |
612 |
613 if(iPHHarvesting) |
613 if(iPHHarvesting) |
614 { |
614 { |
615 item.iPlaceholder = ETrue; |
615 item.iPlaceholder = ETrue; |
616 } |
616 } |
627 TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - PH harvesting active, treat like add" ); |
627 TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - PH harvesting active, treat like add" ); |
628 for (int i=0; i<aIDArray.Count(); i++) |
628 for (int i=0; i<aIDArray.Count(); i++) |
629 { |
629 { |
630 TThumbnailGenerationItem item; |
630 TThumbnailGenerationItem item; |
631 item.iItemId = aIDArray[i]; |
631 item.iItemId = aIDArray[i]; |
632 item.iItemType = aItemType; |
|
632 |
633 |
633 TInt itemIndex = iGenerationQueue.FindInOrder(item, Compare); |
634 TInt itemIndex = iGenerationQueue.FindInOrder(item, Compare); |
634 |
635 |
635 if (itemIndex >= 0) |
636 if (itemIndex >= 0) |
636 { |
637 { |
640 else |
641 else |
641 { |
642 { |
642 TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append"); |
643 TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append"); |
643 |
644 |
644 item.iPlaceholder = EFalse; |
645 item.iPlaceholder = EFalse; |
645 SetGenerationItemType( item, 0 ); |
646 SetGenerationItemAction( item, aItemType ); |
646 AppendProcessingQueue( item ); |
647 AppendProcessingQueue( item ); |
647 } |
648 } |
648 } |
649 } |
649 } |
650 } |
650 else |
651 else |
655 |
656 |
656 for (int i=0; i<aIDArray.Count(); i++) |
657 for (int i=0; i<aIDArray.Count(); i++) |
657 { |
658 { |
658 TThumbnailGenerationItem item; |
659 TThumbnailGenerationItem item; |
659 item.iItemId = aIDArray[i]; |
660 item.iItemId = aIDArray[i]; |
661 item.iItemType = aItemType; |
|
660 |
662 |
661 itemIndex = iGenerationQueue.FindInOrder(item, Compare); |
663 itemIndex = iGenerationQueue.FindInOrder(item, Compare); |
662 |
664 |
663 if (itemIndex >= 0) |
665 if (itemIndex >= 0) |
664 { |
666 { |
675 } |
677 } |
676 } |
678 } |
677 else |
679 else |
678 { |
680 { |
679 TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append"); |
681 TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append"); |
680 SetGenerationItemType( item, 0 ); |
682 SetGenerationItemAction( item, aItemType); |
681 item.iPlaceholder = EFalse; |
683 item.iPlaceholder = EFalse; |
682 AppendProcessingQueue( item ); |
684 AppendProcessingQueue( item ); |
683 } |
685 } |
684 } |
686 } |
685 } |
687 } |
690 |
692 |
691 for (int i=0; i<aIDArray.Count(); i++) |
693 for (int i=0; i<aIDArray.Count(); i++) |
692 { |
694 { |
693 TThumbnailGenerationItem item; |
695 TThumbnailGenerationItem item; |
694 item.iItemId = aIDArray[i]; |
696 item.iItemId = aIDArray[i]; |
697 item.iItemType = aItemType; |
|
695 |
698 |
696 TInt itemIndex = iGenerationQueue.FindInOrder(item, Compare); |
699 TInt itemIndex = iGenerationQueue.FindInOrder(item, Compare); |
697 |
700 |
698 if(itemIndex >= 0) |
701 if(itemIndex >= 0) |
699 { |
702 { |
996 // --------------------------------------------------------------------------- |
999 // --------------------------------------------------------------------------- |
997 // CThumbAGProcessor::QueryForPlaceholders() |
1000 // CThumbAGProcessor::QueryForPlaceholders() |
998 // --------------------------------------------------------------------------- |
1001 // --------------------------------------------------------------------------- |
999 // |
1002 // |
1000 |
1003 |
1001 void CThumbAGProcessor::QueryPlaceholdersL() |
1004 void CThumbAGProcessor::QueryPlaceholdersL(TBool aPresent) |
1002 { |
1005 { |
1003 TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL" ); |
1006 TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL" ); |
1004 |
1007 |
1005 __ASSERT_DEBUG((iMdESession), User::Panic(_L("CThumbAGProcessor::QueryPlaceholdersL() !iMdeSession "), KErrBadHandle)); |
1008 __ASSERT_DEBUG((iMdESession), User::Panic(_L("CThumbAGProcessor::QueryPlaceholdersL() !iMdeSession "), KErrBadHandle)); |
1006 __ASSERT_DEBUG((iDefNamespace), User::Panic(_L("CThumbAGProcessor::QueryPlaceholdersL() !iDefNamespace "), KErrBadHandle)); |
1009 __ASSERT_DEBUG((iDefNamespace), User::Panic(_L("CThumbAGProcessor::QueryPlaceholdersL() !iDefNamespace "), KErrBadHandle)); |
1038 CMdELogicCondition& rootCondition = iQueryPlaceholders->Conditions(); |
1041 CMdELogicCondition& rootCondition = iQueryPlaceholders->Conditions(); |
1039 rootCondition.SetOperator( ELogicConditionOperatorOr ); |
1042 rootCondition.SetOperator( ELogicConditionOperatorOr ); |
1040 |
1043 |
1041 CMdEObjectCondition& imagePHObjectCondition = rootCondition.AddObjectConditionL(imageObjDef); |
1044 CMdEObjectCondition& imagePHObjectCondition = rootCondition.AddObjectConditionL(imageObjDef); |
1042 imagePHObjectCondition.SetPlaceholderOnly( ETrue ); |
1045 imagePHObjectCondition.SetPlaceholderOnly( ETrue ); |
1043 imagePHObjectCondition.SetNotPresent( ETrue ); |
1046 imagePHObjectCondition.SetNotPresent( aPresent ); |
1044 |
1047 |
1045 CMdEObjectCondition& videoPHObjectCondition = rootCondition.AddObjectConditionL(videoObjDef); |
1048 CMdEObjectCondition& videoPHObjectCondition = rootCondition.AddObjectConditionL(videoObjDef); |
1046 videoPHObjectCondition.SetPlaceholderOnly( ETrue ); |
1049 videoPHObjectCondition.SetPlaceholderOnly( ETrue ); |
1047 videoPHObjectCondition.SetNotPresent( ETrue ); |
1050 videoPHObjectCondition.SetNotPresent( aPresent ); |
1048 |
1051 |
1049 CMdEObjectCondition& audioPHObjectCondition = rootCondition.AddObjectConditionL(audioObjDef); |
1052 CMdEObjectCondition& audioPHObjectCondition = rootCondition.AddObjectConditionL(audioObjDef); |
1050 audioPHObjectCondition.SetPlaceholderOnly( ETrue ); |
1053 audioPHObjectCondition.SetPlaceholderOnly( ETrue ); |
1051 audioPHObjectCondition.SetNotPresent( ETrue ); |
1054 audioPHObjectCondition.SetNotPresent( aPresent ); |
1052 |
1055 |
1053 iQueryPlaceholders->FindL(KMaxTInt, KMaxQueryBatchSize); |
1056 iQueryPlaceholders->FindL(KMaxTInt, KMaxQueryBatchSize); |
1054 |
1057 |
1055 TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL - end" ); |
1058 TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL - end" ); |
1056 } |
1059 } |
1085 iInit2 = ETrue; |
1088 iInit2 = ETrue; |
1086 |
1089 |
1087 iGenerationQueue.Reset(); |
1090 iGenerationQueue.Reset(); |
1088 iQueryQueue.Reset(); |
1091 iQueryQueue.Reset(); |
1089 |
1092 |
1090 TRAP_IGNORE(QueryPlaceholdersL()); |
1093 //query all not present placeholders |
1094 TRAP_IGNORE(QueryPlaceholdersL( ETrue )); |
|
1091 //query all items after PH query |
1095 //query all items after PH query |
1092 iDoQueryAllItems = ETrue; |
1096 iDoQueryAllItems = ETrue; |
1093 TN_DEBUG1( "CThumbAGProcessor::RunL() - Initialisation 1 done" ); |
1097 TN_DEBUG1( "CThumbAGProcessor::RunL() - Initialisation 1 done" ); |
1094 ActivateAO(); |
1098 ActivateAO(); |
1095 return; |
1099 return; |
1110 __ASSERT_DEBUG((err == KErrNone), User::Panic(_L("CThumbAGProcessor::RunL(), !iHarvesterClient "), err)); |
1114 __ASSERT_DEBUG((err == KErrNone), User::Panic(_L("CThumbAGProcessor::RunL(), !iHarvesterClient "), err)); |
1111 |
1115 |
1112 if( err == KErrNone ) |
1116 if( err == KErrNone ) |
1113 { |
1117 { |
1114 TN_DEBUG1( "CThumbAGProcessor::RunL() add iHarvesterClient observer"); |
1118 TN_DEBUG1( "CThumbAGProcessor::RunL() add iHarvesterClient observer"); |
1115 err = iHarvesterClient.AddHarvesterEventObserver( *this, EHEObserverTypeOverall | EHEObserverTypeMMC | EHEObserverTypePlaceholder, 10 ); |
1119 err = iHarvesterClient.AddHarvesterEventObserver( *this, EHEObserverTypeOverall | EHEObserverTypeMMC | EHEObserverTypePlaceholder, 20 ); |
1116 TN_DEBUG2( "CThumbAGProcessor::RunL() iHarvesterClient observer err = %d", err); |
1120 TN_DEBUG2( "CThumbAGProcessor::RunL() iHarvesterClient observer err = %d", err); |
1117 |
1121 |
1118 if( !err ) |
1122 if( !err ) |
1119 { |
1123 { |
1120 TN_DEBUG1( "CThumbAGProcessor::RunL() add iHarvesterClient observer failed"); |
1124 TN_DEBUG1( "CThumbAGProcessor::RunL() add iHarvesterClient observer failed"); |
1211 //Handle completed MDS Query |
1215 //Handle completed MDS Query |
1212 if( iQueryReady && iProcessingCount) |
1216 if( iQueryReady && iProcessingCount) |
1213 { |
1217 { |
1214 TInt err(KErrNone); |
1218 TInt err(KErrNone); |
1215 //if force or non forced |
1219 //if force or non forced |
1216 if((iForceRun && iModify ) || (!iForceRun && !iModify )) |
1220 //if unknown items or mount timer is active, abort processing |
1221 |
|
1222 if(((iForceRun && iModify ) || (!iForceRun && !iModify )) && !iUnknownItemCount && !iMountTimer->IsActive()) |
|
1217 { |
1223 { |
1218 TN_DEBUG1( "CThumbAGProcessor::RunL() - iQueryReady START" ); |
1224 TN_DEBUG1( "CThumbAGProcessor::RunL() - iQueryReady START" ); |
1219 |
1225 |
1220 const CMdEObject* object = &iQuery->Result( iProcessingCount-1 ); |
1226 const CMdEObject* object = &iQuery->Result( iProcessingCount-1 ); |
1221 iProcessingCount--; |
1227 iProcessingCount--; |
1237 } |
1243 } |
1238 } |
1244 } |
1239 //force is coming, but executing non-forced query complete-> cancel old |
1245 //force is coming, but executing non-forced query complete-> cancel old |
1240 else |
1246 else |
1241 { |
1247 { |
1242 //cancel query and move items back to original processing queue |
1248 //cancel query |
1249 TN_DEBUG1( "CThumbAGProcessor::RunL() - cancel processing query" ); |
|
1243 DeleteAndCancelQuery( ETrue ); |
1250 DeleteAndCancelQuery( ETrue ); |
1244 ActivateAO(); |
1251 ActivateAO(); |
1245 return; |
1252 return; |
1246 } |
1253 } |
1247 |
1254 |
1481 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesterin started"); |
1488 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesterin started"); |
1482 } |
1489 } |
1483 else |
1490 else |
1484 { |
1491 { |
1485 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesting finished"); |
1492 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesting finished"); |
1486 TRAP_IGNORE(QueryPlaceholdersL()); |
1493 //query present placeholders |
1494 TRAP_IGNORE(QueryPlaceholdersL( EFalse )); |
|
1495 iDoQueryAllItems = EFalse; |
|
1487 iPHHarvestingItemsLeftTemp = 0; |
1496 iPHHarvestingItemsLeftTemp = 0; |
1488 } |
1497 } |
1489 } |
1498 } |
1490 |
1499 |
1491 //restart mount timout if PH item count is increasing durin MMC harvesting |
1500 //restart mount timout if PH item count is increasing durin MMC harvesting |
1582 UpdatePSValues(EFalse, ETrue); |
1591 UpdatePSValues(EFalse, ETrue); |
1583 iMMCHarvestingItemsLeftTemp = 0; |
1592 iMMCHarvestingItemsLeftTemp = 0; |
1584 } |
1593 } |
1585 else |
1594 else |
1586 { |
1595 { |
1596 //activate timeout if overall harvesting is not active |
|
1597 if(!iHarvesting) |
|
1598 { |
|
1599 StartTimeout(); |
|
1600 } |
|
1587 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS MMC harvesting finished "); |
1601 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS MMC harvesting finished "); |
1588 } |
1602 } |
1589 } |
1603 } |
1590 |
1604 |
1591 //restart mount timout if MMC item count is still increasing |
1605 //restart mount timout if MMC item count is still increasing |
1627 // CThumbAGProcessor::StopTimeout() |
1641 // CThumbAGProcessor::StopTimeout() |
1628 // --------------------------------------------------------------------------- |
1642 // --------------------------------------------------------------------------- |
1629 // |
1643 // |
1630 void CThumbAGProcessor::CancelTimeout() |
1644 void CThumbAGProcessor::CancelTimeout() |
1631 { |
1645 { |
1646 TN_DEBUG1( "CThumbAGProcessor::CancelTimeout()"); |
|
1632 if(iPeriodicTimer->IsActive()) |
1647 if(iPeriodicTimer->IsActive()) |
1633 { |
1648 { |
1634 iPeriodicTimer->Cancel(); |
1649 iPeriodicTimer->Cancel(); |
1635 } |
1650 } |
1636 } |
1651 } |
1669 { |
1684 { |
1670 TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - FORMATTING - DAEMON ON PAUSE"); |
1685 TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - FORMATTING - DAEMON ON PAUSE"); |
1671 return; |
1686 return; |
1672 } |
1687 } |
1673 |
1688 |
1674 |
|
1675 //check if forced run needs to continue |
1689 //check if forced run needs to continue |
1676 if ( iModifyItemCount || iUnknownItemCount > 0 ) |
1690 if ( iModifyItemCount || iUnknownItemCount > 0 ) |
1677 { |
1691 { |
1678 SetForceRun( ETrue ); |
1692 SetForceRun( ETrue ); |
1679 } |
1693 } |
2095 |
2109 |
2096 if( iGenerationQueue.Count() ) |
2110 if( iGenerationQueue.Count() ) |
2097 { |
2111 { |
2098 daemonProcessing = ETrue; |
2112 daemonProcessing = ETrue; |
2099 } |
2113 } |
2114 else |
|
2115 { |
|
2116 daemonProcessing = EFalse; |
|
2117 } |
|
2100 |
2118 |
2101 if( daemonProcessing != iPreviousDaemonProcessing) |
2119 if( daemonProcessing != iPreviousDaemonProcessing) |
2102 { |
2120 { |
2103 TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() update KDaemonProcessing == %d", daemonProcessing); |
2121 TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() update KDaemonProcessing == %d", daemonProcessing); |
2104 iPreviousDaemonProcessing = daemonProcessing; |
2122 iPreviousDaemonProcessing = daemonProcessing; |
2154 iVideoItemCount=0; |
2172 iVideoItemCount=0; |
2155 iAudioItemCount=0; |
2173 iAudioItemCount=0; |
2156 |
2174 |
2157 for(TInt i=0; i < iGenerationQueue.Count(); i++) |
2175 for(TInt i=0; i < iGenerationQueue.Count(); i++) |
2158 { |
2176 { |
2159 TThumbnailGenerationItem& item = iGenerationQueue[i]; |
2177 TThumbnailGenerationItem& item = iGenerationQueue[i]; |
2160 |
2178 |
2161 if(item.iItemAction == EGenerationItemActionModify) |
2179 if(item.iItemAction == EGenerationItemActionModify) |
2162 { |
2180 { |
2163 iModifyItemCount++; |
2181 iModifyItemCount++; |
2164 } |
2182 } |
2202 } |
2220 } |
2203 } |
2221 } |
2204 |
2222 |
2205 TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iActiveCount = %d", |
2223 TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iActiveCount = %d", |
2206 iActiveCount); |
2224 iActiveCount); |
2225 TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iPreviousItemsLeft = %d", |
|
2226 iPreviousItemsLeft); |
|
2207 TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iHarvesting == %d, iMMCHarvesting == %d, iPHHarvesting == %d, iMPXHarvesting == %d", |
2227 TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iHarvesting == %d, iMMCHarvesting == %d, iPHHarvesting == %d, iMPXHarvesting == %d", |
2208 iHarvesting, iMMCHarvesting, iPHHarvesting, iMPXHarvesting); |
2228 iHarvesting, iMMCHarvesting, iPHHarvesting, iMPXHarvesting); |
2209 TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iIdle = %d, iForegroundRun = %d, timer = %d, iForceRun = %d", |
2229 TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iIdle = %d, iForegroundRun = %d, timer = %d, iForceRun = %d", |
2210 iIdle, iForegroundRun, iPeriodicTimer->IsActive(), iForceRun); |
2230 iIdle, iForegroundRun, iPeriodicTimer->IsActive(), iForceRun); |
2211 TN_DEBUG4( "CThumbAGProcessor::UpdateItemCounts() iModify = %d, iQueryReady = %d, iProcessingCount = %d", |
2231 TN_DEBUG4( "CThumbAGProcessor::UpdateItemCounts() iModify = %d, iQueryReady = %d, iProcessingCount = %d", |
2212 iModify, iQueryReady, iProcessingCount); |
2232 iModify, iQueryReady, iProcessingCount); |
2213 TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iMountTimer = %d", iMountTimer->IsActive()); |
2233 TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iMountTimer = %d", iMountTimer->IsActive()); |
2214 TN_DEBUG3( "CThumbAGProcessor::UpdateItemCounts() ProcessingQueue = %d, iQueryQueue = %d", |
2234 TN_DEBUG3( "CThumbAGProcessor::UpdateItemCounts() iGenerationQueue = %d, iQueryQueue = %d", |
2215 iGenerationQueue.Count(), iQueryQueue.Count()); |
2235 iGenerationQueue.Count(), iQueryQueue.Count()); |
2216 TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iAddItemCount=%d, i2ndAddItemCount=%d, iModifyItemCount=%d, iDeleteItemCount=%d", |
2236 TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iAddItemCount=%d, i2ndAddItemCount=%d, iModifyItemCount=%d, iDeleteItemCount=%d", |
2217 iAddItemCount, i2ndAddItemCount, iModifyItemCount, iDeleteItemCount ); |
2237 iAddItemCount, i2ndAddItemCount, iModifyItemCount, iDeleteItemCount ); |
2218 TN_DEBUG3( "CThumbAGProcessor::UpdateItemCounts() iUnknownItemCount=%d, iPlaceholderItemCount=%d", |
2238 TN_DEBUG3( "CThumbAGProcessor::UpdateItemCounts() iUnknownItemCount=%d, iPlaceholderItemCount=%d", |
2219 iUnknownItemCount, iPlaceholderItemCount); |
2239 iUnknownItemCount, iPlaceholderItemCount); |
2220 TN_DEBUG4( "CThumbAGProcessor::UpdateItemCounts() iAudioItemCount=%d, iVideoItemCount=%d, iImageItemCount=%d", |
2240 TN_DEBUG4( "CThumbAGProcessor::UpdateItemCounts() iAudioItemCount=%d, iVideoItemCount=%d, iImageItemCount=%d", |
2221 iAudioItemCount, iVideoItemCount, iImageItemCount); |
2241 iAudioItemCount, iVideoItemCount, iImageItemCount); |
2222 TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iCameraItemCount=%d", iCameraItemCount); |
2242 TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iCameraItemCount=%d", iCameraItemCount); |
2243 |
|
2244 //compress queues when empty |
|
2245 if(!iGenerationQueue.Count()) |
|
2246 { |
|
2247 iGenerationQueue.Compress(); |
|
2248 } |
|
2249 |
|
2250 if(!iQueryQueue.Count()) |
|
2251 { |
|
2252 iQueryQueue.Compress(); |
|
2253 } |
|
2223 } |
2254 } |
2224 |
2255 |
2225 |
2256 |
2226 // --------------------------------------------------------------------------- |
2257 // --------------------------------------------------------------------------- |
2227 // CThumbAGProcessor::MountTimerCallBack() |
2258 // CThumbAGProcessor::MountTimerCallBack() |
2231 { |
2262 { |
2232 TN_DEBUG1( "CThumbAGProcessor::MountTimerCallBack()"); |
2263 TN_DEBUG1( "CThumbAGProcessor::MountTimerCallBack()"); |
2233 CThumbAGProcessor* self = static_cast<CThumbAGProcessor*>( aAny ); |
2264 CThumbAGProcessor* self = static_cast<CThumbAGProcessor*>( aAny ); |
2234 |
2265 |
2235 self->iMountTimer->Cancel(); |
2266 self->iMountTimer->Cancel(); |
2267 |
|
2268 //activate timeout if overall or mmc harvestig is not active |
|
2269 if(!self->iHarvesting && !self->iMMCHarvesting ) |
|
2270 { |
|
2271 self->ActivateAO(); |
|
2272 } |
|
2236 |
2273 |
2237 return KErrNone; // Return value ignored by CPeriodic |
2274 return KErrNone; // Return value ignored by CPeriodic |
2238 } |
2275 } |
2239 |
2276 |
2240 // --------------------------------------------------------------------------- |
2277 // --------------------------------------------------------------------------- |