harvesterplugins/media/video/src/cpixmediavideodoc.cpp
changeset 9 4a2987baf8f7
parent 5 3bc31ad99ee7
child 13 0a2ec6860a93
--- a/harvesterplugins/media/video/src/cpixmediavideodoc.cpp	Wed Jun 23 17:22:18 2010 +0100
+++ b/harvesterplugins/media/video/src/cpixmediavideodoc.cpp	Mon Jun 28 11:03:15 2010 +0530
@@ -29,7 +29,8 @@
 #include "cpixmediavideodocTraces.h"
 #endif
 
-
+_LIT( KFormatDateTime, "%04d %02d %02d %02d %02d");    // yyyy mm dd hh mm
+_LIT( KExcerptFormat, "%04d/%02d/%02d %02d:%02d");   //yyyy/mm/dd hh:mm
 // -----------------------------------------------------------------------------
 // CCPIXDocFetcher::NewL()
 // -----------------------------------------------------------------------------
@@ -96,14 +97,22 @@
     ResetExcerpt(); //Reset excerpt initially
     TInt slashpos = GetUri().LocateReverse('\\');
     TPtrC name = GetUri().Mid( (slashpos+1) );
-    AddToFieldExcerptL(name); //Add name to excerpt field
+
+    CMdEProperty* property(NULL);
+    //Add Name field to document excerpt, ONLY if title field is not empty.
+    CMdEPropertyDef& titlePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KTitleProperty );
+    if(aObject.Property( titlePropDef, property ) != KErrNotFound)
+        {
+        CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+        if( textProperty->Value().Compare(KNullDesC) > 0 )AddToFieldExcerptL(name); //Add name to excerpt field
+        }
+
     //URI and Excerpt is done add additional properties here 
-    CMdEProperty* property(NULL);
     CMdEPropertyDef& descriptionPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDescriptionProperty );
     if(aObject.Property( descriptionPropDef, property ) != KErrNotFound)
        {
        //Add field to document
-       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
        AddFiledtoDocumentL(*index_item,
                   MdeConstants::MediaObject::KDescriptionProperty,
                   textProperty->Value());
@@ -113,45 +122,205 @@
     if(aObject.Property( artistPropDef, property )!= KErrNotFound)
        {
        //Add field to document
-       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
        AddFiledtoDocumentL(*index_item,
                            MdeConstants::MediaObject::KArtistProperty,
-                           textProperty->Value());
+                           textProperty->Value(),
+                           CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
        AddToFieldExcerptL(textProperty->Value());
        }
     CMdEPropertyDef& authorPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KAuthorProperty );
     if(aObject.Property( authorPropDef, property ) != KErrNotFound)
        {
        //Add field to document
-       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
        AddFiledtoDocumentL(*index_item,
                          MdeConstants::MediaObject::KAuthorProperty,
-                         textProperty->Value());
+                         textProperty->Value(),
+                         CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
        AddToFieldExcerptL(textProperty->Value());
-       }
-    CMdEPropertyDef& copyrightPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCopyrightProperty );
-    if(aObject.Property( copyrightPropDef, property ) != KErrNotFound)
-       {
-       //Add field to document
-       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
-       AddFiledtoDocumentL(*index_item,
-                      MdeConstants::MediaObject::KCopyrightProperty,
-                      textProperty->Value());
-       AddToFieldExcerptL(textProperty->Value());
-       }   
+       }      
     
     CMdEPropertyDef& commentPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCommentProperty );
     if(aObject.Property( commentPropDef, property ) != KErrNotFound)
        {
        //Add field to document
-       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
        AddFiledtoDocumentL(*index_item,
                    MdeConstants::MediaObject::KCommentProperty,
                    textProperty->Value());
        AddToFieldExcerptL(textProperty->Value());
        }
