mmappcomponents/playlistengine/inc/mpxplaylistrecognizer.h
changeset 0 a2952bb97e68
child 27 cbb1bfb7ebfb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappcomponents/playlistengine/inc/mpxplaylistrecognizer.h	Thu Dec 17 08:55:47 2009 +0200
@@ -0,0 +1,108 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:  Recognizer for playlist files.
+*
+*/
+
+
+
+#ifndef MPXPLAYLISTRECOGNIZER_H
+#define MPXPLAYLISTRECOGNIZER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <apmrec.h>
+#include <apmstd.h>
+
+// CLASS DECLARATION
+class CMPXPluginHandlerBase;
+
+/**
+*  Concrete implementation of the recognizer API used to recognize playlist files.
+*
+*  This is used by the application framework, as well as CMPXPlaylistEngine to
+*  determine if a given media is a supported playlist.
+*
+*  @lib mpxplaylisrecognizer.lib
+*/
+class CMPXPlaylistRecognizer :
+    public CApaDataRecognizerType,
+    public MMPXPluginHandlerObserver
+	{
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        *
+        * @return constructed object
+        */
+        static CMPXPlaylistRecognizer* NewL();
+
+        /**
+        * Destructor.
+        */
+        virtual ~CMPXPlaylistRecognizer();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CMPXPlaylistRecognizer();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private: // Functions from base class
+
+        /**
+        * From CApaDataRecognizerType
+        * Returns one of the SupportedDataType
+        * @param aIndex - depending on the file extension
+        * @return Supported DataType
+        */
+        TDataType SupportedDataTypeL( TInt aIndex ) const;
+
+        /**
+        * From CApaDataRecognizerType
+        * Returns the buffersize needed to scan
+        * @return BufferSize if needed
+        */
+        TUint PreferredBufSize();
+
+        /**
+        * From CApaDataRecognizerType
+        * Do the recognition of the file using the name of the
+        * the file or the buffer to scan
+        * @param aName    Name of the file
+        * @param aBuffer  Buffer that shall be scanned for recognition
+        */
+        void DoRecognizeL( const TDesC& aName, const TDesC8& aBuffer );
+
+        /*
+        * @see MMPXPluginHandlerObserver
+        */
+        void HandlePluginHandlerEvent(TPluginHandlerEvents aEvent,
+            const TUid& aPluginUid, TBool aLoaded, TInt aData);
+
+    private:	// Data
+
+        CMPXPluginHandlerBase* iPluginHandler;
+
+	};
+
+
+#endif	// MPXPLAYLISTRECOGNIZER_H