harvesterplugins/media/video/src/cpixmediavideodoc.cpp
changeset 11 773be20e0a25
parent 5 3bc31ad99ee7
child 12 993ab30e92fc
--- a/harvesterplugins/media/video/src/cpixmediavideodoc.cpp	Fri Jun 11 13:39:26 2010 +0300
+++ b/harvesterplugins/media/video/src/cpixmediavideodoc.cpp	Wed Jun 23 18:13:49 2010 +0300
@@ -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()
 // -----------------------------------------------------------------------------
@@ -103,7 +104,7 @@
     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 +114,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;
     }
-