-    index_item->AddExcerptL(*iExcerpt);
+    
+    //Get description property
+    CMdEPropertyDef& descriprionPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDescriptionProperty );
+    if(aObject.Property( descriprionPropDef, property ) != KErrNotFound)
+       {
+       //Add field to document
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
+       AddFiledtoDocumentL(*index_item,
+                   MdeConstants::MediaObject::KDescriptionProperty,
+                   textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
+       }
+    
+    CMdEPropertyDef& copyrightPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCopyrightProperty );
+    if(aObject.Property( copyrightPropDef, property ) != KErrNotFound)
+       {
+       //Add field to document
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
+       AddFiledtoDocumentL(*index_item,
+                      MdeConstants::MediaObject::KCopyrightProperty,
+                      textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
+       } 
+    //Get genre property
+    CMdEPropertyDef& genrePropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KGenreProperty );
+    if(aObject.Property( genrePropDef, property ) != KErrNotFound)
+       {
+       //Add field to document
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
+       AddFiledtoDocumentL(*index_item,
+                   MdeConstants::MediaObject::KGenreProperty,
+                   textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
+       }
+    //Size property
+    CMdEPropertyDef& sizePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KSizeProperty);
+    if(aObject.Property( sizePropDef, property )!= KErrNotFound)
+       {
+       //Add field to document
+       if( property->Def().PropertyType() == EPropertyUint32 )
+           {
+           CMdEUint32Property& sizeProperty = static_cast < CMdEUint32Property& > (*property );
+           TBuf<32> buf;
+           buf.Format(_L("%u"), sizeProperty.Value());
+           AddFiledtoDocumentL(*index_item,
+                           MdeConstants::Object::KSizeProperty,
+                           buf,
+                           CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
+           AddToFieldExcerptL(buf);
+           }
+       }    
+    //Get resolution property
+    CMdEPropertyDef& resolutionPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KResolutionUnitProperty );
+    if(aObject.Property( resolutionPropDef, property ) != KErrNotFound)
+       {
+       //Add field to document
+       if( property->Def().PropertyType() == EPropertyUint16 )
+           {
+           CMdEUint16Property& resolutionProperty = static_cast < CMdEUint16Property& > (*property );               
+           TBuf<32> buf;
+           buf.Format(_L("%d"), resolutionProperty.Value());
+           AddFiledtoDocumentL(*index_item,
+                              MdeConstants::MediaObject::KResolutionUnitProperty,
+                              buf,
+                              CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
+           }       
+       }    
+    //Get legal property
+    CMdEPropertyDef& legalPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KLegalProperty );
+    if(aObject.Property( legalPropDef, property ) != KErrNotFound)
+       {
+       //Add field to document
+       CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property );
+       AddFiledtoDocumentL(*index_item,
+                   MdeConstants::MediaObject::KLegalProperty,
+                   textProperty->Value());       
+       }
+    //Get track property
+    CMdEPropertyDef& trackPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KTrackProperty );
+    if(aObject.Property( trackPropDef, property ) != KErrNotFound)
+       {
+       //Add field to document       
+       if( property->Def().PropertyType() == EPropertyUint16 )
+           {
+           CMdEUint16Property& trackProperty = static_cast < CMdEUint16Property& > (*property );               
+           TBuf<32> buf;
+           buf.Format(_L("%d"), trackProperty.Value());
+           AddFiledtoDocumentL(*index_item,
+                              MdeConstants::MediaObject::KTrackProperty,
+                              buf);
+           }       
+       }
+    // Capturedate property
+    CMdEPropertyDef& captureDatePropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCaptureDateProperty);
+    if(aObject.Property( captureDatePropDef, property ) != KErrNotFound)
+      {
+      //Add field to document
+      if(EPropertyTime == property->Def().PropertyType())
+          {
+          CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property);
+          TDateTime time = timeProperty.Value().DateTime();
+          TBuf<32> buf;
+          buf.Format( KFormatDateTime, time.Year(), 
+                                       time.Month() + 1, 
+                                       time.Day() + 1, 
+                                       time.Hour(), 
+                                       time.Minute());
+          
+          AddFiledtoDocumentL(*index_item,
+                             MdeConstants::MediaObject::KCaptureDateProperty,
+                             buf,
+                             CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
+          //Format for excerpt field
+          buf.Format( KExcerptFormat, time.Year(), 
+                                 time.Month() + 1, 
+                                 time.Day() + 1, 
+                                 time.Hour(), 
+                                 time.Minute());
+          AddToFieldExcerptL(buf);
+          }
+      }
+    //Get LastModifiedDate property
+    CMdEPropertyDef& dateTimePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KLastModifiedDateProperty);
+    if(aObject.Property( dateTimePropDef, property ) != KErrNotFound)
+      {
+      //Add field to document
+      if(EPropertyTime == property->Def().PropertyType())
+          {
+          CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property);
+          TDateTime time = timeProperty.Value().DateTime();
+          TBuf<32> buf;
+          buf.Format( KFormatDateTime, time.Year(),
+                                       time.Month() + 1,
+                                       time.Day() + 1,
+                                       time.Hour(),
+                                       time.Minute());
+          
+          AddFiledtoDocumentL(*index_item,
+                             MdeConstants::Object::KLastModifiedDateProperty,
+                             buf,
+                             CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
+          //Format for excerpt field
+          buf.Format( KExcerptFormat, time.Year(), 
+                                   time.Month() + 1, 
+                                   time.Day() + 1, 
+                                   time.Hour(), 
+                                   time.Minute());
+          AddToFieldExcerptL(buf);
+          }
+      }
+    //Get duration property
+    CMdEPropertyDef& durationPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDurationProperty );
+    if(aObject.Property( durationPropDef, property ) != KErrNotFound)
+       {
+       //Add field to document       
+       if( property->Def().PropertyType() == EPropertyReal32 )
+           {
+           CMdEReal32Property& durationProperty = static_cast < CMdEReal32Property& > (*property );               
+           TBuf<32> buf;
+           buf.Format(_L("%f"), durationProperty.Value());
+           AddFiledtoDocumentL(*index_item,
+                              MdeConstants::MediaObject::KDurationProperty,
+                              buf,
+                              CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
+           }       
+       }
+    if( iExcerpt )
+        {
+        index_item->AddExcerptL(*iExcerpt);
+        }
     OstTraceFunctionExit0( CCPIXMEDIAVIDEODOC_GETCPIXDOCUMENTL_EXIT );
     return index_item;
     }
-