mmlibs/mmfw/src/ControllerFramework/RecMmfUtil.cpp
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
#include "RecMmfUtilBody.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
 * @internalAll
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
 * constructor for MMF Recognizer utility class
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
CMmfRecognizerUtil::CMmfRecognizerUtil()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
CMmfRecognizerUtil::~CMmfRecognizerUtil()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
	delete iBody;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
void CMmfRecognizerUtil::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
	iBody = CMmfRecognizerUtil::CBody::NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
 * @internalAll
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
 * Determine whether the supplied data header on its own is recognized,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
 * or the data header plus the file suffix together are recognized,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
 * and if so return the associated MIME type.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
 * @param	aFileName
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
 *			The name of the file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
 * @param	aImageData
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
 *          A descriptor containing the header
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
 * @param   aMimeType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
 *          A user-supplied descriptor in which the MIME type is returned
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
 * @leave   KErrUnderflow 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
 *			Not enough data in descriptor to identify whether it is supported
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
 *          by any plugin.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
 * @leave	This method may also leave with one of the system-wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
 * @return  EMatchNone if a match was not found.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
 *			EMatchData if a data match was found.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
 *			EMatchName if a data and file suffix match was found.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
 * @post    If recognized, the caller's descriptor is filled with the MIME types
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
EXPORT_C CMmfRecognizerUtil::TMatchLevel CMmfRecognizerUtil::GetMimeTypeL(const TDesC& aFileName, const TDesC8& aImageData, TDes8& aMimeType)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
	return iBody->GetMimeTypeL(aFileName, aImageData, aMimeType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
 * @internalAll
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
 * Static factory constructor. Uses two phase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
 * construction and leaves nothing on the cleanup stack
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
 * @leave KErrNoMemory
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
 * @return A pointer to the newly created CMmfRecognizerUtil object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
EXPORT_C CMmfRecognizerUtil* CMmfRecognizerUtil::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
	CMmfRecognizerUtil* self=new (ELeave) CMmfRecognizerUtil();   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	CleanupStack::Pop(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
 * @internalAll
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
 * Get all the mime types supported by MMF
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
 * @param	aMimeTypes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
 *          A caller-supplied array of descriptors.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
 * @leave	This method may leave with one of the system-wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
 * @post    The caller's array is filled with the supported MIME types
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
EXPORT_C void CMmfRecognizerUtil::GetMimeTypesL(CDesC8Array* aMimeTypes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
	CMmfRecognizerUtil::CBody::GetMimeTypesL(aMimeTypes);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97