--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_mediamanagement/mediamanagementservice/inc/mgpostfilter.h Fri Jul 03 15:51:24 2009 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2007-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: It filter the media items as per the filter value sets
+*
+*/
+
+
+
+
+#ifndef __CMGPOSTFILTER_H
+#define __CMGPOSTFILTER_H
+
+#include <mclfpostfilter.h>
+#include <e32base.h>
+
+
+
+// CLASS DECLARATION
+
+/**
+* PostFilter class for Media Management.It filters the media items as per the
+* filter values set
+*
+* @since Series60 v3.2
+*/
+NONSHARABLE_CLASS( CPostFilter ) : public CBase ,public MCLFPostFilter
+ {
+
+ public:
+ /**
+ * Returns the instance of CPostFilter.
+ * @since Series60 v3.2
+ * @param void
+ * @return CPostFilter* return the instance of CPostFilter class
+ */
+ static CPostFilter* NewL();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CPostFilter();
+
+ /**
+ * Method to filter item list. This method is called when
+ * the filtering process is executed by list model refresh.
+ * @since Series60 v3.2
+ * @param aItemList Source list, contains all items that are in
+ * the list model
+ * @param aFilteredItemList Filtered/destination list, contains all items
+ * that will be in the list model after filtering.
+ * @return void
+ */
+ virtual void FilterItemsL( const TArray<MCLFItem*>& aItemList,
+ RPointerArray<MCLFItem>& aFilteredItemList );
+
+ /**
+ * This function will set the metadata on which the FilterItemsL function
+ * will filter the items in the list model.
+ * @since Series60 v3.2
+ * @param aMetaDataId Id of filter criteria as per CLF framework
+ * @param aMetaDataType Datatype of the above Id
+ * @return void
+ */
+ void SetFilterMetaData(const TCLFDefaultFieldId& aMetaDataId,
+ const TCLFItemDataType& aMetaDataType);
+
+ /**
+ * This Function will set the filter values of the metadata given
+ * in SetFilterMetaData function
+ * Leave with KErrArgument if any arguments are out of range
+ * @since Series60 v3.2
+ * @param aStartVal Start Value for filter criteria
+ * (i.e FilterCriteria >= aStartVal)
+ * @param aEndVal End Value for filter criteria
+ * (i.e FilterCriteria < aEndVal)
+ */
+ void SetFilterValueL(const TDesC& aStartVal,const TDesC& aEndVal);
+
+
+ /**
+ * It will clear filter metadata field.
+ * @since Series60 v3.2
+ * @param void
+ * @return void
+ */
+ void Clear();
+
+ private:
+ /**
+ * Constructor
+ * @since Series60 v3.2
+ * @param void
+ * @return void
+ */
+ CPostFilter();
+
+ /**
+ * This function will check if the given aItem matches with the set
+ * filtered values or not.
+ * @since Series60 v3.2
+ * @param aItem media item
+ * @return -1 If aItem does not match with the set filter values ,0 If it match.
+ */
+ TInt CompareItem(MCLFItem* aItem);
+
+ private:
+ /**
+ * Contains the meta data on which filteration will be performed.
+ */
+ TCLFDefaultFieldId iFilterMetaData;
+
+ /**
+ * Contains the data type of meta data
+ */
+ TCLFItemDataType iFilterDataType;
+
+ /**
+ * Value of Filter MetaData.
+ */
+ HBufC* iFilterVal;
+
+ /**
+ * Starting Value of Filter MetaData if its DataType is Time.
+ */
+ TTime iStartTime;
+
+ /**
+ * Ending Value of Filter MetaData if its DataType is Time.
+ */
+ TTime iEndTime;
+
+ /**
+ * Starting Value of Filter MetaData if its DataType is Integer.
+ */
+ TInt32 iStartIntVal;
+
+ /**
+ * Ending Value of Filter MetaData if its DataType is Integer.
+ */
+ TInt32 iEndIntVal;
+
+
+
+ };
+
+
+#endif __CMGPOSTFILTER_H
\ No newline at end of file