1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/mm/mmlibs/mmfw/tsrc/mmfunittest/MidiClnt/TestMidiClientUtility.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,6187 @@
1.4 +
1.5 +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
1.6 +// All rights reserved.
1.7 +// This component and the accompanying materials are made available
1.8 +// under the terms of "Eclipse Public License v1.0"
1.9 +// which accompanies this distribution, and is available
1.10 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.11 +//
1.12 +// Initial Contributors:
1.13 +// Nokia Corporation - initial contribution.
1.14 +//
1.15 +// Contributors:
1.16 +//
1.17 +// Description:
1.18 +//
1.19 +
1.20 +#include "TestMidiClientUtility.h"
1.21 +#include <e32math.h>
1.22 +
1.23 +
1.24 +CTestMidiClntOpenFile::CTestMidiClntOpenFile(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.25 + :CTestMmfMidiClntStep(aTestName, ETestValid),
1.26 + iPlay(aPlay)
1.27 + {
1.28 + iSectName = aSectName;
1.29 + iKeyName = aKeyName;
1.30 + }
1.31 +
1.32 +CTestMidiClntOpenFile* CTestMidiClntOpenFile::NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.33 + {
1.34 + CTestMidiClntOpenFile* self = new(ELeave) CTestMidiClntOpenFile(aTestName, aSectName, aKeyName, aPlay);
1.35 + return self;
1.36 + }
1.37 +
1.38 +TVerdict CTestMidiClntOpenFile::DoTestStepL()
1.39 + {
1.40 + TPtrC filename;
1.41 + if(!GetStringFromConfig(iSectName,iKeyName,filename))
1.42 + return EInconclusive;
1.43 +
1.44 + CMidiClientUtility* player = CMidiClientUtility::NewL(*this, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality);
1.45 + if (!player)
1.46 + {
1.47 + ERR_PRINTF1(_L("Could not create a CMidiClientUtility"));
1.48 + return EInconclusive;
1.49 + }
1.50 + CleanupStack::PushL(player);
1.51 +
1.52 + TMMFMessageDestinationPckg dummyPckg;
1.53 + TInt dummyFunc = 0; //EDevMidiOff;
1.54 + TBuf8<8> dummyBuff;
1.55 + player->CustomCommandSyncL(dummyPckg, dummyFunc, dummyBuff, dummyBuff, dummyBuff);
1.56 +
1.57 + player->OpenFile(filename);
1.58 +
1.59 + // Wait for initialisation callback
1.60 + INFO_PRINTF1(_L("CMidiClientUtility: Opening file"));
1.61 + CActiveScheduler::Start();
1.62 +
1.63 + TVerdict ret = EFail;
1.64 +
1.65 + // Check for errors.
1.66 + if (iError == KErrNone)
1.67 + ret = DoTestL(player);
1.68 +
1.69 + INFO_PRINTF1(_L("CMidiClientUtility: Destroying"));
1.70 + CleanupStack::PopAndDestroy(player);
1.71 +
1.72 + if(iError != KErrNone)
1.73 + ERR_PRINTF2( _L("CMidiClientUtility failed with error %d"),iError );
1.74 +
1.75 + return ret;
1.76 + }
1.77 +
1.78 +TVerdict CTestMidiClntOpenFile::DoTestL(CMidiClientUtility* /*aMidi*/)
1.79 + {
1.80 + return EPass;
1.81 + }
1.82 +
1.83 +//------------------------------------------------------------------
1.84 +
1.85 +CTestMidiClntOpenDes::CTestMidiClntOpenDes(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.86 + :CTestMmfMidiClntStep(aTestName, ETestValid),
1.87 + iPlay(aPlay)
1.88 + {
1.89 + iSectName = aSectName;
1.90 + iKeyName = aKeyName;
1.91 + }
1.92 +
1.93 +CTestMidiClntOpenDes* CTestMidiClntOpenDes::NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.94 + {
1.95 + CTestMidiClntOpenDes* self = new(ELeave) CTestMidiClntOpenDes(aTestName, aSectName, aKeyName, aPlay);
1.96 + return self;
1.97 + }
1.98 +
1.99 +TVerdict CTestMidiClntOpenDes::DoTestStepPreambleL()
1.100 + {
1.101 + TPtrC filename;
1.102 + if(!GetStringFromConfig(iSectName, iKeyName, filename))
1.103 + return EInconclusive;
1.104 +
1.105 + RFs fs;
1.106 + RFile file;
1.107 + TInt size = 0;
1.108 +
1.109 + // connect to file system and open file
1.110 + User::LeaveIfError(fs.Connect());
1.111 + User::LeaveIfError(file.Open(fs,filename,EFileRead));
1.112 + CleanupClosePushL(file);
1.113 +
1.114 + // Set HBuf size
1.115 + User::LeaveIfError(file.Size(size));
1.116 + INFO_PRINTF2(_L("size of file = %d\n"),size);
1.117 +
1.118 + iAudio = HBufC8::NewMaxL(size);
1.119 +
1.120 + // read data into Hbuf
1.121 + TPtr8 bufferDes(iAudio->Des());
1.122 + User::LeaveIfError(file.Read(bufferDes));
1.123 +
1.124 + CleanupStack::PopAndDestroy(); //file
1.125 + return CTestMmfMidiClntStep::DoTestStepPreambleL();
1.126 + }
1.127 +
1.128 +TVerdict CTestMidiClntOpenDes::DoTestStepPostambleL()
1.129 + {
1.130 + delete iAudio;
1.131 + iAudio = NULL;
1.132 + return CTestMmfMidiClntStep::DoTestStepPostambleL();
1.133 + }
1.134 +
1.135 +TVerdict CTestMidiClntOpenDes::DoTestStepL()
1.136 + {
1.137 + CMidiClientUtility* player = CMidiClientUtility::NewL(*this, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality);
1.138 + if (!player)
1.139 + {
1.140 + ERR_PRINTF1(_L("Could not create a CMidiClientUtility"));
1.141 + return EInconclusive;
1.142 + }
1.143 +
1.144 + CleanupStack::PushL(player);
1.145 +
1.146 + TMMFMessageDestinationPckg dummyPckg;
1.147 + TInt dummyFunc = EDevMidiOff;
1.148 + TBuf8<8> dummyBuff;
1.149 + player->CustomCommandSyncL(dummyPckg, dummyFunc, dummyBuff, dummyBuff, dummyBuff);
1.150 +
1.151 + player->OpenDes(iAudio->Des());
1.152 +
1.153 + // Wait for initialisation callback
1.154 + INFO_PRINTF1(_L("CMidiClientUtility: Opening file"));
1.155 + CActiveScheduler::Start();
1.156 +
1.157 + TVerdict ret = EFail;
1.158 +
1.159 + // Check for errors.
1.160 + if (iError == KErrNone)
1.161 + ret = DoTestL(player);
1.162 +
1.163 + INFO_PRINTF1(_L("CMidiClientUtility: Destroying"));
1.164 + CleanupStack::PopAndDestroy(player);
1.165 +
1.166 + if(iError != KErrNone)
1.167 + ERR_PRINTF2( _L("CMidiClientUtility failed with error %d"),iError );
1.168 +
1.169 + return ret;
1.170 + }
1.171 +
1.172 +TVerdict CTestMidiClntOpenDes::DoTestL(CMidiClientUtility* /*aMidi*/)
1.173 + {
1.174 + return EPass;
1.175 + }
1.176 +
1.177 +//------------------------------------------------------------------
1.178 +
1.179 +CTestMidiClntOpenUrl::CTestMidiClntOpenUrl(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.180 + :CTestMmfMidiClntStep(aTestName, ETestValid),
1.181 + iPlay(aPlay)
1.182 + {
1.183 + iSectName = aSectName;
1.184 + iKeyName = aKeyName;
1.185 + }
1.186 +
1.187 +CTestMidiClntOpenUrl* CTestMidiClntOpenUrl::NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.188 + {
1.189 + CTestMidiClntOpenUrl* self = new(ELeave) CTestMidiClntOpenUrl(aTestName, aSectName, aKeyName, aPlay);
1.190 + return self;
1.191 + }
1.192 +
1.193 +TVerdict CTestMidiClntOpenUrl::DoTestStepL()
1.194 + {
1.195 + TPtrC urlname;
1.196 + if(!GetStringFromConfig(iSectName,iKeyName,urlname))
1.197 + return EInconclusive;
1.198 +
1.199 + CMidiClientUtility* player = CMidiClientUtility::NewL(*this, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality);
1.200 + if (!player)
1.201 + {
1.202 + ERR_PRINTF1(_L("Could not create a CMidiClientUtility"));
1.203 + return EInconclusive;
1.204 + }
1.205 +
1.206 + CleanupStack::PushL(player);
1.207 +
1.208 + TMMFMessageDestinationPckg dummyPckg;
1.209 + TInt dummyFunc = EDevMidiOff;
1.210 + TBuf8<8> dummyBuff;
1.211 + player->CustomCommandSyncL(dummyPckg, dummyFunc, dummyBuff, dummyBuff, dummyBuff);
1.212 +
1.213 + player->OpenUrl(urlname);
1.214 +
1.215 + // Wait for initialisation callback
1.216 + INFO_PRINTF1(_L("CMidiClientUtility: Opening url"));
1.217 + CActiveScheduler::Start();
1.218 +
1.219 + TVerdict ret = EFail;
1.220 +
1.221 + // Check for errors.
1.222 + if (iError == KErrNone)
1.223 + ret = DoTestL(player);
1.224 +
1.225 + INFO_PRINTF1(_L("CMidiClientUtility: Destroying"));
1.226 + CleanupStack::PopAndDestroy(player);
1.227 +
1.228 + if(iError != KErrNone)
1.229 + ERR_PRINTF2( _L("CMidiClientUtility failed with error %d"),iError );
1.230 +
1.231 + return ret;
1.232 + }
1.233 +
1.234 +TVerdict CTestMidiClntOpenUrl::DoTestL(CMidiClientUtility* /*aMidi*/)
1.235 + {
1.236 + return EPass;
1.237 + }
1.238 +
1.239 +//------------------------------------------------------------------
1.240 +
1.241 +CTestMidiClntClose::CTestMidiClntClose(const TDesC& aTestName)
1.242 + :CTestMmfMidiClntStep(aTestName, ETestValid)
1.243 + {
1.244 + }
1.245 +
1.246 +CTestMidiClntClose* CTestMidiClntClose::NewL(const TDesC& aTestName)
1.247 + {
1.248 + CTestMidiClntClose* self = new(ELeave) CTestMidiClntClose(aTestName);
1.249 + return self;
1.250 + }
1.251 +
1.252 +TVerdict CTestMidiClntClose::DoTestL(CMidiClientUtility* aMidi)
1.253 + {
1.254 + INFO_PRINTF1(_L("CMidiClientUtility: Closing file"));
1.255 + aMidi->Close();
1.256 + return EPass;
1.257 + }
1.258 +
1.259 +//------------------------------------------------------------------
1.260 +
1.261 +CTestMidiClntPlay::CTestMidiClntPlay(const TDesC& aTestName, const TTestStepType aTestType)
1.262 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.263 + {
1.264 + }
1.265 +
1.266 +CTestMidiClntPlay* CTestMidiClntPlay::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.267 + {
1.268 + CTestMidiClntPlay* self = new(ELeave) CTestMidiClntPlay(aTestName, aTestType);
1.269 + return self;
1.270 + }
1.271 +
1.272 +TVerdict CTestMidiClntPlay::DoTestL(CMidiClientUtility* aMidi)
1.273 + {
1.274 + TInt expErr = KErrNone;
1.275 + //TTimeIntervalMicroSeconds fadeOutDuration(0);
1.276 +
1.277 + INFO_PRINTF1(_L("CMidiClientUtility: Play midi file"));
1.278 + // expected results
1.279 + switch(iTestType)
1.280 + {
1.281 + case ETestValid:
1.282 + expErr = KErrNone;
1.283 + break;
1.284 + case ETestNoPlugin:
1.285 + expErr = KErrNotSupported;
1.286 + break;
1.287 + case ETestInvalidState:
1.288 + expErr = KErrUnknown;
1.289 + break;
1.290 + default:
1.291 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.292 + return EInconclusive;
1.293 + }
1.294 +
1.295 + iCurrentState = EMidiStateClosedDisengaged;
1.296 + aMidi->OpenFile(_L("c:\\DoesntExist.mid"));
1.297 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenDisengaged state..."));
1.298 + CActiveScheduler::Start(); // EMidiStateClosedDisengaged -> EMidiStateOpenDisengaged
1.299 + if (iCurrentState != EMidiStateOpenDisengaged)
1.300 + {
1.301 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenDisengaged, received = %d)"), iCurrentState);
1.302 + return EFail;
1.303 + }
1.304 +
1.305 + aMidi->Play();
1.306 + if (expErr != iError)
1.307 + {
1.308 + ERR_PRINTF3(_L("Play gave error %d (expected %d)"),iError, expErr);
1.309 + return EFail;
1.310 + }
1.311 + else
1.312 + INFO_PRINTF3(_L("Play, %d = %d"), iError, expErr);
1.313 +
1.314 + return EPass;
1.315 + }
1.316 +
1.317 +//------------------------------------------------------------------
1.318 +
1.319 +
1.320 +CTestMidiClntStop::CTestMidiClntStop(const TDesC& aTestName, const TTestStepType aTestType)
1.321 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.322 + {
1.323 + }
1.324 +
1.325 +CTestMidiClntStop* CTestMidiClntStop::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.326 + {
1.327 + CTestMidiClntStop* self = new(ELeave) CTestMidiClntStop(aTestName, aTestType);
1.328 + return self;
1.329 + }
1.330 +
1.331 +TVerdict CTestMidiClntStop::DoTestL(CMidiClientUtility* aMidi)
1.332 + {
1.333 + TVerdict ret = EPass;
1.334 + TInt expErr = KErrNone;
1.335 + TTimeIntervalMicroSeconds fadeOutDuration(0);
1.336 +
1.337 + INFO_PRINTF1(_L("CMidiClientUtility: Stop midi file"));
1.338 + // expected results
1.339 + switch(iTestType)
1.340 + {
1.341 + case ETestValid:
1.342 + expErr = KErrNone;
1.343 + fadeOutDuration = 20;
1.344 + break;
1.345 + case ETestNoPlugin:
1.346 + expErr = KErrNotSupported;
1.347 + break;
1.348 + case ETestNoResource:
1.349 + expErr = KErrNotReady;
1.350 + break;
1.351 + default:
1.352 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.353 + return EInconclusive;
1.354 + }
1.355 +
1.356 + aMidi->Stop(fadeOutDuration);
1.357 + if (expErr != KErrNone)
1.358 + INFO_PRINTF2(_L("Stop gave error %d"),expErr);
1.359 + else
1.360 + INFO_PRINTF1(_L("Stopping midi file"));
1.361 +
1.362 + return ret;
1.363 + }
1.364 +
1.365 +//------------------------------------------------------------------
1.366 +
1.367 +
1.368 +CTestMidiClntGetState::CTestMidiClntGetState(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTestStepType aTestType, const TBool aPlay)
1.369 + :CTestMidiClntOpenFile(aTestName, aSectName, aKeyName, aPlay)
1.370 + {
1.371 + // NB this inherits from CTestMidiClntOpenFile, NOT from CTestMmfMidiClntStep
1.372 + // so we have to set this manually.
1.373 + iTestType = aTestType;
1.374 + }
1.375 +
1.376 +CTestMidiClntGetState* CTestMidiClntGetState::NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, const TTestStepType aTestType, const TBool aPlay)
1.377 + {
1.378 + CTestMidiClntGetState* self = new(ELeave) CTestMidiClntGetState(aTestName, aSectName, aKeyName, aTestType, aPlay);
1.379 + return self;
1.380 + }
1.381 +
1.382 +TVerdict CTestMidiClntGetState::DoTestL(CMidiClientUtility* aMidi)
1.383 + {
1.384 + TVerdict ret = EPass;
1.385 + TMidiState expErr;
1.386 + //TTimeIntervalMicroSeconds fadeOutDuration(10);
1.387 +
1.388 + INFO_PRINTF1(_L("CMidiClientUtility: Get current state of midi file"));
1.389 + // expected results
1.390 + switch(iTestType)
1.391 + {
1.392 + case ETestValid:
1.393 + expErr = EMidiStateOpenDisengaged;
1.394 + break;
1.395 + case ETestNegative:
1.396 + expErr = EMidiStateClosedDisengaged;
1.397 + // Close player so we can perform negative test, get state before any initialisation has been done
1.398 + aMidi->Close();
1.399 + break;
1.400 + default:
1.401 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.402 + return EInconclusive;
1.403 + }
1.404 +
1.405 + TMidiState state = aMidi->State();
1.406 + if (expErr != state)
1.407 + {
1.408 + ERR_PRINTF3(_L("State gave error %d (expected %d)"),state, expErr);
1.409 + ret = EFail;
1.410 + }
1.411 + else
1.412 + INFO_PRINTF3(_L("State %d = %d"),state, expErr);
1.413 +
1.414 + return ret;
1.415 + }
1.416 +
1.417 +//------------------------------------------------------------------
1.418 +
1.419 +CTestMidiClntPlayNote::CTestMidiClntPlayNote(const TDesC& aTestName, const TTestStepType aTestType)
1.420 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.421 + {
1.422 + }
1.423 +
1.424 +CTestMidiClntPlayNote* CTestMidiClntPlayNote::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.425 + {
1.426 + CTestMidiClntPlayNote* self = new(ELeave) CTestMidiClntPlayNote(aTestName, aTestType);
1.427 + return self;
1.428 + }
1.429 +
1.430 +TVerdict CTestMidiClntPlayNote::DoTestL(CMidiClientUtility* aMidi)
1.431 + {
1.432 + TVerdict ret = EPass;
1.433 + TInt expErr = KErrNone;
1.434 + TInt channel = 0;
1.435 + TInt note = 0;
1.436 + TTimeIntervalMicroSeconds duration(10);
1.437 + TInt noteOnVelocity = 0;
1.438 + TInt noteOffVelocity = 0;
1.439 +
1.440 + INFO_PRINTF1(_L("CMidiClientUtility: Play midi note"));
1.441 + // expected results
1.442 + switch(iTestType)
1.443 + {
1.444 + case ETestValid:
1.445 + expErr = KErrNone;
1.446 + break;
1.447 + case ETestZeroDurationOutOfRange:
1.448 + expErr = KErrNotSupported;
1.449 + duration = 0;
1.450 + break;
1.451 + case ETestInvalidChannelOutOfRange:
1.452 + expErr = KErrArgument;
1.453 + channel = 16;
1.454 + break;
1.455 + case ETestNoteHighOutOfRange:
1.456 + expErr = KErrArgument;
1.457 + note = 128;
1.458 + break;
1.459 + case ETestNoteLowOutOfRange:
1.460 + expErr = KErrArgument;
1.461 + note = -1;
1.462 + break;
1.463 + case ETestAttackHighOutOfRange:
1.464 + expErr = KErrArgument;
1.465 + noteOnVelocity = 128;
1.466 + break;
1.467 + case ETestAttackLowOutOfRange:
1.468 + expErr = KErrArgument;
1.469 + noteOnVelocity = -1;
1.470 + break;
1.471 + case ETestReleaseHighOutOfRange:
1.472 + expErr = KErrArgument;
1.473 + noteOffVelocity = 128;
1.474 + break;
1.475 + case ETestReleaseLowOutOfRange:
1.476 + expErr = KErrArgument;
1.477 + noteOffVelocity = -1;
1.478 + break;
1.479 + default:
1.480 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.481 + return EInconclusive;
1.482 + }
1.483 + TRAPD(err, aMidi->PlayNoteL(channel, note, duration, noteOnVelocity, noteOffVelocity));
1.484 +
1.485 + if (expErr != err)
1.486 + {
1.487 + ERR_PRINTF3(_L("State gave error %d (expected %d)"),err, expErr);
1.488 + ret = EFail;
1.489 + }
1.490 + else
1.491 + INFO_PRINTF3(_L("PlayNoteL %d = %d"),err ,expErr);
1.492 +
1.493 + return ret;
1.494 + }
1.495 +
1.496 +//------------------------------------------------------------------
1.497 +
1.498 +CTestMidiClntStopNotes::CTestMidiClntStopNotes(const TDesC& aTestName, const TTestStepType aTestType)
1.499 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.500 + {
1.501 + }
1.502 +
1.503 +CTestMidiClntStopNotes* CTestMidiClntStopNotes::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.504 + {
1.505 + CTestMidiClntStopNotes* self = new(ELeave) CTestMidiClntStopNotes(aTestName, aTestType);
1.506 + return self;
1.507 + }
1.508 +
1.509 +TVerdict CTestMidiClntStopNotes::DoTestL(CMidiClientUtility* aMidi)
1.510 + {
1.511 + // The framework will catch the invalid channel and no note available
1.512 + TVerdict ret = EPass;
1.513 + TInt channel = 0;
1.514 + //TInt expErr = KErrNone;
1.515 +
1.516 + switch(iTestType)
1.517 + {
1.518 + case ETestValid:
1.519 + break;
1.520 + case ETestInvalidChannelOutOfRange:
1.521 + channel = 16;
1.522 + break;
1.523 + case ETestNoNoteAvailable:
1.524 + break;
1.525 + default:
1.526 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.527 + return EInconclusive;
1.528 + }
1.529 +
1.530 + INFO_PRINTF1(_L("CMidiClientUtility: Stop midi note"));
1.531 + aMidi->StopNotes(channel);
1.532 + return ret;
1.533 + }
1.534 +
1.535 +//------------------------------------------------------------------
1.536 +
1.537 +
1.538 +CTestMidiClntNoteOn::CTestMidiClntNoteOn(const TDesC& aTestName, const TTestStepType aTestType)
1.539 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.540 + {
1.541 + }
1.542 +
1.543 +CTestMidiClntNoteOn* CTestMidiClntNoteOn::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.544 + {
1.545 + CTestMidiClntNoteOn* self = new(ELeave) CTestMidiClntNoteOn(aTestName, aTestType);
1.546 + return self;
1.547 + }
1.548 +
1.549 +TVerdict CTestMidiClntNoteOn::DoTestL(CMidiClientUtility* aMidi)
1.550 + {
1.551 + TVerdict ret = EPass;
1.552 + TInt expErr = KErrNone;
1.553 + TInt channel = 0;
1.554 + TInt note = 0;
1.555 + TInt velocity = 0;
1.556 +
1.557 + INFO_PRINTF1(_L("CMidiClientUtility: Midi note on"));
1.558 + // expected results
1.559 + switch(iTestType)
1.560 + {
1.561 + case ETestValid:
1.562 + expErr = KErrNone;
1.563 + channel = 1;
1.564 + note = 2;
1.565 + velocity = 10;
1.566 + break;
1.567 + case ETestNoNoteAvailable:
1.568 + expErr = KErrArgument;
1.569 + break;
1.570 + case ETestInvalidChannelOutOfRange:
1.571 + expErr = KErrArgument;
1.572 + channel = 16;
1.573 + break;
1.574 + case ETestNoteHighOutOfRange:
1.575 + expErr = KErrArgument;
1.576 + note = 128;
1.577 + break;
1.578 + case ETestNoteLowOutOfRange:
1.579 + expErr = KErrArgument;
1.580 + note = -1;
1.581 + break;
1.582 + case ETestVelocityHighOutOfRange:
1.583 + expErr = KErrArgument;
1.584 + velocity = 128;
1.585 + break;
1.586 + case ETestVelocityLowOutOfRange:
1.587 + expErr = KErrArgument;
1.588 + velocity = -1;
1.589 + break;
1.590 + default:
1.591 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.592 + return EInconclusive;
1.593 + }
1.594 +
1.595 + TRAPD(err, aMidi->NoteOnL(channel,note,velocity));
1.596 + if (expErr != err)
1.597 + {
1.598 + ERR_PRINTF3(_L("NoteOnL gave error %d (expected %d)"),err, expErr);
1.599 + ret = EFail;
1.600 + }
1.601 + else
1.602 + INFO_PRINTF3(_L("NoteOnL %d = %d"),err ,expErr);
1.603 +
1.604 + return ret;
1.605 + }
1.606 +
1.607 +//------------------------------------------------------------------
1.608 +
1.609 +
1.610 +CTestMidiClntNoteOff::CTestMidiClntNoteOff(const TDesC& aTestName, const TTestStepType aTestType)
1.611 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.612 + {
1.613 + }
1.614 +
1.615 +CTestMidiClntNoteOff* CTestMidiClntNoteOff::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.616 + {
1.617 + CTestMidiClntNoteOff* self = new(ELeave) CTestMidiClntNoteOff(aTestName, aTestType);
1.618 + return self;
1.619 + }
1.620 +
1.621 +TVerdict CTestMidiClntNoteOff::DoTestL(CMidiClientUtility* aMidi)
1.622 + {
1.623 + TVerdict ret = EPass;
1.624 + TInt expErr = KErrNone;
1.625 + TInt channel = 0;
1.626 + TInt note = 0;
1.627 + TInt velocity = 0;
1.628 +
1.629 + // Play Midi Note on channel=0, note=1, velocity=50
1.630 + TRAPD(err, aMidi->NoteOnL(0,1,50));
1.631 + if (expErr != err)
1.632 + {
1.633 + ERR_PRINTF3(_L("NoteOnL gave error %d (expected %d)"),err, expErr);
1.634 + ret = EFail;
1.635 + }
1.636 + else
1.637 + INFO_PRINTF3(_L("NoteOnL %d = %d"),err ,expErr);
1.638 +
1.639 + INFO_PRINTF1(_L("CMidiClientUtility: Midi note off"));
1.640 + // expected results
1.641 + switch(iTestType)
1.642 + {
1.643 + case ETestValid:
1.644 + expErr = KErrNone;
1.645 + channel = 1;
1.646 + note = 2;
1.647 + velocity = 10;
1.648 + break;
1.649 + case ETestNoNoteAvailable:
1.650 + expErr = KErrNone; // No error is raised, as per specification
1.651 + break;
1.652 + case ETestInvalidChannelOutOfRange:
1.653 + expErr = KErrArgument;
1.654 + channel = 16;
1.655 + break;
1.656 + case ETestDifferentNoteVelocity:
1.657 + expErr = KErrArgument;
1.658 + note = 1;
1.659 + velocity = 127;
1.660 + break;
1.661 + default:
1.662 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.663 + return EInconclusive;
1.664 + }
1.665 +
1.666 + TRAPD(err2, aMidi->NoteOffL(channel,note,velocity));
1.667 + if (expErr != err2)
1.668 + {
1.669 + ERR_PRINTF3(_L("NoteOffL gave error %d (expected %d)"),err2, expErr);
1.670 + ret = EFail;
1.671 + }
1.672 + else
1.673 + INFO_PRINTF3(_L("NoteOffL %d = %d"),err2 ,expErr);
1.674 +
1.675 + return ret;
1.676 + }
1.677 +
1.678 +//------------------------------------------------------------------
1.679 +
1.680 +
1.681 +CTestMidiClntReturnPlaybackRate::CTestMidiClntReturnPlaybackRate(const TDesC& aTestName, const TTestStepType aTestType)
1.682 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.683 + {
1.684 + }
1.685 +
1.686 +CTestMidiClntReturnPlaybackRate* CTestMidiClntReturnPlaybackRate::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.687 + {
1.688 + CTestMidiClntReturnPlaybackRate* self = new(ELeave) CTestMidiClntReturnPlaybackRate(aTestName, aTestType);
1.689 + return self;
1.690 + }
1.691 +
1.692 +TVerdict CTestMidiClntReturnPlaybackRate::DoTestL(CMidiClientUtility* aMidi)
1.693 + {
1.694 + TVerdict ret = EPass;
1.695 + TInt expErr = KErrNone;
1.696 +
1.697 + INFO_PRINTF1(_L("CMidiClientUtility: Check playback rate"));
1.698 +
1.699 + // expected results
1.700 + switch (iTestType)
1.701 + {
1.702 + case ETestValid:
1.703 + expErr = KErrNone;
1.704 + break;
1.705 + case ETestNoResource:
1.706 + expErr = KErrNotReady;
1.707 + break;
1.708 + default:
1.709 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.710 + return EInconclusive;
1.711 + }
1.712 +// TInt rate = 0; // fixes warning
1.713 +
1.714 +// TRAPD(err, rate = aMidi->PlaybackRateL());
1.715 + TRAPD(err, aMidi->PlaybackRateL()); // EABI warning removal
1.716 + if(expErr != err)
1.717 + {
1.718 + ERR_PRINTF3( _L("PlaybackRateL gave error %d (expected %d)"),err, expErr);
1.719 + ret = EFail;
1.720 + }
1.721 + else
1.722 + INFO_PRINTF3(_L("PlaybackRateL %d = %d"), err, expErr);
1.723 +
1.724 + return ret;
1.725 + }
1.726 +
1.727 +//------------------------------------------------------------------
1.728 +
1.729 +
1.730 +CTestMidiClntSetPlaybackRate::CTestMidiClntSetPlaybackRate(const TDesC& aTestName, const TTestStepType aTestType)
1.731 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.732 + {
1.733 + }
1.734 +
1.735 +CTestMidiClntSetPlaybackRate* CTestMidiClntSetPlaybackRate::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.736 + {
1.737 + CTestMidiClntSetPlaybackRate* self = new(ELeave) CTestMidiClntSetPlaybackRate(aTestName, aTestType);
1.738 + return self;
1.739 + }
1.740 +
1.741 +TVerdict CTestMidiClntSetPlaybackRate::DoTestL(CMidiClientUtility* aMidi)
1.742 + {
1.743 + TVerdict ret = EPass;
1.744 + TInt expErr = KErrNone;
1.745 + TInt playbackRate = 0;
1.746 +
1.747 + INFO_PRINTF1(_L("CMidiClientUtility: Set playback rate"));
1.748 +
1.749 + switch (iTestType)
1.750 + {
1.751 + case ETestValid:
1.752 + expErr = KErrNone;
1.753 + break;
1.754 + case ETestNoResource:
1.755 + expErr = KErrNotReady;
1.756 + break;
1.757 + case ETestOutOfRangeHigh:
1.758 + // high limit on playback rate is dependant on controller
1.759 + // when have a proper controller the value below should be changed
1.760 + // to a value higher than the upper limit
1.761 + playbackRate = -1;
1.762 + expErr = KErrNotSupported;
1.763 + break;
1.764 + case ETestOutOfRangeLow:
1.765 + playbackRate = -1; // negative values not supported
1.766 + expErr = KErrNotSupported;
1.767 + break;
1.768 + default:
1.769 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.770 + return EInconclusive;
1.771 + }
1.772 +
1.773 + TRAPD(err, aMidi->SetPlaybackRateL(playbackRate));
1.774 + if(expErr != err)
1.775 + {
1.776 + ERR_PRINTF3( _L("SetPlaybackRateL gave error %d (expected %d)"),err, expErr);
1.777 + ret = EFail;
1.778 + }
1.779 + else
1.780 + INFO_PRINTF3(_L("SetPlaybackRateL %d = %d"), err, expErr);
1.781 +
1.782 + return ret;
1.783 + }
1.784 +
1.785 +//------------------------------------------------------------------
1.786 +
1.787 +
1.788 +CTestMidiClntReturnMaxPlayRate::CTestMidiClntReturnMaxPlayRate(const TDesC& aTestName, const TTestStepType aTestType)
1.789 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.790 + {
1.791 + }
1.792 +
1.793 +CTestMidiClntReturnMaxPlayRate* CTestMidiClntReturnMaxPlayRate::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.794 + {
1.795 + CTestMidiClntReturnMaxPlayRate* self = new(ELeave) CTestMidiClntReturnMaxPlayRate(aTestName, aTestType);
1.796 + return self;
1.797 + }
1.798 +
1.799 +TVerdict CTestMidiClntReturnMaxPlayRate::DoTestL(CMidiClientUtility* aMidi)
1.800 + {
1.801 + TVerdict ret = EPass;
1.802 + TInt expErr = KErrNone;
1.803 +
1.804 + INFO_PRINTF1(_L("CMidiClientUtility: Check the max play rate"));
1.805 +
1.806 + // expected results
1.807 + switch (iTestType)
1.808 + {
1.809 + case ETestValid:
1.810 + expErr = KErrNone;
1.811 + break;
1.812 + case ETestNoResource:
1.813 + expErr = KErrNotReady;
1.814 + break;
1.815 + default:
1.816 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.817 + return EInconclusive;
1.818 + }
1.819 +// TInt rate = 0; // fixes warning
1.820 +// TRAPD(err, rate = aMidi->MaxPlaybackRateL());
1.821 + TRAPD(err, aMidi->MaxPlaybackRateL()); // EABI warning removal
1.822 + if(expErr != err)
1.823 + {
1.824 + ERR_PRINTF3( _L("MaxPlayRateL gave error %d (expected %d)"),err, expErr);
1.825 + ret = EFail;
1.826 + }
1.827 + else
1.828 + INFO_PRINTF3(_L("MaxPlayRateL %d = %d"), err, expErr);
1.829 +
1.830 + return ret;
1.831 + }
1.832 +
1.833 +//------------------------------------------------------------------
1.834 +
1.835 +
1.836 +CTestMidiClntReturnMinPlayRate::CTestMidiClntReturnMinPlayRate(const TDesC& aTestName, const TTestStepType aTestType)
1.837 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.838 + {
1.839 + }
1.840 +
1.841 +CTestMidiClntReturnMinPlayRate* CTestMidiClntReturnMinPlayRate::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.842 + {
1.843 + CTestMidiClntReturnMinPlayRate* self = new(ELeave) CTestMidiClntReturnMinPlayRate(aTestName, aTestType);
1.844 + return self;
1.845 + }
1.846 +
1.847 +TVerdict CTestMidiClntReturnMinPlayRate::DoTestL(CMidiClientUtility* aMidi)
1.848 + {
1.849 + TVerdict ret = EPass;
1.850 + TInt expErr = KErrNone;
1.851 +
1.852 + INFO_PRINTF1(_L("CMidiClientUtility: Check the min play rate"));
1.853 +
1.854 + // expected results
1.855 + switch (iTestType)
1.856 + {
1.857 + case ETestValid:
1.858 + expErr = KErrNone;
1.859 + break;
1.860 + case ETestNoResource:
1.861 + expErr = KErrNotReady;
1.862 + break;
1.863 + default:
1.864 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.865 + return EInconclusive;
1.866 + }
1.867 +
1.868 +// TInt rate = 0; // fixes warning
1.869 +// TRAPD(err, rate = aMidi->MinPlaybackRateL());
1.870 + TRAPD(err, aMidi->MinPlaybackRateL()); // EABI warning removal
1.871 + if(expErr != err)
1.872 + {
1.873 + ERR_PRINTF3( _L("MinPlayRateL gave error %d (expected %d)"),err, expErr);
1.874 + ret = EFail;
1.875 + }
1.876 + else
1.877 + INFO_PRINTF3(_L("MinPlayRateL %d = %d"), err, expErr);
1.878 +
1.879 + return ret;
1.880 + }
1.881 +
1.882 +//------------------------------------------------------------------
1.883 +
1.884 +
1.885 +CTestMidiClntTempoMicroBeatsPerMinute::CTestMidiClntTempoMicroBeatsPerMinute(const TDesC& aTestName, const TTestStepType aTestType)
1.886 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.887 + {
1.888 + }
1.889 +
1.890 +CTestMidiClntTempoMicroBeatsPerMinute* CTestMidiClntTempoMicroBeatsPerMinute::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.891 + {
1.892 + CTestMidiClntTempoMicroBeatsPerMinute* self = new(ELeave) CTestMidiClntTempoMicroBeatsPerMinute(aTestName, aTestType);
1.893 + return self;
1.894 + }
1.895 +
1.896 +TVerdict CTestMidiClntTempoMicroBeatsPerMinute::DoTestL(CMidiClientUtility* aMidi)
1.897 + {
1.898 + TVerdict ret = EPass;
1.899 + TInt expErr = KErrNone;
1.900 +// TInt microBeatsPerMinute = 0; // EABI warning removal
1.901 +
1.902 + INFO_PRINTF1(_L("CMidiClientUtility: Return the tempo micro beats per minute"));
1.903 + // expected results
1.904 + switch(iTestType)
1.905 + {
1.906 + case ETestValid:
1.907 + expErr = KErrNone;
1.908 + break;
1.909 + case ETestNoResource:
1.910 + expErr = KErrNotReady;
1.911 + break;
1.912 + default:
1.913 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.914 + return EInconclusive;
1.915 + }
1.916 +
1.917 +// TRAPD(err, microBeatsPerMinute = aMidi->TempoMicroBeatsPerMinuteL());
1.918 + TRAPD(err, aMidi->TempoMicroBeatsPerMinuteL()); // EABI warning removal
1.919 + if (expErr != err)
1.920 + {
1.921 + ERR_PRINTF3(_L("TempoMicroBeatsPerMinuteL gave error %d (expected %d)"),err, expErr);
1.922 + ret = EFail;
1.923 + }
1.924 + else
1.925 + INFO_PRINTF3(_L("TempoMicroBeatsPerMinuteL %d = %d"),err ,expErr);
1.926 +
1.927 + return ret;
1.928 + }
1.929 +
1.930 +//------------------------------------------------------------------
1.931 +
1.932 +
1.933 +CTestMidiClntSetTempo::CTestMidiClntSetTempo(const TDesC& aTestName, const TTestStepType aTestType)
1.934 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.935 + {
1.936 + }
1.937 +
1.938 +CTestMidiClntSetTempo* CTestMidiClntSetTempo::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.939 + {
1.940 + CTestMidiClntSetTempo* self = new(ELeave) CTestMidiClntSetTempo(aTestName, aTestType);
1.941 + return self;
1.942 + }
1.943 +
1.944 +TVerdict CTestMidiClntSetTempo::DoTestL(CMidiClientUtility* aMidi)
1.945 + {
1.946 + TVerdict ret = EPass;
1.947 + TInt expErr = KErrNone;
1.948 + TInt microBeatsPerMinute = 0;
1.949 +
1.950 + INFO_PRINTF1(_L("CMidiClientUtility: Set the tempo micro beats per minute"));
1.951 + // expected results
1.952 + switch(iTestType)
1.953 + {
1.954 + case ETestValid:
1.955 + expErr = KErrNone;
1.956 + microBeatsPerMinute = 60*1000000;
1.957 + break;
1.958 + case ETestNoResource:
1.959 + expErr = KErrNotReady;
1.960 + microBeatsPerMinute = 80*1000000;
1.961 + break;
1.962 + case ETestBeatsLowOutOfRange:
1.963 + expErr = KErrArgument;
1.964 + microBeatsPerMinute = -1*1000000;
1.965 + break;
1.966 + case ETestBeatsHighOutOfRange:
1.967 + expErr = KErrArgument;
1.968 + //microBeatsPerMinute = 1000001*1000000; XXX overflow warning
1.969 + microBeatsPerMinute = 1000001;
1.970 + break;
1.971 + default:
1.972 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.973 + return EInconclusive;
1.974 + }
1.975 +
1.976 + TRAPD(err, aMidi->SetTempoL(microBeatsPerMinute));
1.977 + if (expErr != err)
1.978 + {
1.979 + ERR_PRINTF3(_L("SetTempoL gave error %d (expected %d)"),err, expErr);
1.980 + ret = EFail;
1.981 + }
1.982 + else
1.983 + INFO_PRINTF3(_L("SetTempoL %d = %d"),err ,expErr);
1.984 +
1.985 + return ret;
1.986 + }
1.987 +
1.988 +//------------------------------------------------------------------
1.989 +
1.990 +
1.991 +CTestMidiClntGetPitchTranspositionCents::CTestMidiClntGetPitchTranspositionCents(const TDesC& aTestName, const TTestStepType aTestType)
1.992 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.993 + {
1.994 + }
1.995 +
1.996 +CTestMidiClntGetPitchTranspositionCents* CTestMidiClntGetPitchTranspositionCents::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.997 + {
1.998 + CTestMidiClntGetPitchTranspositionCents* self = new(ELeave) CTestMidiClntGetPitchTranspositionCents(aTestName, aTestType);
1.999 + return self;
1.1000 + }
1.1001 +
1.1002 +TVerdict CTestMidiClntGetPitchTranspositionCents::DoTestL(CMidiClientUtility* aMidi)
1.1003 + {
1.1004 + TVerdict ret = EPass;
1.1005 + TInt expErr = KErrNone;
1.1006 +
1.1007 + INFO_PRINTF1(_L("CMidiClientUtility: Set the pitch transposition"));
1.1008 + // expected results
1.1009 +
1.1010 + switch (iTestType)
1.1011 + {
1.1012 + case ETestValid:
1.1013 + expErr = KErrNone;
1.1014 + break;
1.1015 + case ETestNoResource:
1.1016 + expErr = KErrNotReady;
1.1017 + break;
1.1018 + default:
1.1019 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1020 + return EInconclusive;
1.1021 + }
1.1022 +
1.1023 +// TInt pitch = 0; // fixes warning
1.1024 +// TRAPD(err, pitch = aMidi->PitchTranspositionCentsL());
1.1025 + TRAPD(err, aMidi->PitchTranspositionCentsL()); // EABI warning removal - "I see trouble ahead..."
1.1026 + if(expErr != err)
1.1027 + {
1.1028 + ERR_PRINTF3( _L("PitchTranspositionCentsL gave error %d (expected %d)"),err, expErr);
1.1029 + ret = EFail;
1.1030 + }
1.1031 + else
1.1032 + INFO_PRINTF3(_L("PitchTranspositionCentsL %d = %d"), err, expErr);
1.1033 +
1.1034 + return ret;
1.1035 + }
1.1036 +
1.1037 +//------------------------------------------------------------------
1.1038 +
1.1039 +
1.1040 +CTestMidiClntSetPitchTransposition::CTestMidiClntSetPitchTransposition(const TDesC& aTestName, const TTestStepType aTestType)
1.1041 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1042 + {
1.1043 + }
1.1044 +
1.1045 +CTestMidiClntSetPitchTransposition* CTestMidiClntSetPitchTransposition::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1046 + {
1.1047 + CTestMidiClntSetPitchTransposition* self = new(ELeave) CTestMidiClntSetPitchTransposition(aTestName, aTestType);
1.1048 + return self;
1.1049 + }
1.1050 +
1.1051 +TVerdict CTestMidiClntSetPitchTransposition::DoTestL(CMidiClientUtility* aMidi)
1.1052 + {
1.1053 + TVerdict ret = EPass;
1.1054 + TInt expErr = KErrNone;
1.1055 + TInt pitchTrans = 1200; // one octave
1.1056 +
1.1057 + INFO_PRINTF1(_L("CMidiClientUtility: Set the pitch transposition"));
1.1058 + // expected results
1.1059 +
1.1060 + switch (iTestType)
1.1061 + {
1.1062 + case ETestValid:
1.1063 + expErr = KErrNone;
1.1064 + break;
1.1065 + case ETestNoResource:
1.1066 + expErr = KErrNotReady;
1.1067 + break;
1.1068 +//According to GM2 spec, the minimum value can be -6499 cents, or at least -1299 cents.
1.1069 + case ETestOutOfRangeHigh:
1.1070 + // high limit on pitch transposition is dependant on controller
1.1071 + // when have a proper controller the value below should be changed
1.1072 + // to a value higher than the upper limit
1.1073 + pitchTrans = -6499; //KErrArgument expect by a real controller implementation if out-of-range
1.1074 + expErr = KErrNone;
1.1075 + break;
1.1076 +/*This test has been removed by AD as it was not valid - negative values ARE allowed by MIDI spec
1.1077 +According to GM2 spec, the minimum value can be -6499 cents, or at least -1299 cents.
1.1078 + case ETestOutOfRangeLow:
1.1079 + pitchTrans = -1; // negative values not supported
1.1080 + expErr = KErrNotSupported;
1.1081 + break;
1.1082 +*/
1.1083 + default:
1.1084 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1085 + return EInconclusive;
1.1086 + }
1.1087 +
1.1088 + TRAPD(err, aMidi->SetPitchTranspositionL(pitchTrans));
1.1089 + if(expErr != err)
1.1090 + {
1.1091 + ERR_PRINTF3( _L("SetPitchTranspositionL gave error %d (expected %d)"),err, expErr);
1.1092 + ret = EFail;
1.1093 + }
1.1094 + else
1.1095 + INFO_PRINTF3(_L("SetPitchTranspositionL %d = %d"), err, expErr);
1.1096 +
1.1097 + return ret;
1.1098 + }
1.1099 +
1.1100 +//------------------------------------------------------------------
1.1101 +
1.1102 +
1.1103 +CTestMidiClntDurationMicroSeconds::CTestMidiClntDurationMicroSeconds(const TDesC& aTestName, const TTestStepType aTestType)
1.1104 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1105 + {
1.1106 + }
1.1107 +
1.1108 +CTestMidiClntDurationMicroSeconds* CTestMidiClntDurationMicroSeconds::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1109 + {
1.1110 + CTestMidiClntDurationMicroSeconds* self = new(ELeave) CTestMidiClntDurationMicroSeconds(aTestName, aTestType);
1.1111 + return self;
1.1112 + }
1.1113 +
1.1114 +TVerdict CTestMidiClntDurationMicroSeconds::DoTestL(CMidiClientUtility* aMidi)
1.1115 + {
1.1116 + TVerdict ret = EPass;
1.1117 + TInt expErr = KErrNone;
1.1118 + TTimeIntervalMicroSeconds durationMicroSeconds(0);
1.1119 +
1.1120 + INFO_PRINTF1(_L("CMidiClientUtility: Get duration in micro seconds"));
1.1121 + // expected results
1.1122 + switch(iTestType)
1.1123 + {
1.1124 + case ETestValid:
1.1125 + expErr = KErrNone;
1.1126 + break;
1.1127 + case ETestNoResource:
1.1128 + expErr = KErrNotReady;
1.1129 + break;
1.1130 + default:
1.1131 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1132 + return EInconclusive;
1.1133 + }
1.1134 +
1.1135 + TRAPD(err, durationMicroSeconds = aMidi->DurationMicroSecondsL());
1.1136 + if (expErr != err)
1.1137 + {
1.1138 + ERR_PRINTF3(_L("DurationMicroSecondsL gave error %d (expected %d)"),err, expErr);
1.1139 + ret = EFail;
1.1140 + }
1.1141 + else
1.1142 + INFO_PRINTF3(_L("DurationMicroSecondsL %d = %d"),err ,expErr);
1.1143 +
1.1144 + return ret;
1.1145 + }
1.1146 +
1.1147 +//------------------------------------------------------------------
1.1148 +
1.1149 +
1.1150 +CTestMidiClntDurationMicroBeats::CTestMidiClntDurationMicroBeats(const TDesC& aTestName, const TTestStepType aTestType)
1.1151 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1152 + {
1.1153 + }
1.1154 +
1.1155 +CTestMidiClntDurationMicroBeats* CTestMidiClntDurationMicroBeats::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1156 + {
1.1157 + CTestMidiClntDurationMicroBeats* self = new(ELeave) CTestMidiClntDurationMicroBeats(aTestName, aTestType);
1.1158 + return self;
1.1159 + }
1.1160 +
1.1161 +TVerdict CTestMidiClntDurationMicroBeats::DoTestL(CMidiClientUtility* aMidi)
1.1162 + {
1.1163 + TVerdict ret = EPass;
1.1164 + TInt expErr = KErrNone;
1.1165 + //TTimeIntervalMicroSeconds durationMicroSeconds(0);
1.1166 +
1.1167 + INFO_PRINTF1(_L("CMidiClientUtility: Get duration in micro beats"));
1.1168 + // expected results
1.1169 + switch(iTestType)
1.1170 + {
1.1171 + case ETestValid:
1.1172 + expErr = KErrNone;
1.1173 + break;
1.1174 + case ETestNoResource:
1.1175 + expErr = KErrNotReady;
1.1176 + break;
1.1177 + default:
1.1178 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1179 + return EInconclusive;
1.1180 + }
1.1181 + TRAPD(err, aMidi->DurationMicroBeatsL());
1.1182 + if (expErr != err)
1.1183 + {
1.1184 + ERR_PRINTF3(_L("DurationMicroBeatsL gave error %d (expected %d)"),err, expErr);
1.1185 + ret = EFail;
1.1186 + }
1.1187 + else
1.1188 + INFO_PRINTF3(_L("DurationMicroBeatsL %d = %d"),err ,expErr);
1.1189 +
1.1190 + return ret;
1.1191 + }
1.1192 +
1.1193 +//------------------------------------------------------------------
1.1194 +
1.1195 +
1.1196 +CTestMidiClntNumTracks::CTestMidiClntNumTracks(const TDesC& aTestName, const TTestStepType aTestType)
1.1197 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1198 + {
1.1199 + }
1.1200 +
1.1201 +CTestMidiClntNumTracks* CTestMidiClntNumTracks::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1202 + {
1.1203 + CTestMidiClntNumTracks* self = new(ELeave) CTestMidiClntNumTracks(aTestName, aTestType);
1.1204 + return self;
1.1205 + }
1.1206 +
1.1207 +TVerdict CTestMidiClntNumTracks::DoTestL(CMidiClientUtility* aMidi)
1.1208 + {
1.1209 + TVerdict ret = EPass;
1.1210 + TInt expErr = KErrNone;
1.1211 +
1.1212 + INFO_PRINTF1(_L("CMidiClientUtility: Get current number of tracks"));
1.1213 + // expected results
1.1214 + switch(iTestType)
1.1215 + {
1.1216 + case ETestValid:
1.1217 + expErr = KErrNone;
1.1218 + break;
1.1219 + default:
1.1220 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1221 + return EInconclusive;
1.1222 + }
1.1223 +// TInt numOfTracks = 0;
1.1224 +// TRAPD(err, numOfTracks = aMidi->NumTracksL());
1.1225 + TRAPD(err, aMidi->NumTracksL()); // EABI warning removal
1.1226 + if (expErr != err)
1.1227 + {
1.1228 + ERR_PRINTF3(_L("NumTracksL gave error %d (expected %d)"),err, expErr);
1.1229 + ret = EFail;
1.1230 + }
1.1231 + else
1.1232 + INFO_PRINTF3(_L("NumTracksL %d = %d"),err ,expErr);
1.1233 +
1.1234 + return ret;
1.1235 + }
1.1236 +
1.1237 +//------------------------------------------------------------------
1.1238 +
1.1239 +
1.1240 +CTestMidiClntSetTrackMute::CTestMidiClntSetTrackMute(const TDesC& aTestName, const TTestStepType aTestType)
1.1241 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1242 + {
1.1243 + }
1.1244 +
1.1245 +CTestMidiClntSetTrackMute* CTestMidiClntSetTrackMute::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1246 + {
1.1247 + CTestMidiClntSetTrackMute* self = new(ELeave) CTestMidiClntSetTrackMute(aTestName, aTestType);
1.1248 + return self;
1.1249 + }
1.1250 +
1.1251 +TVerdict CTestMidiClntSetTrackMute::DoTestL(CMidiClientUtility* aMidi)
1.1252 + {
1.1253 + TVerdict ret = EPass;
1.1254 + TInt expErr = KErrNone;
1.1255 + TInt track = 0;
1.1256 + TBool muted = ETrue;
1.1257 +
1.1258 + INFO_PRINTF1(_L("CMidiClientUtility: Set track mute"));
1.1259 + // expected results
1.1260 + switch(iTestType)
1.1261 + {
1.1262 + case ETestValid:
1.1263 + expErr = KErrNone;
1.1264 + break;
1.1265 + case ETestNoResource:
1.1266 + expErr = KErrNotReady;
1.1267 + TRAP_IGNORE(track = aMidi->NumTracksL()+1);
1.1268 + break;
1.1269 + case ETestInvalidTrack:
1.1270 + expErr = KErrArgument;
1.1271 + TRAP_IGNORE(track = aMidi->NumTracksL()+1);
1.1272 + break;
1.1273 + default:
1.1274 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1275 + return EInconclusive;
1.1276 + }
1.1277 +
1.1278 + TRAPD(err, aMidi->SetTrackMuteL(track, muted));
1.1279 +
1.1280 + // check correct result
1.1281 + if (iTestType == ETestValid)
1.1282 + {
1.1283 + TBool currMuted = EFalse;
1.1284 +
1.1285 + // until real MIDI controller IsTrackMuteL is always TRUE
1.1286 + TRAPD(err2, currMuted = aMidi->IsTrackMuteL(track));
1.1287 +
1.1288 + if(err2 != KErrNone)
1.1289 + {
1.1290 + ERR_PRINTF2(_L("IsTrackMuteL() returned %d"), err2);
1.1291 + ret = EInconclusive;
1.1292 + return ret;
1.1293 + }
1.1294 +
1.1295 + if(currMuted != muted)
1.1296 + {
1.1297 + ERR_PRINTF2(_L("Error : expected %d"), muted);
1.1298 + ret = EFail;
1.1299 + return ret;
1.1300 + }
1.1301 + }
1.1302 +
1.1303 + if (expErr != err)
1.1304 + {
1.1305 + ERR_PRINTF3(_L("SetTrackMuteL gave error %d (expected %d)"),err, expErr);
1.1306 + ret = EFail;
1.1307 + }
1.1308 + else
1.1309 + INFO_PRINTF3(_L("SetTrackMuteL %d = %d"),err ,expErr);
1.1310 +
1.1311 + return ret;
1.1312 + }
1.1313 +
1.1314 +//------------------------------------------------------------------
1.1315 +
1.1316 +
1.1317 +CTestMidiClntMimeType::CTestMidiClntMimeType(const TDesC& aTestName, const TTestStepType aTestType)
1.1318 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1319 + {
1.1320 + }
1.1321 +
1.1322 +CTestMidiClntMimeType* CTestMidiClntMimeType::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1323 + {
1.1324 + CTestMidiClntMimeType* self = new(ELeave) CTestMidiClntMimeType(aTestName, aTestType);
1.1325 + return self;
1.1326 + }
1.1327 +
1.1328 +TVerdict CTestMidiClntMimeType::DoTestL(CMidiClientUtility* aMidi)
1.1329 + {
1.1330 + TVerdict ret = EPass;
1.1331 + TInt expErr = KErrNone;
1.1332 +
1.1333 + INFO_PRINTF1(_L("CMidiClientUtility: Get mime type"));
1.1334 + // expected results
1.1335 + switch(iTestType)
1.1336 + {
1.1337 + case ETestValid:
1.1338 + expErr = KErrNone;
1.1339 + break;
1.1340 + case ETestNoResource:
1.1341 + expErr = KErrNotReady;
1.1342 + break;
1.1343 + default:
1.1344 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1345 + return EInconclusive;
1.1346 + }
1.1347 +
1.1348 + //TRAPD(err, TDesC8 mimeType = aMidi->MimeTypeL());//XXX: TDesC8 mimeType has to be define above
1.1349 + TRAPD(err, aMidi->MimeTypeL());//XXX: TDesC8 mimeType has to be define above
1.1350 + if (expErr != err)
1.1351 + {
1.1352 + ERR_PRINTF3(_L("MimeTypeL gave error %d (expected %d)"),err, expErr);
1.1353 + ret = EFail;
1.1354 + }
1.1355 + else
1.1356 + INFO_PRINTF3(_L("MimeTypeL %d = %d"),err ,expErr);
1.1357 +
1.1358 + return ret;
1.1359 + }
1.1360 +
1.1361 +//------------------------------------------------------------------
1.1362 +
1.1363 +
1.1364 +CTestMidiClntReturnPositionMicroSeconds::CTestMidiClntReturnPositionMicroSeconds(const TDesC& aTestName, const TTestStepType aTestType)
1.1365 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1366 + {
1.1367 + }
1.1368 +
1.1369 +CTestMidiClntReturnPositionMicroSeconds* CTestMidiClntReturnPositionMicroSeconds::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1370 + {
1.1371 + CTestMidiClntReturnPositionMicroSeconds* self = new(ELeave) CTestMidiClntReturnPositionMicroSeconds(aTestName, aTestType);
1.1372 + return self;
1.1373 + }
1.1374 +
1.1375 +TVerdict CTestMidiClntReturnPositionMicroSeconds::DoTestL(CMidiClientUtility* aMidi)
1.1376 + {
1.1377 + TVerdict ret = EPass;
1.1378 + TInt expErr = KErrNone;
1.1379 +
1.1380 + INFO_PRINTF1(_L("CMidiClientUtility: Get position in micro seconds"));
1.1381 + // expected results
1.1382 + switch(iTestType)
1.1383 + {
1.1384 + case ETestValid:
1.1385 + expErr = KErrNone;
1.1386 + break;
1.1387 + case ETestNoResource:
1.1388 + expErr = KErrNotReady;
1.1389 + break;
1.1390 + case ETestNoResourcePlaying:
1.1391 + expErr = KErrNotReady;
1.1392 + break;
1.1393 + default:
1.1394 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1395 + return EInconclusive;
1.1396 + }
1.1397 + TTimeIntervalMicroSeconds positionMicroSeconds(0);
1.1398 + TRAPD(err, positionMicroSeconds = aMidi->PositionMicroSecondsL());
1.1399 + if (expErr != err)
1.1400 + {
1.1401 + if (KErrNotReady != err)
1.1402 + {
1.1403 + ERR_PRINTF3(_L("Get PositionMicroSecondsL gave error %d (expected %d)"),err, expErr);
1.1404 + ret = EFail;
1.1405 + }
1.1406 + else
1.1407 + {
1.1408 + ret = EPass;
1.1409 + }
1.1410 + }
1.1411 + else
1.1412 + INFO_PRINTF3(_L("Get PositionMicroSecondsL %d = %d"),err ,expErr);
1.1413 +
1.1414 + return ret;
1.1415 + }
1.1416 +
1.1417 +//------------------------------------------------------------------
1.1418 +
1.1419 +
1.1420 +CTestMidiClntSetPositionMicroSeconds::CTestMidiClntSetPositionMicroSeconds(const TDesC& aTestName, const TTestStepType aTestType)
1.1421 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1422 + {
1.1423 + }
1.1424 +
1.1425 +CTestMidiClntSetPositionMicroSeconds* CTestMidiClntSetPositionMicroSeconds::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1426 + {
1.1427 + CTestMidiClntSetPositionMicroSeconds* self = new(ELeave) CTestMidiClntSetPositionMicroSeconds(aTestName, aTestType);
1.1428 + return self;
1.1429 + }
1.1430 +
1.1431 +TVerdict CTestMidiClntSetPositionMicroSeconds::DoTestL(CMidiClientUtility* aMidi)
1.1432 + {
1.1433 + TVerdict ret = EPass;
1.1434 + TInt expErr = KErrNone;
1.1435 + TTimeIntervalMicroSeconds position(0);;
1.1436 +
1.1437 + INFO_PRINTF1(_L("CMidiClientUtility: Set position in micro seconds"));
1.1438 + // expected results
1.1439 + switch(iTestType)
1.1440 + {
1.1441 + case ETestValid:
1.1442 + expErr = KErrNone;
1.1443 + break;
1.1444 + case ETestNoResource:
1.1445 + expErr = KErrNotReady;
1.1446 + break;
1.1447 + case ETestMicrosecondsHighOutOfRange:
1.1448 + expErr = KErrNotSupported;
1.1449 + position = 1008;
1.1450 + break;
1.1451 + case ETestMicrosecondsLowOutOfRange:
1.1452 + expErr = KErrNotSupported;
1.1453 + position = -1;
1.1454 + break;
1.1455 + default:
1.1456 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1457 + return EInconclusive;
1.1458 + }
1.1459 +
1.1460 + TRAPD(err, aMidi->SetPositionMicroSecondsL(position));
1.1461 + if (expErr != err)
1.1462 + {
1.1463 + ERR_PRINTF3(_L("Set PositionMicroSecondsL gave error %d (expected %d)"),err, expErr);
1.1464 + ret = EFail;
1.1465 + }
1.1466 + else
1.1467 + INFO_PRINTF3(_L("Set PositionMicroSecondsL %d = %d"),err ,expErr);
1.1468 +
1.1469 + return ret;
1.1470 + }
1.1471 +
1.1472 +//------------------------------------------------------------------
1.1473 +
1.1474 +
1.1475 +CTestMidiClntReturnsPositionMicroBeats::CTestMidiClntReturnsPositionMicroBeats(const TDesC& aTestName, const TTestStepType aTestType)
1.1476 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1477 + {
1.1478 + }
1.1479 +
1.1480 +CTestMidiClntReturnsPositionMicroBeats* CTestMidiClntReturnsPositionMicroBeats::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1481 + {
1.1482 + CTestMidiClntReturnsPositionMicroBeats* self = new(ELeave) CTestMidiClntReturnsPositionMicroBeats(aTestName, aTestType);
1.1483 + return self;
1.1484 + }
1.1485 +
1.1486 +TVerdict CTestMidiClntReturnsPositionMicroBeats::DoTestL(CMidiClientUtility* aMidi)
1.1487 + {
1.1488 + TVerdict ret = EPass;
1.1489 + TInt expErr = KErrNone;
1.1490 +
1.1491 + INFO_PRINTF1(_L("CMidiClientUtility: Return position in micro beats"));
1.1492 + // expected results
1.1493 + switch(iTestType)
1.1494 + {
1.1495 + case ETestValid:
1.1496 + expErr = KErrNone;
1.1497 + break;
1.1498 + case ETestNoResource:
1.1499 + expErr = KErrNotReady;
1.1500 + break;
1.1501 + case ETestNoResourcePlaying:
1.1502 + expErr = KErrNotReady;
1.1503 + break;
1.1504 + default:
1.1505 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1506 + return EInconclusive;
1.1507 + }
1.1508 + TRAPD(err, aMidi->PositionMicroBeatsL());
1.1509 + if (expErr != err)
1.1510 + {
1.1511 + ERR_PRINTF3(_L("PositionMicroBeatsL gave error %d (expected %d)"),err, expErr);
1.1512 + ret = EFail;
1.1513 + }
1.1514 + else
1.1515 + INFO_PRINTF3(_L("PositionMicroBeatsL %d = %d"),err ,expErr);
1.1516 +
1.1517 + return ret;
1.1518 + }
1.1519 +
1.1520 +//------------------------------------------------------------------
1.1521 +
1.1522 +
1.1523 +CTestMidiClntSetPositionMicroBeats::CTestMidiClntSetPositionMicroBeats(const TDesC& aTestName, const TTestStepType aTestType)
1.1524 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1525 + {
1.1526 + }
1.1527 +
1.1528 +CTestMidiClntSetPositionMicroBeats* CTestMidiClntSetPositionMicroBeats::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1529 + {
1.1530 + CTestMidiClntSetPositionMicroBeats* self = new(ELeave) CTestMidiClntSetPositionMicroBeats(aTestName, aTestType);
1.1531 + return self;
1.1532 + }
1.1533 +
1.1534 +TVerdict CTestMidiClntSetPositionMicroBeats::DoTestL(CMidiClientUtility* aMidi)
1.1535 + {
1.1536 + TVerdict ret = EPass;
1.1537 + TInt expErr = KErrNone;
1.1538 + TInt64 microBeats = 0;
1.1539 +
1.1540 + INFO_PRINTF1(_L("CMidiClientUtility: Set position in micro beats"));
1.1541 + // expected results
1.1542 + switch(iTestType)
1.1543 + {
1.1544 + case ETestValid:
1.1545 + expErr = KErrNone;
1.1546 + break;
1.1547 + case ETestNoResource:
1.1548 + expErr = KErrNotReady;
1.1549 + break;
1.1550 + case ETestMicrobeatsHighOutOfRange:
1.1551 + expErr = KErrNotSupported;
1.1552 + microBeats = 1000000;
1.1553 + break;
1.1554 + case ETestMicrobeatsLowOutOfRange:
1.1555 + expErr = KErrNotSupported;
1.1556 + microBeats = -1;
1.1557 + break;
1.1558 + default:
1.1559 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1560 + return EInconclusive;
1.1561 + }
1.1562 +
1.1563 + TRAPD(err, aMidi->SetPositionMicroBeatsL(microBeats));
1.1564 + if (expErr != err)
1.1565 + {
1.1566 + ERR_PRINTF3(_L("SetPositionMicroBeatsL gave error %d (expected %d)"),err, expErr);
1.1567 + ret = EFail;
1.1568 + }
1.1569 + else
1.1570 + INFO_PRINTF3(_L("SetPositionMicroBeatsL %d = %d"),err ,expErr);
1.1571 +
1.1572 + return ret;
1.1573 + }
1.1574 +
1.1575 +//------------------------------------------------------------------
1.1576 +
1.1577 +
1.1578 +CTestSetSyncUpdateCallbackInterval::CTestSetSyncUpdateCallbackInterval(const TDesC& aTestName, const TTestStepType aTestType)
1.1579 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1580 + {
1.1581 + }
1.1582 +
1.1583 +CTestSetSyncUpdateCallbackInterval* CTestSetSyncUpdateCallbackInterval::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.1584 + {
1.1585 + CTestSetSyncUpdateCallbackInterval* self = new(ELeave) CTestSetSyncUpdateCallbackInterval(aTestName, aTestType);
1.1586 + return self;
1.1587 + }
1.1588 +
1.1589 +TVerdict CTestSetSyncUpdateCallbackInterval::DoTestL(CMidiClientUtility* aMidi)
1.1590 + {
1.1591 + TVerdict ret = EPass;
1.1592 + TInt expErr = KErrNone;
1.1593 + TTimeIntervalMicroSeconds microSeconds(0);
1.1594 + TInt64 microBeats = 0;
1.1595 +
1.1596 + INFO_PRINTF1(_L("CMidiClientUtility: Set update call back interval"));
1.1597 + // expected results
1.1598 + switch(iTestType)
1.1599 + {
1.1600 + case ETestValid:
1.1601 + expErr = KErrNone;
1.1602 + break;
1.1603 + case ETestMicrosecondsMicrobeatsZero:
1.1604 + microSeconds = 0;
1.1605 + microBeats = 0;
1.1606 + expErr = KErrNotReady;
1.1607 + break;
1.1608 + case ETestMicrosecondsLowOutOfRange:
1.1609 + expErr = KErrArgument;
1.1610 + microSeconds = -1;
1.1611 + break;
1.1612 + case ETestMicrobeatsHighOutOfRange:
1.1613 + expErr = KErrArgument;
1.1614 + microBeats = 1000000;
1.1615 + break;
1.1616 + case ETestMicrobeatsLowOutOfRange:
1.1617 + expErr = KErrArgument;
1.1618 + microBeats = -1;
1.1619 + break;
1.1620 + default:
1.1621 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1622 + return EInconclusive;
1.1623 + }
1.1624 +
1.1625 + TRAPD(err, aMidi->SetSyncUpdateCallbackIntervalL(microSeconds, microBeats));
1.1626 + if (expErr != err)
1.1627 + {
1.1628 + ERR_PRINTF3(_L("SetSyncUpdateCallbackIntervalL gave error %d (expected %d)"),err, expErr);
1.1629 + ret = EFail;
1.1630 + }
1.1631 + else
1.1632 + INFO_PRINTF3(_L("SetSyncUpdateCallbackIntervalL %d = %d"),err ,expErr);
1.1633 +
1.1634 + return ret;
1.1635 + }
1.1636 +
1.1637 +CTestSendMessage::CTestSendMessage(const TDesC& aTestName,
1.1638 + const TTestStepType aTestType, const TDesC8& aMessage)
1.1639 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1640 + {
1.1641 + iMessage = aMessage;
1.1642 + }
1.1643 +
1.1644 +CTestSendMessage* CTestSendMessage::NewL(const TDesC& aTestName,
1.1645 + const TTestStepType aTestType, const TDesC8& aMessage)
1.1646 + {
1.1647 + CTestSendMessage* self = new (ELeave) CTestSendMessage(aTestName,
1.1648 + aTestType, aMessage);
1.1649 + return self;
1.1650 + }
1.1651 +
1.1652 +TVerdict CTestSendMessage::DoTestL(CMidiClientUtility* aMidi)
1.1653 + {
1.1654 + INFO_PRINTF1(_L("CMidiClientUtility: Send Message"));
1.1655 +
1.1656 + TVerdict ret = EPass;
1.1657 + TInt expErr = KErrNone;
1.1658 +
1.1659 + // expected results
1.1660 + switch(iTestType)
1.1661 + {
1.1662 + case ETestValid:
1.1663 + expErr = KErrNone;
1.1664 + break;
1.1665 + case ETestNullMessage:
1.1666 + expErr = KErrArgument;
1.1667 + break;
1.1668 + case ETestUnsupported:
1.1669 + expErr = KErrNotSupported;
1.1670 + break;
1.1671 + case ETestCorrupt:
1.1672 + expErr = KErrCorrupt;
1.1673 + break;
1.1674 + default:
1.1675 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1676 + return EInconclusive;
1.1677 + }
1.1678 +
1.1679 +// TInt byteProcessed;
1.1680 +// TRAPD(err1, byteProcessed = aMidi->SendMessageL(iMessage));
1.1681 + TRAPD(err1, aMidi->SendMessageL(iMessage)); // EABI warning removal
1.1682 + if(err1 != expErr)
1.1683 + {
1.1684 + ERR_PRINTF3(_L("SendMessageL(iMessage) gave error %d (expected %d)"), err1, expErr);
1.1685 + ret = EFail;
1.1686 + }
1.1687 +
1.1688 + TTimeIntervalMicroSeconds startTime(105);
1.1689 +// TRAPD(err2, byteProcessed = aMidi->SendMessageL(iMessage, startTime));
1.1690 + TRAPD(err2, aMidi->SendMessageL(iMessage, startTime)); // EABI warning removal
1.1691 + if(err2 != expErr)
1.1692 + {
1.1693 + ERR_PRINTF3(_L("SendMessageL(iMessage, startTime) gave error %d (expected %d)"), err1, expErr);
1.1694 + ret = EFail;
1.1695 + }
1.1696 +
1.1697 + return ret;
1.1698 + }
1.1699 +
1.1700 +//------------------------------------------------------------------
1.1701 +
1.1702 +
1.1703 +// CTestSendMessageTime incorporated into CTestSendMessage
1.1704 +
1.1705 +//------------------------------------------------------------------
1.1706 +
1.1707 +// aTestType as follows :
1.1708 +// 0115 : valid
1.1709 +// 0116 : invalid device ID - REMOVED, API has changed
1.1710 +// 0117 : null
1.1711 +// 0118 : unsupported
1.1712 +// 0119 : unsupported - REMOVED, duplicate
1.1713 +// 0120 : corrupt
1.1714 +
1.1715 +CTestSendMipMessage::CTestSendMipMessage(const TDesC& aTestName,
1.1716 + const TTestStepType aTestType)
1.1717 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1718 + {
1.1719 + }
1.1720 +
1.1721 +CTestSendMipMessage* CTestSendMipMessage::NewL(const TDesC& aTestName,
1.1722 + const TTestStepType aTestType)
1.1723 + {
1.1724 + CTestSendMipMessage* self = new (ELeave) CTestSendMipMessage(aTestName,
1.1725 + aTestType);
1.1726 + return self;
1.1727 + }
1.1728 +
1.1729 +TVerdict CTestSendMipMessage::DoTestL(CMidiClientUtility* aMidi)
1.1730 + {
1.1731 + INFO_PRINTF1(_L("CMidiClientUtility: Send Mip Message"));
1.1732 +
1.1733 + TVerdict ret = EPass;
1.1734 + TInt expErr = KErrNone;
1.1735 +
1.1736 + RArray<TMipMessageEntry> mipArray;
1.1737 + TMipMessageEntry mipEntry1;
1.1738 + TMipMessageEntry mipEntry2;
1.1739 +
1.1740 + // expected results
1.1741 + switch(iTestType)
1.1742 + {
1.1743 + case ETestValid:
1.1744 + expErr = KErrNone;
1.1745 + break;
1.1746 + case ETestNullMessage:
1.1747 + expErr = KErrArgument;
1.1748 + break;
1.1749 + case ETestUnsupported:
1.1750 + expErr = KErrNotSupported;
1.1751 + break;
1.1752 + case ETestCorrupt:
1.1753 + expErr = KErrCorrupt;
1.1754 + break;
1.1755 + default:
1.1756 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1757 + return EInconclusive;
1.1758 + }
1.1759 +
1.1760 + switch(iTestType)
1.1761 + {
1.1762 + case ETestValid:
1.1763 + mipEntry1.iChannel = 10;
1.1764 + mipEntry1.iMIPValue = 20;
1.1765 + mipEntry2.iChannel = 11;
1.1766 + mipEntry2.iMIPValue = 21;
1.1767 +
1.1768 + mipArray.Append(mipEntry1);
1.1769 + mipArray.Append(mipEntry2);
1.1770 + break;
1.1771 +
1.1772 + case ETestNullMessage:
1.1773 + // leave array empty
1.1774 + // *** NB this will cause a problem in debug mode - causes a server panic!
1.1775 + break;
1.1776 +
1.1777 + case ETestUnsupported:
1.1778 + // XXX : values defined as unsupported?
1.1779 + mipEntry1.iChannel = 0;
1.1780 + mipEntry1.iMIPValue = 0;
1.1781 + mipEntry2.iChannel = 0;
1.1782 + mipEntry2.iMIPValue = 0;
1.1783 +
1.1784 + mipArray.Append(mipEntry1);
1.1785 + mipArray.Append(mipEntry2);
1.1786 + break;
1.1787 +
1.1788 + case ETestCorrupt:
1.1789 + // XXX : values defined as corrupt?
1.1790 + mipEntry1.iChannel = -1;
1.1791 + mipEntry1.iMIPValue = -1;
1.1792 + mipEntry2.iChannel = -1;
1.1793 + mipEntry2.iMIPValue = -1;
1.1794 +
1.1795 + mipArray.Append(mipEntry1);
1.1796 + mipArray.Append(mipEntry2);
1.1797 + break;
1.1798 + }
1.1799 +
1.1800 + TRAPD(err1, aMidi->SendMipMessageL(mipArray));
1.1801 + if(err1 != expErr)
1.1802 + {
1.1803 + ERR_PRINTF3(_L("SendMipMessageL(iMessage) gave error %d (expected %d)"), err1, expErr);
1.1804 + ret = EFail;
1.1805 + }
1.1806 +
1.1807 + mipArray.Close();
1.1808 + return ret;
1.1809 + }
1.1810 +
1.1811 +//------------------------------------------------------------------
1.1812 +
1.1813 +
1.1814 +CTestNumberOfBanks::CTestNumberOfBanks(const TDesC& aTestName,
1.1815 + const TTestStepType aTestType)
1.1816 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1817 + {
1.1818 + }
1.1819 +
1.1820 +CTestNumberOfBanks* CTestNumberOfBanks::NewL(const TDesC& aTestName,
1.1821 + const TTestStepType aTestType)
1.1822 + {
1.1823 + CTestNumberOfBanks* self = new (ELeave) CTestNumberOfBanks(aTestName,
1.1824 + aTestType);
1.1825 + return self;
1.1826 + }
1.1827 +
1.1828 +TVerdict CTestNumberOfBanks::DoTestL(CMidiClientUtility* aMidi)
1.1829 + {
1.1830 + // to do : test for standard & custom banks
1.1831 +
1.1832 + // currently using ETestOverflow to simulate no banks
1.1833 +
1.1834 + TVerdict ret = EPass;
1.1835 + TInt expErr = KErrNone;
1.1836 +
1.1837 + // expected results
1.1838 + switch(iTestType)
1.1839 + {
1.1840 + case ETestValid:
1.1841 + expErr = KErrNone;
1.1842 + break;
1.1843 + case ETestNegative:
1.1844 + expErr = KErrArgument;
1.1845 + break;
1.1846 + default:
1.1847 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1848 + return EInconclusive;
1.1849 + }
1.1850 +
1.1851 + TInt numBanks = 0;
1.1852 + TRAPD(err1, numBanks = aMidi->NumberOfBanksL(EFalse));
1.1853 + if(err1 != expErr)
1.1854 + {
1.1855 + ERR_PRINTF3(_L("NumberOfBanksL(EFalse) gave error %d (expected %d)"), err1, expErr);
1.1856 + ret = EFail;
1.1857 + }
1.1858 + else
1.1859 + INFO_PRINTF2(_L("Number of Banks (standard) = %d"), numBanks);
1.1860 +
1.1861 +
1.1862 + TRAPD(err2, numBanks = aMidi->NumberOfBanksL(ETrue));
1.1863 + if(err1 != expErr)
1.1864 + {
1.1865 + ERR_PRINTF3(_L("NumberOfBanksL(ETrue) gave error %d (expected %d)"), err2, expErr);
1.1866 + ret = EFail;
1.1867 + }
1.1868 + else
1.1869 + INFO_PRINTF2(_L("Number of Banks (custom) = %d"), numBanks);
1.1870 +
1.1871 + return ret;
1.1872 + }
1.1873 +
1.1874 +//------------------------------------------------------------------
1.1875 +
1.1876 +
1.1877 +CTestGetBankId::CTestGetBankId(const TDesC& aTestName,
1.1878 + const TTestStepType aTestType)
1.1879 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1880 + {
1.1881 + }
1.1882 +
1.1883 +CTestGetBankId* CTestGetBankId::NewL(const TDesC& aTestName,
1.1884 + const TTestStepType aTestType)
1.1885 + {
1.1886 + CTestGetBankId* self = new (ELeave) CTestGetBankId(aTestName,
1.1887 + aTestType);
1.1888 + return self;
1.1889 + }
1.1890 +
1.1891 +TVerdict CTestGetBankId::DoTestL(CMidiClientUtility* aMidi)
1.1892 + {
1.1893 + // currently using ETestOverflow to simulate no banks
1.1894 + TVerdict ret = EPass;
1.1895 + TInt expErr;
1.1896 + TInt bankNum;
1.1897 +
1.1898 + // expected results
1.1899 + switch(iTestType)
1.1900 + {
1.1901 + case ETestValid:
1.1902 + expErr = KErrNone;
1.1903 + bankNum = 54;
1.1904 + break;
1.1905 + case ETestNegative:
1.1906 + expErr = KErrArgument;
1.1907 + bankNum = -1;
1.1908 + break;
1.1909 + case ETestOverflow:
1.1910 + expErr = KErrArgument;
1.1911 + bankNum = 12000;
1.1912 + break;
1.1913 + default:
1.1914 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1915 + return EInconclusive;
1.1916 + }
1.1917 +
1.1918 + TInt bankId = 0;
1.1919 + TRAPD(err1, bankId = aMidi->GetBankIdL(EFalse, bankNum));
1.1920 + if(err1 != expErr)
1.1921 + {
1.1922 + ERR_PRINTF4(_L("GetBankIdL(EFalse, %d) gave error %d (expected %d)"), bankNum, err1, expErr);
1.1923 + ret = EFail;
1.1924 + }
1.1925 + else
1.1926 + INFO_PRINTF3(_L("GetBankIdL(EFalse, %d) = %d"), bankNum, bankId);
1.1927 +
1.1928 + TRAPD(err2, bankId = aMidi->GetBankIdL(ETrue, bankNum));
1.1929 + if(err2 != expErr)
1.1930 + {
1.1931 + ERR_PRINTF4(_L("GetBankIdL(ETrue, %d) gave error %d (expected %d)"), bankNum, err2, expErr);
1.1932 + ret = EFail;
1.1933 + }
1.1934 + else
1.1935 + INFO_PRINTF3(_L("GetBankIdL(ETrue, %d) = %d"), bankNum, bankId);
1.1936 +
1.1937 + return ret;
1.1938 + }
1.1939 +
1.1940 +//------------------------------------------------------------------
1.1941 +
1.1942 +
1.1943 +CTestLoadCustomBank::CTestLoadCustomBank(const TDesC& aTestName,
1.1944 + const TTestStepType aTestType)
1.1945 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.1946 + {
1.1947 + }
1.1948 +
1.1949 +CTestLoadCustomBank* CTestLoadCustomBank::NewL(const TDesC& aTestName,
1.1950 + const TTestStepType aTestType)
1.1951 + {
1.1952 + CTestLoadCustomBank* self = new (ELeave) CTestLoadCustomBank(aTestName,
1.1953 + aTestType);
1.1954 + return self;
1.1955 + }
1.1956 +
1.1957 +TVerdict CTestLoadCustomBank::DoTestL(CMidiClientUtility* aMidi)
1.1958 + {
1.1959 + TVerdict ret = EPass;
1.1960 + TInt expErr;
1.1961 + TFileName bankFileName;
1.1962 +
1.1963 + _LIT8(KBankFileName, "Bank file name");
1.1964 + _LIT8(KBankFileNameInvalid, "Invalid file name");
1.1965 + _LIT8(KBankFileNameUnsupported, "Unsupported file name");
1.1966 +
1.1967 + // expected results
1.1968 + switch(iTestType)
1.1969 + {
1.1970 + case ETestValid:
1.1971 + expErr = KErrNone;
1.1972 + bankFileName.Copy(KBankFileName);
1.1973 + break;
1.1974 + case ETestNullMessage:
1.1975 + expErr = KErrArgument;
1.1976 + bankFileName.Copy(KNullDesC16);
1.1977 + break;
1.1978 + case ETestInvalidMessage:
1.1979 + expErr = KErrArgument;
1.1980 + bankFileName.Copy(KBankFileNameInvalid);
1.1981 + break;
1.1982 + case ETestUnsupported:
1.1983 + expErr = KErrNotSupported;
1.1984 + bankFileName.Copy(KBankFileNameUnsupported);
1.1985 + break;
1.1986 + default:
1.1987 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.1988 + return EInconclusive;
1.1989 + }
1.1990 +
1.1991 + TInt bankId = 0;
1.1992 +
1.1993 + TRAPD(err1, aMidi->LoadCustomBankL(bankFileName, bankId));
1.1994 + INFO_PRINTF3(_L("LoadCustomBankL gave error %d (expected %d)"), err1, expErr);
1.1995 + if(err1 != expErr)
1.1996 + {
1.1997 + ret = EFail;
1.1998 + return ret;
1.1999 + }
1.2000 + // see if it's loaded
1.2001 + TBool loaded = EFalse;
1.2002 + TRAP(err1, loaded = aMidi->CustomBankLoadedL(bankId));
1.2003 + if(err1 != KErrNone)
1.2004 + {
1.2005 + ERR_PRINTF2(_L("CustomBankLoadedL left with error %d"), err1);
1.2006 + ret = EFail;
1.2007 + return ret;
1.2008 + }
1.2009 + if(iTestType == ETestValid)
1.2010 + {
1.2011 + if(!loaded)
1.2012 + {
1.2013 + ERR_PRINTF1(_L("CustomBankLoadedL returned false"));
1.2014 + ret = EFail;
1.2015 + }
1.2016 + }
1.2017 + else
1.2018 + {
1.2019 + if(loaded)
1.2020 + {
1.2021 + ERR_PRINTF1(_L("CustomBankLoadedL returned true"));
1.2022 + ret = EFail;
1.2023 + }
1.2024 + }
1.2025 +
1.2026 + return ret;
1.2027 + }
1.2028 +
1.2029 +//------------------------------------------------------------------
1.2030 +
1.2031 +
1.2032 +CTestUnloadCustomBank::CTestUnloadCustomBank(const TDesC& aTestName,
1.2033 + const TTestStepType aTestType)
1.2034 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2035 + {
1.2036 + }
1.2037 +
1.2038 +CTestUnloadCustomBank* CTestUnloadCustomBank::NewL(const TDesC& aTestName,
1.2039 + const TTestStepType aTestType)
1.2040 + {
1.2041 + CTestUnloadCustomBank* self = new (ELeave) CTestUnloadCustomBank(aTestName,
1.2042 + aTestType);
1.2043 + return self;
1.2044 + }
1.2045 +
1.2046 +TVerdict CTestUnloadCustomBank::DoTestL(CMidiClientUtility* aMidi)
1.2047 + {
1.2048 + TVerdict ret = EPass;
1.2049 + TInt expErr;
1.2050 + TFileName bankFileName;
1.2051 +
1.2052 + _LIT8(KBankFileName, "Bank file name");
1.2053 + bankFileName.Copy(KBankFileName);
1.2054 +
1.2055 + // expected results
1.2056 + switch(iTestType)
1.2057 + {
1.2058 + case ETestValid:
1.2059 + expErr = KErrNone;
1.2060 + break;
1.2061 + case ETestNegative:
1.2062 + expErr = KErrNotFound;
1.2063 + break;
1.2064 + default:
1.2065 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2066 + return EInconclusive;
1.2067 + }
1.2068 +
1.2069 + TInt bankId = 0;
1.2070 +
1.2071 + // load a known bank
1.2072 + TRAPD(err, aMidi->LoadCustomBankL(bankFileName, bankId));
1.2073 + if(err != KErrNone)
1.2074 + {
1.2075 + ERR_PRINTF2(_L("LoadCustomBankL gave error %d"), err);
1.2076 + ret = EInconclusive;
1.2077 + return ret;
1.2078 + }
1.2079 +
1.2080 + // ensure it's loaded
1.2081 + TBool loaded = EFalse;
1.2082 + TRAP(err, loaded = aMidi->CustomBankLoadedL(bankId));
1.2083 + if(err != KErrNone)
1.2084 + {
1.2085 + ERR_PRINTF2(_L("CustomBankLoadedL left with error %d"), err);
1.2086 + ret = EInconclusive;
1.2087 + return ret;
1.2088 + }
1.2089 + if(!loaded)
1.2090 + {
1.2091 + ERR_PRINTF1(_L("CustomBankLoadedL returned false"));
1.2092 + ret = EInconclusive;
1.2093 + return ret;
1.2094 + }
1.2095 +
1.2096 + // unload the bank we know is loaded
1.2097 + TRAP(err, aMidi->UnloadCustomBankL(bankId));
1.2098 + if(err != KErrNone)
1.2099 + {
1.2100 + ERR_PRINTF2(_L("UnloadCustomBankL gave error %d"), err);
1.2101 + ret = EFail;
1.2102 + return ret;
1.2103 + }
1.2104 +
1.2105 + // ensure it's not loaded
1.2106 + TRAP(err, loaded = aMidi->CustomBankLoadedL(bankId));
1.2107 + if(err != KErrNone)
1.2108 + {
1.2109 + ERR_PRINTF2(_L("CustomBankLoadedL left with error %d"), err);
1.2110 + ret = EInconclusive;
1.2111 + return ret;
1.2112 + }
1.2113 + if(loaded)
1.2114 + {
1.2115 + ERR_PRINTF1(_L("CustomBankLoadedL returned true -> bank not unloaded"));
1.2116 + ret = EFail;
1.2117 + return ret;
1.2118 + }
1.2119 +
1.2120 + // if negative test, try and unload the same bank again
1.2121 + if(iTestType == ETestValid)
1.2122 + return ret;
1.2123 + else
1.2124 + {
1.2125 + TRAP(err, aMidi->UnloadCustomBankL(bankId));
1.2126 + INFO_PRINTF3(_L("UnloadCustomBankL gave error %d (expected %d)"), err, expErr);
1.2127 + if(err != expErr)
1.2128 + ret = EFail;
1.2129 + }
1.2130 +
1.2131 + return ret;
1.2132 + }
1.2133 +
1.2134 +//------------------------------------------------------------------
1.2135 +
1.2136 +
1.2137 +CTestUnloadAllCustomBanks::CTestUnloadAllCustomBanks(const TDesC& aTestName,
1.2138 + const TTestStepType aTestType)
1.2139 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2140 + {
1.2141 + }
1.2142 +
1.2143 +CTestUnloadAllCustomBanks* CTestUnloadAllCustomBanks::NewL(const TDesC& aTestName,
1.2144 + const TTestStepType aTestType)
1.2145 + {
1.2146 + CTestUnloadAllCustomBanks* self = new (ELeave) CTestUnloadAllCustomBanks(aTestName,
1.2147 + aTestType);
1.2148 + return self;
1.2149 + }
1.2150 +
1.2151 +TVerdict CTestUnloadAllCustomBanks::DoTestL(CMidiClientUtility* aMidi)
1.2152 + {
1.2153 + TVerdict ret = EPass;
1.2154 + TInt expErr;
1.2155 + TFileName bankFileName;
1.2156 +
1.2157 + _LIT8(KBankFileName, "Bank file name");
1.2158 + bankFileName.Copy(KBankFileName);
1.2159 +
1.2160 + // expected results
1.2161 + switch(iTestType)
1.2162 + {
1.2163 + case ETestValid:
1.2164 + expErr = KErrNone;
1.2165 + break;
1.2166 + case ETestNegative:
1.2167 + expErr = KErrNotFound;
1.2168 + break;
1.2169 + default:
1.2170 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2171 + return EInconclusive;
1.2172 + }
1.2173 +
1.2174 + TInt bankId = 0;
1.2175 +
1.2176 + // load a known bank
1.2177 + TRAPD(err, aMidi->LoadCustomBankL(bankFileName, bankId));
1.2178 + if(err != KErrNone)
1.2179 + {
1.2180 + ERR_PRINTF2(_L("LoadCustomBankL gave error %d"), err);
1.2181 + ret = EInconclusive;
1.2182 + return ret;
1.2183 + }
1.2184 +
1.2185 + // ensure it's loaded
1.2186 + TBool loaded = EFalse;
1.2187 + TRAP(err, loaded = aMidi->CustomBankLoadedL(bankId));
1.2188 + if(err != KErrNone)
1.2189 + {
1.2190 + ERR_PRINTF2(_L("CustomBankLoadedL left with error %d"), err);
1.2191 + ret = EInconclusive;
1.2192 + return ret;
1.2193 + }
1.2194 + if(!loaded)
1.2195 + {
1.2196 + ERR_PRINTF1(_L("CustomBankLoadedL returned false"));
1.2197 + ret = EInconclusive;
1.2198 + return ret;
1.2199 + }
1.2200 +
1.2201 + // unload all
1.2202 + TRAP(err, aMidi->UnloadAllCustomBanksL());
1.2203 + if(err != KErrNone)
1.2204 + {
1.2205 + ERR_PRINTF2(_L("UnloadAllCustomBanksL gave error %d"), err);
1.2206 + ret = EFail;
1.2207 + return ret;
1.2208 + }
1.2209 +
1.2210 + loaded = EFalse;
1.2211 + // ensure our bank is not loaded
1.2212 + TRAP(err, loaded = aMidi->CustomBankLoadedL(bankId));
1.2213 + if(err != KErrNone)
1.2214 + {
1.2215 + ERR_PRINTF2(_L("CustomBankLoadedL left with error %d"), err);
1.2216 + ret = EInconclusive;
1.2217 + return ret;
1.2218 + }
1.2219 + if(loaded)
1.2220 + {
1.2221 + ERR_PRINTF1(_L("CustomBankLoadedL returned true -> bank not unloaded"));
1.2222 + ret = EFail;
1.2223 + return ret;
1.2224 + }
1.2225 +
1.2226 + // if negative test, try and unload again
1.2227 + if(iTestType == ETestValid)
1.2228 + return ret;
1.2229 + else
1.2230 + {
1.2231 + TRAP(err, aMidi->UnloadAllCustomBanksL());
1.2232 + INFO_PRINTF3(_L("UnloadAllCustomBanksL gave error %d (expected %d)"), err, expErr);
1.2233 + if(err != expErr)
1.2234 + ret = EFail;
1.2235 + }
1.2236 +
1.2237 + return ret;
1.2238 + }
1.2239 +
1.2240 +//------------------------------------------------------------------
1.2241 +
1.2242 +
1.2243 +CTestNumberOfInstruments::CTestNumberOfInstruments(const TDesC& aTestName,
1.2244 + const TTestStepType aTestType)
1.2245 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2246 + {
1.2247 + }
1.2248 +
1.2249 +CTestNumberOfInstruments* CTestNumberOfInstruments::NewL(const TDesC& aTestName,
1.2250 + const TTestStepType aTestType)
1.2251 + {
1.2252 + CTestNumberOfInstruments* self = new (ELeave) CTestNumberOfInstruments(aTestName,
1.2253 + aTestType);
1.2254 + return self;
1.2255 + }
1.2256 +
1.2257 +TVerdict CTestNumberOfInstruments::DoTestL(CMidiClientUtility* aMidi)
1.2258 + {
1.2259 + // TO DO : situation where no standard banks exist
1.2260 +
1.2261 + TVerdict ret = EPass;
1.2262 + TInt expErr;
1.2263 + TFileName bankFileName;
1.2264 +
1.2265 + _LIT8(KBankFileName, "Bank file name");
1.2266 + bankFileName.Copy(KBankFileName);
1.2267 + TInt bankId = 0;
1.2268 + TInt numInstruments = 0;
1.2269 +
1.2270 + // expected results
1.2271 + switch(iTestType)
1.2272 + {
1.2273 + case ETestValid:
1.2274 + expErr = KErrNone;
1.2275 + bankId = 0;
1.2276 + break;
1.2277 + case ETestNegative:
1.2278 + expErr = KErrNotFound;
1.2279 + bankId = 0;
1.2280 + break;
1.2281 + case ETestInvalidId:
1.2282 + expErr = KErrArgument;
1.2283 + bankId = -2;
1.2284 + break;
1.2285 + default:
1.2286 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2287 + return EInconclusive;
1.2288 + }
1.2289 +
1.2290 + // check a known bank - standard
1.2291 + // *** TO DO : this will cause a failure with ETestNegative. To be re-done
1.2292 + // for no standard banks present
1.2293 + TRAPD(err, numInstruments = aMidi->NumberOfInstrumentsL(bankId, EFalse));
1.2294 + if(err != expErr)
1.2295 + {
1.2296 + ERR_PRINTF3(_L("NumberOfInstrumentsL(bankId, EFalse) gave error %d (expected %d)"), err, expErr);
1.2297 + ret = EFail;
1.2298 + return ret;
1.2299 + }
1.2300 + INFO_PRINTF2(_L("NumberOfInstrumentsL(bankId, EFalse) = %d"), numInstruments);
1.2301 +
1.2302 + if(iTestType != ETestInvalidMessage)
1.2303 + {
1.2304 + // load a known bank - custom
1.2305 + TRAPD(err, aMidi->LoadCustomBankL(bankFileName, bankId));
1.2306 + if(err != KErrNone)
1.2307 + {
1.2308 + ERR_PRINTF2(_L("LoadCustomBankL left with error %d"), err);
1.2309 + ret = EInconclusive;
1.2310 + return ret;
1.2311 + }
1.2312 + // ensure it's loaded
1.2313 + TBool loaded = EFalse;
1.2314 + TRAP(err, loaded = aMidi->CustomBankLoadedL(bankId));
1.2315 + if(err != KErrNone)
1.2316 + {
1.2317 + ERR_PRINTF2(_L("CustomBankLoadedL left with error %d"), err);
1.2318 + ret = EInconclusive;
1.2319 + return ret;
1.2320 + }
1.2321 + if(!loaded)
1.2322 + {
1.2323 + ERR_PRINTF1(_L("CustomBankLoadedL returned false -> bank not loaded"));
1.2324 + ret = EInconclusive;
1.2325 + return ret;
1.2326 + }
1.2327 + }
1.2328 +
1.2329 + // check the custom bank
1.2330 + // NB if test type is InvalidId then we haven't bothered to load anything
1.2331 + TRAP(err, aMidi->NumberOfInstrumentsL(bankId, ETrue));
1.2332 + if(err != expErr)
1.2333 + {
1.2334 + ERR_PRINTF2(_L("NumberOfInstrumentsL(bankId, ETrue) gave error %d"), err);
1.2335 + ret = EFail;
1.2336 + return ret;
1.2337 + }
1.2338 + INFO_PRINTF2(_L("NumberOfInstrumentsL(bankId, ETrue) = %d"), numInstruments);
1.2339 +
1.2340 + if(iTestType == ETestNegative)
1.2341 + {
1.2342 + // negative test :- unload all, then check it again
1.2343 + TRAP(err, aMidi->UnloadAllCustomBanksL());
1.2344 + if(err != KErrNone)
1.2345 + {
1.2346 + ERR_PRINTF2(_L("UnloadAllCustomBanksL gave error %d"), err);
1.2347 + ret = EInconclusive;
1.2348 + return ret;
1.2349 + }
1.2350 + // check it. it should leave
1.2351 + TRAP(err, aMidi->NumberOfInstrumentsL(bankId, ETrue));
1.2352 + if(err != expErr)
1.2353 + {
1.2354 + ERR_PRINTF3(_L("NumberOfInstrumentsL gave error %d (expected %d)"), err, expErr);
1.2355 + ret = EFail;
1.2356 + return ret;
1.2357 + }
1.2358 + }
1.2359 +
1.2360 + return ret;
1.2361 + }
1.2362 +
1.2363 +//------------------------------------------------------------------
1.2364 +
1.2365 +
1.2366 +CTestGetInstrumentId::CTestGetInstrumentId(const TDesC& aTestName,
1.2367 + const TTestStepType aTestType)
1.2368 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2369 + {
1.2370 + }
1.2371 +
1.2372 +CTestGetInstrumentId* CTestGetInstrumentId::NewL(const TDesC& aTestName,
1.2373 + const TTestStepType aTestType)
1.2374 + {
1.2375 + CTestGetInstrumentId* self = new (ELeave) CTestGetInstrumentId(aTestName,
1.2376 + aTestType);
1.2377 + return self;
1.2378 + }
1.2379 +
1.2380 +TVerdict CTestGetInstrumentId::DoTestL(CMidiClientUtility* aMidi)
1.2381 + {
1.2382 + // TO DO : situation where no standard banks exist
1.2383 +
1.2384 + TVerdict ret = EPass;
1.2385 + TInt expErr;
1.2386 + TFileName bankFileName;
1.2387 +
1.2388 + _LIT8(KBankFileName, "Bank file name");
1.2389 + bankFileName.Copy(KBankFileName);
1.2390 + TInt bankId = 0;
1.2391 + TInt instrIndex = 0;
1.2392 + TInt instrId = 0;
1.2393 +
1.2394 + // expected results
1.2395 + switch(iTestType)
1.2396 + {
1.2397 + case ETestValid:
1.2398 + expErr = KErrNone;
1.2399 + bankId = 0;
1.2400 + instrIndex = 0;
1.2401 + break;
1.2402 + case ETestNegative:
1.2403 + expErr = KErrNotFound;
1.2404 + bankId = 0;
1.2405 + instrIndex = 0;
1.2406 + break;
1.2407 + case ETestInvalidId:
1.2408 + expErr = KErrArgument;
1.2409 + bankId = -2;
1.2410 + instrIndex = 0;
1.2411 + break;
1.2412 + case ETestInvalidIndex:
1.2413 + expErr = KErrArgument;
1.2414 + bankId = 0;
1.2415 + instrIndex = -2;
1.2416 + break;
1.2417 + default:
1.2418 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2419 + return EInconclusive;
1.2420 + }
1.2421 +
1.2422 + // check a known bank - standard
1.2423 + // *** TO DO : this will cause a failure with ETestNegative. To be re-done
1.2424 + // for no standard banks present
1.2425 + TRAPD(err, instrId = aMidi->GetInstrumentIdL(bankId, EFalse, instrIndex));
1.2426 + if(err != expErr)
1.2427 + {
1.2428 + ERR_PRINTF3(_L("GetInstrumentIdL(bankId, EFalse, instrIndex) gave error %d (expected %d)"), err, expErr);
1.2429 + ret = EFail;
1.2430 + return ret;
1.2431 + }
1.2432 + INFO_PRINTF2(_L("GetInstrumentIdL(bankId, EFalse, instrIndex) = %d"), instrId);
1.2433 +
1.2434 + if(iTestType != ETestInvalidId && iTestType != ETestInvalidIndex)
1.2435 + {
1.2436 + // load a known bank - custom
1.2437 + TRAPD(err, aMidi->LoadCustomBankL(bankFileName, bankId));
1.2438 + if(err != KErrNone)
1.2439 + {
1.2440 + ERR_PRINTF2(_L("LoadCustomBankL left with error %d"), err);
1.2441 + ret = EInconclusive;
1.2442 + return ret;
1.2443 + }
1.2444 + // ensure it's loaded
1.2445 + TBool loaded = EFalse;
1.2446 + TRAP(err, loaded = aMidi->CustomBankLoadedL(bankId));
1.2447 + if(err != KErrNone)
1.2448 + {
1.2449 + ERR_PRINTF2(_L("CustomBankLoadedL left with error %d"), err);
1.2450 + ret = EInconclusive;
1.2451 + return ret;
1.2452 + }
1.2453 + if(!loaded)
1.2454 + {
1.2455 + ERR_PRINTF1(_L("CustomBankLoadedL returned false -> bank not loaded"));
1.2456 + ret = EInconclusive;
1.2457 + return ret;
1.2458 + }
1.2459 + }
1.2460 +
1.2461 + // check the custom bank
1.2462 + // NB if test type is InvalidId/Index then we haven't bothered to load anything
1.2463 + TRAP(err, instrId = aMidi->GetInstrumentIdL(bankId, ETrue, instrIndex));
1.2464 + if(err != expErr)
1.2465 + {
1.2466 + ERR_PRINTF2(_L("GetInstrumentIdL(bankId, ETrue, instrIndex) gave error %d"), err);
1.2467 + ret = EFail;
1.2468 + return ret;
1.2469 + }
1.2470 + INFO_PRINTF2(_L("GetInstrumentIdL(bankId, ETrue, instrIndex) = %d"), instrId);
1.2471 +
1.2472 + if(iTestType == ETestNegative)
1.2473 + {
1.2474 + // negative test :- unload all, then check it again
1.2475 + TRAP(err, aMidi->UnloadAllCustomBanksL());
1.2476 + if(err != KErrNone)
1.2477 + {
1.2478 + ERR_PRINTF2(_L("UnloadAllCustomBanksL gave error %d"), err);
1.2479 + ret = EInconclusive;
1.2480 + return ret;
1.2481 + }
1.2482 + // check it. it should leave
1.2483 + TRAP(err, instrId = aMidi->GetInstrumentIdL(bankId, ETrue, instrIndex));
1.2484 + if(err != expErr)
1.2485 + {
1.2486 + ERR_PRINTF3(_L("GetInstrumentIdL gave error %d (expected %d)"), err, expErr);
1.2487 + ret = EFail;
1.2488 + return ret;
1.2489 + }
1.2490 + }
1.2491 +
1.2492 + return ret;
1.2493 + }
1.2494 +
1.2495 +//Check this
1.2496 +//Change it to return EFail for failing negative test
1.2497 +//------------------------------------------------------------------
1.2498 +CTestReturnsInstrumentName::CTestReturnsInstrumentName(const TDesC& aTestName,
1.2499 + const TTestStepType aTestType)
1.2500 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2501 + {
1.2502 + }
1.2503 +
1.2504 +CTestReturnsInstrumentName* CTestReturnsInstrumentName::NewL(const TDesC& aTestName,
1.2505 + const TTestStepType aTestType)
1.2506 + {
1.2507 + CTestReturnsInstrumentName* self = new (ELeave) CTestReturnsInstrumentName(aTestName,
1.2508 + aTestType);
1.2509 + return self;
1.2510 + }
1.2511 +
1.2512 +TVerdict CTestReturnsInstrumentName::DoTestL(CMidiClientUtility* aMidi)
1.2513 + {
1.2514 + TVerdict ret = EPass;
1.2515 + TInt expErr;
1.2516 + //TFileName bankFileName;
1.2517 +
1.2518 + TInt bankId = 0;
1.2519 + TInt instrId = 0;
1.2520 + HBufC* instrName = NULL;
1.2521 +
1.2522 + // expected results
1.2523 + switch(iTestType)
1.2524 + {
1.2525 + case ETestValid:
1.2526 + expErr = KErrNone;
1.2527 + bankId = 0;
1.2528 + instrId = 89;
1.2529 + break;
1.2530 + case ETestNegative:
1.2531 + expErr = KErrArgument;
1.2532 + bankId = 0;
1.2533 + instrId = -241;
1.2534 + break;
1.2535 + default:
1.2536 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2537 + return EInconclusive;
1.2538 + }
1.2539 +
1.2540 + // check a known bank - standard
1.2541 + // *** TO DO : custom?
1.2542 +
1.2543 + TRAPD(err, instrName = aMidi->InstrumentNameL(bankId, EFalse, instrId));
1.2544 + INFO_PRINTF3(_L("InstrumentNameL(bankId, EFalse, instrId) gave error %d (expected %d)"), err, expErr);
1.2545 + if(err != expErr)
1.2546 + {
1.2547 + //ret = EInconclusive;
1.2548 + ret = EFail;
1.2549 + return ret;
1.2550 + }
1.2551 + // don't try and do this for negative test! it'll panic
1.2552 + if(iTestType == ETestValid)
1.2553 + INFO_PRINTF2(_L("InstrumentNameL(bankId, EFalse, instrId) = \'%S\'"), instrName);
1.2554 +
1.2555 + delete instrName;
1.2556 + return ret;
1.2557 + }
1.2558 +
1.2559 +
1.2560 +
1.2561 +//------------------------------------------------------------------
1.2562 +// Tests that the GetInstrumentL() doesn't return KErrArgument when the
1.2563 +// channel value is between 0 and 15, but it will return KErrArgument
1.2564 +// when the channel value is out of range
1.2565 +
1.2566 +CTestGetInstrument::CTestGetInstrument(const TDesC& aTestName,
1.2567 + const TTestStepType aTestType)
1.2568 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2569 + {
1.2570 + }
1.2571 +
1.2572 +CTestGetInstrument* CTestGetInstrument::NewL(const TDesC& aTestName,
1.2573 + const TTestStepType aTestType)
1.2574 + {
1.2575 + CTestGetInstrument* self = new (ELeave) CTestGetInstrument(aTestName,
1.2576 + aTestType);
1.2577 + return self;
1.2578 + }
1.2579 +
1.2580 +TVerdict CTestGetInstrument::DoTestL(CMidiClientUtility* aMidi)
1.2581 + {
1.2582 + TVerdict ret = EPass;
1.2583 + TInt instrumentId = 0;
1.2584 + TInt bankId = 0;
1.2585 + TInt validChannelId = 0;
1.2586 + TInt invalidChannelId = 16;
1.2587 +
1.2588 + TRAPD(err, aMidi->GetInstrumentL(validChannelId, instrumentId, bankId));
1.2589 +
1.2590 + if(err == KErrArgument)
1.2591 + {
1.2592 + ERR_PRINTF2(_L("GetInstrumentL(validChannelId, ...) gave an error = %d"), err);
1.2593 + ret = EFail;
1.2594 + return ret;
1.2595 + }
1.2596 +
1.2597 + TRAPD(err1, aMidi->GetInstrumentL(invalidChannelId, instrumentId, bankId));
1.2598 +
1.2599 + if(err1 != KErrArgument)
1.2600 + {
1.2601 + ERR_PRINTF2(_L("GetInstrumentL(invalidChannelId, ...) gave an error = %d"), err);
1.2602 + ret = EFail;
1.2603 + return ret;
1.2604 + }
1.2605 +
1.2606 + return ret;
1.2607 + }
1.2608 +
1.2609 +//------------------------------------------------------------------
1.2610 +
1.2611 +CTestSetInstrument::CTestSetInstrument(const TDesC& aTestName,
1.2612 + const TTestStepType aTestType)
1.2613 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2614 + {
1.2615 + }
1.2616 +
1.2617 +CTestSetInstrument* CTestSetInstrument::NewL(const TDesC& aTestName,
1.2618 + const TTestStepType aTestType)
1.2619 + {
1.2620 + CTestSetInstrument* self = new (ELeave) CTestSetInstrument(aTestName,
1.2621 + aTestType);
1.2622 + return self;
1.2623 + }
1.2624 +
1.2625 +TVerdict CTestSetInstrument::DoTestL(CMidiClientUtility* aMidi)
1.2626 + {
1.2627 + TVerdict ret = EPass;
1.2628 + TInt expErr;
1.2629 + //TFileName bankFileName;
1.2630 +
1.2631 + TInt bankId = 0;
1.2632 + TInt channelId = 0;
1.2633 + TInt instrId = 0;
1.2634 +
1.2635 + // expected results
1.2636 + switch(iTestType)
1.2637 + {
1.2638 + case ETestValid:
1.2639 + expErr = KErrNone;
1.2640 + bankId = 0;
1.2641 + channelId = 0;
1.2642 + instrId = 89;
1.2643 + break;
1.2644 + case ETestInvalidChannel:
1.2645 + expErr = KErrNotFound;
1.2646 + bankId = 0;
1.2647 + channelId = -2;
1.2648 + instrId = 89;
1.2649 + break;
1.2650 + case ETestInvalidId:
1.2651 + expErr = KErrNotFound;
1.2652 + bankId = 0;
1.2653 + channelId = 0;
1.2654 + instrId = -241;
1.2655 + break;
1.2656 + default:
1.2657 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2658 + return EInconclusive;
1.2659 + }
1.2660 +
1.2661 + // *** TO DO : custom?
1.2662 +
1.2663 + TRAPD(err, aMidi->SetInstrumentL(channelId, bankId, instrId));
1.2664 + INFO_PRINTF3(_L("SetInstrumentL(channelId, bankId, instrId) gave error %d (expected %d)"), err, expErr);
1.2665 + if(err != expErr)
1.2666 + {
1.2667 + ret = EFail;
1.2668 + return ret;
1.2669 + }
1.2670 +
1.2671 + return ret;
1.2672 + }
1.2673 +
1.2674 +//------------------------------------------------------------------
1.2675 +
1.2676 +
1.2677 +CTestLoadCustomInstrument::CTestLoadCustomInstrument(const TDesC& aTestName,
1.2678 + const TTestStepType aTestType)
1.2679 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2680 + {
1.2681 + }
1.2682 +
1.2683 +CTestLoadCustomInstrument* CTestLoadCustomInstrument::NewL(const TDesC& aTestName,
1.2684 + const TTestStepType aTestType)
1.2685 + {
1.2686 + CTestLoadCustomInstrument* self = new (ELeave) CTestLoadCustomInstrument(aTestName,
1.2687 + aTestType);
1.2688 + return self;
1.2689 + }
1.2690 +
1.2691 +TVerdict CTestLoadCustomInstrument::DoTestL(CMidiClientUtility* aMidi)
1.2692 + {
1.2693 + // TO DO : need instrument file which we can load, with known bank and instrument IDs
1.2694 + // Negative tests to be done properly.
1.2695 +
1.2696 + TVerdict ret = EPass;
1.2697 + TInt expErr;
1.2698 +
1.2699 + _LIT(KInstrumentFile, "Instrument File Name"); // *** to change
1.2700 + _LIT(KBadInstrumentFile, "Bad Instrument File Name"); // *** to change
1.2701 + TFileName instFileName;
1.2702 +
1.2703 + TInt fileBankId = 90;
1.2704 + TInt fileInstrId = 91;
1.2705 + TInt bankId = 92;
1.2706 + TInt instrId = 93;
1.2707 +
1.2708 + // expected results
1.2709 + switch(iTestType)
1.2710 + {
1.2711 + case ETestValid:
1.2712 + expErr = KErrNone;
1.2713 + instFileName.Copy(KInstrumentFile);
1.2714 + break;
1.2715 + case ETestInvalidId:
1.2716 + expErr = KErrArgument;
1.2717 + instFileName.Copy(KInstrumentFile);
1.2718 + fileBankId = -2;
1.2719 + break;
1.2720 + case ETestAlreadyLoaded:
1.2721 + // ** to do : load once and attempt to load again.
1.2722 + // when instrument data files are available, this will work
1.2723 + instFileName.Copy(KInstrumentFile);
1.2724 + expErr = KErrInUse;
1.2725 + break;
1.2726 + case ETestUnsupported: // ** to define test data for this
1.2727 + instFileName.Copy(KBadInstrumentFile);
1.2728 + expErr = KErrNotSupported;
1.2729 + break;
1.2730 + default:
1.2731 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2732 + return EInconclusive;
1.2733 + }
1.2734 +
1.2735 + // if testing already loaded, preload the instrument here
1.2736 + if(iTestType == ETestAlreadyLoaded)
1.2737 + {
1.2738 + TRAPD(err, aMidi->LoadCustomInstrumentL(instFileName, fileBankId, fileInstrId, bankId, instrId));
1.2739 + INFO_PRINTF2(_L("Preload : LoadCustomInstrumentL gave error %d"), err);
1.2740 + if(err != KErrNone)
1.2741 + {
1.2742 + ret = EInconclusive;
1.2743 + return ret;
1.2744 + }
1.2745 + }
1.2746 +
1.2747 + // load the instrument for real
1.2748 + TRAPD(err, aMidi->LoadCustomInstrumentL(instFileName, fileBankId, fileInstrId, bankId, instrId));
1.2749 + INFO_PRINTF3(_L("LoadCustomInstrumentL gave error %d (expected %d)"), err, expErr);
1.2750 + if(err != expErr)
1.2751 + {
1.2752 + ret = EFail;
1.2753 + return ret;
1.2754 + }
1.2755 +
1.2756 + return ret;
1.2757 + }
1.2758 +
1.2759 +
1.2760 +//------------------------------------------------------------------
1.2761 +
1.2762 +CTestUnloadCustomInstrument::CTestUnloadCustomInstrument(const TDesC& aTestName,
1.2763 + const TTestStepType aTestType)
1.2764 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2765 + {
1.2766 + }
1.2767 +
1.2768 +CTestUnloadCustomInstrument* CTestUnloadCustomInstrument::NewL(const TDesC& aTestName,
1.2769 + const TTestStepType aTestType)
1.2770 + {
1.2771 + CTestUnloadCustomInstrument* self = new (ELeave) CTestUnloadCustomInstrument(aTestName,
1.2772 + aTestType);
1.2773 + return self;
1.2774 + }
1.2775 +
1.2776 +TVerdict CTestUnloadCustomInstrument::DoTestL(CMidiClientUtility* aMidi)
1.2777 + {
1.2778 + TVerdict ret = EPass;
1.2779 + TInt expErr;
1.2780 +
1.2781 + _LIT(KInstrumentFile, "Instrument File Name"); // *** to change
1.2782 + TFileName instFileName;
1.2783 +
1.2784 + TInt fileBankId = 90;
1.2785 + TInt fileInstrId = 91;
1.2786 + TInt bankId = 92;
1.2787 + TInt instrId = 93;
1.2788 +
1.2789 + // expected results
1.2790 + switch(iTestType)
1.2791 + {
1.2792 + case ETestValid:
1.2793 + expErr = KErrNone;
1.2794 + instFileName.Copy(KInstrumentFile);
1.2795 + break;
1.2796 + case ETestInvalidId:
1.2797 + expErr = KErrNotFound;
1.2798 + instFileName.Copy(KInstrumentFile);
1.2799 + bankId = -2;
1.2800 + break;
1.2801 + case ETestNotLoaded:
1.2802 + expErr = KErrNotFound;
1.2803 + instFileName.Copy(KInstrumentFile);
1.2804 + break;
1.2805 + case ETestNotUnloadable: // ** TO DO : define test data for this
1.2806 + expErr = KErrNotSupported;
1.2807 + break;
1.2808 + default:
1.2809 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2810 + return EInconclusive;
1.2811 + }
1.2812 +
1.2813 + // preload the instrument here
1.2814 + if(iTestType == ETestValid)
1.2815 + {
1.2816 + TRAPD(err, aMidi->LoadCustomInstrumentL(instFileName, fileBankId, fileInstrId, bankId, instrId));
1.2817 + INFO_PRINTF2(_L("Preload : LoadCustomInstrumentL gave error %d"), err);
1.2818 + if(err != KErrNone)
1.2819 + {
1.2820 + ret = EInconclusive;
1.2821 + return ret;
1.2822 + }
1.2823 + }
1.2824 +
1.2825 + // now unload it
1.2826 + TRAPD(err, aMidi->UnloadCustomInstrumentL(bankId, instrId));
1.2827 + INFO_PRINTF3(_L("UnloadCustomInstrumentL gave error %d (expected %d)"), err, expErr);
1.2828 + if(err != expErr)
1.2829 + {
1.2830 + ret = EFail;
1.2831 + return ret;
1.2832 + }
1.2833 +
1.2834 + return ret;
1.2835 + }
1.2836 +
1.2837 +//------------------------------------------------------------------
1.2838 +
1.2839 +
1.2840 +CTestPercussionKeyName::CTestPercussionKeyName(const TDesC& aTestName,
1.2841 + const TTestStepType aTestType)
1.2842 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2843 + {
1.2844 + }
1.2845 +
1.2846 +CTestPercussionKeyName* CTestPercussionKeyName::NewL(const TDesC& aTestName,
1.2847 + const TTestStepType aTestType)
1.2848 + {
1.2849 + CTestPercussionKeyName* self = new (ELeave) CTestPercussionKeyName(aTestName,
1.2850 + aTestType);
1.2851 + return self;
1.2852 + }
1.2853 +
1.2854 +TVerdict CTestPercussionKeyName::DoTestL(CMidiClientUtility* aMidi)
1.2855 + {
1.2856 + // *** NB the actual arguments do not match those in the current API or test specs
1.2857 + TVerdict ret = EPass;
1.2858 + TInt expErr;
1.2859 + //TFileName bankFileName;
1.2860 +
1.2861 + TInt bankId = 0;
1.2862 + TInt instrId = 89;
1.2863 + TInt keyId = 0;
1.2864 + HBufC* keyName = NULL;
1.2865 +
1.2866 + // expected results
1.2867 + switch(iTestType)
1.2868 + {
1.2869 + case ETestValid:
1.2870 + expErr = KErrNone;
1.2871 + break;
1.2872 + case ETestInvalidId:
1.2873 + expErr = KErrNotFound;
1.2874 + keyId = -2;
1.2875 + break;
1.2876 + default:
1.2877 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2878 + return EInconclusive;
1.2879 + }
1.2880 +
1.2881 + // check a known bank - standard
1.2882 + // *** TO DO : custom?
1.2883 +
1.2884 + TRAPD(err, keyName = aMidi->PercussionKeyNameL(keyId, bankId, EFalse, instrId));
1.2885 + INFO_PRINTF3(_L("PercussionKeyNameL gave error %d (expected %d)"), err, expErr);
1.2886 + if(err != expErr)
1.2887 + {
1.2888 + ret = EFail;
1.2889 + return ret;
1.2890 + }
1.2891 + // don't try and do this for negative test! it'll panic
1.2892 + if(iTestType == ETestValid)
1.2893 + INFO_PRINTF2(_L("PercussionKeyNameL(keyId, bankId, EFalse, instrId) = \'%S\'"), keyName);
1.2894 +
1.2895 + delete keyName;
1.2896 + return ret;
1.2897 + }
1.2898 +
1.2899 +//Check this//
1.2900 +//Not sure how to implement 'no opened resource'
1.2901 +//------------------------------------------------------------------
1.2902 +CTestStopTime::CTestStopTime(const TDesC& aTestName,
1.2903 + const TTestStepType aTestType)
1.2904 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2905 + {
1.2906 + }
1.2907 +
1.2908 +CTestStopTime* CTestStopTime::NewL(const TDesC& aTestName,
1.2909 + const TTestStepType aTestType)
1.2910 + {
1.2911 + CTestStopTime* self = new (ELeave) CTestStopTime(aTestName,
1.2912 + aTestType);
1.2913 + return self;
1.2914 + }
1.2915 +
1.2916 +TVerdict CTestStopTime::DoTestL(CMidiClientUtility* aMidi)
1.2917 + {
1.2918 + TVerdict ret = EPass;
1.2919 + TInt expErr;
1.2920 + TTimeIntervalMicroSeconds stopTime(0);
1.2921 +
1.2922 + // expected results
1.2923 + switch(iTestType)
1.2924 + {
1.2925 + case ETestValid:
1.2926 + expErr = KErrNone;
1.2927 + break;
1.2928 +
1.2929 + // NB no negative test specified
1.2930 + //Not sure how to implement 'no opened resource'
1.2931 + case ETestNoResource:
1.2932 + expErr = KErrNotReady;
1.2933 + break;
1.2934 +
1.2935 + default:
1.2936 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2937 + return EInconclusive;
1.2938 + }
1.2939 +
1.2940 + TRAPD(err, aMidi->StopTimeL(stopTime));
1.2941 + INFO_PRINTF3(_L("StopTimeL gave error %d (expected %d)"), err, expErr);
1.2942 + if(err != expErr)
1.2943 + {
1.2944 + ret = EFail;
1.2945 + return ret;
1.2946 + }
1.2947 + INFO_PRINTF2(_L("StopTime = %ld"), I64INT(stopTime.Int64()));
1.2948 + return ret;
1.2949 + }
1.2950 +
1.2951 +
1.2952 +//------------------------------------------------------------------
1.2953 +
1.2954 +
1.2955 +CTestSetStopTime::CTestSetStopTime(const TDesC& aTestName,
1.2956 + const TTestStepType aTestType)
1.2957 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.2958 + {
1.2959 + }
1.2960 +
1.2961 +CTestSetStopTime* CTestSetStopTime::NewL(const TDesC& aTestName,
1.2962 + const TTestStepType aTestType)
1.2963 + {
1.2964 + CTestSetStopTime* self = new (ELeave) CTestSetStopTime(aTestName,
1.2965 + aTestType);
1.2966 + return self;
1.2967 + }
1.2968 +
1.2969 +TVerdict CTestSetStopTime::DoTestL(CMidiClientUtility* aMidi)
1.2970 + {
1.2971 + TVerdict ret = EPass;
1.2972 + TInt expErr;
1.2973 + TTimeIntervalMicroSeconds stopTime(999);
1.2974 +
1.2975 + // expected results
1.2976 + switch(iTestType)
1.2977 + {
1.2978 + case ETestValid:
1.2979 + expErr = KErrNone;
1.2980 + break;
1.2981 + case ETestOutOfRangeHigh:
1.2982 + stopTime = 999999999;
1.2983 + expErr = KErrArgument;
1.2984 + break;
1.2985 + case ETestOutOfRangeLow:
1.2986 + stopTime = -1;
1.2987 + expErr = KErrArgument;
1.2988 + break;
1.2989 + default:
1.2990 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.2991 + return EInconclusive;
1.2992 + }
1.2993 +
1.2994 + TRAPD(err, aMidi->SetStopTimeL(stopTime));
1.2995 + INFO_PRINTF3(_L("SetStopTimeL gave error %d (expected %d)"), err, expErr);
1.2996 + if(err != expErr)
1.2997 + {
1.2998 + ret = EFail;
1.2999 + return ret;
1.3000 + }
1.3001 +
1.3002 + // check set correctly if a valid test
1.3003 + if (iTestType == ETestValid)
1.3004 + {
1.3005 + TTimeIntervalMicroSeconds newStopTime(999);
1.3006 + TRAP(err, aMidi->StopTimeL(newStopTime));
1.3007 + INFO_PRINTF3(_L("StopTimeL gave error %d (expected %d)"), err, expErr);
1.3008 +
1.3009 + if(err != expErr)
1.3010 + {
1.3011 + ret = EInconclusive;
1.3012 + return ret;
1.3013 + }
1.3014 + INFO_PRINTF2(_L("StopTime = %ld"), I64INT(newStopTime.Int64()));
1.3015 +
1.3016 + if(newStopTime != stopTime)
1.3017 + {
1.3018 + ERR_PRINTF2(_L("Error : expected %ld"), I64INT(stopTime.Int64()));
1.3019 + ret = EFail;
1.3020 + return ret;
1.3021 + }
1.3022 + }
1.3023 +
1.3024 + return ret;
1.3025 + }
1.3026 +
1.3027 +//------------------------------------------------------------------
1.3028 +
1.3029 +
1.3030 +CTestSetRepeats::CTestSetRepeats(const TDesC& aTestName,
1.3031 + const TTestStepType aTestType)
1.3032 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3033 + {
1.3034 + }
1.3035 +
1.3036 +CTestSetRepeats* CTestSetRepeats::NewL(const TDesC& aTestName,
1.3037 + const TTestStepType aTestType)
1.3038 + {
1.3039 + CTestSetRepeats* self = new (ELeave) CTestSetRepeats(aTestName,
1.3040 + aTestType);
1.3041 + return self;
1.3042 + }
1.3043 +
1.3044 +TVerdict CTestSetRepeats::DoTestL(CMidiClientUtility* aMidi)
1.3045 + {
1.3046 + TVerdict ret = EPass;
1.3047 + TInt expErr;
1.3048 + TInt repeats = 0;
1.3049 + TTimeIntervalMicroSeconds silentTime(1000000);
1.3050 +
1.3051 + // expected results
1.3052 + switch(iTestType)
1.3053 + {
1.3054 + case ETestValid:
1.3055 + expErr = KErrNone;
1.3056 + break;
1.3057 + // ** NB these are testing ONE out-of-range argument at a time. Suggest
1.3058 + // we modify the test spec to go with this?
1.3059 + case ETestOutOfRange:
1.3060 + expErr = KErrArgument;
1.3061 + //repeats = 9999; // ** XXX : max. range of repeats?
1.3062 + repeats = -1;
1.3063 + silentTime = 1000000;
1.3064 + break;
1.3065 + default:
1.3066 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3067 + return EInconclusive;
1.3068 + }
1.3069 +
1.3070 + TRAPD(err, aMidi->SetRepeatsL(repeats, silentTime));
1.3071 +
1.3072 + // check set correctly if a valid test
1.3073 + if (iTestType == ETestValid)
1.3074 + {
1.3075 + // check the repeats value
1.3076 + TInt currRepeats = -1;
1.3077 + currRepeats = aMidi->GetRepeats();
1.3078 +
1.3079 + INFO_PRINTF2(_L("Repeats = %d"), currRepeats);
1.3080 +
1.3081 + if(currRepeats != repeats)
1.3082 + {
1.3083 + ERR_PRINTF2(_L("Error : expected %d"), currRepeats);
1.3084 + ret = EFail;
1.3085 + return ret;
1.3086 + }
1.3087 + }
1.3088 +
1.3089 + INFO_PRINTF3(_L("SetRepeatsL gave error %d (expected %d)"), err, expErr);
1.3090 + if(err != expErr)
1.3091 + {
1.3092 + ret = EFail;
1.3093 + return ret;
1.3094 + }
1.3095 +
1.3096 + return ret;
1.3097 + }
1.3098 +
1.3099 +//------------------------------------------------------------------
1.3100 +// This test case has two steps:
1.3101 +// 1. High Polyphony Song vs. Low Polyphony Midi Utility
1.3102 +// - a test file has exactly 57 voices from beginning to end
1.3103 +// - during the instantiation of utility, the Maximum Polyphony is default to 48 implicitly.
1.3104 +// For this case:
1.3105 +// MaxPolyphonyL() return value is 48
1.3106 +// PolyphonyL() return value is 48 (number of active voice the engine is playing now,
1.3107 +// this is being limited by the MaxPolyphonyL() number)
1.3108 +//
1.3109 +//
1.3110 +// 2. Low Polyphony Song vs. High Polyphony Midi Utility
1.3111 +// - a test file has exactly 57 voices from beginning to end
1.3112 +// - during the instantiation of utility, the Maximum Polyphony is default to 60 implicitly
1.3113 +// For this case:
1.3114 +// MaxPolyphonyL() return value is 60
1.3115 +// PolyphonyL() return value is 57
1.3116 +
1.3117 +// constants for the test case
1.3118 +const TUint8 KMaxPolyphonyValue1 = 48;
1.3119 +const TUint8 KMaxPolyphonyValue2 = 60;
1.3120 +const TUint8 KPolyphonyValue = 57;
1.3121 +
1.3122 +CTestPolyphony::CTestPolyphony(const TDesC& aTestName,
1.3123 + const TTestStepType aTestType)
1.3124 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3125 + {
1.3126 + }
1.3127 +
1.3128 +CTestPolyphony* CTestPolyphony::NewL(const TDesC& aTestName,
1.3129 + const TTestStepType aTestType)
1.3130 + {
1.3131 + CTestPolyphony* self = new (ELeave) CTestPolyphony(aTestName,
1.3132 + aTestType);
1.3133 + return self;
1.3134 + }
1.3135 +
1.3136 +TVerdict CTestPolyphony::DoTestL(CMidiClientUtility* aMidi)
1.3137 + {
1.3138 + TVerdict ret = EPass;
1.3139 + TInt poly = 0;
1.3140 + TInt maxPoly = 0;
1.3141 + TInt expErr = 0;
1.3142 +
1.3143 + // expected results
1.3144 + switch(iTestType)
1.3145 + {
1.3146 + case ETestValid:
1.3147 + expErr = KErrNone;
1.3148 + break;
1.3149 + // NB no negative test specified
1.3150 + default:
1.3151 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3152 + return EInconclusive;
1.3153 + }
1.3154 +
1.3155 + // set the maxPolyphony to KMaxPolyphponyValue1
1.3156 + TRAPD(err, aMidi->SetMaxPolyphonyL(KMaxPolyphonyValue1));
1.3157 + if (err != expErr)
1.3158 + {
1.3159 + INFO_PRINTF2(_L("SetMaxPolyphonyL failed (error = %d)"), err);
1.3160 + ret = EFail;
1.3161 + return ret;
1.3162 + }
1.3163 +
1.3164 + // verify that the maxPolyphony value was correctly set
1.3165 + TRAPD(err1, maxPoly = aMidi->MaxPolyphonyL());
1.3166 + if (err1 != expErr)
1.3167 + {
1.3168 + INFO_PRINTF2(_L("MaxPolyphonyL failed (error = %d)"), err);
1.3169 + ret = EFail;
1.3170 + return ret;
1.3171 + }
1.3172 + INFO_PRINTF3(_L("The maximum number of simultaneous voices the engine can handle : %d (expected %d)"), maxPoly, KMaxPolyphonyValue1);
1.3173 +
1.3174 + // get the number of the currently active voices. This value is set as
1.3175 + // KPolyphonyValue, but because the max number of voices that can be handled by the
1.3176 + // engine is smaller than the currently active voce, PolyphonyL() will
1.3177 + // return the MaxPolyphony() value
1.3178 + TRAPD(err2, poly = aMidi->PolyphonyL());
1.3179 +
1.3180 + if (err2 != expErr)
1.3181 + {
1.3182 + INFO_PRINTF2(_L("PolyphonyL failed (error = %d)"), err);
1.3183 + ret = EFail;
1.3184 + return ret;
1.3185 + }
1.3186 +
1.3187 + INFO_PRINTF3(_L("The number of currently active voices is: %d (expected %d)"), poly, KMaxPolyphonyValue1);
1.3188 + INFO_PRINTF1(_L("----------------------------------------------------------"));
1.3189 +
1.3190 + // set the maxPolyphony to KMaxPolyphonyValue2
1.3191 + TRAPD(err3, aMidi->SetMaxPolyphonyL(KMaxPolyphonyValue2));
1.3192 + if (err3 != expErr)
1.3193 + {
1.3194 + INFO_PRINTF2(_L("SetMaxPolyphonyL failed (error = %d)"), err);
1.3195 + ret = EFail;
1.3196 + return ret;
1.3197 + }
1.3198 +
1.3199 + // verify that the maxPolyphony value was correctly set
1.3200 + TRAPD(err4, maxPoly = aMidi->MaxPolyphonyL());
1.3201 + if (err4 != expErr)
1.3202 + {
1.3203 + INFO_PRINTF2(_L("MaxPolyphonyL failed (error = %d)"), err);
1.3204 + ret = EFail;
1.3205 + return ret;
1.3206 + }
1.3207 + INFO_PRINTF3(_L("The maximum number of simultaneous voices the engine can handle : %d (expected %d)"), maxPoly, KMaxPolyphonyValue2);
1.3208 +
1.3209 + // get the number of the currently active voices. This value is set as
1.3210 + // KPolyphonyValue, but because the max number of voices that can be handled by the
1.3211 + // engine is smaller than the currently active voce, PolyphonyL() will
1.3212 + // return the MaxPolyphony() value
1.3213 + TRAPD(err5, poly = aMidi->PolyphonyL());
1.3214 + if (err5 != expErr)
1.3215 + {
1.3216 + INFO_PRINTF2(_L("PolyphonyL failed (error = %d)"), err);
1.3217 + ret = EFail;
1.3218 + return ret;
1.3219 + }
1.3220 + INFO_PRINTF3(_L("The number of currently active voices is: %d (expected %d)"), poly, KPolyphonyValue);
1.3221 +
1.3222 + return ret;
1.3223 + }
1.3224 +
1.3225 +//Check this (0086) //
1.3226 +//Not sure how to implement 'no opened resource'
1.3227 +//------------------------------------------------------------------
1.3228 +
1.3229 +
1.3230 +CTestChannelsSupported::CTestChannelsSupported(const TDesC& aTestName,
1.3231 + const TTestStepType aTestType)
1.3232 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3233 + {
1.3234 + }
1.3235 +
1.3236 +CTestChannelsSupported* CTestChannelsSupported::NewL(const TDesC& aTestName,
1.3237 + const TTestStepType aTestType)
1.3238 + {
1.3239 + CTestChannelsSupported* self = new (ELeave) CTestChannelsSupported(aTestName,
1.3240 + aTestType);
1.3241 + return self;
1.3242 + }
1.3243 +
1.3244 +TVerdict CTestChannelsSupported::DoTestL(CMidiClientUtility* aMidi)
1.3245 + {
1.3246 + TVerdict ret = EPass;
1.3247 + TInt expErr;
1.3248 + TInt numChannels = 0;
1.3249 +
1.3250 + // expected results
1.3251 + switch(iTestType)
1.3252 + {
1.3253 + case ETestValid:
1.3254 + expErr = KErrNone;
1.3255 + break;
1.3256 +
1.3257 + // NB no negative test specified
1.3258 +
1.3259 + //Not sure how to implement 'no opened resource'
1.3260 + case ETestNoResource:
1.3261 + expErr = KErrNotReady;
1.3262 + break;
1.3263 +
1.3264 + default:
1.3265 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3266 + return EInconclusive;
1.3267 + }
1.3268 +
1.3269 + TRAPD(err, numChannels = aMidi->ChannelsSupportedL());
1.3270 + INFO_PRINTF3(_L("ChannelsSupportedL gave error %d (expected %d)"), err, expErr);
1.3271 + if(err != expErr)
1.3272 + {
1.3273 + ret = EFail;
1.3274 + return ret;
1.3275 + }
1.3276 + INFO_PRINTF2(_L("Channels supported = %d"), numChannels);
1.3277 + return ret;
1.3278 + }
1.3279 +
1.3280 +//------------------------------------------------------------------
1.3281 +// Checks the ChannelVolumeL(...) method behaivior
1.3282 +// - if the argument passed in is a valid channel, the test should
1.3283 +// not return any error code, but should return the expected volume
1.3284 +// value
1.3285 +// - if the argument passed in is an invalid channel, the test should
1.3286 +// return KErrArgument
1.3287 +
1.3288 +CTestReturnChannelVolume::CTestReturnChannelVolume(const TDesC& aTestName, const TTestStepType aTestType)
1.3289 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3290 + {
1.3291 + }
1.3292 +
1.3293 +CTestReturnChannelVolume* CTestReturnChannelVolume::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3294 + {
1.3295 + CTestReturnChannelVolume* self = new(ELeave) CTestReturnChannelVolume(aTestName, aTestType);
1.3296 + return self;
1.3297 + }
1.3298 +
1.3299 +TVerdict CTestReturnChannelVolume::DoTestL(CMidiClientUtility* aMidi)
1.3300 + {
1.3301 + TInt channel = 2;
1.3302 + TInt volume = 0;
1.3303 +
1.3304 + INFO_PRINTF1(_L("CMidiClientUtility: Return channel volume"));
1.3305 +
1.3306 + // positive test
1.3307 + if (iTestType == ETestValid)
1.3308 + {
1.3309 + // if the test is valid check that the value returned for the
1.3310 + // volume is correct
1.3311 + TInt chanVolume = aMidi->MaxChannelVolumeL() - 10;
1.3312 + TRAPD(err1, aMidi->SetChannelVolumeL(channel, chanVolume));
1.3313 + if (err1 != KErrNone)
1.3314 + {
1.3315 + ERR_PRINTF2(_L("SetChannelVolumeL gave error %d"),err1);
1.3316 + return EFail;
1.3317 + }
1.3318 +
1.3319 + TRAPD(err, volume = aMidi->ChannelVolumeL(channel));
1.3320 + if (err != KErrNone)
1.3321 + {
1.3322 + ERR_PRINTF2(_L("ChannelVolumeL gave error %d (expected KErrNone)"),err);
1.3323 + return EFail;
1.3324 + }
1.3325 +
1.3326 + if (volume != chanVolume)
1.3327 + {
1.3328 + ERR_PRINTF3(_L("ChannelVolumeL retrieve volume value %d (expected %d)"),volume, chanVolume);
1.3329 + return EFail;
1.3330 + }
1.3331 + return EPass;
1.3332 + }
1.3333 +
1.3334 + // negative test
1.3335 + if (iTestType == ETestInvalidChannel)
1.3336 + {
1.3337 + channel = -1;
1.3338 + TRAPD(err, aMidi->ChannelVolumeL(channel));
1.3339 + if (err != KErrArgument)
1.3340 + {
1.3341 + ERR_PRINTF2(_L("ChannelVolumeL gave error %d (expected KErrArgument)"),err);
1.3342 + return EFail;
1.3343 + }
1.3344 + return EPass;
1.3345 + }
1.3346 +
1.3347 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3348 + return EInconclusive;
1.3349 + }
1.3350 +
1.3351 +
1.3352 +//Check This//
1.3353 +//------------------------------------------------------------------
1.3354 +CTestMaxChannelVolume::CTestMaxChannelVolume(const TDesC& aTestName, const TTestStepType aTestType)
1.3355 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3356 + {
1.3357 + }
1.3358 +
1.3359 +CTestMaxChannelVolume* CTestMaxChannelVolume::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3360 + {
1.3361 + CTestMaxChannelVolume* self = new(ELeave) CTestMaxChannelVolume(aTestName, aTestType);
1.3362 + return self;
1.3363 + }
1.3364 +
1.3365 +TVerdict CTestMaxChannelVolume::DoTestL(CMidiClientUtility* aMidi)
1.3366 + {
1.3367 + TVerdict ret = EPass;
1.3368 + TInt expErr = KErrNone;
1.3369 +
1.3370 + INFO_PRINTF1(_L("CMidiClientUtility: Return Maximum channel volume"));
1.3371 + // expected results
1.3372 + switch(iTestType)
1.3373 + {
1.3374 + case ETestValid:
1.3375 + expErr = KErrNone;
1.3376 + break;
1.3377 +
1.3378 + default:
1.3379 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3380 + return EInconclusive;
1.3381 + }
1.3382 +// TReal32 volume = 0;
1.3383 +// TRAPD(err, volume = aMidi->MaxChannelVolumeL() );
1.3384 + TRAPD(err, aMidi->MaxChannelVolumeL() ); // EABI warning removal
1.3385 +
1.3386 + if (expErr != err)
1.3387 + {
1.3388 + ERR_PRINTF3(_L("MaxChannelVolumeL gave error %d (expected %d)"),err, expErr);
1.3389 + ret = EFail;
1.3390 + }
1.3391 + else
1.3392 + INFO_PRINTF3(_L("MaxChannelVolumeL %d = %d "),err ,expErr);
1.3393 +
1.3394 + return ret;
1.3395 + }
1.3396 +
1.3397 +//------------------------------------------------------------------
1.3398 +
1.3399 +CTestSetChannelVolume::CTestSetChannelVolume(const TDesC& aTestName, const TTestStepType aTestType)
1.3400 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3401 + {
1.3402 + }
1.3403 +
1.3404 +CTestSetChannelVolume* CTestSetChannelVolume::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3405 + {
1.3406 + CTestSetChannelVolume* self = new(ELeave) CTestSetChannelVolume(aTestName, aTestType);
1.3407 + return self;
1.3408 + }
1.3409 +
1.3410 +TVerdict CTestSetChannelVolume::DoTestL(CMidiClientUtility* aMidi)
1.3411 + {
1.3412 + TVerdict ret = EPass;
1.3413 + TInt expErr = KErrNone;
1.3414 + TInt channel = 0;
1.3415 + TReal32 volume = 0;
1.3416 +
1.3417 + INFO_PRINTF1(_L("CMidiClientUtility: Set channel volume"));
1.3418 + // expected results
1.3419 + switch(iTestType)
1.3420 + {
1.3421 + case ETestValid:
1.3422 + expErr = KErrNone;
1.3423 + break;
1.3424 + case ETestInvalidChannelOutOfRange:
1.3425 + expErr = KErrArgument;
1.3426 + channel = 16;
1.3427 + volume = 10;
1.3428 + break;
1.3429 + case ETestVolumeHighOutOfRange:
1.3430 + expErr = KErrArgument;
1.3431 + channel = 0;
1.3432 + volume = aMidi->MaxChannelVolumeL()+1;
1.3433 + break;
1.3434 + case ETestVolumeLowOutOfRange:
1.3435 + expErr = KErrNone; //real controller may return KErrArgument if out of range
1.3436 + channel = 0;
1.3437 + volume = -1;
1.3438 + break;
1.3439 + default:
1.3440 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3441 + return EInconclusive;
1.3442 + }
1.3443 +
1.3444 + TRAPD(err, aMidi->SetChannelVolumeL(channel, volume));
1.3445 + if (expErr != err)
1.3446 + {
1.3447 + ERR_PRINTF3(_L("SetChannelVolumeL gave error %d (expected %d)"),err, expErr);
1.3448 + ret = EFail;
1.3449 + }
1.3450 + else
1.3451 + INFO_PRINTF3(_L("SetChannelVolumeL %d = %d"),err ,expErr);
1.3452 +
1.3453 + return ret;
1.3454 + }
1.3455 +
1.3456 +//Check this
1.3457 +//------------------------------------------------------------------
1.3458 +CTestSetChannelMute::CTestSetChannelMute(const TDesC& aTestName, const TTestStepType aTestType)
1.3459 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3460 + {
1.3461 + }
1.3462 +
1.3463 +CTestSetChannelMute* CTestSetChannelMute::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3464 + {
1.3465 + CTestSetChannelMute* self = new(ELeave) CTestSetChannelMute(aTestName, aTestType);
1.3466 + return self;
1.3467 + }
1.3468 +
1.3469 +TVerdict CTestSetChannelMute::DoTestL(CMidiClientUtility* aMidi)
1.3470 + {
1.3471 + TVerdict ret = EPass;
1.3472 + TInt expErr = KErrNone;
1.3473 + TInt channel = 0;
1.3474 + TBool muted = ETrue;
1.3475 +
1.3476 + INFO_PRINTF1(_L("CMidiClientUtility: Set channel mute"));
1.3477 + // expected results
1.3478 + switch(iTestType)
1.3479 + {
1.3480 + case ETestValid:
1.3481 + expErr = KErrNone;
1.3482 + break;
1.3483 + case ETestInvalidChannelOutOfRange:
1.3484 + expErr = KErrArgument;
1.3485 + channel = 16;
1.3486 + break;
1.3487 +
1.3488 + default:
1.3489 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3490 + return EInconclusive;
1.3491 + }
1.3492 +
1.3493 + TRAPD(err, aMidi->SetChannelMuteL(channel, muted));
1.3494 +
1.3495 + // check correct result
1.3496 + if (iTestType == ETestValid)
1.3497 + {
1.3498 + TBool currMuted = EFalse;
1.3499 +
1.3500 + // until real MIDI controller IsChannelMuteL is always TRUE
1.3501 + TRAPD(err2, currMuted = aMidi->IsChannelMuteL(channel));
1.3502 +
1.3503 + if(err2 != KErrNone)
1.3504 + {
1.3505 + ERR_PRINTF2(_L("IsChannelMuteL() returned %d"), err2);
1.3506 + ret = EInconclusive;
1.3507 + return ret;
1.3508 + }
1.3509 +
1.3510 + if(currMuted != muted)
1.3511 + {
1.3512 + ERR_PRINTF2(_L("Error : expected %d"), muted);
1.3513 + ret = EFail;
1.3514 + return ret;
1.3515 + }
1.3516 + }
1.3517 +
1.3518 +
1.3519 + if (expErr != err)
1.3520 + {
1.3521 + ERR_PRINTF3(_L("SetChannelMuteL gave error %d (expected %d)"),err, expErr);
1.3522 + ret = EFail;
1.3523 + }
1.3524 + else
1.3525 + INFO_PRINTF3(_L("SetChannelMuteL %d = %d"),err ,expErr);
1.3526 +
1.3527 + return ret;
1.3528 + }
1.3529 +
1.3530 +//------------------------------------------------------------------
1.3531 +
1.3532 +CTestReturnVolume::CTestReturnVolume(const TDesC& aTestName, const TTestStepType aTestType)
1.3533 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3534 + {
1.3535 + }
1.3536 +
1.3537 +CTestReturnVolume* CTestReturnVolume::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3538 + {
1.3539 +
1.3540 + CTestReturnVolume* self = new(ELeave) CTestReturnVolume(aTestName, aTestType);
1.3541 + return self;
1.3542 + }
1.3543 +
1.3544 +TVerdict CTestReturnVolume::DoTestL(CMidiClientUtility* aMidi)
1.3545 + {
1.3546 + TVerdict ret = EPass;
1.3547 + TInt expErr = KErrNone;
1.3548 +
1.3549 + INFO_PRINTF1(_L("CMidiClientUtility: Return channel volume"));
1.3550 + // expected results
1.3551 + switch(iTestType)
1.3552 + {
1.3553 + case ETestValid:
1.3554 + expErr = KErrNone;
1.3555 + break;
1.3556 + default:
1.3557 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3558 + return EInconclusive;
1.3559 + }
1.3560 +// TInt volume = 0;
1.3561 +// TRAPD(err, volume = aMidi->VolumeL());
1.3562 + TRAPD(err, aMidi->VolumeL()); // EABI warning removal
1.3563 + if (expErr != err)
1.3564 + {
1.3565 + ERR_PRINTF3(_L("VolumeL gave error %d (expected %d)"),err, expErr);
1.3566 + ret = EFail;
1.3567 + }
1.3568 + else
1.3569 + INFO_PRINTF3(_L("VolumeL %d = %d"),err ,expErr);
1.3570 +
1.3571 + return ret;
1.3572 + }
1.3573 +
1.3574 +//------------------------------------------------------------------
1.3575 +
1.3576 +CTestReturnMaxVolume::CTestReturnMaxVolume(const TDesC& aTestName, const TTestStepType aTestType)
1.3577 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3578 + {
1.3579 + }
1.3580 +
1.3581 +CTestReturnMaxVolume* CTestReturnMaxVolume::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3582 + {
1.3583 + CTestReturnMaxVolume* self = new(ELeave) CTestReturnMaxVolume(aTestName, aTestType);
1.3584 + return self;
1.3585 + }
1.3586 +
1.3587 +TVerdict CTestReturnMaxVolume::DoTestL(CMidiClientUtility* aMidi)
1.3588 + {
1.3589 + TVerdict ret = EPass;
1.3590 + TInt expErr = KErrNone;
1.3591 +
1.3592 + INFO_PRINTF1(_L("CMidiClientUtility: Return max channel volume"));
1.3593 + // expected results
1.3594 + switch(iTestType)
1.3595 + {
1.3596 + case ETestValid:
1.3597 + expErr = KErrNone;
1.3598 + break;
1.3599 + default:
1.3600 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3601 + return EInconclusive;
1.3602 + }
1.3603 +// TInt volume = 0;
1.3604 +// TRAPD(err, volume = aMidi->MaxVolumeL());
1.3605 + TRAPD(err, aMidi->MaxVolumeL()); // EABI warning removal
1.3606 + if (expErr != err)
1.3607 + {
1.3608 + ERR_PRINTF3(_L("MaxVolumeL gave error %d (expected %d)"),err, expErr);
1.3609 + ret = EFail;
1.3610 + }
1.3611 + else
1.3612 + INFO_PRINTF3(_L("MaxVolumeL %d = %d"),err ,expErr);
1.3613 +
1.3614 + return ret;
1.3615 + }
1.3616 +
1.3617 +//------------------------------------------------------------------
1.3618 +
1.3619 +CTestSetVolume::CTestSetVolume(const TDesC& aTestName, const TTestStepType aTestType)
1.3620 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3621 + {
1.3622 + }
1.3623 +
1.3624 +CTestSetVolume* CTestSetVolume::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3625 + {
1.3626 + CTestSetVolume* self = new(ELeave) CTestSetVolume(aTestName, aTestType);
1.3627 + return self;
1.3628 + }
1.3629 +
1.3630 +TVerdict CTestSetVolume::DoTestL(CMidiClientUtility* aMidi)
1.3631 + {
1.3632 + TVerdict ret = EPass;
1.3633 + TInt expErr = KErrNone;
1.3634 + TInt volume = 0;
1.3635 +
1.3636 + INFO_PRINTF1(_L("CMidiClientUtility: Set channel volume"));
1.3637 + // expected results
1.3638 + switch(iTestType)
1.3639 + {
1.3640 + case ETestValid:
1.3641 + expErr = KErrNone;
1.3642 + volume = 10;
1.3643 + break;
1.3644 + case ETestVolumeHighOutOfRange:
1.3645 + expErr = KErrNotSupported;
1.3646 + volume = 9999999;
1.3647 + break;
1.3648 + case ETestVolumeLowOutOfRange:
1.3649 + expErr = KErrNotSupported;
1.3650 + volume = -9999999;
1.3651 + break;
1.3652 + default:
1.3653 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3654 + return EInconclusive;
1.3655 + }
1.3656 +
1.3657 + TRAPD(err, aMidi->SetVolumeL(volume));
1.3658 + if (expErr != err)
1.3659 + {
1.3660 + ERR_PRINTF3(_L("SetVolumeL gave error %d (expected %d)"),err, expErr);
1.3661 + ret = EFail;
1.3662 + }
1.3663 + else
1.3664 + INFO_PRINTF3(_L("SetVolumeL %d = %d"),err ,expErr);
1.3665 +
1.3666 + return ret;
1.3667 + }
1.3668 +
1.3669 +//------------------------------------------------------------------
1.3670 +
1.3671 +CTestSetVolumeRamp::CTestSetVolumeRamp(const TDesC& aTestName, const TTestStepType aTestType)
1.3672 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3673 + {
1.3674 + }
1.3675 +
1.3676 +CTestSetVolumeRamp* CTestSetVolumeRamp::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3677 + {
1.3678 + CTestSetVolumeRamp* self = new(ELeave) CTestSetVolumeRamp(aTestName, aTestType);
1.3679 + return self;
1.3680 + }
1.3681 +
1.3682 +TVerdict CTestSetVolumeRamp::DoTestL(CMidiClientUtility* aMidi)
1.3683 + {
1.3684 + TVerdict ret = EPass;
1.3685 + TInt expErr = KErrNone;
1.3686 + TTimeIntervalMicroSeconds rampDuration;
1.3687 +
1.3688 + INFO_PRINTF1(_L("CMidiClientUtility: Set channel volume ramp"));
1.3689 + // expected results
1.3690 + switch(iTestType)
1.3691 + {
1.3692 + case ETestValid:
1.3693 + expErr = KErrNone;
1.3694 + break;
1.3695 + case ETestRampDurationHighOutOfRange:
1.3696 + expErr = KErrNotSupported;
1.3697 + rampDuration = 9999999;
1.3698 + break;
1.3699 + case ETestRampDurationLowOutOfRange:
1.3700 + expErr = KErrNotSupported;
1.3701 + rampDuration = -9999999;
1.3702 + break;
1.3703 + default:
1.3704 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3705 + return EInconclusive;
1.3706 + }
1.3707 +
1.3708 + TRAPD(err, aMidi->SetVolumeRampL(rampDuration));
1.3709 + if (expErr != err)
1.3710 + {
1.3711 + ERR_PRINTF3(_L("SetVolumeRampL gave error %d (expected %d)"),err, expErr);
1.3712 + ret = EFail;
1.3713 + }
1.3714 + else
1.3715 + INFO_PRINTF3(_L("SetVolumeL %d = %d"),err ,expErr);
1.3716 +
1.3717 + return ret;
1.3718 + }
1.3719 +
1.3720 +//------------------------------------------------------------------
1.3721 +
1.3722 +CTestGetBalance::CTestGetBalance(const TDesC& aTestName, const TTestStepType aTestType)
1.3723 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3724 + {
1.3725 + }
1.3726 +
1.3727 +CTestGetBalance* CTestGetBalance::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3728 + {
1.3729 + CTestGetBalance* self = new(ELeave) CTestGetBalance(aTestName, aTestType);
1.3730 + return self;
1.3731 + }
1.3732 +
1.3733 +TVerdict CTestGetBalance::DoTestL(CMidiClientUtility* aMidi)
1.3734 + {
1.3735 + TVerdict ret = EPass;
1.3736 + TInt expErr = KErrNone;
1.3737 + //TTimeIntervalMicroSeconds rampDuration;
1.3738 +
1.3739 + INFO_PRINTF1(_L("CMidiClientUtility: Get balance"));
1.3740 + // expected results
1.3741 + switch(iTestType)
1.3742 + {
1.3743 + case ETestValid:
1.3744 + expErr = KErrNone;
1.3745 + break;
1.3746 + case ETestUnsupported:
1.3747 + expErr = KErrNotSupported;
1.3748 + break;
1.3749 + default:
1.3750 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3751 + return EInconclusive;
1.3752 + }
1.3753 +// TInt getBalance = 0;
1.3754 +// TRAPD(err, getBalance = aMidi->GetBalanceL());
1.3755 + TRAPD(err, aMidi->GetBalanceL()); // EABI warning removal
1.3756 +
1.3757 + if (expErr != err)
1.3758 + {
1.3759 + ERR_PRINTF3(_L("GetBalanceL gave error %d (expected %d)"),err, expErr);
1.3760 + ret = EFail;
1.3761 + }
1.3762 + else
1.3763 + INFO_PRINTF3(_L("GetBalanceL %d = %d"),err ,expErr);
1.3764 +
1.3765 + return ret;
1.3766 + }
1.3767 +
1.3768 +//------------------------------------------------------------------
1.3769 +
1.3770 +CTestSetBalance::CTestSetBalance(const TDesC& aTestName, const TTestStepType aTestType)
1.3771 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3772 + {
1.3773 + }
1.3774 +
1.3775 +CTestSetBalance* CTestSetBalance::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3776 + {
1.3777 + CTestSetBalance* self = new(ELeave) CTestSetBalance(aTestName, aTestType);
1.3778 + return self;
1.3779 + }
1.3780 +
1.3781 +TVerdict CTestSetBalance::DoTestL(CMidiClientUtility* aMidi)
1.3782 + {
1.3783 + TVerdict ret = EPass;
1.3784 + TInt expErr = KErrNone;
1.3785 +// TInt balance = 0; // EABI warning removal
1.3786 +
1.3787 + INFO_PRINTF1(_L("CMidiClientUtility: Set balance"));
1.3788 + // expected results
1.3789 + switch(iTestType)
1.3790 + {
1.3791 + case ETestValid:
1.3792 + expErr = KErrNone;
1.3793 + break;
1.3794 + case ETestUnsupported:
1.3795 + expErr = KErrNotSupported;
1.3796 + break;
1.3797 + case ETestBalanceHighOutOfRange:
1.3798 + expErr = KErrNotSupported;
1.3799 +// balance = 101; // EABI warning removal
1.3800 + break;
1.3801 + case ETestBalanceLowOutOfRange:
1.3802 + expErr = KErrNotSupported;
1.3803 +// balance = -101; // EABI warning removal
1.3804 + break;
1.3805 + default:
1.3806 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3807 + return EInconclusive;
1.3808 + }
1.3809 +
1.3810 + TRAPD(err, aMidi->SetBalanceL());
1.3811 + if (expErr != err)
1.3812 + {
1.3813 + ERR_PRINTF3(_L("SetBalanceL gave error %d (expected %d)"),err, expErr);
1.3814 + ret = EFail;
1.3815 + }
1.3816 + else
1.3817 + INFO_PRINTF3(_L("SetBalanceL %d = %d"),err ,expErr);
1.3818 +
1.3819 + return ret;
1.3820 + }
1.3821 +
1.3822 +//------------------------------------------------------------------
1.3823 +
1.3824 +CTestSetPriority::CTestSetPriority(const TDesC& aTestName, const TTestStepType aTestType)
1.3825 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3826 + {
1.3827 + }
1.3828 +
1.3829 +CTestSetPriority* CTestSetPriority::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3830 + {
1.3831 + CTestSetPriority* self = new(ELeave) CTestSetPriority(aTestName, aTestType);
1.3832 + return self;
1.3833 + }
1.3834 +
1.3835 +TVerdict CTestSetPriority::DoTestL(CMidiClientUtility* aMidi)
1.3836 + {
1.3837 + TVerdict ret = EPass;
1.3838 + TInt expErr = KErrNone;
1.3839 + TInt priority = 0;
1.3840 + TMdaPriorityPreference pref = EMdaPriorityPreferenceNone;
1.3841 +
1.3842 + INFO_PRINTF1(_L("CMidiClientUtility: Set priority"));
1.3843 + // expected results
1.3844 + switch(iTestType)
1.3845 + {
1.3846 + case ETestValid:
1.3847 + expErr = KErrNone;
1.3848 + break;
1.3849 + case ETestPreferenceConflictsCannotBeResolved:
1.3850 + expErr = KErrNotSupported;
1.3851 + break;
1.3852 + default:
1.3853 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3854 + return EInconclusive;
1.3855 + }
1.3856 +// TMdaPriorityPreference aPref Priority preference to use if there should be contention with another client.
1.3857 +// We need this to confict and cause PreferenceConflictsCannotBeResolved
1.3858 + TRAPD(err, aMidi->SetPriorityL(priority, pref));
1.3859 + if (expErr != err)
1.3860 + {
1.3861 + ERR_PRINTF3(_L("SetPriorityL gave error %d (expected %d)"),err, expErr);
1.3862 + ret = EFail;
1.3863 + }
1.3864 + else
1.3865 + INFO_PRINTF3(_L("SetPriorityL %d = %d"),err ,expErr);
1.3866 +
1.3867 + return ret;
1.3868 + }
1.3869 +
1.3870 +//------------------------------------------------------------------
1.3871 +
1.3872 +CTestNumberOfXmfMetaDataEntries::CTestNumberOfXmfMetaDataEntries(const TDesC& aTestName, const TTestStepType aTestType)
1.3873 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3874 + {
1.3875 + }
1.3876 +
1.3877 +CTestNumberOfXmfMetaDataEntries* CTestNumberOfXmfMetaDataEntries::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3878 + {
1.3879 + CTestNumberOfXmfMetaDataEntries* self = new(ELeave) CTestNumberOfXmfMetaDataEntries(aTestName, aTestType);
1.3880 + return self;
1.3881 + }
1.3882 +
1.3883 +TVerdict CTestNumberOfXmfMetaDataEntries::DoTestL(CMidiClientUtility* aMidi)
1.3884 + {
1.3885 + TVerdict ret = EPass;
1.3886 + TInt expErr = KErrNone;
1.3887 +
1.3888 + INFO_PRINTF1(_L("CMidiClientUtility: Number Of Xmf Meta Data Entries"));
1.3889 + // expected results
1.3890 + switch(iTestType)
1.3891 + {
1.3892 + case ETestValid:
1.3893 + expErr = KErrNone;
1.3894 + break;
1.3895 + case ETestUnsupported:
1.3896 + expErr = KErrNotSupported;
1.3897 + break;
1.3898 + default:
1.3899 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3900 + return EInconclusive;
1.3901 + }
1.3902 +// TInt numberOfXmfMetaDataEntriesL = 0;
1.3903 +// TRAPD(err, numberOfXmfMetaDataEntriesL = aMidi->NumberOfMetaDataEntriesL());
1.3904 + TRAPD(err, aMidi->NumberOfMetaDataEntriesL()); // EABI warning removal
1.3905 + if (expErr != err)
1.3906 + {
1.3907 + ERR_PRINTF3(_L("NumberOfXmfMetaDataEntriesL gave error %d (expected %d)"),err, expErr);
1.3908 + ret = EFail;
1.3909 + }
1.3910 + else
1.3911 + INFO_PRINTF3(_L("NumberOfXmfMetaDataEntriesL %d = %d"),err ,expErr);
1.3912 +
1.3913 + return ret;
1.3914 + }
1.3915 +
1.3916 +//------------------------------------------------------------------
1.3917 +
1.3918 +CTestGetXmfMetaDataEntry::CTestGetXmfMetaDataEntry(const TDesC& aTestName, const TTestStepType aTestType)
1.3919 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3920 + {
1.3921 + }
1.3922 +
1.3923 +CTestGetXmfMetaDataEntry* CTestGetXmfMetaDataEntry::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.3924 + {
1.3925 + CTestGetXmfMetaDataEntry* self = new(ELeave) CTestGetXmfMetaDataEntry(aTestName, aTestType);
1.3926 + return self;
1.3927 + }
1.3928 +
1.3929 +TVerdict CTestGetXmfMetaDataEntry::DoTestL(CMidiClientUtility* /*aMidi*/)
1.3930 + {
1.3931 + TVerdict ret = EPass;
1.3932 + TInt err = KErrNone;
1.3933 +
1.3934 + TInt expErr = KErrNone;
1.3935 +// TInt metaDataIndex = 1; // EABI warning removal
1.3936 +
1.3937 + INFO_PRINTF1(_L("CMidiClientUtility: Get Xmf Meta Data Entry"));
1.3938 + // expected results
1.3939 + switch(iTestType)
1.3940 + {
1.3941 + case ETestValid:
1.3942 + expErr = KErrNone;
1.3943 + break;
1.3944 + case ETestUnsupported:
1.3945 + expErr = KErrNotSupported;
1.3946 + break;
1.3947 + case ETestMetaDataIndexInvalid:
1.3948 +// metaDataIndex = -1; // EABI warning removal
1.3949 + break;
1.3950 + default:
1.3951 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.3952 + return EInconclusive;
1.3953 + }
1.3954 +
1.3955 + // Default constructor. Returns a blank meta data object. To be used when internalizing data into the object.
1.3956 +// CMMFMetaDataEntry* getXmfMetaDataEntry = CMMFMetaDataEntry::NewL();
1.3957 +
1.3958 +// Causes Access Violation
1.3959 +// TRAPD(err, CMMFMetaDataEntry* getXmfMetaDataEntry = aMidi->GetMetaDataEntryL(metaDataIndex));
1.3960 + if (expErr != err)
1.3961 + {
1.3962 + ERR_PRINTF3(_L("GetXmfMetaDataEntry gave error %d (expected %d)"), err, expErr);
1.3963 + ret = EFail;
1.3964 + }
1.3965 + else
1.3966 + INFO_PRINTF3(_L("GetXmfMetaDataEntry %d = %d"),err ,expErr);
1.3967 +
1.3968 + return ret;
1.3969 + }
1.3970 +
1.3971 +//------------------------------------------------------------------
1.3972 +
1.3973 +
1.3974 +//------------------------------------------------------------------
1.3975 +
1.3976 +CTestLoadCustomInstrumentData::CTestLoadCustomInstrumentData(const TDesC& aTestName,
1.3977 + const TTestStepType aTestType)
1.3978 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.3979 + {
1.3980 + }
1.3981 +
1.3982 +CTestLoadCustomInstrumentData* CTestLoadCustomInstrumentData::NewL(const TDesC& aTestName,
1.3983 + const TTestStepType aTestType)
1.3984 + {
1.3985 + CTestLoadCustomInstrumentData* self = new (ELeave) CTestLoadCustomInstrumentData(aTestName,
1.3986 + aTestType);
1.3987 + return self;
1.3988 + }
1.3989 +
1.3990 +
1.3991 +TVerdict CTestLoadCustomInstrumentData::DoTestL(CMidiClientUtility* aMidi)
1.3992 + {
1.3993 + // N.B. Until there is a MIDI controller there is no sense in having any
1.3994 + // invalid tests since at present LoadCustomInstrumentDataL always returns
1.3995 + // ETrue [it doesn't actually attempt a load]. When we actually have a
1.3996 + // proper MIDI instrument this test can be modified to load this instead of
1.3997 + // the NULL descriptor below. NJ
1.3998 +
1.3999 + TVerdict ret = EPass;
1.4000 + TInt expErr;
1.4001 +
1.4002 + TInt memBankId = 90;
1.4003 + TInt memInstrId = 91;
1.4004 + TInt bankId = 92;
1.4005 + TInt instrId = 93;
1.4006 +
1.4007 + // change these to real descriptors when we have a MIDI instruments
1.4008 + const TDesC8* ptrInstrument = &KNullDesC8;
1.4009 + const TDesC8* ptrBadInstrument = &KNullDesC8;
1.4010 +
1.4011 + // XXX::When we have a MIDI instrument / controller load the instrument
1.4012 + // into the descriptor here.
1.4013 +
1.4014 + // expected results
1.4015 + switch(iTestType)
1.4016 + {
1.4017 + case ETestValid:
1.4018 + expErr = KErrNone;
1.4019 + break;
1.4020 + case ETestInvalidId:
1.4021 + expErr = KErrArgument;
1.4022 + bankId = -2;
1.4023 + break;
1.4024 + case ETestAlreadyLoaded:
1.4025 + // ** to do : load once and attempt to load again.
1.4026 + // when instrument data files are available, this will work
1.4027 + expErr = KErrInUse;
1.4028 + break;
1.4029 + case ETestUnsupported: // ** to define test data for this
1.4030 + expErr = KErrNotSupported;
1.4031 + break;
1.4032 +
1.4033 + default:
1.4034 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.4035 + return EInconclusive;
1.4036 + }
1.4037 + TInt err = KErrNone;
1.4038 +
1.4039 + // bad descriptor test
1.4040 + if (iTestType == ETestUnsupported)
1.4041 + {
1.4042 + // load the bad / unsupported instrument
1.4043 + TRAP(err, aMidi->LoadCustomInstrumentDataL(*ptrBadInstrument, bankId, instrId, memBankId, memInstrId));
1.4044 + }
1.4045 + else
1.4046 + {
1.4047 + // if testing already loaded, preload the instrument here
1.4048 + if(iTestType == ETestAlreadyLoaded)
1.4049 + {
1.4050 + TRAP(err, aMidi->LoadCustomInstrumentDataL(*ptrInstrument, bankId, instrId, memBankId, memInstrId));
1.4051 + INFO_PRINTF2(_L("Preload : LoadCustomInstrumentDataL gave error %d"), err);
1.4052 + if(err != KErrNone)
1.4053 + {
1.4054 + ret = EInconclusive;
1.4055 + return ret;
1.4056 + }
1.4057 + }
1.4058 +
1.4059 + // load the instrument
1.4060 + TRAP(err, aMidi->LoadCustomInstrumentDataL(*ptrInstrument, bankId, instrId, memBankId, memInstrId));
1.4061 + }
1.4062 +
1.4063 + INFO_PRINTF3(_L("LoadCustomInstrumentDataL gave error %d (expected %d)"), err, expErr);
1.4064 + if(err != expErr)
1.4065 + {
1.4066 + ret = EFail;
1.4067 + return ret;
1.4068 + }
1.4069 +
1.4070 + return ret;
1.4071 + }
1.4072 +
1.4073 +
1.4074 +//------------------------------------------------------------------
1.4075 +
1.4076 +
1.4077 +//------------------------------------------------------------------
1.4078 +
1.4079 +_LIT(KMidiClntChunk, "MidiClntChunk");
1.4080 +_LIT(KMidiClntSemaphore, "MidiClntSemaphore");
1.4081 +
1.4082 +CTestCheckInterface::CTestCheckInterface(const TDesC& aTestName, const TTestStepType aTestType)
1.4083 + :CTestMmfMidiClntStep(aTestName,aTestType)
1.4084 + {
1.4085 + }
1.4086 +
1.4087 +CTestCheckInterface* CTestCheckInterface::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.4088 + {
1.4089 + CTestCheckInterface* self = new (ELeave) CTestCheckInterface(aTestName, aTestType);
1.4090 + CleanupStack::PushL(self);
1.4091 + self->ConstructL();
1.4092 + CleanupStack::Pop(self);
1.4093 + return self;
1.4094 + }
1.4095 +
1.4096 +void CTestCheckInterface::ConstructL()
1.4097 + {
1.4098 + User::LeaveIfError(iChunk.CreateGlobal(KMidiClntChunk,20,20));
1.4099 + User::LeaveIfError(iSemaphore.CreateGlobal(KMidiClntSemaphore, 0));
1.4100 +
1.4101 + }
1.4102 +
1.4103 +CTestCheckInterface::~CTestCheckInterface()
1.4104 + {
1.4105 + }
1.4106 +
1.4107 +void CTestCheckInterface::Close()
1.4108 + {
1.4109 + iChunk.Close();
1.4110 + iSemaphore.Close();
1.4111 + }
1.4112 +
1.4113 +
1.4114 +TVerdict CTestCheckInterface::DoTestL(CMidiClientUtility* aMidi)
1.4115 + {
1.4116 +
1.4117 + TVerdict ret = EPass;
1.4118 + TInt expErr = KErrNone;
1.4119 + TInt err = KErrNone;
1.4120 +
1.4121 + //
1.4122 + //PlayNoteL//
1.4123 + //
1.4124 + TRAP_IGNORE(aMidi->PlayNoteL(0,0,TTimeIntervalMicroSeconds(0),0,0));
1.4125 + err = CompareInterface( _L8("PlayNoteL"));
1.4126 + INFO_PRINTF3(_L("Check interface PlayNoteL gave error %d (expected %d)"), err, expErr);
1.4127 + if(err != expErr)
1.4128 + {
1.4129 + ret = EFail;
1.4130 + return ret;
1.4131 + }
1.4132 +
1.4133 + //
1.4134 + //PlayNoteL(WithStartTime)//
1.4135 + //
1.4136 + TRAP_IGNORE(aMidi->PlayNoteL(0,0,TTimeIntervalMicroSeconds(0),TTimeIntervalMicroSeconds(0),0,0));
1.4137 + err = CompareInterface(_L8("PlayNoteWithStartTime"));
1.4138 + INFO_PRINTF3(_L("Check interface PlayNoteL (WithStartTime) gave error %d (expected %d)"), err, expErr);
1.4139 + if(err != expErr)
1.4140 + {
1.4141 + ret = EFail;
1.4142 + return ret;
1.4143 + }
1.4144 +
1.4145 + //
1.4146 + //StopNotes//
1.4147 + //
1.4148 + aMidi->StopNotes(0);
1.4149 + err = CompareInterface(_L8("StopNotes"));
1.4150 + INFO_PRINTF3(_L("Check interface StopNotes gave error %d (expected %d)"), err, expErr);
1.4151 + if(err != expErr)
1.4152 + {
1.4153 + ret = EFail;
1.4154 + return ret;
1.4155 + }
1.4156 +
1.4157 + //
1.4158 + //NoteOnL//
1.4159 + //
1.4160 + TRAP_IGNORE(aMidi->NoteOnL(0,0,0));
1.4161 + err = CompareInterface(_L8("NoteOnL"));
1.4162 + INFO_PRINTF3(_L("Check interface NoteOnL gave error %d (expected %d)"), err, expErr);
1.4163 + if(err != expErr)
1.4164 + {
1.4165 + ret = EFail;
1.4166 + return ret;
1.4167 + }
1.4168 +
1.4169 + //
1.4170 + //NoteOffL//
1.4171 + //
1.4172 + TRAP_IGNORE(aMidi->NoteOffL(0,0,0));
1.4173 + err = CompareInterface(_L8("NoteOffL"));
1.4174 + INFO_PRINTF3(_L("Check interface NoteOffL gave error %d (expected %d)"), err, expErr);
1.4175 + if(err != expErr)
1.4176 + {
1.4177 + ret = EFail;
1.4178 + return ret;
1.4179 + }
1.4180 +
1.4181 + //
1.4182 + //PlaybackRateL//
1.4183 + //
1.4184 + TRAP_IGNORE(aMidi->PlaybackRateL());
1.4185 + err = CompareInterface(_L8("PlaybackRateL"));
1.4186 + INFO_PRINTF3(_L("Check interface PlaybackRateL gave error %d (expected %d)"), err, expErr);
1.4187 + if(err != expErr)
1.4188 + {
1.4189 + ret = EFail;
1.4190 + return ret;
1.4191 + }
1.4192 +
1.4193 + //
1.4194 + //SetPlaybackRateL//
1.4195 + //
1.4196 + TRAP_IGNORE(aMidi->SetPlaybackRateL(0));
1.4197 + err = CompareInterface(_L8("SetPlaybackRateL"));
1.4198 + INFO_PRINTF3(_L("Check interface SetPlaybackRateL gave error %d (expected %d)"), err, expErr);
1.4199 + if(err != expErr)
1.4200 + {
1.4201 + ret = EFail;
1.4202 + return ret;
1.4203 + }
1.4204 +
1.4205 + //
1.4206 + //MaxPlaybackRateL//
1.4207 + //
1.4208 + TRAP_IGNORE(aMidi->MaxPlaybackRateL());
1.4209 + err = CompareInterface(_L8("MaxPlaybackRateL"));
1.4210 + INFO_PRINTF3(_L("Check interface MaxPlaybackRateL gave error %d (expected %d)"), err, expErr);
1.4211 + if(err != expErr)
1.4212 + {
1.4213 + ret = EFail;
1.4214 + return ret;
1.4215 + }
1.4216 +
1.4217 + //
1.4218 + //MinPlaybackRateL//
1.4219 + //
1.4220 + TRAP_IGNORE(aMidi->MinPlaybackRateL());
1.4221 + err = CompareInterface(_L8("MinPlaybackRateL"));
1.4222 + INFO_PRINTF3(_L("Check interface MinPlaybackRateL gave error %d (expected %d)"), err, expErr);
1.4223 + if(err != expErr)
1.4224 + {
1.4225 + ret = EFail;
1.4226 + return ret;
1.4227 + }
1.4228 +
1.4229 + //
1.4230 + //TempoMicroBeatsPerMinuteL//
1.4231 + //
1.4232 + TRAP_IGNORE(aMidi->TempoMicroBeatsPerMinuteL());
1.4233 + err = CompareInterface(_L8("TempoMicroBeatsPerMinuteL"));
1.4234 + INFO_PRINTF3(_L("Check interface TempoMicroBeatsPerMinuteL gave error %d (expected %d)"), err, expErr);
1.4235 + if(err != expErr)
1.4236 + {
1.4237 + ret = EFail;
1.4238 + return ret;
1.4239 + }
1.4240 +
1.4241 + //
1.4242 + //SetTempoL//
1.4243 + //
1.4244 + TRAP_IGNORE(aMidi->SetTempoL(1));
1.4245 + err = CompareInterface(_L8("SetTempoL"));
1.4246 + INFO_PRINTF3(_L("Check interface SetTempoL gave error %d (expected %d)"), err, expErr);
1.4247 + if(err != expErr)
1.4248 + {
1.4249 + ret = EFail;
1.4250 + return ret;
1.4251 + }
1.4252 +
1.4253 + //
1.4254 + //PitchTranspositionCentsL//
1.4255 + //
1.4256 + TRAP_IGNORE(aMidi->PitchTranspositionCentsL());
1.4257 + err = CompareInterface(_L8("PitchTranspositionCentsL"));
1.4258 + INFO_PRINTF3(_L("Check interface PitchTranspositionCentsL gave error %d (expected %d)"), err, expErr);
1.4259 + if(err != expErr)
1.4260 + {
1.4261 + ret = EFail;
1.4262 + return ret;
1.4263 + }
1.4264 +
1.4265 + //
1.4266 + //SetPitchTranspositionL//
1.4267 + //
1.4268 + TRAP_IGNORE(aMidi->SetPitchTranspositionL(0));
1.4269 + err = CompareInterface(_L8("SetPitchTranspositionL"));
1.4270 + INFO_PRINTF3(_L("Check interface SetPitchTranspositionL gave error %d (expected %d)"), err, expErr);
1.4271 + if(err != expErr)
1.4272 + {
1.4273 + ret = EFail;
1.4274 + return ret;
1.4275 + }
1.4276 +
1.4277 + //
1.4278 + //DurationMicroBeatsL//
1.4279 + //
1.4280 + TRAP_IGNORE(aMidi->DurationMicroBeatsL());
1.4281 + err = CompareInterface(_L8("DurationMicroBeatsL"));
1.4282 + INFO_PRINTF3(_L("Check interface DurationMicroBeatsL gave error %d (expected %d)"), err, expErr);
1.4283 + if(err != expErr)
1.4284 + {
1.4285 + ret = EFail;
1.4286 + return ret;
1.4287 + }
1.4288 +
1.4289 + //
1.4290 + //NumTracksL//
1.4291 + //
1.4292 + TRAP_IGNORE(aMidi->NumTracksL());
1.4293 + err = CompareInterface(_L8("NumTracksL"));
1.4294 + INFO_PRINTF3(_L("Check interface NumTracksL gave error %d (expected %d)"), err, expErr);
1.4295 + if(err != expErr)
1.4296 + {
1.4297 + ret = EFail;
1.4298 + return ret;
1.4299 + }
1.4300 +
1.4301 + //
1.4302 + //SetTrackMuteL//
1.4303 + //
1.4304 + TRAP_IGNORE(aMidi->SetTrackMuteL(0,ETrue));
1.4305 + err = CompareInterface(_L8("SetTrackMuteL"));
1.4306 + INFO_PRINTF3(_L("Check interface SetTrackMuteL gave error %d (expected %d)"), err, expErr);
1.4307 + if(err != expErr)
1.4308 + {
1.4309 + ret = EFail;
1.4310 + return ret;
1.4311 + }
1.4312 +
1.4313 + //
1.4314 + //MimeTypeL//
1.4315 + //
1.4316 + TRAP_IGNORE(aMidi->MimeTypeL());
1.4317 + err = CompareInterface(_L8("MimeTypeL"));
1.4318 + INFO_PRINTF3(_L("Check interface MimeTypeL gave error %d (expected %d)"), err, expErr);
1.4319 + if(err != expErr)
1.4320 + {
1.4321 + ret = EFail;
1.4322 + return ret;
1.4323 + }
1.4324 +
1.4325 + //
1.4326 + //PositionMicroBeatsL//
1.4327 + //
1.4328 + TRAP_IGNORE(aMidi->PositionMicroBeatsL());
1.4329 + err = CompareInterface(_L8("PositionMicroBeatsL"));
1.4330 + INFO_PRINTF3(_L("Check interface PositionMicroBeatsL gave error %d (expected %d)"), err, expErr);
1.4331 + if(err != expErr)
1.4332 + {
1.4333 + ret = EFail;
1.4334 + return ret;
1.4335 + }
1.4336 +
1.4337 + //
1.4338 + //SetPositionMicroBeatsL//
1.4339 + //
1.4340 + TRAP_IGNORE(aMidi->SetPositionMicroBeatsL(0));
1.4341 + err = CompareInterface(_L8("SetPositionMicroBeatsL"));
1.4342 + INFO_PRINTF3(_L("Check interface SetPositionMicroBeatsL gave error %d (expected %d)"), err, expErr);
1.4343 + if(err != expErr)
1.4344 + {
1.4345 + ret = EFail;
1.4346 + return ret;
1.4347 + }
1.4348 +
1.4349 + //
1.4350 + //SetSyncUpdateCallbackIntervalL//
1.4351 + //
1.4352 + TRAP_IGNORE(aMidi->SetSyncUpdateCallbackIntervalL(TTimeIntervalMicroSeconds(1)));
1.4353 + err = CompareInterface(_L8("SetSyncUpdateCallbackIntervalL"));
1.4354 + INFO_PRINTF3(_L("Check interface SetSyncUpdateCallbackIntervalL gave error %d (expected %d)"), err, expErr);
1.4355 + if(err != expErr)
1.4356 + {
1.4357 + ret = EFail;
1.4358 + return ret;
1.4359 + }
1.4360 +
1.4361 + //
1.4362 + //SendMessageL//
1.4363 + //
1.4364 + TRAP_IGNORE(aMidi->SendMessageL(_L8("")));
1.4365 + err = CompareInterface(_L8("SendMessageL"));
1.4366 + INFO_PRINTF3(_L("Check interface SendMessageL gave error %d (expected %d)"), err, expErr);
1.4367 + if(err != expErr)
1.4368 + {
1.4369 + ret = EFail;
1.4370 + return ret;
1.4371 + }
1.4372 +
1.4373 + //
1.4374 + //SendMessageL (WithTimeStamp)//
1.4375 + //
1.4376 + TRAP_IGNORE(aMidi->SendMessageL(_L8(""), TTimeIntervalMicroSeconds(0)));
1.4377 + err = CompareInterface(_L8("SendMessageWithTimeStamp"));
1.4378 + INFO_PRINTF3(_L("Check interface SendMessageL (WithTimeStamp) gave error %d (expected %d)"), err, expErr);
1.4379 + if(err != expErr)
1.4380 + {
1.4381 + ret = EFail;
1.4382 + return ret;
1.4383 + }
1.4384 +
1.4385 + //
1.4386 + //SendMipMessageL//
1.4387 + //
1.4388 + {
1.4389 + TMipMessageEntry mipEntry;
1.4390 + mipEntry.iChannel = 10;
1.4391 + mipEntry.iMIPValue = 20;
1.4392 + RArray<TMipMessageEntry> mipArray;
1.4393 + mipArray.Append(mipEntry);
1.4394 +
1.4395 + TRAP_IGNORE(aMidi->SendMipMessageL(mipArray));
1.4396 + mipArray.Close();
1.4397 + }
1.4398 + err = CompareInterface(_L8("SendMipMessageL"));
1.4399 + INFO_PRINTF3(_L("Check interface SendMipMessageL gave error %d (expected %d)"), err, expErr);
1.4400 + if(err != expErr)
1.4401 + {
1.4402 + ret = EFail;
1.4403 + return ret;
1.4404 + }
1.4405 +
1.4406 + //
1.4407 + //NumberOfBanksL//
1.4408 + //
1.4409 + TRAP_IGNORE(aMidi->NumberOfBanksL(ETrue));
1.4410 + err = CompareInterface(_L8("NumberOfBanksL"));
1.4411 + INFO_PRINTF3(_L("Check interface NumberOfBanksL gave error %d (expected %d)"), err, expErr);
1.4412 + if(err != expErr)
1.4413 + {
1.4414 + ret = EFail;
1.4415 + return ret;
1.4416 + }
1.4417 +
1.4418 + //
1.4419 + //GetBankIdL//
1.4420 + //
1.4421 + TRAP_IGNORE(aMidi->GetBankIdL(ETrue,0));
1.4422 + err = CompareInterface(_L8("GetBankIdL"));
1.4423 + INFO_PRINTF3(_L("Check interface GetBankIdL gave error %d (expected %d)"), err, expErr);
1.4424 + if(err != expErr)
1.4425 + {
1.4426 + ret = EFail;
1.4427 + return ret;
1.4428 + }
1.4429 +
1.4430 + //
1.4431 + //LoadCustomBankL//
1.4432 + //
1.4433 + {
1.4434 + TInt bankId = 0;
1.4435 + TRAP_IGNORE(aMidi->LoadCustomBankL(_L(""),bankId));
1.4436 + }
1.4437 + err = CompareInterface(_L8("LoadCustomBankL"));
1.4438 + INFO_PRINTF3(_L("Check interface LoadCustomBankL gave error %d (expected %d)"), err, expErr);
1.4439 + if(err != expErr)
1.4440 + {
1.4441 + ret = EFail;
1.4442 + return ret;
1.4443 + }
1.4444 +
1.4445 + //
1.4446 + //LoadCustomBankDataL//
1.4447 + //
1.4448 + {
1.4449 + TInt bankId = 0;
1.4450 + TRAP_IGNORE(aMidi->LoadCustomBankDataL(_L8(""),bankId));
1.4451 + }
1.4452 + err = CompareInterface(_L8("LoadCustomBankDataL"));
1.4453 + INFO_PRINTF3(_L("Check interface LoadCustomBankDataL gave error %d (expected %d)"), err, expErr);
1.4454 + if(err != expErr)
1.4455 + {
1.4456 + ret = EFail;
1.4457 + return ret;
1.4458 + }
1.4459 +
1.4460 + //
1.4461 + //UnloadCustomBankL//
1.4462 + //
1.4463 + TRAP_IGNORE(aMidi->UnloadCustomBankL(0));
1.4464 + err = CompareInterface(_L8("UnloadCustomBankL"));
1.4465 + INFO_PRINTF3(_L("Check interface UnloadCustomBankL gave error %d (expected %d)"), err, expErr);
1.4466 + if(err != expErr)
1.4467 + {
1.4468 + ret = EFail;
1.4469 + return ret;
1.4470 + }
1.4471 +
1.4472 + //
1.4473 + //CustomBankLoadedL//
1.4474 + //
1.4475 + TRAP_IGNORE(aMidi->CustomBankLoadedL(0));
1.4476 + err = CompareInterface(_L8("CustomBankLoadedL"));
1.4477 + INFO_PRINTF3(_L("Check interface CustomBankLoadedL gave error %d (expected %d)"), err, expErr);
1.4478 + if(err != expErr)
1.4479 + {
1.4480 + ret = EFail;
1.4481 + return ret;
1.4482 + }
1.4483 +
1.4484 + //
1.4485 + //UnloadAllCustomBanksL//
1.4486 + //
1.4487 + TRAP_IGNORE(aMidi->UnloadAllCustomBanksL());
1.4488 + err = CompareInterface(_L8("UnloadAllCustomBanksL"));
1.4489 + INFO_PRINTF3(_L("Check interface UnloadAllCustomBanksL gave error %d (expected %d)"), err, expErr);
1.4490 + if(err != expErr)
1.4491 + {
1.4492 + ret = EFail;
1.4493 + return ret;
1.4494 + }
1.4495 +
1.4496 + //
1.4497 + //NumberOfInstrumentsL//
1.4498 + //
1.4499 + TRAP_IGNORE(aMidi->NumberOfInstrumentsL(0,ETrue));
1.4500 + err = CompareInterface(_L8("NumberOfInstrumentsL"));
1.4501 + INFO_PRINTF3(_L("Check interface NumberOfInstrumentsL gave error %d (expected %d)"), err, expErr);
1.4502 + if(err != expErr)
1.4503 + {
1.4504 + ret = EFail;
1.4505 + return ret;
1.4506 + }
1.4507 +
1.4508 + //
1.4509 + //GetInstrumentIdL//
1.4510 + //
1.4511 + TRAP_IGNORE(aMidi->GetInstrumentIdL(0, ETrue, 0));
1.4512 + err = CompareInterface(_L8("GetInstrumentIdL"));
1.4513 + INFO_PRINTF3(_L("Check interface GetInstrumentIdL gave error %d (expected %d)"), err, expErr);
1.4514 + if(err != expErr)
1.4515 + {
1.4516 + ret = EFail;
1.4517 + return ret;
1.4518 + }
1.4519 +
1.4520 + //
1.4521 + //InstrumentNameL//
1.4522 + //
1.4523 + {
1.4524 + HBufC* instrumentName = NULL;
1.4525 + TRAP_IGNORE(instrumentName = aMidi->InstrumentNameL(0, ETrue, 0));
1.4526 + delete instrumentName;
1.4527 + }
1.4528 + err = CompareInterface(_L8("InstrumentNameL"));
1.4529 + INFO_PRINTF3(_L("Check interface InstrumentNameL gave error %d (expected %d)"), err, expErr);
1.4530 + if(err != expErr)
1.4531 + {
1.4532 + ret = EFail;
1.4533 + return ret;
1.4534 + }
1.4535 +
1.4536 + //
1.4537 + //GetInstrumentL//
1.4538 + //
1.4539 + {
1.4540 + TInt instrumentId = 0;
1.4541 + TInt bankId = 0;
1.4542 + TRAP_IGNORE(aMidi->GetInstrumentL(0, instrumentId, bankId));
1.4543 + }
1.4544 + err = CompareInterface(_L8("GetInstrumentL"));
1.4545 + INFO_PRINTF3(_L("Check interface GetInstrumentL gave error %d (expected %d)"), err, expErr);
1.4546 + if(err != expErr)
1.4547 + {
1.4548 + ret = EFail;
1.4549 + return ret;
1.4550 + }
1.4551 +
1.4552 + //
1.4553 + //SetInstrumentL//
1.4554 + //
1.4555 + TRAP_IGNORE(aMidi->SetInstrumentL(0, 0, 0));
1.4556 + err = CompareInterface(_L8("SetInstrumentL"));
1.4557 + INFO_PRINTF3(_L("Check interface SetInstrumentL gave error %d (expected %d)"), err, expErr);
1.4558 + if(err != expErr)
1.4559 + {
1.4560 + ret = EFail;
1.4561 + return ret;
1.4562 + }
1.4563 +
1.4564 + //
1.4565 + //LoadCustomInstrumentL//
1.4566 + //
1.4567 + TRAP_IGNORE(aMidi->LoadCustomInstrumentL(_L(""),0,0,0,0));
1.4568 + err = CompareInterface(_L8("LoadCustomInstrumentL"));
1.4569 + INFO_PRINTF3(_L("Check interface LoadCustomInstrumentL gave error %d (expected %d)"), err, expErr);
1.4570 + if(err != expErr)
1.4571 + {
1.4572 + ret = EFail;
1.4573 + return ret;
1.4574 + }
1.4575 +
1.4576 + //
1.4577 + //LoadCustomInstrumentDataL//
1.4578 + //
1.4579 + TRAP_IGNORE(aMidi->LoadCustomInstrumentDataL(_L8(""),0,0,0,0));
1.4580 + err = CompareInterface(_L8("LoadCustomInstrumentDataL"));
1.4581 + INFO_PRINTF3(_L("Check interface LoadCustomInstrumentDataL gave error %d (expected %d)"), err, expErr);
1.4582 + if(err != expErr)
1.4583 + {
1.4584 + ret = EFail;
1.4585 + return ret;
1.4586 + }
1.4587 +
1.4588 + //
1.4589 + //UnloadCustomInstrumentL//
1.4590 + //
1.4591 + TRAP_IGNORE(aMidi->UnloadCustomInstrumentL(0,0));
1.4592 + err = CompareInterface(_L8("UnloadCustomInstrumentL"));
1.4593 + INFO_PRINTF3(_L("Check interface UnloadCustomInstrumentL gave error %d (expected %d)"), err, expErr);
1.4594 + if(err != expErr)
1.4595 + {
1.4596 + ret = EFail;
1.4597 + return ret;
1.4598 + }
1.4599 +
1.4600 + //
1.4601 + //PercussionKeyNameL//
1.4602 + //
1.4603 + {
1.4604 + HBufC* percussionKeyName = NULL;
1.4605 + TRAP_IGNORE(percussionKeyName = aMidi->PercussionKeyNameL(0,0,0,0));
1.4606 + delete percussionKeyName;
1.4607 + }
1.4608 + err = CompareInterface(_L8("PercussionKeyNameL"));
1.4609 + INFO_PRINTF3(_L("Check interface PercussionKeyNameL gave error %d (expected %d)"), err, expErr);
1.4610 + if(err != expErr)
1.4611 + {
1.4612 + ret = EFail;
1.4613 + return ret;
1.4614 + }
1.4615 +
1.4616 + //
1.4617 + //StopTimeL//
1.4618 + //
1.4619 + {
1.4620 + TTimeIntervalMicroSeconds stopTime(0);
1.4621 + TRAP_IGNORE(aMidi->StopTimeL(stopTime));
1.4622 + }
1.4623 + err = CompareInterface(_L8("StopTimeL"));
1.4624 + INFO_PRINTF3(_L("Check interface StopTimeL gave error %d (expected %d)"), err, expErr);
1.4625 + if(err != expErr)
1.4626 + {
1.4627 + ret = EFail;
1.4628 + return ret;
1.4629 + }
1.4630 +
1.4631 + //
1.4632 + //SetStopTimeL//
1.4633 + //
1.4634 + {
1.4635 + TTimeIntervalMicroSeconds stopTime(0);
1.4636 + TRAP_IGNORE(aMidi->SetStopTimeL(stopTime));
1.4637 + }
1.4638 + err = CompareInterface(_L8("SetStopTimeL"));
1.4639 + INFO_PRINTF3(_L("Check interface SetStopTimeL gave error %d (expected %d)"), err, expErr);
1.4640 + if(err != expErr)
1.4641 + {
1.4642 + ret = EFail;
1.4643 + return ret;
1.4644 + }
1.4645 +
1.4646 + //
1.4647 + //SetRepeatsL//
1.4648 + //
1.4649 + {
1.4650 + TInt repeatNumberOfTimes = 0;
1.4651 + TTimeIntervalMicroSeconds trailingSilence(0);
1.4652 + TRAP_IGNORE(aMidi->SetRepeatsL(repeatNumberOfTimes, trailingSilence));
1.4653 + }
1.4654 + err = CompareInterface(_L8("SetRepeatsL"));
1.4655 + INFO_PRINTF3(_L("Check interface SetRepeatsL gave error %d (expected %d)"), err, expErr);
1.4656 + if(err != expErr)
1.4657 + {
1.4658 + ret = EFail;
1.4659 + return ret;
1.4660 + }
1.4661 + //
1.4662 + //GetRepeats//
1.4663 + //
1.4664 + TRAP_IGNORE(aMidi->GetRepeats());
1.4665 + err = CompareInterface(_L8("GetRepeats"));
1.4666 + INFO_PRINTF3(_L("Check interface GetRepeats gave error %d (expected %d)"), err, expErr);
1.4667 + if(err != expErr)
1.4668 + {
1.4669 + ret = EFail;
1.4670 + return ret;
1.4671 + }
1.4672 +
1.4673 +
1.4674 + //
1.4675 + //PolyphonyL//
1.4676 + //
1.4677 + TRAP_IGNORE(aMidi->PolyphonyL());
1.4678 + err = CompareInterface(_L8("PolyphonyL"));
1.4679 + INFO_PRINTF3(_L("Check interface PolyphonyL gave error %d (expected %d)"), err, expErr);
1.4680 + if(err != expErr)
1.4681 + {
1.4682 + ret = EFail;
1.4683 + return ret;
1.4684 + }
1.4685 +
1.4686 + //
1.4687 + //SetMaxPolyphonyL//
1.4688 + //
1.4689 + TRAP_IGNORE(aMidi->SetMaxPolyphonyL(1));
1.4690 + err = CompareInterface(_L8("SetMaxPolyphonyL"));
1.4691 + INFO_PRINTF3(_L("Check interface SetMaxPolyphonyL gave error %d (expected %d)"), err, expErr);
1.4692 + if(err != expErr)
1.4693 + {
1.4694 + ret = EFail;
1.4695 + return ret;
1.4696 + }
1.4697 +
1.4698 + //
1.4699 + //ChannelsSupportedL//
1.4700 + //
1.4701 + TRAP_IGNORE(aMidi->ChannelsSupportedL());
1.4702 + err = CompareInterface(_L8("ChannelsSupportedL"));
1.4703 + INFO_PRINTF3(_L("Check interface ChannelsSupportedL gave error %d (expected %d)"), err, expErr);
1.4704 + if(err != expErr)
1.4705 + {
1.4706 + ret = EFail;
1.4707 + return ret;
1.4708 + }
1.4709 +
1.4710 + //
1.4711 + //ChannelVolumeL//
1.4712 + //
1.4713 + TRAP_IGNORE(aMidi->ChannelVolumeL(0));
1.4714 + err = CompareInterface(_L8("ChannelVolumeL"));
1.4715 + INFO_PRINTF3(_L("Check interface ChannelVolumeL gave error %d (expected %d)"), err, expErr);
1.4716 + if(err != expErr)
1.4717 + {
1.4718 + ret = EFail;
1.4719 + return ret;
1.4720 + }
1.4721 +
1.4722 + //
1.4723 + //MaxChannelVolumeL//
1.4724 + //
1.4725 + TRAP_IGNORE(aMidi->MaxChannelVolumeL());
1.4726 + err = CompareInterface(_L8("MaxChannelVolumeL"));
1.4727 + INFO_PRINTF3(_L("Check interface MaxChannelVolumeL gave error %d (expected %d)"), err, expErr);
1.4728 + if(err != expErr)
1.4729 + {
1.4730 + ret = EFail;
1.4731 + return ret;
1.4732 + }
1.4733 +
1.4734 + //
1.4735 + //SetChannelVolumeL//
1.4736 + //
1.4737 + TRAP_IGNORE(aMidi->SetChannelVolumeL(0,0));
1.4738 + err = CompareInterface(_L8("SetChannelVolumeL"));
1.4739 + INFO_PRINTF3(_L("Check interface SetChannelVolumeL gave error %d (expected %d)"), err, expErr);
1.4740 + if(err != expErr)
1.4741 + {
1.4742 + ret = EFail;
1.4743 + return ret;
1.4744 + }
1.4745 +
1.4746 + //
1.4747 + //SetChannelMuteL//
1.4748 + //
1.4749 + TRAP_IGNORE(aMidi->SetChannelMuteL(0,0));
1.4750 + err = CompareInterface(_L8("SetChannelMuteL"));
1.4751 + INFO_PRINTF3(_L("Check interface SetChannelMuteL gave error %d (expected %d)"), err, expErr);
1.4752 + if(err != expErr)
1.4753 + {
1.4754 + ret = EFail;
1.4755 + return ret;
1.4756 + }
1.4757 +
1.4758 + //
1.4759 + //VolumeL//
1.4760 + //
1.4761 + TRAP_IGNORE(aMidi->VolumeL());
1.4762 + err = CompareInterface(_L8("VolumeL"));
1.4763 + INFO_PRINTF3(_L("Check interface VolumeL gave error %d (expected %d)"), err, expErr);
1.4764 + if(err != expErr)
1.4765 + {
1.4766 + ret = EFail;
1.4767 + return ret;
1.4768 + }
1.4769 +
1.4770 + //
1.4771 + //MaxVolumeL//
1.4772 + //
1.4773 + TRAP_IGNORE(aMidi->MaxVolumeL());
1.4774 + err = CompareInterface(_L8("MaxVolumeL"));
1.4775 + INFO_PRINTF3(_L("Check interface MaxVolumeL gave error %d (expected %d)"), err, expErr);
1.4776 + if(err != expErr)
1.4777 + {
1.4778 + ret = EFail;
1.4779 + return ret;
1.4780 + }
1.4781 +
1.4782 + //
1.4783 + //SetVolumeL//
1.4784 + //
1.4785 + TRAP_IGNORE(aMidi->SetVolumeL(0));
1.4786 + err = CompareInterface(_L8("SetVolumeL"));
1.4787 + INFO_PRINTF3(_L("Check interface SetVolumeL gave error %d (expected %d)"), err, expErr);
1.4788 + if(err != expErr)
1.4789 + {
1.4790 + ret = EFail;
1.4791 + return ret;
1.4792 + }
1.4793 +
1.4794 + //
1.4795 + //SetVolumeRampL//
1.4796 + //
1.4797 + TRAP_IGNORE(aMidi->SetVolumeRampL(TTimeIntervalMicroSeconds(0)));
1.4798 + err = CompareInterface(_L8("SetVolumeRampL"));
1.4799 + INFO_PRINTF3(_L("Check interface SetVolumeRampL gave error %d (expected %d)"), err, expErr);
1.4800 + if(err != expErr)
1.4801 + {
1.4802 + ret = EFail;
1.4803 + return ret;
1.4804 + }
1.4805 +
1.4806 + //
1.4807 + //GetBalanceL//
1.4808 + //
1.4809 + TRAP_IGNORE(aMidi->GetBalanceL());
1.4810 + err = CompareInterface(_L8("GetBalanceL"));
1.4811 + INFO_PRINTF3(_L("Check interface GetBalanceL gave error %d (expected %d)"), err, expErr);
1.4812 + if(err != expErr)
1.4813 + {
1.4814 + ret = EFail;
1.4815 + return ret;
1.4816 + }
1.4817 +
1.4818 + //
1.4819 + //SetBalanceL//
1.4820 + //
1.4821 + TRAP_IGNORE(aMidi->SetBalanceL());
1.4822 + err = CompareInterface(_L8("SetBalanceL"));
1.4823 + INFO_PRINTF3(_L("Check interface SetBalanceL gave error %d (expected %d)"), err, expErr);
1.4824 + if(err != expErr)
1.4825 + {
1.4826 + ret = EFail;
1.4827 + return ret;
1.4828 + }
1.4829 +
1.4830 + //
1.4831 + //SetBankL//
1.4832 + //
1.4833 + TRAP_IGNORE(aMidi->SetBankL(ETrue));
1.4834 + err = CompareInterface(_L8("SetBankL"));
1.4835 + INFO_PRINTF3(_L("Check interface SetBankL gave error %d (expected %d)"), err, expErr);
1.4836 + if(err != expErr)
1.4837 + {
1.4838 + ret = EFail;
1.4839 + return ret;
1.4840 + }
1.4841 +
1.4842 + //
1.4843 + //IsTrackMuteL//
1.4844 + //
1.4845 + TRAP_IGNORE(aMidi->IsTrackMuteL(0));
1.4846 + err = CompareInterface(_L8("IsTrackMuteL"));
1.4847 + INFO_PRINTF3(_L("Check interface IsTrackMuteL gave error %d (expected %d)"), err, expErr);
1.4848 + if(err != expErr)
1.4849 + {
1.4850 + ret = EFail;
1.4851 + return ret;
1.4852 + }
1.4853 +
1.4854 + //
1.4855 + //IsChannelMuteL//
1.4856 + //
1.4857 + TRAP_IGNORE(aMidi->IsChannelMuteL(0));
1.4858 + err = CompareInterface(_L8("IsChannelMuteL"));
1.4859 + INFO_PRINTF3(_L("Check interface IsChannelMuteL gave error %d (expected %d)"), err, expErr);
1.4860 + if(err != expErr)
1.4861 + {
1.4862 + ret = EFail;
1.4863 + return ret;
1.4864 + }
1.4865 +
1.4866 + return ret;
1.4867 + }
1.4868 +
1.4869 +TInt CTestCheckInterface::CompareInterface(const TDesC8& aInterfaceName)
1.4870 + {
1.4871 + TBuf8<40> clientBuf;
1.4872 + TBuf8<40> controllerBuf;
1.4873 + clientBuf.FillZ(40);
1.4874 + controllerBuf.FillZ(40);
1.4875 +
1.4876 + clientBuf.Copy(aInterfaceName);
1.4877 + iSemaphore.Wait();
1.4878 + controllerBuf = iChunk.Base();
1.4879 + controllerBuf.SetLength(aInterfaceName.Length());
1.4880 +
1.4881 + TInt err = clientBuf.Compare(controllerBuf);
1.4882 +
1.4883 + return err;
1.4884 + }
1.4885 +
1.4886 +//--------------------------------------------------------------------------------
1.4887 +//MS 3.4 File Handles API
1.4888 +//--------------------------------------------------------------------------------
1.4889 +CTestMidiClntOpenFileByHandle::CTestMidiClntOpenFileByHandle(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay, const TTestStepType aTestType)
1.4890 + :CTestMmfMidiClntStep(aTestName, aTestType),
1.4891 + iPlay(aPlay)
1.4892 + {
1.4893 + iSectName = aSectName;
1.4894 + iKeyName = aKeyName;
1.4895 + }
1.4896 +
1.4897 +CTestMidiClntOpenFileByHandle* CTestMidiClntOpenFileByHandle::NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay, const TTestStepType aTestType)
1.4898 + {
1.4899 + CTestMidiClntOpenFileByHandle* self = new(ELeave) CTestMidiClntOpenFileByHandle(aTestName, aSectName, aKeyName, aPlay, aTestType);
1.4900 + return self;
1.4901 + }
1.4902 +
1.4903 +TVerdict CTestMidiClntOpenFileByHandle::DoTestStepL()
1.4904 + {
1.4905 + //[ Local variables ]
1.4906 + TPtrC filename;
1.4907 + TInt expErr = KErrNone;
1.4908 + TVerdict ret = EFail;
1.4909 +
1.4910 + //[ Get the File name from ini file ]
1.4911 + if(!GetStringFromConfig(iSectName,iKeyName,filename))
1.4912 + {
1.4913 + return EInconclusive;
1.4914 + }
1.4915 +
1.4916 + //[ Expected results ]
1.4917 + switch(iTestType)
1.4918 + {
1.4919 + case ETestValid:
1.4920 + expErr = KErrNone;
1.4921 + break;
1.4922 + case ETestNegative:
1.4923 + expErr = KErrNotSupported;
1.4924 + break;
1.4925 + default:
1.4926 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.4927 + return EInconclusive;
1.4928 + }
1.4929 +
1.4930 + //[ Create CMidiClientUtility - player ]
1.4931 + CMidiClientUtility* player=NULL;
1.4932 + TRAPD(err1, player = CMidiClientUtility::NewL(*this, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality));
1.4933 + if (err1 != KErrNone)
1.4934 + {
1.4935 + ERR_PRINTF2(_L("Error while creating a CMidiClientUtility : %d"),err1);
1.4936 + return EInconclusive;
1.4937 + }
1.4938 +
1.4939 + if (!player)
1.4940 + {
1.4941 + ERR_PRINTF1(_L("Could not create a CMidiClientUtility"));
1.4942 + return EInconclusive;
1.4943 + }
1.4944 + CleanupStack::PushL(player);
1.4945 +
1.4946 + TMMFMessageDestinationPckg dummyPckg;
1.4947 + TInt dummyFunc = EDevMidiOff;
1.4948 + TBuf8<8> dummyBuff;
1.4949 + player->CustomCommandSyncL(dummyPckg, dummyFunc, dummyBuff, dummyBuff, dummyBuff);
1.4950 +
1.4951 + //[ RFs and RFile ]
1.4952 + RFs rFs;
1.4953 + RFile rFile;
1.4954 +
1.4955 + //[ Connect to File System using RFs ]
1.4956 + User::LeaveIfError(rFs.Connect());
1.4957 + CleanupClosePushL(rFs);
1.4958 + User::LeaveIfError(rFs.ShareProtected());
1.4959 +
1.4960 + //[ Open the file using RFile ]
1.4961 + TFileName theDestinationFileName;
1.4962 + theDestinationFileName.Append(filename);
1.4963 +
1.4964 + INFO_PRINTF2(_L("Start : Opening the file : %S by RFile"), &filename);
1.4965 + TInt theRes = rFile.Open(rFs, theDestinationFileName, EFileRead);
1.4966 + User::LeaveIfError(theRes);
1.4967 + CleanupClosePushL(rFile);
1.4968 + INFO_PRINTF2(_L("End : Opening the file : %S by RFile"), &filename);
1.4969 +
1.4970 + //[ API Call ]
1.4971 + player->OpenFile(rFile);
1.4972 +
1.4973 + //[ Wait for Initialisation Callback ]
1.4974 + INFO_PRINTF1(_L("Start : CMidiClientUtility->OpenFile()"));
1.4975 + CActiveScheduler::Start();
1.4976 + INFO_PRINTF1(_L("End : CMidiClientUtility->OpenFile()"));
1.4977 +
1.4978 + //[ Check for errors ]
1.4979 + if (iError == expErr)
1.4980 + {
1.4981 + INFO_PRINTF3(_L("Expected Error : %d, Actual Error : %d"), expErr, iError);
1.4982 + ret = EPass;
1.4983 + }
1.4984 + else
1.4985 + {
1.4986 + ERR_PRINTF3(_L("Expected Error : %d, Actual Error : %d"), expErr, iError);
1.4987 + ret = EFail;
1.4988 + }
1.4989 +
1.4990 + //[ Clean-up RFs, RFile and CMidiClientUtility ]
1.4991 + CleanupStack::PopAndDestroy(3);
1.4992 +
1.4993 + return ret;
1.4994 + }
1.4995 +
1.4996 +
1.4997 +//------------------------------------------------------------------------
1.4998 +
1.4999 +CTestMidiClntPlayFileByHandle::CTestMidiClntPlayFileByHandle(const TDesC& aTestName)
1.5000 + :CTestMmfMidiClntStep(aTestName, ETestValid)
1.5001 + {
1.5002 + }
1.5003 +
1.5004 +CTestMidiClntPlayFileByHandle* CTestMidiClntPlayFileByHandle::NewL(const TDesC& aTestName)
1.5005 + {
1.5006 + CTestMidiClntPlayFileByHandle* self = new(ELeave) CTestMidiClntPlayFileByHandle(aTestName);
1.5007 + return self;
1.5008 + }
1.5009 +
1.5010 +TVerdict CTestMidiClntPlayFileByHandle::DoTestL(CMidiClientUtility* aMidi)
1.5011 + {
1.5012 + //[ Local variables ]
1.5013 + TPtrC filename;
1.5014 +
1.5015 + //[ Get the filename ]
1.5016 + if(!GetStringFromConfig(_L("SectionOne"),_L("filename"),filename))
1.5017 + {
1.5018 + return EInconclusive;
1.5019 + }
1.5020 +
1.5021 + INFO_PRINTF1(_L("CMidiClientUtility : Play MIDI File"));
1.5022 +
1.5023 + iCurrentState = EMidiStateClosedDisengaged;
1.5024 +
1.5025 + //[ RFs and RFile ]
1.5026 + RFs rFs;
1.5027 + RFile rFile;
1.5028 +
1.5029 + //[ Connect to File System using RFs ]
1.5030 + User::LeaveIfError(rFs.Connect());
1.5031 + CleanupClosePushL(rFs);
1.5032 + User::LeaveIfError(rFs.ShareProtected());
1.5033 +
1.5034 + INFO_PRINTF1(_L("Opening the file : c:\\DoesntExist.mid"));
1.5035 +
1.5036 + //[ Open the file using RFile ]
1.5037 + TInt theRes = rFile.Open(rFs, filename, EFileRead);
1.5038 + if(theRes != KErrNone)
1.5039 + {
1.5040 + INFO_PRINTF2(_L("Cannot open file : %S"), &filename);
1.5041 + }
1.5042 + CleanupClosePushL(rFile);
1.5043 +
1.5044 + //[ Call the OpenFile Method using the File Handle ]
1.5045 + aMidi->OpenFile(rFile);
1.5046 +
1.5047 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenDisengaged state..."));
1.5048 + CActiveScheduler::Start(); // EMidiStateClosedDisengaged -> EMidiStateOpenDisengaged
1.5049 +
1.5050 + //[ Clean up RFs and RFile ]
1.5051 + CleanupStack::PopAndDestroy(2);
1.5052 +
1.5053 + if (iCurrentState != EMidiStateOpenDisengaged)
1.5054 + {
1.5055 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenDisengaged, received = %d)"), iCurrentState);
1.5056 + return EFail;
1.5057 + }
1.5058 + aMidi->Play();
1.5059 + if (iError != KErrNone)
1.5060 + {
1.5061 + ERR_PRINTF2(_L("Play gave error %d"),iError);
1.5062 + return EFail;
1.5063 + }
1.5064 +
1.5065 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenPlaying state..."));
1.5066 + CActiveScheduler::Start(); // EMidiStateOpenDisengaged ->EMidiStateOpenPlaying
1.5067 + if (iCurrentState != EMidiStateOpenPlaying)
1.5068 + {
1.5069 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenPlaying, received = %d)"), iCurrentState);
1.5070 + return EFail;
1.5071 + }
1.5072 +
1.5073 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenDisengaged state..."));
1.5074 + CActiveScheduler::Start(); // EMidiStateOpenPlaying ->EMidiStateOpenEngaged
1.5075 + if (iCurrentState != EMidiStateOpenEngaged)
1.5076 + {
1.5077 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenDisengaged, received = %d)"), iCurrentState);
1.5078 + return EFail;
1.5079 + }
1.5080 +
1.5081 + return EPass;
1.5082 + }
1.5083 +
1.5084 +
1.5085 +//------------------------------------------------------------------------
1.5086 +// The purpose of this test is that we can hold more than 10 events in the
1.5087 +// MIDI event queue and none of them gets lost
1.5088 +
1.5089 +CTestMidiClntThirteenMidiEvents::CTestMidiClntThirteenMidiEvents(const TDesC& aTestName, const TTestStepType aTestType)
1.5090 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.5091 + {
1.5092 + // set the current transion to 0, the start point
1.5093 + iCurrentTransion = 0;
1.5094 + }
1.5095 +
1.5096 +
1.5097 +CTestMidiClntThirteenMidiEvents* CTestMidiClntThirteenMidiEvents::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.5098 + {
1.5099 + CTestMidiClntThirteenMidiEvents* self = new(ELeave)CTestMidiClntThirteenMidiEvents(aTestName, aTestType);
1.5100 + return self;
1.5101 + }
1.5102 +
1.5103 +void CTestMidiClntThirteenMidiEvents::InitialiseExpectedTransArrayL()
1.5104 +{
1.5105 + User::LeaveIfError(expectedTransitions.Append(EMmcuoTempoChanged));
1.5106 + User::LeaveIfError(expectedTransitions.Append(EMmcuoVolumeChanged));
1.5107 + User::LeaveIfError(expectedTransitions.Append(EMmcuoMuteChanged));
1.5108 + User::LeaveIfError(expectedTransitions.Append(EMmcuoPolyphonyChanged));
1.5109 + User::LeaveIfError(expectedTransitions.Append(EMmcuoInstrumentChanged));
1.5110 + User::LeaveIfError(expectedTransitions.Append(EMmcuoMetaDataEntryFound));
1.5111 + User::LeaveIfError(expectedTransitions.Append(EMmcuoVolumeChanged));
1.5112 + User::LeaveIfError(expectedTransitions.Append(EMmcuoMuteChanged));
1.5113 + User::LeaveIfError(expectedTransitions.Append(EMmcuoPolyphonyChanged));
1.5114 + User::LeaveIfError(expectedTransitions.Append(EMmcuoInstrumentChanged));
1.5115 + User::LeaveIfError(expectedTransitions.Append(EMmcuoMetaDataEntryFound));
1.5116 + User::LeaveIfError(expectedTransitions.Append(EMmcuoMipMessageReceived));
1.5117 + User::LeaveIfError(expectedTransitions.Append(EMmcuoMipMessageReceived));
1.5118 +
1.5119 +}
1.5120 +
1.5121 +void CTestMidiClntThirteenMidiEvents::MmcuoTempoChanged(TInt /*aMicroBeatsPerMinute*/)
1.5122 +{
1.5123 + if (expectedTransitions[iCurrentTransion] == EMmcuoTempoChanged)
1.5124 + {
1.5125 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoTempoChanged callback"));
1.5126 + iCurrentTransion++;
1.5127 + }
1.5128 + else
1.5129 + {
1.5130 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoTempoChanged callback not expected"));
1.5131 + expectedTransitions[iCurrentTransion] = EMmcuoInvalid;
1.5132 + }
1.5133 +}
1.5134 +
1.5135 +void CTestMidiClntThirteenMidiEvents::MmcuoVolumeChanged(TInt /*aChannel*/,TReal32 /*aVolumeInDecibels*/)
1.5136 +{
1.5137 + if (expectedTransitions[iCurrentTransion] == EMmcuoVolumeChanged)
1.5138 + {
1.5139 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoVolumeChanged callback"));
1.5140 + iCurrentTransion++;
1.5141 + }
1.5142 + else
1.5143 + {
1.5144 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoVolumeChanged callback not expected"));
1.5145 + expectedTransitions[iCurrentTransion] = EMmcuoInvalid;
1.5146 + }
1.5147 +}
1.5148 +
1.5149 +void CTestMidiClntThirteenMidiEvents::MmcuoMuteChanged(TInt /*aChannel*/,TBool /*aMuted*/)
1.5150 +{
1.5151 + if (expectedTransitions[iCurrentTransion] == EMmcuoMuteChanged)
1.5152 + {
1.5153 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoMuteChanged callback"));
1.5154 + iCurrentTransion++;
1.5155 + }
1.5156 + else
1.5157 + {
1.5158 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoMuteChanged callback not expected"));
1.5159 + expectedTransitions[iCurrentTransion] = EMmcuoInvalid;
1.5160 + }
1.5161 +}
1.5162 +
1.5163 +
1.5164 +void CTestMidiClntThirteenMidiEvents::MmcuoMetaDataEntryFound(const TInt /*aMetaDataEntryId*/,const TTimeIntervalMicroSeconds& /*aPosition*/)
1.5165 +{
1.5166 + if (expectedTransitions[iCurrentTransion] == EMmcuoMetaDataEntryFound)
1.5167 + {
1.5168 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoMetaDataEntryFound callback"));
1.5169 + iCurrentTransion++;
1.5170 + }
1.5171 + else
1.5172 + {
1.5173 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoMetaDataEntryFound callback not expected"));
1.5174 + expectedTransitions[iCurrentTransion] = EMmcuoInvalid;
1.5175 + }
1.5176 +}
1.5177 +
1.5178 +void CTestMidiClntThirteenMidiEvents::MmcuoMipMessageReceived(const RArray<TMipMessageEntry>& /*aEntry*/)
1.5179 +{
1.5180 + if (expectedTransitions[iCurrentTransion] == EMmcuoMipMessageReceived)
1.5181 + {
1.5182 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoMipMessageReceived callback"));
1.5183 + iCurrentTransion++;
1.5184 + }
1.5185 + else
1.5186 + {
1.5187 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoMipMessageReceived callback not expected"));
1.5188 + expectedTransitions[iCurrentTransion] = EMmcuoInvalid;
1.5189 + }
1.5190 +}
1.5191 +
1.5192 +void CTestMidiClntThirteenMidiEvents::MmcuoPolyphonyChanged(TInt /*aNewPolyphony*/)
1.5193 +{
1.5194 + if (expectedTransitions[iCurrentTransion] == EMmcuoPolyphonyChanged)
1.5195 + {
1.5196 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoPolyphonyChanged callback"));
1.5197 + iCurrentTransion++;
1.5198 + }
1.5199 + else
1.5200 + {
1.5201 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoPolyphonyChanged callback not expected"));
1.5202 + expectedTransitions[iCurrentTransion] = EMmcuoInvalid;
1.5203 + }
1.5204 +}
1.5205 +
1.5206 +void CTestMidiClntThirteenMidiEvents::MmcuoInstrumentChanged(TInt /*aChannel*/,TInt /*aBankId*/,TInt /*aInstrumentId*/)
1.5207 +{
1.5208 + if (expectedTransitions[iCurrentTransion] == EMmcuoInstrumentChanged)
1.5209 + {
1.5210 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoInstrumentChanged callback"));
1.5211 + iCurrentTransion++;
1.5212 + }
1.5213 + else
1.5214 + {
1.5215 + INFO_PRINTF1(_L("CTestMidiClntThirteenMidiEvents::MmcuoInstrumentChanged callback not expected"));
1.5216 + expectedTransitions[iCurrentTransion] = EMmcuoInvalid;
1.5217 + }
1.5218 +}
1.5219 +
1.5220 +
1.5221 +TVerdict CTestMidiClntThirteenMidiEvents::DoTestL(CMidiClientUtility* aMidi)
1.5222 + {
1.5223 + TVerdict ret = EPass;
1.5224 + TInt expErr = KErrNone;
1.5225 +
1.5226 + InitialiseExpectedTransArrayL();
1.5227 +
1.5228 + TPtrC fileName;
1.5229 + if(!GetStringFromConfig(_L("SectionOne"),_L("filename"),fileName))
1.5230 + {
1.5231 + return EInconclusive;
1.5232 + }
1.5233 +
1.5234 + INFO_PRINTF1(_L("CMidiClientUtility: Play midi file"));
1.5235 + // expected results
1.5236 + switch(iTestType)
1.5237 + {
1.5238 + case ETestValid:
1.5239 + expErr = KErrNone;
1.5240 + break;
1.5241 + case ETestNoPlugin:
1.5242 + expErr = KErrNotSupported;
1.5243 + break;
1.5244 + case ETestInvalidState:
1.5245 + expErr = KErrUnknown;
1.5246 + break;
1.5247 + default:
1.5248 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.5249 + return EInconclusive;
1.5250 + }
1.5251 +
1.5252 + iCurrentState = EMidiStateClosedDisengaged;
1.5253 + aMidi->OpenFile(fileName);
1.5254 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenDisengaged state..."));
1.5255 + CActiveScheduler::Start(); // EMidiStateClosedDisengaged -> EMidiStateOpenDisengaged
1.5256 + if (iCurrentState != EMidiStateOpenDisengaged)
1.5257 + {
1.5258 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenDisengaged, received = %d)"), iCurrentState);
1.5259 + expectedTransitions.Close();
1.5260 + return EFail;
1.5261 + }
1.5262 +
1.5263 + aMidi->Play();
1.5264 + if (expErr != iError)
1.5265 + {
1.5266 + ERR_PRINTF3(_L("Play gave error %d (expected %d)"),iError, expErr);
1.5267 + expectedTransitions.Close();
1.5268 + return EFail;
1.5269 + }
1.5270 + else
1.5271 + {
1.5272 + INFO_PRINTF3(_L("Play, %d = %d"), iError, expErr);
1.5273 + }
1.5274 +
1.5275 +
1.5276 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenPlaying state..."));
1.5277 + CActiveScheduler::Start(); // EMidiStateOpenDisengaged ->EMidiStateOpenPlaying
1.5278 + if (iCurrentState != EMidiStateOpenPlaying)
1.5279 + {
1.5280 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenPlaying, received = %d)"), iCurrentState);
1.5281 + expectedTransitions.Close();
1.5282 + return EFail;
1.5283 + }
1.5284 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenDisengaged state..."));
1.5285 + CActiveScheduler::Start(); // EMidiStateOpenPlaying ->EMidiStateOpenEngaged
1.5286 + if (iCurrentState != EMidiStateOpenEngaged)
1.5287 + {
1.5288 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenEngaged, received = %d)"), iCurrentState);
1.5289 + expectedTransitions.Close();
1.5290 + return EFail;
1.5291 + }
1.5292 +
1.5293 + if (expectedTransitions.Find(EMmcuoInvalid) != KErrNotFound)
1.5294 + {
1.5295 + ERR_PRINTF1(_L("One of the transactions was lost"));
1.5296 + expectedTransitions.Close();
1.5297 + return EFail;
1.5298 + }
1.5299 +
1.5300 + expectedTransitions.Close();
1.5301 +
1.5302 + return ret;
1.5303 + }
1.5304 +
1.5305 +//------------------------------------------------------------------
1.5306 +// TEST 1: Test the transtion from EMidiStateClosedDisengaged to EMidiStateClosedEngaged.
1.5307 +
1.5308 +CTestTrasitionFromEClosedToEClosedEngaged::CTestTrasitionFromEClosedToEClosedEngaged(const TDesC& aTestName, const TTestStepType aTestType)
1.5309 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.5310 + {
1.5311 + }
1.5312 +
1.5313 +CTestTrasitionFromEClosedToEClosedEngaged* CTestTrasitionFromEClosedToEClosedEngaged::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.5314 + {
1.5315 + CTestTrasitionFromEClosedToEClosedEngaged* self = new(ELeave) CTestTrasitionFromEClosedToEClosedEngaged(aTestName, aTestType);
1.5316 + return self;
1.5317 + }
1.5318 +
1.5319 +TVerdict CTestTrasitionFromEClosedToEClosedEngaged::DoTestL(CMidiClientUtility* aMidi)
1.5320 + {
1.5321 + //[ Local variables ]
1.5322 + TVerdict ret = EPass;
1.5323 + TInt expErr = KErrNone;
1.5324 +
1.5325 + INFO_PRINTF1(_L("CMidiClientUtility: Transition from EMidiStateClosedDisengaged to EMidiStateClosedEngaged"));
1.5326 + //[ Expected results ]
1.5327 + switch(iTestType)
1.5328 + {
1.5329 + case ETestValid:
1.5330 + expErr = KErrNone;
1.5331 + break;
1.5332 + case ETestNoPlugin:
1.5333 + expErr = KErrNotSupported;
1.5334 + break;
1.5335 + case ETestInvalidState:
1.5336 + expErr = KErrUnknown;
1.5337 + break;
1.5338 + default:
1.5339 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.5340 + return EInconclusive;
1.5341 + }
1.5342 +
1.5343 + //[ Set the current state to EMidiStateClosedDisengaged ]
1.5344 + iCurrentState = EMidiStateClosedDisengaged;
1.5345 +
1.5346 + //[ Retrieve the MIDI client utility state and check it is EMidiStateClosedDisengaged ]
1.5347 + TMidiState MIDIClientState = aMidi->State();
1.5348 +
1.5349 + if (MIDIClientState == EMidiStateClosedDisengaged)
1.5350 + {
1.5351 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedDisengaged"));
1.5352 + }
1.5353 + else
1.5354 + {
1.5355 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedDisengaged)"), MIDIClientState);
1.5356 + return EFail;
1.5357 + }
1.5358 +
1.5359 + // [ Call Play() ]
1.5360 + aMidi->Play();
1.5361 + if (expErr != iError)
1.5362 + {
1.5363 + ERR_PRINTF3(_L("Play() gave error %d (expected %d)"),iError, expErr);
1.5364 + return EFail;
1.5365 + }
1.5366 +
1.5367 + CActiveScheduler::Start(); // EMidiStateClosedDisengaged -> EMidiStateClosedEngaged
1.5368 +
1.5369 + if (iCurrentState != EMidiStateClosedEngaged)
1.5370 + {
1.5371 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateClosedEngaged, received = %d)"), iCurrentState);
1.5372 + return EFail;
1.5373 + }
1.5374 +
1.5375 + MIDIClientState = aMidi->State();
1.5376 +
1.5377 + if (MIDIClientState == EMidiStateClosedEngaged)
1.5378 + {
1.5379 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedEngaged"));
1.5380 + }
1.5381 + else
1.5382 + {
1.5383 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedEngaged)"), MIDIClientState);
1.5384 + return EFail;
1.5385 + }
1.5386 +
1.5387 + return ret;
1.5388 + }
1.5389 +
1.5390 +
1.5391 +//------------------------------------------------------------------
1.5392 +// TEST 2: Test the transtion from EMidiStateClosedDisengaged to EMidiStateOpenEngaged.
1.5393 +
1.5394 +CTestTrasitionFromEClosedToEOpenEngaged::CTestTrasitionFromEClosedToEOpenEngaged(const TDesC& aTestName, const TTestStepType aTestType)
1.5395 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.5396 + {
1.5397 + }
1.5398 +
1.5399 +CTestTrasitionFromEClosedToEOpenEngaged* CTestTrasitionFromEClosedToEOpenEngaged::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.5400 + {
1.5401 + CTestTrasitionFromEClosedToEOpenEngaged* self = new(ELeave) CTestTrasitionFromEClosedToEOpenEngaged(aTestName, aTestType);
1.5402 + return self;
1.5403 + }
1.5404 +
1.5405 +TVerdict CTestTrasitionFromEClosedToEOpenEngaged::DoTestL(CMidiClientUtility* aMidi)
1.5406 + {
1.5407 + //[ Local variables ]
1.5408 + TVerdict ret = EPass;
1.5409 + TInt expErr = KErrNone;
1.5410 +
1.5411 + INFO_PRINTF1(_L("CMidiClientUtility: Transition from EMidiStateClosedDisengaged to EMidiStateOpenEngaged"));
1.5412 + //[ Expected results ]
1.5413 + switch(iTestType)
1.5414 + {
1.5415 + case ETestValid:
1.5416 + expErr = KErrNone;
1.5417 + break;
1.5418 + case ETestNoPlugin:
1.5419 + expErr = KErrNotSupported;
1.5420 + break;
1.5421 + case ETestInvalidState:
1.5422 + expErr = KErrUnknown;
1.5423 + break;
1.5424 + default:
1.5425 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.5426 + return EInconclusive;
1.5427 + }
1.5428 +
1.5429 + //[ Set the current state to EMidiStateClosedDisengaged ]
1.5430 + iCurrentState = EMidiStateClosedDisengaged;
1.5431 +
1.5432 + //[ Retrieve the MIDI client utility state and check it is EMidiStateClosedDisengaged ]
1.5433 + TMidiState MIDIClientState = aMidi->State();
1.5434 +
1.5435 + if (MIDIClientState == EMidiStateClosedDisengaged)
1.5436 + {
1.5437 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedDisengaged"));
1.5438 + }
1.5439 + else
1.5440 + {
1.5441 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedDisengaged)"), MIDIClientState);
1.5442 + return EFail;
1.5443 + }
1.5444 +
1.5445 + // [ Call OpenFile() ]
1.5446 + TPtrC fileName;
1.5447 + if(!GetStringFromConfig(_L("SectionOne"),_L("filename"),fileName))
1.5448 + {
1.5449 + return EInconclusive;
1.5450 + }
1.5451 + aMidi->OpenFile(fileName);
1.5452 +
1.5453 + CActiveScheduler::Start(); // EMidiStateClosedDisengaged -> EMidiStateOpenDisengaged(EMidiStateOpenDisengaged)
1.5454 + if (iCurrentState != EMidiStateOpenDisengaged)
1.5455 + {
1.5456 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenDisengaged, received = %d)"), iCurrentState);
1.5457 + return EFail;
1.5458 + }
1.5459 +
1.5460 + MIDIClientState = aMidi->State();
1.5461 + if (MIDIClientState == EMidiStateOpenDisengaged)
1.5462 + {
1.5463 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenDisengaged"));
1.5464 + }
1.5465 + else
1.5466 + {
1.5467 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenDisengaged)"), MIDIClientState);
1.5468 + return EFail;
1.5469 + }
1.5470 +
1.5471 + // [ Call Play() ]
1.5472 + aMidi->Play();
1.5473 + if (expErr != iError)
1.5474 + {
1.5475 + ERR_PRINTF3(_L("Play() gave error %d (expected %d)"),iError, expErr);
1.5476 + return EFail;
1.5477 + }
1.5478 +
1.5479 + CActiveScheduler::Start(); // EMidiStateOpenDisengaged -> EMidiStateOpenPlaying
1.5480 +
1.5481 + if (iCurrentState != EMidiStateOpenPlaying)
1.5482 + {
1.5483 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenPlaying, received = %d)"), iCurrentState);
1.5484 + return EFail;
1.5485 + }
1.5486 +
1.5487 + MIDIClientState = aMidi->State();
1.5488 + if (MIDIClientState == EMidiStateOpenPlaying)
1.5489 + {
1.5490 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenPlaying"));
1.5491 + }
1.5492 + else
1.5493 + {
1.5494 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenPlaying)"), MIDIClientState);
1.5495 + return EFail;
1.5496 + }
1.5497 +
1.5498 + CActiveScheduler::Start(); // EMidiStateOpenPlaying -> EMidiStateOpenEngaged
1.5499 +
1.5500 + if (iCurrentState != EMidiStateOpenEngaged)
1.5501 + {
1.5502 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenEngaged, received = %d)"), iCurrentState);
1.5503 + return EFail;
1.5504 + }
1.5505 +
1.5506 + MIDIClientState = aMidi->State();
1.5507 +
1.5508 + if (MIDIClientState == EMidiStateOpenEngaged)
1.5509 + {
1.5510 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenEngaged"));
1.5511 + }
1.5512 + else
1.5513 + {
1.5514 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenEngaged)"), MIDIClientState);
1.5515 + return EFail;
1.5516 + }
1.5517 +
1.5518 + return ret;
1.5519 + }
1.5520 +
1.5521 +
1.5522 +//------------------------------------------------------------------
1.5523 +// TEST 3: Test the transtion from EMidiStateOpenEngaged to EMidiStateClosedEngaged.
1.5524 +
1.5525 +CTestTrasitionFromEOpenEngagedToEClosedEngaged::CTestTrasitionFromEOpenEngagedToEClosedEngaged(const TDesC& aTestName, const TTestStepType aTestType)
1.5526 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.5527 + {
1.5528 + }
1.5529 +
1.5530 +CTestTrasitionFromEOpenEngagedToEClosedEngaged* CTestTrasitionFromEOpenEngagedToEClosedEngaged::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.5531 + {
1.5532 + CTestTrasitionFromEOpenEngagedToEClosedEngaged* self = new(ELeave) CTestTrasitionFromEOpenEngagedToEClosedEngaged(aTestName, aTestType);
1.5533 + return self;
1.5534 + }
1.5535 +
1.5536 +TVerdict CTestTrasitionFromEOpenEngagedToEClosedEngaged::DoTestL(CMidiClientUtility* aMidi)
1.5537 + {
1.5538 + //[ Local variables ]
1.5539 + TVerdict ret = EPass;
1.5540 + TInt expErr = KErrNone;
1.5541 +
1.5542 + INFO_PRINTF1(_L("CMidiClientUtility: Transition from EMidiStateOpenEngaged to EMidiStateClosedEngaged"));
1.5543 + //[ Expected results ]
1.5544 + switch(iTestType)
1.5545 + {
1.5546 + case ETestValid:
1.5547 + expErr = KErrNone;
1.5548 + break;
1.5549 + case ETestNoPlugin:
1.5550 + expErr = KErrNotSupported;
1.5551 + break;
1.5552 + case ETestInvalidState:
1.5553 + expErr = KErrUnknown;
1.5554 + break;
1.5555 + default:
1.5556 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.5557 + return EInconclusive;
1.5558 + }
1.5559 +
1.5560 + //[ Set the current state to EMidiStateClosedDisengaged ]
1.5561 + iCurrentState = EMidiStateClosedDisengaged;
1.5562 +
1.5563 + //[ Retrieve the MIDI client utility state and check it is EMidiStateClosedDisengaged ]
1.5564 + TMidiState MIDIClientState = aMidi->State();
1.5565 +
1.5566 + if (MIDIClientState == EMidiStateClosedDisengaged)
1.5567 + {
1.5568 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedDisengaged"));
1.5569 + }
1.5570 + else
1.5571 + {
1.5572 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedDisengaged)"), MIDIClientState);
1.5573 + return EFail;
1.5574 + }
1.5575 +
1.5576 + // [ Call OpenFile() ]
1.5577 + TPtrC fileName;
1.5578 + if(!GetStringFromConfig(_L("SectionOne"),_L("filename"),fileName))
1.5579 + {
1.5580 + return EInconclusive;
1.5581 + }
1.5582 +
1.5583 + aMidi->OpenFile(fileName);
1.5584 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenDisengaged state..."));
1.5585 + CActiveScheduler::Start(); // EMidiStateClosedDisengaged -> EMidiStateOpenDisengaged
1.5586 + if (iCurrentState != EMidiStateOpenDisengaged)
1.5587 + {
1.5588 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenDisengaged, received = %d)"), iCurrentState);
1.5589 + return EFail;
1.5590 + }
1.5591 + MIDIClientState = aMidi->State();
1.5592 +
1.5593 + if (MIDIClientState == EMidiStateOpenDisengaged)
1.5594 + {
1.5595 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenDisengaged"));
1.5596 + }
1.5597 + else
1.5598 + {
1.5599 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenDisengaged)"), MIDIClientState);
1.5600 + return EFail;
1.5601 + }
1.5602 +
1.5603 + // [ Call Play() ]
1.5604 + aMidi->Play();
1.5605 + if (expErr != iError)
1.5606 + {
1.5607 + ERR_PRINTF3(_L("Play() gave error %d (expected %d)"),iError, expErr);
1.5608 + return EFail;
1.5609 + }
1.5610 +
1.5611 + CActiveScheduler::Start(); // EMidiStateOpenDisengaged -> EMidiStateOpenPlaying
1.5612 +
1.5613 + if (iCurrentState != EMidiStateOpenPlaying)
1.5614 + {
1.5615 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateClosedEngaged, received = %d)"), iCurrentState);
1.5616 + return EFail;
1.5617 + }
1.5618 +
1.5619 + MIDIClientState = aMidi->State();
1.5620 + if (MIDIClientState == EMidiStateOpenPlaying)
1.5621 + {
1.5622 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenPlaying"));
1.5623 + }
1.5624 + else
1.5625 + {
1.5626 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenPlaying)"), MIDIClientState);
1.5627 + return EFail;
1.5628 + }
1.5629 +
1.5630 + CActiveScheduler::Start(); // EMidiStateOpenPlaying -> EMidiStateOpenEngaged
1.5631 +
1.5632 + if (iCurrentState != EMidiStateOpenEngaged)
1.5633 + {
1.5634 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenEngaged, received = %d)"), iCurrentState);
1.5635 + return EFail;
1.5636 + }
1.5637 +
1.5638 + MIDIClientState = aMidi->State();
1.5639 + if (MIDIClientState == EMidiStateOpenEngaged)
1.5640 + {
1.5641 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenEngaged"));
1.5642 + }
1.5643 + else
1.5644 + {
1.5645 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenEngaged)"), MIDIClientState);
1.5646 + return EFail;
1.5647 + }
1.5648 +
1.5649 +
1.5650 + // [ Call Close() ]
1.5651 + aMidi->Close();
1.5652 + if (expErr != iError)
1.5653 + {
1.5654 + ERR_PRINTF3(_L("Play() gave error %d (expected %d)"),iError, expErr);
1.5655 + return EFail;
1.5656 + }
1.5657 +
1.5658 + CActiveScheduler::Start(); // EMidiStateOpenEngaged -> EMidiStateClosedEngaged
1.5659 +
1.5660 + if (iCurrentState != EMidiStateClosedEngaged)
1.5661 + {
1.5662 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateClosedEngaged, received = %d)"), iCurrentState);
1.5663 + return EFail;
1.5664 + }
1.5665 +
1.5666 + MIDIClientState = aMidi->State();
1.5667 + if (MIDIClientState == EMidiStateClosedEngaged)
1.5668 + {
1.5669 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedEngaged"));
1.5670 + }
1.5671 + else
1.5672 + {
1.5673 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedEngaged)"), MIDIClientState);
1.5674 + return EFail;
1.5675 + }
1.5676 +
1.5677 + return ret;
1.5678 + }
1.5679 +
1.5680 +
1.5681 +
1.5682 +//---------------------------------------------------------------------
1.5683 +// TEST 4: Test the transtion from EMidiStateClosedEngaged to EMidiStateClosedDisengaged.
1.5684 +
1.5685 +CTestTrasitionFromEClosedEngagedToEClosed::CTestTrasitionFromEClosedEngagedToEClosed(const TDesC& aTestName, const TTestStepType aTestType)
1.5686 + :CTestMmfMidiClntStep(aTestName, aTestType)
1.5687 + {
1.5688 + }
1.5689 +
1.5690 +CTestTrasitionFromEClosedEngagedToEClosed* CTestTrasitionFromEClosedEngagedToEClosed::NewL(const TDesC& aTestName, const TTestStepType aTestType)
1.5691 + {
1.5692 + CTestTrasitionFromEClosedEngagedToEClosed* self = new(ELeave) CTestTrasitionFromEClosedEngagedToEClosed(aTestName, aTestType);
1.5693 + return self;
1.5694 + }
1.5695 +
1.5696 +TVerdict CTestTrasitionFromEClosedEngagedToEClosed::DoTestL(CMidiClientUtility* aMidi)
1.5697 + {
1.5698 + //[ Local variables ]
1.5699 + TVerdict ret = EPass;
1.5700 + TInt expErr = KErrNone;
1.5701 +
1.5702 + INFO_PRINTF1(_L("CMidiClientUtility: Transition from EMidiStateClosedEngaged to EMidiStateClosedDisengaged"));
1.5703 + //[ Expected results ]
1.5704 + switch(iTestType)
1.5705 + {
1.5706 + case ETestValid:
1.5707 + expErr = KErrNone;
1.5708 + break;
1.5709 + case ETestNoPlugin:
1.5710 + expErr = KErrNotSupported;
1.5711 + break;
1.5712 + case ETestInvalidState:
1.5713 + expErr = KErrUnknown;
1.5714 + break;
1.5715 + default:
1.5716 + ERR_PRINTF1(_L("Error - invalid test step type"));
1.5717 + return EInconclusive;
1.5718 + }
1.5719 +
1.5720 + //[ Set the current state to EMidiStateClosedDisengaged ]
1.5721 + iCurrentState = EMidiStateClosedDisengaged;
1.5722 +
1.5723 + //[ Retrieve the MIDI client utility state and check it is EMidiStateClosedDisengaged ]
1.5724 + TMidiState MIDIClientState = aMidi->State();
1.5725 +
1.5726 + if (MIDIClientState == EMidiStateClosedDisengaged)
1.5727 + {
1.5728 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedDisengaged"));
1.5729 + }
1.5730 + else
1.5731 + {
1.5732 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedDisengaged)"), MIDIClientState);
1.5733 + return EFail;
1.5734 + }
1.5735 +
1.5736 + // [ Call OpenFile() ]
1.5737 + TPtrC fileName;
1.5738 + if(!GetStringFromConfig(_L("SectionOne"),_L("filename"),fileName))
1.5739 + {
1.5740 + return EInconclusive;
1.5741 + }
1.5742 +
1.5743 + aMidi->OpenFile(fileName);
1.5744 + INFO_PRINTF1(_L("Waiting for EMidiStateOpenDisengaged state..."));
1.5745 + CActiveScheduler::Start(); // EMidiStateClosedDisengaged -> EMidiStateOpenDisengaged
1.5746 + if (iCurrentState != EMidiStateOpenDisengaged)
1.5747 + {
1.5748 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenDisengaged, received = %d)"), iCurrentState);
1.5749 + return EFail;
1.5750 + }
1.5751 +
1.5752 + MIDIClientState = aMidi->State();
1.5753 + if (MIDIClientState == EMidiStateOpenDisengaged)
1.5754 + {
1.5755 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenDisengaged"));
1.5756 + }
1.5757 + else
1.5758 + {
1.5759 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenDisengaged)"), MIDIClientState);
1.5760 + return EFail;
1.5761 + }
1.5762 +
1.5763 + // [ Call Play() ]
1.5764 + aMidi->Play();
1.5765 + if (expErr != iError)
1.5766 + {
1.5767 + ERR_PRINTF3(_L("Play() gave error %d (expected %d)"),iError, expErr);
1.5768 + return EFail;
1.5769 + }
1.5770 +
1.5771 + CActiveScheduler::Start(); // EMidiStateOpenDisengaged -> EMidiStateOpenPlaying
1.5772 +
1.5773 + if (iCurrentState != EMidiStateOpenPlaying)
1.5774 + {
1.5775 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenPlaying, received = %d)"), iCurrentState);
1.5776 + return EFail;
1.5777 + }
1.5778 +
1.5779 + MIDIClientState = aMidi->State();
1.5780 + if (MIDIClientState == EMidiStateOpenPlaying)
1.5781 + {
1.5782 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenPlaying"));
1.5783 + }
1.5784 + else
1.5785 + {
1.5786 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenPlaying)"), MIDIClientState);
1.5787 + return EFail;
1.5788 + }
1.5789 +
1.5790 + CActiveScheduler::Start(); // EMidiStateOpenPlaying -> EMidiStateOpenEngaged
1.5791 +
1.5792 + if (iCurrentState != EMidiStateOpenEngaged)
1.5793 + {
1.5794 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateOpenEngaged, received = %d)"), iCurrentState);
1.5795 + return EFail;
1.5796 + }
1.5797 +
1.5798 + MIDIClientState = aMidi->State();
1.5799 +
1.5800 + if (MIDIClientState == EMidiStateOpenEngaged)
1.5801 + {
1.5802 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateOpenEngaged"));
1.5803 + }
1.5804 + else
1.5805 + {
1.5806 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateOpenEngaged)"), MIDIClientState);
1.5807 + return EFail;
1.5808 + }
1.5809 +
1.5810 +
1.5811 + // [ Call Close() ]
1.5812 + aMidi->Close();
1.5813 + if (expErr != iError)
1.5814 + {
1.5815 + ERR_PRINTF3(_L("Play() gave error %d (expected %d)"),iError, expErr);
1.5816 + return EFail;
1.5817 + }
1.5818 +
1.5819 + CActiveScheduler::Start(); // EMidiStateOpenEngaged -> EMidiStateClosedEngaged
1.5820 +
1.5821 + if (iCurrentState != EMidiStateClosedEngaged)
1.5822 + {
1.5823 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateClosedEngaged, received = %d)"), iCurrentState);
1.5824 + return EFail;
1.5825 + }
1.5826 +
1.5827 + MIDIClientState = aMidi->State();
1.5828 + if (MIDIClientState == EMidiStateClosedEngaged)
1.5829 + {
1.5830 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedEngaged"));
1.5831 + }
1.5832 + else
1.5833 + {
1.5834 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedEngaged)"), MIDIClientState);
1.5835 + return EFail;
1.5836 + }
1.5837 +
1.5838 + // [ Call Stop() ]
1.5839 + TTimeIntervalMicroSeconds fadeOutDuration(0);
1.5840 + aMidi->Stop(fadeOutDuration);
1.5841 + if (expErr != iError)
1.5842 + {
1.5843 + ERR_PRINTF3(_L("Play() gave error %d (expected %d)"),iError, expErr);
1.5844 + return EFail;
1.5845 + }
1.5846 +
1.5847 + CActiveScheduler::Start(); // EMidiStateClosedEngaged -> EMidiStateClosedDisengaged
1.5848 +
1.5849 + if (iCurrentState != EMidiStateClosedDisengaged)
1.5850 + {
1.5851 + ERR_PRINTF2(_L("Unexpected state (expected = EMidiStateClosedDisengaged, received = %d)"), iCurrentState);
1.5852 + return EFail;
1.5853 + }
1.5854 +
1.5855 + MIDIClientState = aMidi->State();
1.5856 +
1.5857 + if (MIDIClientState == EMidiStateClosedDisengaged)
1.5858 + {
1.5859 + ERR_PRINTF1(_L("MIDI Client Utility ----> EMidiStateClosedDisengaged"));
1.5860 + }
1.5861 + else
1.5862 + {
1.5863 + ERR_PRINTF2(_L("MIDI Client Utility unexpected state %d (expected ----> EMidiStateClosedDisengaged)"), MIDIClientState);
1.5864 + return EFail;
1.5865 + }
1.5866 + return ret;
1.5867 + }
1.5868 +
1.5869 +//------------------------------------------------------------------------
1.5870 +// This test checks for opening the file using a FileHandle more than
1.5871 +// once.
1.5872 +
1.5873 +
1.5874 +CTestMidiOpenFileHandleRepeat::CTestMidiOpenFileHandleRepeat(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.5875 + :CTestMmfMidiClntStep(aTestName, ETestValid),
1.5876 + iPlay(aPlay)
1.5877 + {
1.5878 + iSectName = aSectName;
1.5879 + iKeyName = aKeyName;
1.5880 + }
1.5881 +
1.5882 +CTestMidiOpenFileHandleRepeat* CTestMidiOpenFileHandleRepeat::NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
1.5883 + {
1.5884 + CTestMidiOpenFileHandleRepeat* self = new(ELeave) CTestMidiOpenFileHandleRepeat(aTestName, aSectName, aKeyName, aPlay);
1.5885 + return self;
1.5886 + }
1.5887 +
1.5888 +TVerdict CTestMidiOpenFileHandleRepeat::DoTestStepL()
1.5889 + {
1.5890 + TPtrC filename;
1.5891 + if(!GetStringFromConfig(iSectName,iKeyName,filename))
1.5892 + return EInconclusive;
1.5893 + TVerdict ret = EFail;
1.5894 + INFO_PRINTF1(_L("Test to check whether OpenFile(const RFile& aFile) works fine when opened more than once using the same filehandle "));
1.5895 +
1.5896 + CMidiClientUtility *midiClient = CMidiClientUtility::NewL(*this);
1.5897 + if (!midiClient)
1.5898 + {
1.5899 + ERR_PRINTF1(_L("Could not create a CMidiClientUtility"));
1.5900 + return EInconclusive;
1.5901 + }
1.5902 + CleanupStack::PushL(midiClient);
1.5903 + RFs fs;
1.5904 + RFile file;
1.5905 + fs.Connect();
1.5906 + CleanupClosePushL(fs);
1.5907 +
1.5908 + TMMFMessageDestinationPckg dummyPckg;
1.5909 + TInt dummyFunc = 0; //EDevMidiOff;
1.5910 + TBuf8<8> dummyBuff;
1.5911 + midiClient->CustomCommandSyncL(dummyPckg, dummyFunc, dummyBuff, dummyBuff, dummyBuff);
1.5912 + TInt err = fs.ShareProtected();
1.5913 + if ((err = file.Open(fs, filename, EFileRead )) == KErrNone)
1.5914 + {
1.5915 + INFO_PRINTF1(_L("Inside the first call"));
1.5916 + midiClient->OpenFile(file);//opening the file for the first time using the handle
1.5917 + CActiveScheduler::Start();
1.5918 + midiClient->Close();
1.5919 + CActiveScheduler::Start();
1.5920 + file.Close();
1.5921 + }
1.5922 + err = file.Open(fs, filename, EFileRead);//Opening the file for the second time
1.5923 + if(err==KErrNone) //shouldn't give inuse error at this point
1.5924 + {
1.5925 + INFO_PRINTF1(_L("Inside the second call"));
1.5926 + midiClient->OpenFile(file);
1.5927 + CActiveScheduler::Start();
1.5928 + midiClient->Close();
1.5929 + CActiveScheduler::Start();
1.5930 + file.Close();
1.5931 + ret=EPass;
1.5932 + }
1.5933 + else
1.5934 + INFO_PRINTF2(_L("Failed to open the file the second time returned with err = %d"),err);
1.5935 +
1.5936 + //To check whether OpenFile(TDesC& aFileName) works fine when opened more than once.
1.5937 + _LIT (KFilename,"c:\\MidiClntITestData\\midi.mid");
1.5938 + midiClient->OpenFile(KFilename);//First Open(TDesC& aFileName)
1.5939 + // Wait for initialisation callback
1.5940 + INFO_PRINTF1(_L("CMidiClientUtility: Opening file"));
1.5941 + CActiveScheduler::Start();
1.5942 + if(iError != KErrNone)
1.5943 + {
1.5944 + INFO_PRINTF2(_L("Failed to open the file.Failed with error %d"),err);
1.5945 + }
1.5946 + midiClient->Close();
1.5947 + CActiveScheduler::Start();
1.5948 + midiClient->OpenFile(KFilename);//Second Open(TDesC& aFileName)
1.5949 + // Wait for initialisation callback
1.5950 + INFO_PRINTF1(_L("CMidiClientUtility: Opening file for the second time"));
1.5951 + CActiveScheduler::Start();
1.5952 + if(iError != KErrNone)
1.5953 + {
1.5954 + INFO_PRINTF2(_L("Failed to open the file second time.Failed with error %d"),err);
1.5955 + }
1.5956 + //Opening the file again without calling the close for the previous open
1.5957 + midiClient->OpenFile(KFilename);
1.5958 + INFO_PRINTF1(_L("CMidiClientUtility: Opening file for the second time without close"));
1.5959 + CActiveScheduler::Start();
1.5960 + if(iError != KErrNone)
1.5961 + {
1.5962 + INFO_PRINTF2(_L("Failed with error %d"),err);
1.5963 + }
1.5964 + midiClient->Close();
1.5965 + CActiveScheduler::Start();
1.5966 +
1.5967 + // To check that calling Open twice without closing the file inbetween does return an inuse error
1.5968 + file.Open(fs, filename, EFileRead);//Opening for the first time
1.5969 + User::After(1000000);
1.5970 + err = file.Open(fs, filename, EFileRead);//Opening for the secondtime without closing the previous open, should return KErrInUse
1.5971 + if(err != KErrInUse)
1.5972 + {
1.5973 + ret=EFail;
1.5974 + INFO_PRINTF2(_L("Expected to return error -14, but returned error %d"),err);
1.5975 + }
1.5976 + file.Close();
1.5977 + CleanupStack::PopAndDestroy(2); // fileServer, midiClient
1.5978 + return ret;
1.5979 + }
1.5980 +
1.5981 +TVerdict CTestMidiOpenFileHandleRepeat::DoTestL(CMidiClientUtility* /*aMidi*/)
1.5982 + {
1.5983 + return EPass;
1.5984 + }
1.5985 +
1.5986 +/*
1.5987 +Playing a midi file without opening a file and checking for its status during call back.
1.5988 +*/
1.5989 +
1.5990 +CTestMidiClntPlayWithoutFile::CTestMidiClntPlayWithoutFile(const TDesC& aTestName)
1.5991 + :CTestMmfMidiClntStep(aTestName, ETestValid)
1.5992 + {}
1.5993 +
1.5994 +CTestMidiClntPlayWithoutFile* CTestMidiClntPlayWithoutFile::NewL(const TDesC& aTestName)
1.5995 + {
1.5996 + CTestMidiClntPlayWithoutFile* self = new(ELeave) CTestMidiClntPlayWithoutFile(aTestName);
1.5997 + return self;
1.5998 + }
1.5999 +
1.6000 +
1.6001 +TVerdict CTestMidiClntPlayWithoutFile::DoTestStepL()
1.6002 + {
1.6003 + CMidiClientUtility* player = CMidiClientUtility::NewL(*this, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality);
1.6004 + TVerdict ret = EPass;
1.6005 + iError = KErrNone;
1.6006 +
1.6007 + if (!player)
1.6008 + {
1.6009 + ERR_PRINTF1(_L("Could not create a CMidiClientUtility"));
1.6010 + return EInconclusive;
1.6011 + }
1.6012 + CleanupStack::PushL(player);
1.6013 +
1.6014 + player->Play();
1.6015 + CActiveScheduler::Start();
1.6016 +
1.6017 + if (iError != KErrNone)
1.6018 + {
1.6019 + ERR_PRINTF1(_L("Error while playing"));
1.6020 + return EInconclusive;
1.6021 + }
1.6022 +
1.6023 + TTimeIntervalMicroSeconds fadeOutDuration(0);
1.6024 + player->Stop(fadeOutDuration);
1.6025 + CActiveScheduler::Start();
1.6026 +
1.6027 + // Check for errors.
1.6028 + if (iError != KErrNone)
1.6029 + {
1.6030 + ret = EFail;
1.6031 + ERR_PRINTF2( _L("CMidiClientUtility failed with error %d"),iError );
1.6032 + }
1.6033 +
1.6034 + INFO_PRINTF1(_L("CMidiClientUtility: Destroying"));
1.6035 + CleanupStack::PopAndDestroy(player);
1.6036 +
1.6037 + return ret;
1.6038 + }
1.6039 +
1.6040 +void CTestMidiClntPlayWithoutFile::MmcuoStateChanged(TMidiState aOldState,TMidiState aNewState,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError)
1.6041 + {
1.6042 + iError=aError;
1.6043 + ERR_PRINTF2(_L("Old State: %d "),aOldState);
1.6044 + ERR_PRINTF2(_L("New State : %d "),aNewState);
1.6045 + ERR_PRINTF2(_L("Error Code : %d "),aError);
1.6046 +
1.6047 + if(aError == KErrNone)
1.6048 + {
1.6049 + if((aOldState == EMidiStateClosedDisengaged) && (aNewState == EMidiStateClosedEngaged))
1.6050 + {
1.6051 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateClosedDisengaged to EMidiStateClosedEngaged, with no error"));
1.6052 + }
1.6053 + else if((aOldState == EMidiStateClosedEngaged) && (aNewState == EMidiStateClosedDisengaged))
1.6054 + {
1.6055 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateClosedEngaged to EMidiStateClosedDisengaged, with no error"));
1.6056 + }
1.6057 + else if((aOldState == EMidiStateClosedDisengaged) && (aNewState == EMidiStateOpenDisengaged))
1.6058 + {
1.6059 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateClosedDisengaged to EMidiStateOpenDisengaged, with no error"));
1.6060 + }
1.6061 + else if((aOldState == EMidiStateOpenDisengaged) && (aNewState == EMidiStateOpenPlaying))
1.6062 + {
1.6063 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateOpenDisengaged to EMidiStateOpenPlaying, with no error"));
1.6064 + }
1.6065 + else if((aOldState == EMidiStateOpenPlaying) && (aNewState == EMidiStateOpenDisengaged))
1.6066 + {
1.6067 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateOpenPlaying to EMidiStateOpenDisengaged, with no error"));
1.6068 + }
1.6069 + else
1.6070 + {
1.6071 + INFO_PRINTF1(_L("State changed call back occurs,the states remain the same with no error"));
1.6072 + }
1.6073 + }
1.6074 + else
1.6075 + {
1.6076 + INFO_PRINTF1(_L("Error during calback"));
1.6077 + }
1.6078 +
1.6079 + CActiveScheduler::Stop();
1.6080 + }
1.6081 +
1.6082 +//------------------------------------------------------------------
1.6083 +
1.6084 +/*
1.6085 +Opening a midi file and playing it and checking for its status during call back.
1.6086 +*/
1.6087 +
1.6088 +CTestMidiClntOpenAndPlayFile::CTestMidiClntOpenAndPlayFile(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName)
1.6089 + :CTestMmfMidiClntStep(aTestName, ETestValid)
1.6090 + {
1.6091 + iSectName = aSectName;
1.6092 + iKeyName = aKeyName;
1.6093 + }
1.6094 +
1.6095 +CTestMidiClntOpenAndPlayFile* CTestMidiClntOpenAndPlayFile::NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName)
1.6096 + {
1.6097 + CTestMidiClntOpenAndPlayFile* self = new(ELeave) CTestMidiClntOpenAndPlayFile(aTestName, aSectName, aKeyName);
1.6098 + return self;
1.6099 + }
1.6100 +
1.6101 +TVerdict CTestMidiClntOpenAndPlayFile::DoTestStepL()
1.6102 + {
1.6103 + TVerdict ret = EPass;
1.6104 + iError = KErrNone;
1.6105 + TPtrC filename;
1.6106 + if(!GetStringFromConfig(iSectName,iKeyName,filename))
1.6107 + return EInconclusive;
1.6108 +
1.6109 + CMidiClientUtility* player = CMidiClientUtility::NewL(*this, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality);
1.6110 + if (!player)
1.6111 + {
1.6112 + ERR_PRINTF1(_L("Could not create a CMidiClientUtility"));
1.6113 + return EInconclusive;
1.6114 + }
1.6115 + CleanupStack::PushL(player);
1.6116 +
1.6117 + player->OpenFile(filename);
1.6118 +
1.6119 + // Wait for initialisation callback
1.6120 + INFO_PRINTF1(_L("CMidiClientUtility: Opening file"));
1.6121 + CActiveScheduler::Start();
1.6122 +
1.6123 + player->Play();
1.6124 + CActiveScheduler::Start();
1.6125 +
1.6126 + if (iError != KErrNone)
1.6127 + {
1.6128 + ERR_PRINTF1(_L("Error while playing"));
1.6129 + return EInconclusive;
1.6130 + }
1.6131 +
1.6132 + TTimeIntervalMicroSeconds fadeOutDuration(0);
1.6133 + player->Stop(fadeOutDuration);
1.6134 + CActiveScheduler::Start();
1.6135 +
1.6136 + // Check for errors.
1.6137 + if (iError != KErrNone)
1.6138 + {
1.6139 + ret = EFail;
1.6140 + ERR_PRINTF2( _L("CMidiClientUtility failed with error %d"),iError );
1.6141 + }
1.6142 +
1.6143 + INFO_PRINTF1(_L("CMidiClientUtility: Destroying"));
1.6144 + CleanupStack::PopAndDestroy(player);
1.6145 +
1.6146 + return ret;
1.6147 + }
1.6148 +
1.6149 +void CTestMidiClntOpenAndPlayFile::MmcuoStateChanged(TMidiState aOldState,TMidiState aNewState,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError)
1.6150 + {
1.6151 + iError=aError;
1.6152 + ERR_PRINTF2(_L("Old State: %d "),aOldState);
1.6153 + ERR_PRINTF2(_L("New State : %d "),aNewState);
1.6154 + ERR_PRINTF2(_L("Error Code : %d "),aError);
1.6155 +
1.6156 + if(aError == KErrNone)
1.6157 + {
1.6158 + if((aOldState == EMidiStateClosedDisengaged) && (aNewState == EMidiStateClosedEngaged))
1.6159 + {
1.6160 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateClosedDisengaged to EMidiStateClosedEngaged, with no error"));
1.6161 + }
1.6162 + else if((aOldState == EMidiStateClosedEngaged) && (aNewState == EMidiStateClosedDisengaged))
1.6163 + {
1.6164 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateClosedEngaged to EMidiStateClosedDisengaged, with no error"));
1.6165 + }
1.6166 + else if((aOldState == EMidiStateClosedDisengaged) && (aNewState == EMidiStateOpenDisengaged))
1.6167 + {
1.6168 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateClosedDisengaged to EMidiStateOpenDisengaged, with no error"));
1.6169 + }
1.6170 + else if((aOldState == EMidiStateOpenDisengaged) && (aNewState == EMidiStateOpenPlaying))
1.6171 + {
1.6172 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateOpenDisengaged to EMidiStateOpenPlaying, with no error"));
1.6173 + }
1.6174 + else if((aOldState == EMidiStateOpenPlaying) && (aNewState == EMidiStateOpenDisengaged))
1.6175 + {
1.6176 + INFO_PRINTF1(_L("State changed call back occurs,change from EMidiStateOpenPlaying to EMidiStateOpenDisengaged, with no error"));
1.6177 + }
1.6178 + else
1.6179 + {
1.6180 + INFO_PRINTF1(_L("State changed call back occurs,the states remain the same with no error"));
1.6181 + }
1.6182 + }
1.6183 + else
1.6184 + {
1.6185 + INFO_PRINTF1(_L("Error during calback"));
1.6186 + }
1.6187 +
1.6188 + CActiveScheduler::Stop();
1.6189 + }
1.6190 +