javauis/mmapi_qt/baseline/inc.emc/cmmaemcresolver.h
changeset 23 98ccebc37403
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/mmapi_qt/baseline/inc.emc/cmmaemcresolver.h	Fri May 14 15:47:24 2010 +0300
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2008 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:
+*
+*/
+
+#ifndef CMMAEMCRESOLVER_H
+#define CMMAEMCRESOLVER_H
+
+#include <MimeTypes.h>
+#include "cmmaplayer.h"
+
+//Supported file extensions
+
+_LIT(K3g2FileExtension, ".3g2");
+_LIT(K3gpFileExtension, ".3gp");
+_LIT(KAacFileExtension, ".aac");
+_LIT(KAmrFileExtension, ".amr");
+_LIT(KAwbFileExtension, ".awb");
+_LIT(KM4aFileExtension, ".m4a");
+_LIT(KMp3FileExtension, ".mp3");
+_LIT(KMp4FileExtension, ".mp4");
+_LIT(KWmaFileExtension, ".wma");
+_LIT(KRmFileExtension, ".rm");
+_LIT(KRaFileExtension, ".ra");
+
+const TInt KContentTypeMaxLength = 30;
+
+
+//  CLASS DECLARATION
+
+NONSHARABLE_CLASS(CMMAEMCResolver): public CBase
+
+{
+public: // Construction
+    /**
+     * Constructs a new mmf resolver object.
+     * @return The new object created.  Note that the new object will be
+     * left on the cleanup stack.
+     */
+    static CMMAEMCResolver* NewLC();
+
+public: // New methods.
+
+    HBufC* ContentTypeOwnership();
+
+    HBufC8* MimeTypeOwnership();
+
+    /**
+     * Returns content type
+     */
+    HBufC* ContentType();
+
+    /**
+     * Sets filename
+     * @param aFileName File name to be set or NULL
+     */
+
+    void SetFileNameL(const TDesC* aFileName);
+
+    /**
+     * Sets Mime Type
+     * @param aFileName File name to be set or NULL
+     */
+
+    void SetMimeTypeL(const TDesC* aFileName);
+
+    /**
+     * Returns possible filename or NULL if not set
+     * Ownership is transfered.
+     * @return Content type or NULL if type is not available.
+     */
+    HBufC* FileNameOwnership();
+
+    /**
+     * Get all supported content types.
+     * @param aMimeTypeArray Will contain supported mime types.
+     */
+    void GetSupportedContentTypesL(CDesC16Array& aMimeTypeArray);
+
+
+private:
+
+    /** Finds content type from given File name.
+    */
+    void ResolveContentTypeL(const TDesC& aFileName, TDes8& aMimeType);
+
+    void ResolveContentTypeL();
+
+private:
+    ~CMMAEMCResolver();
+
+private:
+
+    // Owned. Ownership can be transferred with ContentType method.
+    HBufC* iContentType;
+
+    // Owned. Ownership can be transferred with MimeType method.
+    HBufC8* iMimeType;
+
+    // Owned. Ownership can be transferred with FileName method.
+    HBufC* iFileName;
+
+public: // new method
+    void SetSourceInfoL(const HBufC8* aHeaderData);
+
+private:
+    TBool IsRealVideoTypeL(const TDesC8& aHeader);
+
+    TBool IsRealMimeTypeSupported(const TDesC& aMimeType);
+
+private: // Data
+    const HBufC8* iHeaderData; // not owned
+};
+
+#endif // CMMAEMCRESOLVER_H