profilesservices/ProfileEngine/WrapperSrc/ProEngMmfInfoUtility.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:52 +0200
changeset 0 8c5d936e5675
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2002-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: Implementation of ProEngMmfInfoUtility.
*
*/



// CLASS HEADER
#include    "ProEngMmfInfoUtility.h"

// INTERNAL INCLUDES

// EXTERNAL INCLUDES
#include <e32std.h>
#include <badesca.h>
#include <mmf/common/mmfcontrollerpluginresolver.h>

namespace
	{
	// CONSTANTS
	_LIT8( KProEngRngMimeType,    "application/vnd.nokia.ringing-tone" );
	//_LIT8( KProEngPlainTextType,  "text/plain" );
    }

// ============================ MEMBER FUNCTIONS ===============================

// -----------------------------------------------------------------------------
// CProEngMmfInfoUtility::GetSupportedMimeTypesL
// -----------------------------------------------------------------------------
//
void ProEngMmfInfoUtility::GetSupportedMimeTypesL( CDesC8Array& aMimeArray )
    {

    aMimeArray.InsertIsqL( KProEngRngMimeType );

	CMMFFormatSelectionParameters* formatPrms =
        CMMFFormatSelectionParameters::NewLC();
	CMMFControllerPluginSelectionParameters* controllerPrms =
        CMMFControllerPluginSelectionParameters::NewLC();

    // Empty format parameters means: "get all the supported formats"
    controllerPrms->SetRequiredPlayFormatSupportL( *formatPrms );
    RMMFControllerImplInfoArray cntrlArray;
    controllerPrms->ListImplementationsL( cntrlArray );

    TInt index( 0 );
    for( TInt i( cntrlArray.Count() - 1 ); i >= 0 ; --i )
        {
        const RMMFFormatImplInfoArray&
            infoArray( cntrlArray[i]->PlayFormats() );

        for( TInt j( infoArray.Count() - 1 ); j >= 0; --j )
            {
            const CDesC8Array& mimes = (infoArray[j])->SupportedMimeTypes();
            for( TInt k( mimes.MdcaCount() - 1 ); k >= 0; --k )
                {
                if( aMimeArray.FindIsq( mimes[k], index ) != KErrNone )
                    {
                    aMimeArray.InsertIsqL( mimes[k] );
                    }
                }
            }
        }
	
	cntrlArray.ResetAndDestroy();
	cntrlArray.Close();
    CleanupStack::PopAndDestroy( 2, formatPrms );

    //if( aMimeArray.FindIsq( KProEngPlainTextType, index ) == KErrNone )
    //    {
    //    aMimeArray.Delete( index );
    //    }

    aMimeArray.Compress();
    }

//  End of File