mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepAudioPlayerDRM.cpp
author hgs
Thu, 07 Oct 2010 22:34:12 +0100
changeset 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2004-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
// Unit tests. The client is opened with DRM intent and played.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
#include "TestStepAudioPlayerDRM.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
// Unique Id of the content
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
_LIT(KRightsPlayerUniqueId001, "AudioTestmainTstId001");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
_LIT(KRightsPlayerUniqueId002, "\\Container001\\AudioTestmainTst2Id002");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
_LIT(KRightsPlayerUniqueId003, "AudioTestmainTst3Id003");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
_LIT(KRightsPlayerUniqueId004, "AudioTestNoRightsId001");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
_LIT(KRightsPlayerInvalidUniqueId, "AudioTestInvalidUniqueId");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
#define INFO_PRINTF1_IF_LOGS_ENABLED( a ) if(iEnableLogs) 		\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
											{					\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
											INFO_PRINTF1( a );	\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
											}											
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
											
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
#define INFO_PRINTF2_IF_LOGS_ENABLED( a, b ) if(iEnableLogs)					\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
												{								\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
												INFO_PRINTF2( ( a ), ( b ) );	\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
												}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
											
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
#define INFO_PRINTF3_IF_LOGS_ENABLED( a, b, c ) if(iEnableLogs)								\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
													{										\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
													INFO_PRINTF3( ( a ), ( b ), ( c ) );	\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
													}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
											
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
#define ERR_PRINTF1_IF_LOGS_ENABLED( a ) if(iEnableLogs)		\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
											{					\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
											ERR_PRINTF1( a );	\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
											}											
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
											
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
#define ERR_PRINTF2_IF_LOGS_ENABLED( a, b ) if(iEnableLogs)						\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
												{								\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
												ERR_PRINTF2( ( a ), ( b ) );	\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
												}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
											
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
#define ERR_PRINTF3_IF_LOGS_ENABLED( a, b, c ) if(iEnableLogs)							\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
													{									\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
													ERR_PRINTF3( ( a ), ( b ), ( c ) );	\
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
													}									
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
													
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
// Used in a time out function, 1 second (in microSeconds)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
const TInt KOneSecond = 1000000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
// CTestMmfDRMAudioPlayerBase implementation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
* CTestMmfDRMAudioPlayerBase constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
CTestMmfDRMAudioPlayerBase::CTestMmfDRMAudioPlayerBase()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	iEnableLogs = ETrue;//By deafult log the messages    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
* FsmL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
* @param TMmfAudioPlayerEvents aEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
void CTestMmfDRMAudioPlayerBase::FsmL(TMmfAudioPlayerEvents aEvent)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
    iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
    switch (aEvent)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
        case EAudioOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
        	INFO_PRINTF2_IF_LOGS_ENABLED(_L("Opening the file for PLAY intent: %S"), &iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
            if (iTestStepName == _L("MM-MMF-ACLNT-U-0905-HP"))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
                iAudioPlayer->OpenFileL(TMMFileSource(iFileName, KRightsPlayerUniqueId002, ContentAccess::EPlay));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
            else if (iTestStepName == _L("MM-MMF-ACLNT-U-0923-HP"))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
                iAudioPlayer->OpenFileL(TMMFileSource(iFileName, KRightsPlayerUniqueId003, ContentAccess::EPlay));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
            else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
                iAudioPlayer->OpenFileL(TMMFileSource(iFileName, KRightsPlayerUniqueId001, ContentAccess::EPlay));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
        case EAudioPlay:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
            if (iTestStepName == _L("MM-MMF-ACLNT-U-0903-HP"))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
                INFO_PRINTF1_IF_LOGS_ENABLED(_L("Playing the audio file...for 2 seconds."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
                iAudioPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
                User::After(2000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
				INFO_PRINTF1_IF_LOGS_ENABLED(_L("Pausing the audio file...for 1 second."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
                User::LeaveIfError(iAudioPlayer->Pause());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
                User::After(1000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
				INFO_PRINTF1_IF_LOGS_ENABLED(_L("Continuing the play of the audio file...for 2 seconds."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
               	iAudioPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
                User::After(2000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
             
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
            else if (iTestStepName == _L("MM-MMF-ACLNT-U-0907-HP"))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
            	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
            	INFO_PRINTF1_IF_LOGS_ENABLED(_L("Playing of the audio file...for 2 seconds."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
               	iAudioPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
                User::After(2000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
                
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
                INFO_PRINTF1_IF_LOGS_ENABLED(_L("Stop the play of the audio file...."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
             	iAudioPlayer->Stop();                         	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
            	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
            else if (iTestStepName == _L("MM-MMF-ACLNT-U-0909-HP"))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
            	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
            	for(TInt i=0; i<=50; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
                	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
                	INFO_PRINTF1(_L("Playing the audio file...for 0.05 second."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
                	iAudioPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
                	User::After(50000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
                	INFO_PRINTF1(_L("Pausing the audio file...for 0.05 second."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
                	User::LeaveIfError(iAudioPlayer->Pause());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
                	User::After(50000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
                	}                        	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
            	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
            else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
                INFO_PRINTF1_IF_LOGS_ENABLED(_L("Playing the audio file..."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
                iAudioPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
        case EAudioPlayEnd:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
        	INFO_PRINTF1_IF_LOGS_ENABLED(_L("Audio file opened and played."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
            iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
			iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
            CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
        default:        	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
            INFO_PRINTF1(_L("Invalid Audio event!"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
      };
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
* FsmHandleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
* @param TMmfAudioPlayerEvents aEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
void CTestMmfDRMAudioPlayerBase::FsmHandleL(TMmfAudioPlayerEvents aEvent)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
    iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
    switch (aEvent)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
        case EAudioOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
        	INFO_PRINTF2_IF_LOGS_ENABLED(_L("Opening the file for PLAY intent: %S"), &iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
            iAudioPlayer->OpenFileL(TMMFileHandleSource(iFile, KRightsPlayerUniqueId001, ContentAccess::EPlay));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
        case EAudioPlay:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
        	INFO_PRINTF1_IF_LOGS_ENABLED(_L("Playing the audio file..."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
            iAudioPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
        case EAudioPlayEnd:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
        	INFO_PRINTF1_IF_LOGS_ENABLED(_L("Audio file opened and played."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
            iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
     		iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
            CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
        default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
            INFO_PRINTF1(_L("Invalid Audio event!"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
    };
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
* EnableLogs()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
* @param TBool aEnable
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
inline void CTestMmfDRMAudioPlayerBase::EnableLogs(TBool aEnable)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	iEnableLogs = aEnable;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
* Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
* @return enum TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
* 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
enum TVerdict CTestMmfDRMAudioPlayerBase::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
    // Install the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
    enum TVerdict verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
    iError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
    // Get the filename
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
    // iFileName will be the content file, containing audio files
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
    if (!GetStringFromConfig(_L("SectionDRM"), _L("AudioContent"), iFileName))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
        return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
    // Create an audio player
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
    iAudioPlayer = CMdaAudioPlayerUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
    if (iAudioPlayer == NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
        return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
    return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
* Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
* @return enum TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
* 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
enum TVerdict CTestMmfDRMAudioPlayerBase::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
  	delete iAudioPlayer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
    iAudioPlayer = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
    User::After(KOneSecond); // wait for deletion to shut down devsound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
    return CTestStepUnitMMFAudClient::DoTestStepPostambleL(); // Destroy the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
void CTestMmfDRMAudioPlayerBase::MapcInitComplete(TInt aError, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
    const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
    INFO_PRINTF2_IF_LOGS_ENABLED(_L("MMdaAudioPlayerCallback Init Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
    if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
    	ERR_PRINTF1_IF_LOGS_ENABLED(_L("Opening the audio file failed."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
    	iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
    	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
    	TRAP(iError, FsmL(EAudioPlay)); // Call to play audio
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
    	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
    		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
    		ERR_PRINTF2_IF_LOGS_ENABLED(_L("Got an error from the FsmL(EAudioPlay) %d."), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
    		iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
    		CActiveScheduler::Stop();    		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
    		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
	    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
    		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
    		TRAP(iError, FsmL(EAudioPlayEnd)); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
    		if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
   		 		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
   		 		ERR_PRINTF2_IF_LOGS_ENABLED(_L("Got an error from the FsmL(EAudioPlayEnd) %d."), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
    			}  	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
    		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
void CTestMmfDRMAudioPlayerBase::MapcPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
    INFO_PRINTF2_IF_LOGS_ENABLED(_L("MMdaAudioPlayerCallback Play Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
    if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
    	ERR_PRINTF2_IF_LOGS_ENABLED(_L("Playing the audio file failed, unexpected error %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
    	iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
    	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
    	TRAP(iError, FsmL(EAudioPlayEnd)); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
    	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
    		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
    		ERR_PRINTF2_IF_LOGS_ENABLED(_L("Got an error from the FsmL(EAudioPlayEnd) %d."), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
    		}    	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
// Positive Tests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
* Ctor for CTestMmfDRMAudioPlayFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
* @return CTestMmfDRMAudioPlayFileSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
*                           constructed CTestMmfDRMAudioPlayFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
CTestMmfDRMAudioPlayFileSource* CTestMmfDRMAudioPlayFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
    return new (ELeave) CTestMmfDRMAudioPlayFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
CTestMmfDRMAudioPlayFileSource::CTestMmfDRMAudioPlayFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
    // Store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
    // This is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
    iTestStepName = _L("MM-MMF-ACLNT-U-0901-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
TVerdict CTestMmfDRMAudioPlayFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
    INFO_PRINTF1(_L("Open and play a protected audio clip from a file for PLAY intent. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
    iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
    TRAPD(err, FsmL(EAudioOpen)); // Call to open the audio file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
    if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
    	CActiveScheduler::Start(); // ActiveScheduler started ONLY once
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
* Ctor for CTestMmfDRMAudioPlayFileHandleSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
* @return CTestMmfDRMAudioPlayFileHandleSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
*                         constructed CTestMmfDRMAudioPlayFileHandleSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
CTestMmfDRMAudioPlayFileHandleSource* CTestMmfDRMAudioPlayFileHandleSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
    return new (ELeave) CTestMmfDRMAudioPlayFileHandleSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
CTestMmfDRMAudioPlayFileHandleSource::CTestMmfDRMAudioPlayFileHandleSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
    iTestStepName = _L("MM-MMF-ACLNT-U-0902-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
void CTestMmfDRMAudioPlayFileHandleSource::MapcInitComplete(TInt aError, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
    const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
    INFO_PRINTF2(_L("MMdaAudioPlayerCallback Init Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
    	ERR_PRINTF2(_L("Opening the audio file failed, unexpected error %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
    	iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
    	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
    	TRAP(iError, FsmHandleL(EAudioPlay)); // Call to play audio
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
void CTestMmfDRMAudioPlayFileHandleSource::MapcPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
    INFO_PRINTF2(_L("MMdaAudioPlayerCallback Play Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
    if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
    	ERR_PRINTF2(_L("Play complete returned unexpected error %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
    	iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
    	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
    	TRAP(iError, FsmHandleL(EAudioPlayEnd)); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
TVerdict CTestMmfDRMAudioPlayFileHandleSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
    INFO_PRINTF1(_L("Open and play a protected audio clip from a file for PLAY intent. (TMMFileHandleSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
    User::LeaveIfError(iFs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
    User::LeaveIfError(iFs.ShareProtected());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
    User::LeaveIfError(iFile.Open(iFs, iFileName, EFileRead));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
    TRAPD(err, FsmHandleL(EAudioOpen)); // Call to open the audio file thru file handle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
    if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
    	CActiveScheduler::Start(); // ActiveScheduler started ONLY once
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
    iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
    iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
* Ctor for CTestMmfDRMAudioPPCSFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
* @return CTestMmfDRMAudioPPCSFileSource*: constructed CTestMmfDRMAudioPPCSFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
CTestMmfDRMAudioPPCSFileSource* CTestMmfDRMAudioPPCSFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
    return new (ELeave) CTestMmfDRMAudioPPCSFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
CTestMmfDRMAudioPPCSFileSource::CTestMmfDRMAudioPPCSFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
    iTestStepName = _L("MM-MMF-ACLNT-U-0903-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
TVerdict CTestMmfDRMAudioPPCSFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
    INFO_PRINTF1(_L("Open, play, pause, continue and stop the play of the protected audio clip from a file for PLAY/PAUSE/CONTINUE/STOP intents. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
    TRAPD(err,FsmL(EAudioOpen)); // Call to open the audio file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
  	if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
    	CActiveScheduler::Start(); // ActiveScheduler started ONLY once
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
    	iError = err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
    	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
* Ctor for CTestMmfDRMAudioPlayAllocFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
* @return CTestMmfDRMAudioPlayAllocFileSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
*                       constructed CTestMmfDRMAudioPlayAllocFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
CTestMmfDRMAudioPlayAllocFileSource* CTestMmfDRMAudioPlayAllocFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
    return new (ELeave) CTestMmfDRMAudioPlayAllocFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
CTestMmfDRMAudioPlayAllocFileSource::CTestMmfDRMAudioPlayAllocFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
    iTestStepName = _L("MM-MMF-ACLNT-U-0904-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
* Play audio by marking heap.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
void CTestMmfDRMAudioPlayAllocFileSource::AudioPlayAllocL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
    __MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
    TRAPD(err, FsmL(EAudioOpen)); // Call to open the audio file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
    if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
    	CActiveScheduler::Start(); // ActiveScheduler started ONLY once{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
    	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
	iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
    __MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
TVerdict CTestMmfDRMAudioPlayAllocFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
    INFO_PRINTF1(_L("Alloc test to open and play a protected audio clip from a file for PLAY intent. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
    TRAP(iError, AudioPlayAllocL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
    if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
        INFO_PRINTF2(_L("Opening/playing the audio file failed, unexpected error %d."), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
        return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
    iTestStepResult  = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
    TInt failCount   = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
    TBool completed  = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
    TBool badResult  = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
    TBool reachedEnd = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
	EnableLogs(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
    for(;;)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
        __UHEAP_SETFAIL(RHeap::EFailNext, failCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
        __MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
		TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
        TRAP(error, AudioPlayAllocL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
		if (error != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
			iError = error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
        completed = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
        if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
            TAny *testAlloc = User::Alloc(1); // when this fails, we passed through all allocs within test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
            if (testAlloc == NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
                reachedEnd = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
                failCount--;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
            else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
                User::Free(testAlloc);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
                testAlloc = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
            if (iTestStepResult != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
                badResult = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
            completed = reachedEnd || badResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
        else if (iError != KErrNoMemory)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
            __UHEAP_SETFAIL(RHeap::ENone, 0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
            ERR_PRINTF2(_L("Bad error code %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
            completed = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
            badResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
        __MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
        __UHEAP_SETFAIL(RHeap::ENone, 0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
        if (completed)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
        failCount++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
    if (iError != KErrNone || badResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
        if (badResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
            INFO_PRINTF3(_L("Bad result with %d memory allocations tested. The Error returned is %d."), failCount, iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
            INFO_PRINTF3(_L("Error(%d) with %d memory allocations tested."), failCount, iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
        iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
        INFO_PRINTF2(_L("Completed OK with %d memory allocations tested.\n"), failCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
        iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
* Ctor for CTestMmfDRMAudioPlayUniqueIdFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
* @return CTestMmfDRMAudioPlayUniqueIdFileSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
*                          constructed CTestMmfDRMAudioPlayUniqueIdFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
CTestMmfDRMAudioPlayUniqueIdFileSource* CTestMmfDRMAudioPlayUniqueIdFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
    return new (ELeave) CTestMmfDRMAudioPlayUniqueIdFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
CTestMmfDRMAudioPlayUniqueIdFileSource::CTestMmfDRMAudioPlayUniqueIdFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
    iTestStepName = _L("MM-MMF-ACLNT-U-0905-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
TVerdict CTestMmfDRMAudioPlayUniqueIdFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
    INFO_PRINTF1(_L("Open and play a protected audio clip from a file for PLAY intent with Unique Id. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
    TRAPD(err, FsmL(EAudioOpen)); // Call to open the audio file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
    if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
    	CActiveScheduler::Start(); // ActiveScheduler started ONLY once
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
* Ctor for CTestMmfDRMAudioPlayAllocFileHandleSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
* @return CTestMmfDRMAudioPlayAllocFileHandleSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
*                           constructed CTestMmfDRMAudioPlayAllocFileHandleSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
CTestMmfDRMAudioPlayAllocFileHandleSource* CTestMmfDRMAudioPlayAllocFileHandleSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
    return new (ELeave) CTestMmfDRMAudioPlayAllocFileHandleSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
CTestMmfDRMAudioPlayAllocFileHandleSource::CTestMmfDRMAudioPlayAllocFileHandleSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
    iTestStepName = _L("MM-MMF-ACLNT-U-0906-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
void CTestMmfDRMAudioPlayAllocFileHandleSource::MapcInitComplete(TInt aError, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
    const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
    INFO_PRINTF2_IF_LOGS_ENABLED(_L("MMdaAudioPlayerCallback Init Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
    if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
    	ERR_PRINTF1_IF_LOGS_ENABLED(_L("Opening the audio file failed."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
    	iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
       	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
    	TRAP(iError, FsmHandleL(EAudioPlay)); // Call to play audio
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
void CTestMmfDRMAudioPlayAllocFileHandleSource::MapcPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
    INFO_PRINTF2_IF_LOGS_ENABLED(_L("MMdaAudioPlayerCallback Play Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
    if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
    	ERR_PRINTF2_IF_LOGS_ENABLED(_L("Audio playback failed with unexpected error %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
    	iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
      	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
    	TRAP(iError, FsmHandleL(EAudioPlayEnd)); // end audio playback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
* Play audio by marking heap.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
void CTestMmfDRMAudioPlayAllocFileHandleSource::AudioPlayAllocL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
    __MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
    User::LeaveIfError(iFs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
    User::LeaveIfError(iFs.ShareProtected());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
    User::LeaveIfError(iFile.Open(iFs, iFileName, EFileRead | EFileShareReadersOnly));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
    TRAPD(err, FsmHandleL(EAudioOpen)); // Call to open the audio file thru file handle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
    if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
    	CActiveScheduler::Start(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
    iAudioPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
    iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
    __MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
TVerdict CTestMmfDRMAudioPlayAllocFileHandleSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
    INFO_PRINTF1(_L("Alloc test to open and play a protected audio clip from a file for PLAY intent. (TMMFileHandleSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
#ifndef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
	// As a part of DEF123331, this test has been disabled for non-A3F build.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
	INFO_PRINTF1(_L("As a part of DEF123331, this test has been disabled for non-A3F build."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
	TRAPD(err, AudioPlayAllocL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
    if(err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
    	iError = err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
    	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
    if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
        INFO_PRINTF2(_L("Opening/playing the audio file failed, unexpected error %d."), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
        return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
    iTestStepResult  = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
    TInt failCount   = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
    TBool completed  = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
    TBool badResult  = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
    TBool reachedEnd = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
    TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
	EnableLogs(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
    for(;;)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
        __UHEAP_SETFAIL(RHeap::EFailNext, failCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
        __MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
	    TRAP(error, AudioPlayAllocL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
        if (error != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
        	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
        	iError = error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
        	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
        	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
           	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
        	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
        completed = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
        if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
            TAny *testAlloc = User::Alloc(1); // when this fails, we passed through all allocs within test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
            if (testAlloc == NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
                reachedEnd = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
                failCount--;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
            else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
                User::Free(testAlloc);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
                testAlloc = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
            if (iTestStepResult != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
                {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
                badResult = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
                }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
            completed = reachedEnd || badResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
        else if (iError != KErrNoMemory)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
            __UHEAP_SETFAIL(RHeap::ENone, 0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
            ERR_PRINTF2(_L("Bad error code %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
            completed = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
            badResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
        __MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
        __UHEAP_SETFAIL(RHeap::ENone, 0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
        if (completed)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
            break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
        failCount++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
    if (iError != KErrNone || badResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
        if (badResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
            INFO_PRINTF3(_L("Bad result with %d memory allocations tested. The Error returned is %d."), failCount, iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
        else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
            INFO_PRINTF3(_L("Error(%d) with %d memory allocations tested."), failCount, iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
        iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
        INFO_PRINTF2(_L("Completed OK with %d memory allocations tested.\n"), failCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
        iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
#endif    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
// Negative Tests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
* Ctor for CTestMmfDRMAudioOpenUnknownFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
* @return CTestMmfDRMAudioOpenUnknownFileSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
*                           constructed CTestMmfDRMAudioOpenUnknownFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
CTestMmfDRMAudioOpenUnknownFileSource* CTestMmfDRMAudioOpenUnknownFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
    return new (ELeave) CTestMmfDRMAudioOpenUnknownFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
CTestMmfDRMAudioOpenUnknownFileSource::CTestMmfDRMAudioOpenUnknownFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
    iTestStepName = _L("MM-MMF-ACLNT-U-0921-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
void CTestMmfDRMAudioOpenUnknownFileSource::MapcInitComplete(TInt aError, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
    const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
    INFO_PRINTF2(_L("MMdaAudioPlayerCallback Init Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
    CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
void CTestMmfDRMAudioOpenUnknownFileSource::MapcPlayComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
    // Not used in this test.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
TVerdict CTestMmfDRMAudioOpenUnknownFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
    INFO_PRINTF1(_L("Open a protected audio clip from a file with rights for UNKNOWN intent. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
    iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
    INFO_PRINTF2(_L("Opening the file for PLAY intent: %S"), &iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
    iAudioPlayer->OpenFileL(TMMFileSource(iFileName, KRightsPlayerUniqueId001, ContentAccess::EUnknown));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
    CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
    if (iError == KErrCANoPermission)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
        INFO_PRINTF1(_L("No Permission to open the audio file for Unknown intent!"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
        iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
        INFO_PRINTF3(_L("Unexpected error %d, expected %d."), iError, KErrCANoPermission);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
* Ctor for CTestMmfDRMAudioPlayNoRightsFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
* @return CTestMmfDRMAudioPlayNoRightsFileSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
*                           constructed CTestMmfDRMAudioPlayNoRightsFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
CTestMmfDRMAudioPlayNoRightsFileSource* CTestMmfDRMAudioPlayNoRightsFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
    return new (ELeave) CTestMmfDRMAudioPlayNoRightsFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
CTestMmfDRMAudioPlayNoRightsFileSource::CTestMmfDRMAudioPlayNoRightsFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
    iTestStepName = _L("MM-MMF-ACLNT-U-0922-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
void CTestMmfDRMAudioPlayNoRightsFileSource::MapcInitComplete(TInt aError, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
    const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
    INFO_PRINTF2(_L("MMdaAudioPlayerCallback Init Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
    CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
void CTestMmfDRMAudioPlayNoRightsFileSource::MapcPlayComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
    // Not used in this test.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
TVerdict CTestMmfDRMAudioPlayNoRightsFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
    INFO_PRINTF1(_L("Open a protected audio clip from a file for PLAY intent with NO rights. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
    iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
    // Get the filename
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
    // iFileName will be the content file, containing audio files
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
    if (!GetStringFromConfig(_L("SectionDRM"), _L("AudioContentNoRights"), iFileName))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
        return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
    INFO_PRINTF2(_L("Opening the file for PLAY intent: %S"), &iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
    iAudioPlayer->OpenFileL(TMMFileSource(iFileName, KRightsPlayerUniqueId004, ContentAccess::EPlay));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
    CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
    if (iError == KErrCANoRights)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
        INFO_PRINTF1(_L("Expected failure: No rights."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
        iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
        INFO_PRINTF3(_L("Unexpected error %d, expected %d."), iError, KErrCANoRights);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
* Ctor for CTestMmfDRMAudioPlayRightsCountFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
* @return CTestMmfDRMAudioPlayRightsCountFileSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
*                           constructed CTestMmfDRMAudioPlayRightsCountFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
CTestMmfDRMAudioPlayRightsCountFileSource* CTestMmfDRMAudioPlayRightsCountFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
    return new (ELeave) CTestMmfDRMAudioPlayRightsCountFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
CTestMmfDRMAudioPlayRightsCountFileSource::CTestMmfDRMAudioPlayRightsCountFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
    iTestStepName = _L("MM-MMF-ACLNT-U-0923-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
TVerdict CTestMmfDRMAudioPlayRightsCountFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
    INFO_PRINTF1(_L("Open and play a protected audio clip from a file for PLAY intent 4 times with rights count set to 3. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
    // Open and play the audio file for three times
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
    // The rights count for this protected audio file is set to 3.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
    // Hence looped four times to check failure while opening for the fourth time.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
    for (TInt rightscount = 1; rightscount <= 4; rightscount++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
        iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
        INFO_PRINTF2(_L("Rights count = %d "), rightscount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
        TRAPD(err, FsmL(EAudioOpen)); // Call to open the audio file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
        if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
    		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
    		CActiveScheduler::Start(); // ActiveScheduler started ONLY once 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
    		} 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
        if ((iError == KErrCANoPermission) && (rightscount == 4))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
            INFO_PRINTF1(_L("No Permission to open the audio file!"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
            iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
        else if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
            ERR_PRINTF2(_L("Opening the audio file failed, unexpected error %d."), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
            return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
* Ctor for CTestMmfDRMAudioPlayInvalidIdFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
* @return CTestMmfDRMAudioPlayInvalidIdFileSource*: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
*                           constructed CTestMmfDRMAudioPlayInvalidIdFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
CTestMmfDRMAudioPlayInvalidIdFileSource* CTestMmfDRMAudioPlayInvalidIdFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
    return new (ELeave) CTestMmfDRMAudioPlayInvalidIdFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
CTestMmfDRMAudioPlayInvalidIdFileSource::CTestMmfDRMAudioPlayInvalidIdFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
    iTestStepName = _L("MM-MMF-ACLNT-U-0924-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
* Implementation of the MMdaAudioPlayerCallback interface function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
* @param TInt aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
void CTestMmfDRMAudioPlayInvalidIdFileSource::MapcInitComplete(TInt aError, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
    const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
    INFO_PRINTF2(_L("MMdaAudioPlayerCallback Init Complete. Error = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
    iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
    CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
void CTestMmfDRMAudioPlayInvalidIdFileSource::MapcPlayComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
    // Not used in this test.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
TVerdict CTestMmfDRMAudioPlayInvalidIdFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
    INFO_PRINTF1(_L("Open a protected audio clip from a file for PLAY intent with INVALID Unique Id. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
    iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
    INFO_PRINTF2(_L("Opening the file for PLAY intent: %S"), &iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
    iAudioPlayer->OpenFileL(TMMFileSource(iFileName, KRightsPlayerInvalidUniqueId, ContentAccess::EPlay));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
    CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
    if (iError == KErrNotFound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
        INFO_PRINTF1(_L("Expected failure: Audio file not found!"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
        iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
        INFO_PRINTF3(_L("Unexpected error %d, expected %d."), iError, KErrNotFound);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
* Ctor for CTestMmfDRMAudioPlayAndStopFileSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
* @return CTestMmfDRMAudioPlayAndStopFileSource*: constructed CTestMmfDRMAudioPlayAndStopFileSource object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
CTestMmfDRMAudioPlayAndStopFileSource* CTestMmfDRMAudioPlayAndStopFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
    return new (ELeave) CTestMmfDRMAudioPlayAndStopFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
CTestMmfDRMAudioPlayAndStopFileSource::CTestMmfDRMAudioPlayAndStopFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
    iTestStepName = _L("MM-MMF-ACLNT-U-0907-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
TVerdict CTestMmfDRMAudioPlayAndStopFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
    INFO_PRINTF1(_L("Open, play, and stop the play of the protected audio clip from a file for PLAY/STOP intents. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
    TRAPD(err,FsmL(EAudioOpen)); // Call to open the audio file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
  	if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
    	CActiveScheduler::Start(); // ActiveScheduler started ONLY once
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
    	iError = err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
    	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
    return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
CTestMmfDRMAudioPPCFFileSource* CTestMmfDRMAudioPPCFFileSource::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
return new (ELeave) CTestMmfDRMAudioPPCFFileSource;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
* Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
* Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
CTestMmfDRMAudioPPCFFileSource::CTestMmfDRMAudioPPCFFileSource()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
iTestStepName = _L("MM-MMF-ACLNT-U-0909-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
* Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
* Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
* @return TVerdict: The result of the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
TVerdict CTestMmfDRMAudioPPCFFileSource::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
INFO_PRINTF1(_L("Open a protected audio clip, switch the state between play and pause very quickly (0.05 second each) for PLAY/PAUSE/CONTINUE/STOP intents to test INC115501. (TMMFileSource)."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
 iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
TRAPD(err,FsmL(EAudioOpen)); // Call to open the audio file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
     
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
	CActiveScheduler::Start(); // ActiveScheduler started ONLY once
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
	iError = err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328