gsprofilesrv_plat/profiles_mediafilelist_api/inc/mediafilelist.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:20:44 +0100
branchRCL_3
changeset 25 7e0eff37aedb
parent 0 8c5d936e5675
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2007 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:   Interface of MediaFileList. Provide some API for 
*                the user to use mediafilelist
*
*/




#ifndef MEDIALFILELIST_H
#define MEDIALFILELIST_H

//  INCLUDES
#include <e32base.h>
#include <s32file.h>


// FORWARD DECLARATIONS
class CMediaFileDialog;



// CLASS DECLARATION

/**
*  Public API for displaying media file list. List is used for 
*  selecting/previewing audio and video files. 
* 
*  @lib mediafilelist.lib
*  @since Series60_5.1
*  
*/
class CMediaFileList : public CBase
    {
    public:
    enum TMediaFileListAttribute
        {
        // max media file size
        EAttrFileSize = 0,
        // ringing volume (TProfileRingingVolume from Profile.hrh)
        EAttrVolume,
        // ringing type,  (TProfileRingingType from Profile.hrh)
        EAttrRingingType,
        // vibra on/off   (Boolean) 
        EAttrVibra,
        // 3D effect      (TProfile3DToneEffect from ProfileInternal.hrh)
        EAttr3DEffect,
        // 3D echo        (TProfile3DToneEcho from ProfileInternal.hrh)
        EAttr3DEcho,
        // excluded mime type text
        EAttrExcludeMimeType,
        // for file protection checking
        EAttrAutomatedType,
        // media file dialog title
        EAttrTitle,
        // excluded folder (see enum TFolderType)
        EAttrExcludeFolder
        };

    enum TMediaFileType
        {
        EMediaFileTypeAudio = 0,
        EMediaFileTypeVideo
        };

    enum TNullItemIcon
        {
        ENullItemIconNone = 0,
        ENullItemIconDefaultTone,
        ENullItemIconOff
        };

    enum TFolderType
        {
        EFolderDownload = 0,
        EFolderVideos
        };

    public:
        /**
        * Two-phased constructor.
        */
        IMPORT_C static CMediaFileList* NewL();

        /**
        * Destructor.
        */
	    IMPORT_C virtual ~CMediaFileList();

    private:
        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL();

        /**
        * C++ default constructor.
        */
        CMediaFileList();

    public:

       /**
        * Shows Media file list.
        * @since Series60_5.1
        * @param aFileName Selected media file name full path.
        * @param aNullItem Selected null item index. Possible values:
        *        KErrNotFound - item is not null item or Download item
        *        0 - Download item
        *        1 - first null item
        *        2 - second null item
        *  
        * @param aInfo Extra information, set to NULL if not used.
        * @param aDesInfo Extra information, set to KNullDesC if not used.
        * @return ETrue if user selected media file, EFalse otherwise.
        */
	    IMPORT_C TBool ShowMediaFileListL( TDes* aFileName, TInt* aNullItem,
	                                       TInt* aInfo, TDes* aDesInfo );

        /**
        * Set Media file list attribute. See enum TMediaFileListAttribute for
        * list of supported attributes.
        * @since Series60_5.1
        * @param aAttr Attribute id. 
        * @param aValue Attribute value. 
        * @return None.
        */
       	IMPORT_C void SetAttrL( TInt aAttr, TInt aValue );

        /**
        * Set Media file list attribute. See enum TMediaFileListAttribute for
        * list of supported attributes.
        * @since Series60_5.1
        * @param aAttr Attribute id. 
        * @param aValue Attribute value. 
        * @return None.
        */
	    IMPORT_C void SetAttrL( TInt aAttr, const TDesC& aValue );

        /**
        * Set Media file list attribute. Currently not in use.
        * @since Series60_5.1
        * @param aAttr Attribute id. 
        * @param aValue Attribute value. 
        * @return None.
        */
	    IMPORT_C void SetAttrL( TInt aAttr, TAny* aValue );

        /**
        * Set Media file list null item. Null items are custom list items
        * that appear at the end of the media file list main view.
        * @since Series60_5.1
        * @param aText Null item text.
        * @param aMediaFile File that is played when null items gets focused.
        *        Use KNullDesC if not used.
        * @param aMediaFileType Media file type. See enum TMediaFileType for
                 supported media types.
        * @param aIconId Null item icon id. See enum TNullItemIcon for
                 supported icons.
        * @return None.
        */
	    IMPORT_C void SetNullItemL( const TDesC& aText, const TDesC& aMediaFile,
	                                TInt aMediaFileType, TInt aIconId );

	

    private:
		CMediaFileDialog* iDialog;
    };



#endif      // MEDIALFILELIST_H
            
// End of File