mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/MmfTsPlay.h
changeset 0 71ca22bcf22a
child 15 ab526b8cacfb
equal deleted inserted replaced
-1:000000000000 0:71ca22bcf22a
       
     1 /*
       
     2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  MmfTsPlay test module.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef MMFTSPLAY_H
       
    21 #define MMFTSPLAY_H
       
    22 
       
    23 // INCLUDES
       
    24 #include "StifTestModule.h"
       
    25 #include <StifLogger.h>
       
    26 
       
    27 // CONSTANTS
       
    28 //const ?type ?constant_var = ?constant;
       
    29 
       
    30 //#include "badesca.h"
       
    31 //#include "ecom.h"
       
    32 #include <mmfcontrollerpluginresolver.h> 
       
    33 #include <StifParser.h>
       
    34 #include "SimpleSoundPlayer.h"
       
    35 #include "MediaEvent.h"
       
    36 #include "FileNameParameters.h"
       
    37 #include "Des8Parameters.h"
       
    38 #include "UrlParameters.h"
       
    39 #include <f32file.h>
       
    40 #include <s32file.h>
       
    41 #include <MetaDataField.hrh>  // Binh
       
    42 
       
    43 
       
    44 	const TInt KErrConfigInvalid = KErrNone;	//-1100;
       
    45 	const TInt KErrExpectedValueDifferent = -1502;	//-1101
       
    46 	const TInt KErrSkippedEvents = -1102;
       
    47 	const TInt KErrNotExecuted = -1003;
       
    48 	const TInt KErrExecuted = KErrNone;
       
    49 	const TInt KErrLeft = -1503;
       
    50 
       
    51 	const TInt KNumMetaDataField = 19; // Binh
       
    52 
       
    53 	_LIT(KSectionStart, "[general]");
       
    54 	_LIT(KSectionEnd, "[general_end]");
       
    55 
       
    56 	_LIT(KTestCaseConfigStart, "[TestCase]");
       
    57 	_LIT(KTestCaseConfigEnd, "[End_TestCase]");
       
    58 
       
    59 	_LIT(KTagId, "id");
       
    60 	_LIT(KTagTitle, "Title");
       
    61 
       
    62 	_LIT(KTagSoundFile, "SoundFile");
       
    63 	_LIT(KTagSoundUrl, "SoundUrl");
       
    64 	_LIT(KTagSoundDes, "SoundDes");
       
    65 	
       
    66 	_LIT(KTagRepeatTimes, "RepeatTimes");
       
    67 	_LIT(KTagSilenceDuration, "SilenceDuration");
       
    68 
       
    69 	_LIT(KTagRampDuration, "RampDuration");
       
    70 
       
    71 	_LIT(KTagPosition, "Position");
       
    72 	_LIT(KTagErrorRange, "ErrorRange");
       
    73 
       
    74 	_LIT(KTagDelay, "Delay");
       
    75 	_LIT(KTagBalance, "Balance");
       
    76 
       
    77 	_LIT(KTagPauseDelay, "PauseDelay");
       
    78 	_LIT(KTagPlayDelay, "PlayDelay");
       
    79 
       
    80 	_LIT(KTagExpectedDuration, "ExpectedDuration");
       
    81 	_LIT(KTagWindowStart, "StartPosition");
       
    82 	_LIT(KTagWindowEnd, "EndPosition");
       
    83 
       
    84 	_LIT(KTagMime, "MimeType");
       
    85 	_LIT(KTagIapId, "IapId");
       
    86 
       
    87 	_LIT(KTagInterfaceId, "InterfaceId");
       
    88 
       
    89 	_LIT(KTagPriority, "Priority");
       
    90 	_LIT(KTagPriorityPreference, "PriorityPreference");
       
    91 
       
    92 	// Binh
       
    93     _LIT(KTagMetaDataData, "MetaDataData");
       
    94     _LIT(KTagMetaDataName, "MetaDataName");
       
    95     _LIT(KTagDontPlayAudioClip, "DontPlayAudioClip");
       
    96     _LIT(KTagEntriesCount, "EntryCount");
       
    97 
       
    98 	_LIT(KLogFileTag, "logFileName");
       
    99 	_LIT(KLogPathTag, "logPath");
       
   100 
       
   101 	_LIT(KDefLogFile, "tmmftsPlayDefault.log");
       
   102 	_LIT(KDefLogPath, "");
       
   103 
       
   104 	//Log literals
       
   105 	//_LIT(KTestCaseTitleFormat, "MMFTS.PLAY.%d-%S");
       
   106 	_LIT(KTestCaseTitleFormat, "%$2$S - %$1$d");
       
   107 	//_LIT(KDefaultLogger, "Using Default Logger");
       
   108 	_LIT(KLoggerStarted, "Started logger for INI file [%S]");
       
   109 	_LIT(KOpeningConfig, "Opening configuration file [%S]");
       
   110 	_LIT(KOpeningLogFilepath, "Opening logfile path [%S]");
       
   111 	_LIT(KConfigRequired, "TestCases need to be configured in file");
       
   112 	_LIT(KConfigInvalid, "TestCases need to be configured properly (file might have change between GetTestCases and RunTestCase)");
       
   113 
       
   114 	//Resultados
       
   115 	_LIT(KTestCaseResultNotImplemented, "TestCase not implemented");
       
   116 	_LIT(KTestCaseResultSuccess, "successful");
       
   117 	_LIT(KTestCaseResultFail, "Failed");
       
   118 	_LIT(KTestCaseResultLeft, "A LEAVE occurred");
       
   119 
       
   120 	_LIT(KTestCaseResultFailExpectedValueDifferent, "Expected result is different from actual result");
       
   121 	_LIT(KTestCaseResultFailSkippedEvents, "Not enough events took place to complete test");
       
   122 
       
   123 	_LIT(KTestCaseNotFound, "The TestCase id is invalid");
       
   124 // MACROS
       
   125 //#define ?macro ?macro_def
       
   126 
       
   127 // Logging path
       
   128 //_LIT( KMmfTsPlayLogPath, "\\logs\\testframework\\MmfTsPlay\\" ); 
       
   129 // Log file
       
   130 //_LIT( KMmfTsPlayLogFile, "MmfTsPlay.txt" ); 
       
   131 
       
   132 // DATA TYPES
       
   133 //enum ?declaration
       
   134 //typedef ?declaration
       
   135 //extern ?data_type;
       
   136 
       
   137 // FUNCTION PROTOTYPES
       
   138 //?type ?function_name(?arg_list);
       
   139 
       
   140 // FORWARD DECLARATIONS
       
   141 //class ?FORWARD_CLASSNAME;
       
   142 
       
   143 // CLASS DECLARATION
       
   144 
       
   145 /**
       
   146 *  This a MmfTsPlay class.
       
   147 *  ?other_description_lines
       
   148 *
       
   149 *  @lib ?library
       
   150 *  @since ?Series60_version
       
   151 */
       
   152 NONSHARABLE_CLASS(CMmfTsPlay) : public CTestModuleBase
       
   153     {
       
   154     public:  // Constructors and destructor
       
   155 
       
   156         /**
       
   157         * Two-phased constructor.
       
   158         */
       
   159         static CMmfTsPlay* NewL();
       
   160 
       
   161         /**
       
   162         * Destructor.
       
   163         */
       
   164         virtual ~CMmfTsPlay();
       
   165 
       
   166     public: // New functions
       
   167 
       
   168         /**
       
   169         * ?member_description.
       
   170         * @since ?Series60_version
       
   171         * @param ?arg1 ?description
       
   172         * @return ?description
       
   173         */
       
   174         //?type ?member_function( ?type ?arg1 );
       
   175 
       
   176     public: // Functions from base classes
       
   177 
       
   178         /**
       
   179         * From CTestModuleBase InitL is used to initialize the MmfTsPlay. 
       
   180         *       It is called once for every instance of MmfTsPlay after
       
   181         *       its creation.
       
   182         * @since ?Series60_version
       
   183         * @param aIniFile Initialization file for the test module (optional)
       
   184         * @param aFirstTime Flag is true when InitL is executed for first 
       
   185         *               created instance of MmfTsPlay.
       
   186         * @return Symbian OS error code
       
   187         */
       
   188         TInt InitL( TFileName& aIniFile, TBool aFirstTime );
       
   189 
       
   190         /**
       
   191         * From CTestModuleBase GetTestCasesL is used to inquiry test cases 
       
   192         *   from MmfTsPlay. 
       
   193         * @since ?Series60_version
       
   194         * @param aTestCaseFile Test case file (optional)
       
   195         * @param aTestCases  Array of TestCases returned to test framework
       
   196         * @return Symbian OS error code
       
   197         */
       
   198         TInt GetTestCasesL( const TFileName& aTestCaseFile, 
       
   199                             RPointerArray<TTestCaseInfo>& aTestCases );
       
   200 
       
   201         /**
       
   202         * From CTestModuleBase RunTestCaseL is used to run an individual 
       
   203         *   test case. 
       
   204         * @since ?Series60_version
       
   205         * @param aCaseNumber Test case number
       
   206         * @param aTestCaseFile Test case file (optional)
       
   207         * @param aResult Test case result returned to test framework (PASS/FAIL)
       
   208         * @return Symbian OS error code (test case execution error, which is 
       
   209         *           not reported in aResult parameter as test case failure).
       
   210         */   
       
   211         TInt RunTestCaseL( const TInt aCaseNumber, 
       
   212                            const TFileName& aTestCaseFile,
       
   213                            TTestResult& aResult );
       
   214 
       
   215         /**
       
   216         * From CTestModuleBase; OOMTestQueryL is used to specify is particular
       
   217         * test case going to be executed using OOM conditions
       
   218         * @param aTestCaseFile Test case file (optional)
       
   219         * @param aCaseNumber Test case number (optional)
       
   220         * @param aFailureType OOM failure type (optional)
       
   221         * @param aFirstMemFailure The first heap memory allocation failure value (optional)
       
   222         * @param aLastMemFailure The last heap memory allocation failure value (optional)
       
   223         * @return TBool
       
   224         */
       
   225         virtual TBool OOMTestQueryL( const TFileName& /* aTestCaseFile */, 
       
   226                                      const TInt /* aCaseNumber */, 
       
   227                                      TOOMFailureType& /* aFailureType */,
       
   228                                      TInt& /* aFirstMemFailure */, 
       
   229                                      TInt& /* aLastMemFailure */ );
       
   230 
       
   231         /**
       
   232         * From CTestModuleBase; User may add implementation for OOM test 
       
   233         * environment initialization. Usually no implementation is required.
       
   234         * @param aTestCaseFile Test case file (optional)
       
   235         * @param aCaseNumber Test case number (optional)
       
   236         * @return None
       
   237         */
       
   238         virtual void OOMTestInitializeL( const TFileName& /* aTestCaseFile */, 
       
   239                                     const TInt /* aCaseNumber */ ); 
       
   240 
       
   241         /**
       
   242         * From CTestModuleBase; OOMHandleWarningL. User may add implementation 
       
   243         * for OOM test warning handling. Usually no implementation is required.
       
   244         * @param aTestCaseFile Test case file (optional)
       
   245         * @param aCaseNumber Test case number (optional)
       
   246         * @param aFailNextValue FailNextValue for OOM test execution (optional)
       
   247         * @return None
       
   248         */
       
   249         virtual void OOMHandleWarningL( const TFileName& /* aTestCaseFile */,
       
   250                                         const TInt /* aCaseNumber */, 
       
   251                                         TInt& /* aFailNextValue */);
       
   252 
       
   253         /**
       
   254         * From CTestModuleBase; OOMTestFinalizeL may be used to finalize OOM
       
   255         * test environment. Usually no implementation is required.
       
   256         * @param aTestCaseFile Test case file (optional)
       
   257         * @param aCaseNumber Test case number (optional)
       
   258         * @return None
       
   259         */
       
   260         virtual void OOMTestFinalizeL( const TFileName& /* aTestCaseFile */, 
       
   261                                        const TInt /* aCaseNumber */ );
       
   262 
       
   263     protected:  // New functions
       
   264 
       
   265         void InitLoggerL( const TFileName& aLogPath , const TFileName& aLogFile );
       
   266 		void InitLoggerL();
       
   267 		TInt RunTestCaseFunctionL(TInt id, CStifSectionParser *section, TTestResult &aResult) ;
       
   268 		TBool IsDurationInRange(TInt aRepeatTimes, TTimeIntervalMicroSeconds aToneDuration, TTimeIntervalMicroSeconds aRepeatSilence, TTimeIntervalMicroSeconds aErrorRange , TTime aStartTime , TTime aEndTime ) ;		
       
   269 		
       
   270 		TInt TestCasePlayFileL(CStifSectionParser *section , TTestResult &aResult) ;
       
   271 		TInt TestCaseGetBitRateL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   272 		TInt TestCaseGetDRMCmdL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   273 		TInt TestCaseCancelNotificationL(CStifSectionParser *section , TTestResult &aResult) ;    
       
   274 		TInt TestCaseCtrImpInfoL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   275 		TInt TestCaseSet_PriorityL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   276 		TInt TestCasePlayFileWithVolumeRampL(CStifSectionParser *section , TTestResult &aResult) ;
       
   277 		TInt TestCasePlayFileWithRepeatsL(CStifSectionParser *section , TTestResult &aResult) ;
       
   278 		TInt TestCasePlayFileWithPositionL(CStifSectionParser *section , TTestResult &aResult) ;
       
   279 		TInt TestCasePlayFileWithBalanceL(CStifSectionParser *section , TTestResult &aResult) ;
       
   280 		TInt TestCasePlayFileWithPauseL(CStifSectionParser *section , TTestResult &aResult) ;
       
   281 		TInt TestCasePlayFileStopOpenL(CStifSectionParser *section , TTestResult &aResult) ;
       
   282 		TInt TestCaseNewFilePlayerL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   283 		TInt TestCaseNewDesPlayerL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   284 		TInt TestCaseNewDesReadOnlyPlayerL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   285 		TInt TestCaseGetLoadPercentageL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   286 		TInt TestCasePlayFileReportPositionL(CStifSectionParser *section , TTestResult &aResult) ;
       
   287 		TInt TestCasePlayFileReportDurationL(CStifSectionParser *section , TTestResult &aResult) ;
       
   288 		TInt TestCasePlayFileWindowL(CStifSectionParser *section , TTestResult &aResult) ;
       
   289 		TInt TestCasePlayFileWindowClearL(CStifSectionParser *section , TTestResult &aResult) ;
       
   290 		TInt TestCasePlayFilesWithPrioritiesL(CStifSectionParser *section , TTestResult &aResult) ;
       
   291 		TInt TestCasePlayFilesWithVolumesL(CStifSectionParser *section , TTestResult &aResult) ;
       
   292 		TInt TestCasePlayDesL(CStifSectionParser *section , TTestResult &aResult) ;
       
   293 		TInt TestCasePlayDesStopOpenL(CStifSectionParser *section , TTestResult &aResult) ;
       
   294 		TInt TestCasePlayUrlL(CStifSectionParser *section , TTestResult &aResult) ;
       
   295 		TInt TestCasePlayUrlStopOpenL(CStifSectionParser *section , TTestResult &aResult) ;
       
   296 		TInt TestCasePlayFileMetaInfoL(CStifSectionParser *section , TTestResult &aResult, TBool aFileHandler=EFalse) ;
       
   297 		TInt TestCasePlayFileFormatsL(CStifSectionParser *section , TTestResult &aResult) ;
       
   298 		TInt TestCasePlayHandlerL(CStifSectionParser *section , TTestResult &aResult) ;
       
   299 		TInt TestCasePlayHandlerStopOpenL(CStifSectionParser *section , TTestResult &aResult) ;
       
   300 		TInt TestCasePlayHandlerWithPauseL(CStifSectionParser *section , TTestResult &aResult) ;
       
   301 		TInt TestCasePlayHandlerWithRampL(CStifSectionParser *section , TTestResult &aResult) ;
       
   302 		TInt TestCasePlayHandlerWithSetPositionL(CStifSectionParser *section , TTestResult &aResult) ;
       
   303 		TInt TestCasePlayHandlerWithGetPositionL(CStifSectionParser *section , TTestResult &aResult) ;
       
   304 		TInt TestCasePlayHandlerWithDurationL(CStifSectionParser *section , TTestResult &aResult) ;
       
   305 		TInt TestCasePlayHandlerWithWindowL(CStifSectionParser *section , TTestResult &aResult) ;
       
   306 		TInt TestCasePlayHandlerWithClearWindowL(CStifSectionParser *section , TTestResult &aResult) ;
       
   307 		TInt TestCasePlayHandlerWithPrioritiesL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   308 		TInt TestMetaDataDataL(CStifSectionParser *section , TTestResult &aResult, TBool aFileHandler=EFalse);
       
   309         TInt TestMetaDataCountL(CStifSectionParser *section , TTestResult &aResult, TBool aFileHandler=EFalse);
       
   310         TInt TestCaseOpenFileL(CStifSectionParser *section , TTestResult &aResult);
       
   311 		TInt TestCasePlayFileL(CStifSectionParser *section , TTestResult &aResult, TInt aSubCase) ;
       
   312         TInt TestCasePlayFileHandlerL(CStifSectionParser *section , TTestResult &aResult, TInt aSubCase) ;
       
   313         TInt TestCasePlayFileSourceL(CStifSectionParser *section , TTestResult &aResult, TInt aSubCase) ;
       
   314         TInt TestCasePlayDescL(CStifSectionParser *section , TTestResult &aResult, TInt aSubCase) ;
       
   315         TInt TestCaseRegNotificationL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   316 		TInt TestCaseRegLoadNotificationL(CStifSectionParser *section , TTestResult &aResult) ; 
       
   317 		TInt TestCasePlayFileWithRepeatForeverL(CStifSectionParser *section , TTestResult &aResult);
       
   318 		TInt TestCasePlayFileWithRepeatsWithPauseL(CStifSectionParser *section , TTestResult &aResult);
       
   319 		TInt TestCasePlayFileWithRepeatsInPlaywindowL(CStifSectionParser *section , TTestResult &aResult);
       
   320 		TInt TestCasePlayFileWithRepeatsInPlaywindowPauseL(CStifSectionParser *section , TTestResult &aResult);
       
   321 		TInt TestCasePlayFileWithRepeatForeverInPlaywindowL(CStifSectionParser *section , TTestResult &aResult);
       
   322 		
       
   323 		TInt TestAudioOutputL(CStifSectionParser *section , TTestResult &aResult);
       
   324 		TInt TestLoopPlayL(CStifSectionParser *section , TTestResult &aResult);
       
   325 		        
       
   326     protected:  // Functions from base classes
       
   327 
       
   328     private:
       
   329 
       
   330         /**
       
   331         * C++ default constructor.
       
   332         */
       
   333         CMmfTsPlay();
       
   334 
       
   335         /**
       
   336         * By default Symbian 2nd phase constructor is private.
       
   337         */
       
   338         void ConstructL();
       
   339 
       
   340         //TTimeIntervalMicroSeconds GetDelayL(CStifSectionParser *aSection, const TDesC &aTag=KTagDelay);
       
   341 		TTimeIntervalMicroSeconds32 GetTimeIntervalL(CStifSectionParser *aSection, const TDesC &aTag, TBool &aUsingDefault, const TTimeIntervalMicroSeconds32 &aDefaultInterval);
       
   342 		TTimeIntervalMicroSeconds GetTimeIntervalL(CStifSectionParser *aSection, const TDesC &aTag, TBool &aUsingDefault, const TTimeIntervalMicroSeconds &aDefaultInterval=TTimeIntervalMicroSeconds(-1) );
       
   343 
       
   344 		HBufC8 *GetDescriptor8LC(const TFileName &aFileName,CStifSectionParser *aSection );
       
   345 
       
   346 		TInt GetIntL(CStifSectionParser *aSection, const TDesC &aTag, TBool &aUsingDefault, const TInt &aDefaultInt, TBool aContinue=EFalse) ;
       
   347 
       
   348 		// Binh
       
   349         TInt CMmfTsPlay::DisplayFields(TInt aEntryCount, CSimpleSoundPlayer* aSndPlayer, TBool aDisplay);
       
   350         TInt CMmfTsPlay::GetFieldId(const TDesC& aString);
       
   351         void CMmfTsPlay::DeleteMetaDataFields();
       
   352 
       
   353     public:     // Data
       
   354         static const TInt MAX_TESTCASE_ID;
       
   355 		static const TInt KDefaultRepeats;
       
   356 		static const TInt KDefaultRepeatForever;
       
   357 		
       
   358 #define KDefaultSilenceDuration  (TTimeIntervalMicroSeconds ((TInt64)500000))
       
   359 #define KDefaultRampDuration  (TTimeIntervalMicroSeconds ((TInt64)2000000))
       
   360 #define KDefaultPosition  (TTimeIntervalMicroSeconds ((TInt64) 2000000))
       
   361 #define KDefaultErrorRange (TTimeIntervalMicroSeconds ((TInt64) 250000))
       
   362 		static const TInt KDefaultPauseDelay;
       
   363 		static const TInt KDefaultPlayDelay;
       
   364 		static const TInt KDefaultStopOpenPlayDelay;
       
   365 		static const TInt KDefaultReportDelay;
       
   366 		//Cases
       
   367 		static const TInt KCasePlayFile;
       
   368 		static const TInt KCasePlayFileWithRepeats;
       
   369 		static const TInt KCasePlayFileWithRamp;
       
   370 		static const TInt KCasePlayFileWithPause;
       
   371 		static const TInt KCasePlayFileWithPosition;
       
   372 		static const TInt KCaseGetLoadPercentage;
       
   373 		static const TInt KCasePlayFileWithBalance;
       
   374 		static const TInt KCasePlayFileStopOpen;
       
   375 		static const TInt KCasePlayFileReportPosition;
       
   376 		static const TInt KCasePlayFileReportDuration;
       
   377 		static const TInt KCasePlayFileWindow;
       
   378 		static const TInt KCasePlayFileClearWindow;
       
   379 		static const TInt KCasePlayFilesWithPriorities;
       
   380 		static const TInt KCasePlayFilesWithVolumes;
       
   381 		static const TInt KCasePlayDes;
       
   382 		static const TInt KCasePlayDesStopOpen ;
       
   383 		static const TInt KCasePlayUrl;
       
   384 		static const TInt KCasePlayUrlStopOpen ;
       
   385 		static const TInt KCasePlayFileMetaInfo;
       
   386 		static const TInt KCaseImplementationInformation;
       
   387 		static const TInt KCasePlayHandler;
       
   388 		static const TInt KCasePlayHandlerStopOpen;
       
   389 		static const TInt KCasePlayHandlerWithPause;
       
   390 		static const TInt KCasePlayHandlerWithRamp;
       
   391 	    static const TInt KCasePlayHandlerWithSetPosition;
       
   392 		static const TInt KCasePlayHandlerWithGetPosition;
       
   393 		static const TInt KCasePlayHandlerWithDuration;
       
   394 		static const TInt KCasePlayHandlerWithWindow;
       
   395 		static const TInt KCasePlayHandlerWithClearWindow;
       
   396 		static const TInt KCasePlayHandlerWithPriorities; 
       
   397 		static const TInt KCaseNewFilePlayer; 
       
   398 		static const TInt KCaseNewDesPlayer; 
       
   399 		static const TInt KCaseNewDesReadOnlyPlayer; 
       
   400 		static const TInt KCaseGetBitRate;  
       
   401 		static const TInt KCaseGetDRMCmd; 
       
   402 		static const TInt KCaseCancelNotification; 
       
   403 		static const TInt KCaseCtrImpInfo;  
       
   404 		static const TInt KCaseSet_Priority; 
       
   405     	static const TInt KCaseMetaDataData;
       
   406         static const TInt KCaseMetaDataCount;
       
   407     	static const TInt KCaseMetaDataDataFileHandler;
       
   408 		static const TInt KCasePlayFileMetaInfoFileHandler;
       
   409         static const TInt KCaseMetaDataCountFileHandler;
       
   410         static const TInt KCaseOpenFile ;
       
   411         static const TInt KCasePlayFileHandler ;
       
   412         static const TInt KCasePlayFileSource ;
       
   413         static const TInt KCasePlayDesc ;
       
   414         static const TInt KCaseOpenUrl ;
       
   415         static const TInt KCase_PlayFile ;
       
   416         static const TInt KCaseRegNotification;  
       
   417         static const TInt KCaseRegLoadNotification;
       
   418         static const TInt KCasePlayFileWithRepeatForever;
       
   419         static const TInt KCasePlayFileWithRepeatsWithPause;
       
   420         static const TInt KCasePlayFileWithRepeatsInPlaywindow;
       
   421         static const TInt KCasePlayFileWithRepeatsInPlaywindowPause;
       
   422         static const TInt KCasePlayFileWithRepeatForeverInPlaywindow;
       
   423         
       
   424         static const TInt KCaseAudioOutput;
       
   425         static const TInt KCaseLoopPlayTest;
       
   426 
       
   427     protected:  // Data
       
   428 
       
   429     private:    // Data
       
   430 
       
   431         CStifLogger *iLogger;
       
   432 		CActiveScheduler* iScheduler;
       
   433 
       
   434 		//Binh
       
   435         HBufC*   iMetaDataField[KNumMetaDataField];
       
   436         TBuf<50> iMetaDataFieldName[KNumMetaDataField];
       
   437         TMetaDataFieldId iMetaDataFieldID[KNumMetaDataField];
       
   438 
       
   439     public:     // Friend classes
       
   440     	RFs				iFs;
       
   441     //	RFs				iFs2;
       
   442 		RFile			iFile;
       
   443 	//	RFile			iFile2;
       
   444 		
       
   445     protected:  // Friend classes
       
   446     private:    // Friend classes
       
   447 
       
   448     };
       
   449 
       
   450 #endif      // MMFTSPLAY_H
       
   451 
       
   452 // End of File