First public contribution.
1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Header file: Basic tests.
19 @file TESTMIDICLIENTUTILITY.h
22 #ifndef TESTMIDICLIENTUTILITY_H__
23 #define TESTMIDICLIENTUTILITY_H__
26 #include "TSU_MMFMIDICLNT.h"
28 _LIT(KMidiFileName,"C:\\MidiClntITestData\\midi.mid");
35 EMmcuoPolyphonyChanged,
36 EMmcuoInstrumentChanged,
38 EMmcuoMetaDataEntryFound,
39 EMmcuoMipMessageReceived,
45 * Load and initialise a midi file.
47 * @class CTestMidiClntOpenFile
51 class CTestMidiClntOpenFile : public CTestMmfMidiClntStep
54 CTestMidiClntOpenFile(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
55 ~CTestMidiClntOpenFile() {};
56 static CTestMidiClntOpenFile* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
58 virtual TVerdict DoTestStepL();
59 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
62 TBuf<KNameBufSize> iSectName; // Section name for retrieving filename
63 TBuf<KNameBufSize> iKeyName; // Key name for retrieving filename
64 const TBool iPlay; // Does this test require playing the Audio file
65 TTimeIntervalMicroSeconds iDuration; // Stores duration of Audio file
70 * Load and initialise a midi file.
72 * @class CTestMidiClntOpenDes
76 class CTestMidiClntOpenDes : public CTestMmfMidiClntStep
79 CTestMidiClntOpenDes(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
80 ~CTestMidiClntOpenDes() {};
81 static CTestMidiClntOpenDes* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
83 virtual TVerdict DoTestStepL();
84 virtual TVerdict DoTestStepPreambleL();
85 virtual TVerdict DoTestStepPostambleL();
86 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
89 TBuf<KNameBufSize> iSectName; // Section name for retrieving filename
90 TBuf<KNameBufSize> iKeyName; // Key name for retrieving filename
91 const TBool iPlay; // Does this test require playing the Audio file
92 TTimeIntervalMicroSeconds iDuration; // Stores duration of Audio file
93 HBufC8* iAudio; // Buffer for holding audio descriptor data
97 * Load and initialise a midi file.
99 * @class CTestMidiClntOpenUrl
103 class CTestMidiClntOpenUrl : public CTestMmfMidiClntStep
106 CTestMidiClntOpenUrl(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
107 ~CTestMidiClntOpenUrl() {};
108 static CTestMidiClntOpenUrl* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
110 virtual TVerdict DoTestStepL();
111 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
114 TBuf<KNameBufSize> iSectName; // Section name for retrieving filename
115 TBuf<KNameBufSize> iKeyName; // Key name for retrieving filename
116 const TBool iPlay; // Does this test require playing the Audio file
117 TTimeIntervalMicroSeconds iDuration; // Stores duration of Audio file
123 * @class CTestMidiClntClose
127 class CTestMidiClntClose : public CTestMmfMidiClntStep
130 static CTestMidiClntClose* NewL(const TDesC& aTestName);
131 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
133 CTestMidiClntClose(const TDesC& aTestName);
134 ~CTestMidiClntClose() {};
140 * @class CTestMidiClntPlay
144 class CTestMidiClntPlay : public CTestMmfMidiClntStep
147 static CTestMidiClntPlay* NewL(const TDesC& aTestName, const TTestStepType aTestType);
148 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
150 CTestMidiClntPlay(const TDesC& aTestName, const TTestStepType aTestType);
151 ~CTestMidiClntPlay() {};
157 * @class CTestMidiClntStop
161 class CTestMidiClntStop : public CTestMmfMidiClntStep
164 static CTestMidiClntStop* NewL(const TDesC& aTestName, const TTestStepType aTestType);
165 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
167 CTestMidiClntStop(const TDesC& aTestName, const TTestStepType aTestType);
168 ~CTestMidiClntStop() {};
172 * Returns the state of the midi device.
174 * @class CTestMidiClntGetState
178 class CTestMidiClntGetState : public CTestMidiClntOpenFile // ** N.B.
181 static CTestMidiClntGetState* NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,
182 const TTestStepType aTestType, const TBool aPlay);
183 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
185 CTestMidiClntGetState(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,
186 const TTestStepType aTestType, const TBool aPlay);
187 ~CTestMidiClntGetState() {};
193 * @class CTestMidiClntPlayNote
197 class CTestMidiClntPlayNote : public CTestMmfMidiClntStep
200 static CTestMidiClntPlayNote* NewL(const TDesC& aTestName, const TTestStepType aTestType);
201 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
203 CTestMidiClntPlayNote(const TDesC& aTestName, const TTestStepType aTestType);
204 ~CTestMidiClntPlayNote() {};
208 * Play midi note with start time.
210 * @class CTestMidiClntPlayNoteStartTime
214 class CTestMidiClntPlayNoteStartTime : public CTestMmfMidiClntStep
217 static CTestMidiClntPlayNoteStartTime* NewL(const TDesC& aTestName, const TTestStepType aTestType);
218 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
220 CTestMidiClntPlayNoteStartTime(const TDesC& aTestName, const TTestStepType aTestType);
221 ~CTestMidiClntPlayNoteStartTime() {};
227 * @class CTestMidiClntStopNotes
231 class CTestMidiClntStopNotes : public CTestMmfMidiClntStep
234 static CTestMidiClntStopNotes* NewL(const TDesC& aTestName, const TTestStepType aTestType);
235 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
237 CTestMidiClntStopNotes(const TDesC& aTestName, const TTestStepType aTestType);
238 ~CTestMidiClntStopNotes() {};
244 * @class CTestMidiClntNoteOn
248 class CTestMidiClntNoteOn : public CTestMmfMidiClntStep
251 static CTestMidiClntNoteOn* NewL(const TDesC& aTestName, const TTestStepType aTestType);
252 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
254 CTestMidiClntNoteOn(const TDesC& aTestName, const TTestStepType aTestType);
255 ~CTestMidiClntNoteOn() {};
261 * @class CTestMidiClntNoteOff
265 class CTestMidiClntNoteOff : public CTestMmfMidiClntStep
268 static CTestMidiClntNoteOff* NewL(const TDesC& aTestName, const TTestStepType aTestType);
269 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
271 CTestMidiClntNoteOff(const TDesC& aTestName, const TTestStepType aTestType);
272 ~CTestMidiClntNoteOff() {};
276 * Returns play back rate of the midi device.
278 * @class CTestMidiClntReturnPlaybackRate
282 class CTestMidiClntReturnPlaybackRate : public CTestMmfMidiClntStep
285 static CTestMidiClntReturnPlaybackRate* NewL(const TDesC& aTestName, const TTestStepType aTestType);
286 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
288 CTestMidiClntReturnPlaybackRate(const TDesC& aTestName, const TTestStepType aTestType);
289 ~CTestMidiClntReturnPlaybackRate() {};
293 * Sets the play back rate of the midi device.
295 * @class CTestMidiClntSetPlaybackRate
299 class CTestMidiClntSetPlaybackRate : public CTestMmfMidiClntStep
302 static CTestMidiClntSetPlaybackRate* NewL(const TDesC& aTestName, const TTestStepType aTestType);
303 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
305 CTestMidiClntSetPlaybackRate(const TDesC& aTestName, const TTestStepType aTestType);
306 ~CTestMidiClntSetPlaybackRate() {};
310 * Returns the max play rate of the midi device.
312 * @class CTestMidiClntReturnMaxPlayRate
316 class CTestMidiClntReturnMaxPlayRate : public CTestMmfMidiClntStep
319 static CTestMidiClntReturnMaxPlayRate* NewL(const TDesC& aTestName, const TTestStepType aTestType);
320 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
322 CTestMidiClntReturnMaxPlayRate(const TDesC& aTestName, const TTestStepType aTestType);
323 ~CTestMidiClntReturnMaxPlayRate() {};
327 * Returns the min play rate of the midi device.
329 * @class CTestMidiClntReturnMinPlayRate
333 class CTestMidiClntReturnMinPlayRate : public CTestMmfMidiClntStep
336 static CTestMidiClntReturnMinPlayRate* NewL(const TDesC& aTestName, const TTestStepType aTestType);
337 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
339 CTestMidiClntReturnMinPlayRate(const TDesC& aTestName, const TTestStepType aTestType);
340 ~CTestMidiClntReturnMinPlayRate() {};
344 * Sets the micro bpm (beats per minute)
346 * @class CTestMidiClntTempoMicroBeatsPerMinute
350 class CTestMidiClntTempoMicroBeatsPerMinute : public CTestMmfMidiClntStep
353 static CTestMidiClntTempoMicroBeatsPerMinute* NewL(const TDesC& aTestName, const TTestStepType aTestType);
354 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
356 CTestMidiClntTempoMicroBeatsPerMinute(const TDesC& aTestName, const TTestStepType aTestType);
357 ~CTestMidiClntTempoMicroBeatsPerMinute() {};
361 * Sets the tempo micro bpm (beats per minute)
363 * @class CTestMidiClntSetTempo
367 class CTestMidiClntSetTempo : public CTestMmfMidiClntStep
370 static CTestMidiClntSetTempo* NewL(const TDesC& aTestName, const TTestStepType aTestType);
371 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
373 CTestMidiClntSetTempo(const TDesC& aTestName, const TTestStepType aTestType);
374 ~CTestMidiClntSetTempo() {};
378 * Get Pitch Transposition in Cents
380 * @class CTestMidiClntGetPitchTranspositionCents
384 class CTestMidiClntGetPitchTranspositionCents : public CTestMmfMidiClntStep
387 static CTestMidiClntGetPitchTranspositionCents* NewL(const TDesC& aTestName, const TTestStepType aTestType);
388 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
390 CTestMidiClntGetPitchTranspositionCents(const TDesC& aTestName, const TTestStepType aTestType);
391 ~CTestMidiClntGetPitchTranspositionCents() {};
397 * Set Pitch Transposition in Cents
399 * @class CTestMidiClntSetPitchTransposition
403 class CTestMidiClntSetPitchTransposition : public CTestMmfMidiClntStep
406 static CTestMidiClntSetPitchTransposition* NewL(const TDesC& aTestName, const TTestStepType aTestType);
407 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
409 CTestMidiClntSetPitchTransposition(const TDesC& aTestName, const TTestStepType aTestType);
410 ~CTestMidiClntSetPitchTransposition() {};
414 * Return duration in micro seconds
416 * @class CTestMidiClntDurationMicroSeconds
420 class CTestMidiClntDurationMicroSeconds : public CTestMmfMidiClntStep
423 static CTestMidiClntDurationMicroSeconds* NewL(const TDesC& aTestName, const TTestStepType aTestType);
424 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
426 CTestMidiClntDurationMicroSeconds(const TDesC& aTestName, const TTestStepType aTestType);
427 ~CTestMidiClntDurationMicroSeconds() {};
431 * Return duration in micro beats
433 * @class CTestMidiClntDurationMicroBeats
437 class CTestMidiClntDurationMicroBeats : public CTestMmfMidiClntStep
440 static CTestMidiClntDurationMicroBeats* NewL(const TDesC& aTestName, const TTestStepType aTestType);
441 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
443 CTestMidiClntDurationMicroBeats(const TDesC& aTestName, const TTestStepType aTestType);
444 ~CTestMidiClntDurationMicroBeats() {};
448 * Return number of tracks
450 * @class CTestMidiClntNumTracks
454 class CTestMidiClntNumTracks : public CTestMmfMidiClntStep
457 static CTestMidiClntNumTracks* NewL(const TDesC& aTestName, const TTestStepType aTestType);
458 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
460 CTestMidiClntNumTracks(const TDesC& aTestName, const TTestStepType aTestType);
461 ~CTestMidiClntNumTracks() {};
467 * @class CTestMidiClntSetTrackMute
471 class CTestMidiClntSetTrackMute : public CTestMmfMidiClntStep
474 static CTestMidiClntSetTrackMute* NewL(const TDesC& aTestName, const TTestStepType aTestType);
475 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
477 CTestMidiClntSetTrackMute(const TDesC& aTestName, const TTestStepType aTestType);
478 ~CTestMidiClntSetTrackMute() {};
484 * @class CTestMidiClntMimeType
488 class CTestMidiClntMimeType : public CTestMmfMidiClntStep
491 static CTestMidiClntMimeType* NewL(const TDesC& aTestName, const TTestStepType aTestType);
492 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
494 CTestMidiClntMimeType(const TDesC& aTestName, const TTestStepType aTestType);
495 ~CTestMidiClntMimeType() {};
499 * Returns MimeTypes Supported
501 * @class CTestMidiClntGetMimeTypesSupported
505 class CTestMidiClntGetMimeTypesSupported : public CTestMmfMidiClntStep
508 static CTestMidiClntGetMimeTypesSupported* NewL(const TDesC& aTestName, const TTestStepType aTestType);
509 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
511 CTestMidiClntGetMimeTypesSupported(const TDesC& aTestName, const TTestStepType aTestType);
512 ~CTestMidiClntGetMimeTypesSupported() {};
516 * Sets position in micro seconds
518 * @class CTestMidiClntPositionMicroSeconds
522 class CTestMidiClntPositionMicroSeconds : public CTestMmfMidiClntStep
525 static CTestMidiClntPositionMicroSeconds* NewL(const TDesC& aTestName, const TTestStepType aTestType);
526 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
528 CTestMidiClntPositionMicroSeconds(const TDesC& aTestName, const TTestStepType aTestType);
529 ~CTestMidiClntPositionMicroSeconds() {};
533 * Returns position in micro seconds
535 * @class CTestMidiClntReturnPositionMicroSeconds
539 class CTestMidiClntReturnPositionMicroSeconds : public CTestMmfMidiClntStep
542 static CTestMidiClntReturnPositionMicroSeconds* NewL(const TDesC& aTestName, const TTestStepType aTestType);
543 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
545 CTestMidiClntReturnPositionMicroSeconds(const TDesC& aTestName, const TTestStepType aTestType);
546 ~CTestMidiClntReturnPositionMicroSeconds() {};
550 * Sets position in micro seconds
552 * @class CTestMidiClntSetPositionMicroSeconds
556 class CTestMidiClntSetPositionMicroSeconds : public CTestMmfMidiClntStep
559 static CTestMidiClntSetPositionMicroSeconds* NewL(const TDesC& aTestName, const TTestStepType aTestType);
560 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
562 CTestMidiClntSetPositionMicroSeconds(const TDesC& aTestName, const TTestStepType aTestType);
563 ~CTestMidiClntSetPositionMicroSeconds() {};
567 * Returns position in micro beats
569 * @class CTestMidiClntReturnsPositionMicroBeats
573 class CTestMidiClntReturnsPositionMicroBeats : public CTestMmfMidiClntStep
576 static CTestMidiClntReturnsPositionMicroBeats* NewL(const TDesC& aTestName, const TTestStepType aTestType);
577 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
579 CTestMidiClntReturnsPositionMicroBeats(const TDesC& aTestName, const TTestStepType aTestType);
580 ~CTestMidiClntReturnsPositionMicroBeats() {};
584 * Sets position in micro beats
586 * @class CTestMidiClntSetPositionMicroBeats
590 class CTestMidiClntSetPositionMicroBeats : public CTestMmfMidiClntStep
593 static CTestMidiClntSetPositionMicroBeats* NewL(const TDesC& aTestName, const TTestStepType aTestType);
594 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
596 CTestMidiClntSetPositionMicroBeats(const TDesC& aTestName, const TTestStepType aTestType);
597 ~CTestMidiClntSetPositionMicroBeats() {};
601 * Sets the sync update call back interval
603 * @class CTestSetSyncUpdateCallbackInterval
607 class CTestSetSyncUpdateCallbackInterval : public CTestMmfMidiClntStep
610 static CTestSetSyncUpdateCallbackInterval* NewL(const TDesC& aTestName, const TTestStepType aTestType);
611 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
613 CTestSetSyncUpdateCallbackInterval(const TDesC& aTestName, const TTestStepType aTestType);
614 ~CTestSetSyncUpdateCallbackInterval() {};
617 // -----------------------------------------------------------------------------------------------
620 * Send a midi message
622 * @class CTestSendMessage
626 class CTestSendMessage : public CTestMmfMidiClntStep
629 static CTestSendMessage* NewL(const TDesC& aTestName,
630 const TTestStepType aTestType, const TDesC8& aMessage);
631 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
633 CTestSendMessage(const TDesC& aTestName,
634 const TTestStepType aTestType, const TDesC8& aMessage);
635 ~CTestSendMessage() {};
638 TBuf8<KNameBufSize> iMessage;
641 // class CTestSendMessageTime incorporated in CTestSendMessage
644 * Send a Mip (Maximum Instantenous Polyphony) message
646 * @class CTestSendMipMessage
650 class CTestSendMipMessage : public CTestMmfMidiClntStep
653 static CTestSendMipMessage* NewL(const TDesC& aTestName,
654 const TTestStepType aTestType);
655 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
657 CTestSendMipMessage(const TDesC& aTestName,
658 const TTestStepType aTestType);
659 ~CTestSendMipMessage() {};
666 * @class CTestNumberOfBanks
670 class CTestNumberOfBanks : public CTestMmfMidiClntStep
673 static CTestNumberOfBanks* NewL(const TDesC& aTestName,
674 const TTestStepType aTestType);
675 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
677 CTestNumberOfBanks(const TDesC& aTestName,
678 const TTestStepType aTestType);
679 ~CTestNumberOfBanks() {};
685 * @class CTestGetBankId
689 class CTestGetBankId : public CTestMmfMidiClntStep
692 static CTestGetBankId* NewL(const TDesC& aTestName,
693 const TTestStepType aTestType);
694 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
696 CTestGetBankId(const TDesC& aTestName,
697 const TTestStepType aTestType);
698 ~CTestGetBankId() {};
704 * @class CTestLoadCustomBank
708 class CTestLoadCustomBank : public CTestMmfMidiClntStep
711 static CTestLoadCustomBank* NewL(const TDesC& aTestName,
712 const TTestStepType aTestType);
713 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
715 CTestLoadCustomBank(const TDesC& aTestName,
716 const TTestStepType aTestType);
717 ~CTestLoadCustomBank() {};
723 * @class CTestUnloadCustomBank
727 class CTestUnloadCustomBank : public CTestMmfMidiClntStep
730 static CTestUnloadCustomBank* NewL(const TDesC& aTestName, const TTestStepType aTestType);
731 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
733 CTestUnloadCustomBank(const TDesC& aTestName, const TTestStepType aTestType);
734 ~CTestUnloadCustomBank() {};
738 * Unload all custom banks
740 * @class CTestUnloadAllCustomBanks
744 class CTestUnloadAllCustomBanks : public CTestMmfMidiClntStep
747 static CTestUnloadAllCustomBanks* NewL(const TDesC& aTestName, const TTestStepType aTestType);
748 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
750 CTestUnloadAllCustomBanks(const TDesC& aTestName, const TTestStepType aTestType);
751 ~CTestUnloadAllCustomBanks() {};
755 * Return the number of instruments
757 * @class CTestNumberOfInstruments
761 class CTestNumberOfInstruments : public CTestMmfMidiClntStep
764 static CTestNumberOfInstruments* NewL(const TDesC& aTestName, const TTestStepType aTestType);
765 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
767 CTestNumberOfInstruments(const TDesC& aTestName, const TTestStepType aTestType);
768 ~CTestNumberOfInstruments() {};
772 * Returns instrument id
774 * @class CTestGetInstrumentId
778 class CTestGetInstrumentId : public CTestMmfMidiClntStep
781 static CTestGetInstrumentId* NewL(const TDesC& aTestName, const TTestStepType aTestType);
782 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
784 CTestGetInstrumentId(const TDesC& aTestName, const TTestStepType aTestType);
785 ~CTestGetInstrumentId() {};
789 * Returns instrument name
791 * @class CTestReturnsInstrumentName
795 class CTestReturnsInstrumentName : public CTestMmfMidiClntStep
798 static CTestReturnsInstrumentName* NewL(const TDesC& aTestName, const TTestStepType aTestType);
799 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
801 CTestReturnsInstrumentName(const TDesC& aTestName, const TTestStepType aTestType);
802 ~CTestReturnsInstrumentName() {};
808 * @class CTestGetInstrument
812 class CTestGetInstrument : public CTestMmfMidiClntStep
815 static CTestGetInstrument* NewL(const TDesC& aTestName, const TTestStepType aTestType);
816 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
818 CTestGetInstrument(const TDesC& aTestName, const TTestStepType aTestType);
819 ~CTestGetInstrument() {};
825 * @class CTestSetInstrument
829 class CTestSetInstrument : public CTestMmfMidiClntStep
832 static CTestSetInstrument* NewL(const TDesC& aTestName, const TTestStepType aTestType);
833 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
835 CTestSetInstrument(const TDesC& aTestName, const TTestStepType aTestType);
836 ~CTestSetInstrument() {};
840 * Load custom instrument
842 * @class CTestLoadCustomInstrument
846 class CTestLoadCustomInstrument : public CTestMmfMidiClntStep
849 static CTestLoadCustomInstrument* NewL(const TDesC& aTestName, const TTestStepType aTestType);
850 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
852 CTestLoadCustomInstrument(const TDesC& aTestName, const TTestStepType aTestType);
853 ~CTestLoadCustomInstrument() {};
858 * Load custom instrument data
860 * @class CTestLoadCustomInstrumentData
864 class CTestLoadCustomInstrumentData : public CTestMmfMidiClntStep
867 static CTestLoadCustomInstrumentData* NewL(const TDesC& aTestName, const TTestStepType aTestType);
868 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
870 CTestLoadCustomInstrumentData(const TDesC& aTestName, const TTestStepType aTestType);
871 ~CTestLoadCustomInstrumentData() {};
876 * Unload custom instrument
878 * @class CTestUnloadCustomInstrument
882 class CTestUnloadCustomInstrument : public CTestMmfMidiClntStep
885 static CTestUnloadCustomInstrument* NewL(const TDesC& aTestName, const TTestStepType aTestType);
886 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
888 CTestUnloadCustomInstrument(const TDesC& aTestName, const TTestStepType aTestType);
889 ~CTestUnloadCustomInstrument() {};
893 * Get percussion key name
895 * @class CTestPercussionKeyName
899 class CTestPercussionKeyName : public CTestMmfMidiClntStep
902 static CTestPercussionKeyName* NewL(const TDesC& aTestName, const TTestStepType aTestType);
903 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
905 CTestPercussionKeyName(const TDesC& aTestName, const TTestStepType aTestType);
906 ~CTestPercussionKeyName() {};
912 * @class CTestStopTime
916 class CTestStopTime : public CTestMmfMidiClntStep
919 static CTestStopTime* NewL(const TDesC& aTestName, const TTestStepType aTestType);
920 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
922 CTestStopTime(const TDesC& aTestName, const TTestStepType aTestType);
929 * @class CTestSetStopTime
933 class CTestSetStopTime : public CTestMmfMidiClntStep
936 static CTestSetStopTime* NewL(const TDesC& aTestName, const TTestStepType aTestType);
937 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
939 CTestSetStopTime(const TDesC& aTestName, const TTestStepType aTestType);
940 ~CTestSetStopTime() {};
944 * Set the number of repeats
946 * @class CTestSetRepeats
950 class CTestSetRepeats : public CTestMmfMidiClntStep
953 static CTestSetRepeats* NewL(const TDesC& aTestName, const TTestStepType aTestType);
954 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
956 CTestSetRepeats(const TDesC& aTestName, const TTestStepType aTestType);
957 ~CTestSetRepeats() {};
961 * Returns the number of simultaneous voices a synth is able to play (polyphony)
963 * @class CTestPolyphony
967 class CTestPolyphony : public CTestMmfMidiClntStep
970 static CTestPolyphony* NewL(const TDesC& aTestName, const TTestStepType aTestType);
971 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
973 CTestPolyphony(const TDesC& aTestName, const TTestStepType aTestType);
974 ~CTestPolyphony() {};
978 * Returns channels supported
980 * @class CTestChannelsSupported
984 class CTestChannelsSupported : public CTestMmfMidiClntStep
987 static CTestChannelsSupported* NewL(const TDesC& aTestName, const TTestStepType aTestType);
988 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
990 CTestChannelsSupported(const TDesC& aTestName, const TTestStepType aTestType);
991 ~CTestChannelsSupported() {};
995 * Returns channel volume
997 * @class CTestReturnChannelVolume
1001 class CTestReturnChannelVolume : public CTestMmfMidiClntStep
1004 static CTestReturnChannelVolume* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1005 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1007 CTestReturnChannelVolume(const TDesC& aTestName, const TTestStepType aTestType);
1008 ~CTestReturnChannelVolume() {};
1012 * Returns max channel volume
1014 * @class CTestMaxChannelVolume
1018 class CTestMaxChannelVolume : public CTestMmfMidiClntStep
1021 static CTestMaxChannelVolume* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1022 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1024 CTestMaxChannelVolume(const TDesC& aTestName, const TTestStepType aTestType);
1025 ~CTestMaxChannelVolume() {};
1029 * Sets channel volume
1031 * @class CTestSetChannelVolume
1035 class CTestSetChannelVolume : public CTestMmfMidiClntStep
1038 static CTestSetChannelVolume* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1039 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1041 CTestSetChannelVolume(const TDesC& aTestName, const TTestStepType aTestType);
1042 ~CTestSetChannelVolume() {};
1046 * Mute channel volume
1048 * @class CTestSetChannelMute
1052 class CTestSetChannelMute : public CTestMmfMidiClntStep
1055 static CTestSetChannelMute* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1056 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1058 CTestSetChannelMute(const TDesC& aTestName, const TTestStepType aTestType);
1059 ~CTestSetChannelMute() {};
1065 * @class CTestReturnVolume
1069 class CTestReturnVolume : public CTestMmfMidiClntStep
1072 static CTestReturnVolume* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1073 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1075 CTestReturnVolume(const TDesC& aTestName, const TTestStepType aTestType);
1076 ~CTestReturnVolume() {};
1082 * @class CTestMaxVolume
1086 class CTestReturnMaxVolume : public CTestMmfMidiClntStep
1089 static CTestReturnMaxVolume* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1090 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1092 CTestReturnMaxVolume(const TDesC& aTestName, const TTestStepType aTestType);
1093 ~CTestReturnMaxVolume() {};
1099 * @class CTestSetVolume
1103 class CTestSetVolume : public CTestMmfMidiClntStep
1106 static CTestSetVolume* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1107 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1109 CTestSetVolume(const TDesC& aTestName, const TTestStepType aTestType);
1110 ~CTestSetVolume() {};
1116 * @class CTestSetVolumeRamp
1120 class CTestSetVolumeRamp : public CTestMmfMidiClntStep
1123 static CTestSetVolumeRamp* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1124 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1126 CTestSetVolumeRamp(const TDesC& aTestName, const TTestStepType aTestType);
1127 ~CTestSetVolumeRamp() {};
1133 * @class CTestGetBalance
1137 class CTestGetBalance : public CTestMmfMidiClntStep
1140 static CTestGetBalance* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1141 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1143 CTestGetBalance(const TDesC& aTestName, const TTestStepType aTestType);
1144 ~CTestGetBalance() {};
1150 * @class CTestSetBalance
1154 class CTestSetBalance : public CTestMmfMidiClntStep
1157 static CTestSetBalance* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1158 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1160 CTestSetBalance(const TDesC& aTestName, const TTestStepType aTestType);
1161 ~CTestSetBalance() {};
1167 * @class CTestSetPriority
1171 class CTestSetPriority : public CTestMmfMidiClntStep
1174 static CTestSetPriority* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1175 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1177 CTestSetPriority(const TDesC& aTestName, const TTestStepType aTestType);
1178 ~CTestSetPriority() {};
1182 * Returns number of xmf meta data entries
1184 * @class CTestNumberOfXmfMetaDataEntries
1188 class CTestNumberOfXmfMetaDataEntries : public CTestMmfMidiClntStep
1191 static CTestNumberOfXmfMetaDataEntries* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1192 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1194 CTestNumberOfXmfMetaDataEntries(const TDesC& aTestName, const TTestStepType aTestType);
1195 ~CTestNumberOfXmfMetaDataEntries() {};
1199 * Returns xmf meta data entry
1201 * @class CTestGetXmfMetaDataEntry
1205 class CTestGetXmfMetaDataEntry : public CTestMmfMidiClntStep
1208 static CTestGetXmfMetaDataEntry* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1209 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1211 CTestGetXmfMetaDataEntry(const TDesC& aTestName, const TTestStepType aTestType);
1212 ~CTestGetXmfMetaDataEntry() {};
1216 * Loads instrument data
1218 * @class CTestLoadInstrumentData
1222 class CTestLoadInstrumentData : public CTestMmfMidiClntStep
1225 static CTestLoadInstrumentData* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1226 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1228 CTestLoadInstrumentData(const TDesC& aTestName, const TTestStepType aTestType);
1229 ~CTestLoadInstrumentData() {};
1234 * Checks that we call the right function in the Midi test controller
1236 * @class CTestCheckInterface
1240 class CTestCheckInterface : public CTestMmfMidiClntStep
1243 static CTestCheckInterface* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1244 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1246 CTestCheckInterface(const TDesC& aTestName, const TTestStepType aTestType);
1247 ~CTestCheckInterface();
1249 TInt CompareInterface(const TDesC8& aInterfaceName);
1250 void ConstructL(void);
1253 RSemaphore iSemaphore;
1257 * Load and initialise a midi file.
1259 * @class CTestMidiClntOpenFileByHandle
1263 class CTestMidiClntOpenFileByHandle : public CTestMmfMidiClntStep
1266 ~CTestMidiClntOpenFileByHandle() {};
1267 static CTestMidiClntOpenFileByHandle* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay, const TTestStepType aTestType);
1269 virtual TVerdict DoTestStepL();
1271 CTestMidiClntOpenFileByHandle(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay, const TTestStepType aTestType);
1273 TBuf<KNameBufSize> iSectName; // Section name for retrieving filename
1274 TBuf<KNameBufSize> iKeyName; // Key name for retrieving filename
1275 const TBool iPlay; // Does this test require playing the Audio file
1276 TTimeIntervalMicroSeconds iDuration; // Stores duration of Audio file
1282 * @class CTestMidiClntPlayFileByHandle
1286 class CTestMidiClntPlayFileByHandle : public CTestMmfMidiClntStep
1289 ~CTestMidiClntPlayFileByHandle() {};
1290 static CTestMidiClntPlayFileByHandle* NewL(const TDesC& aTestName);
1292 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1294 CTestMidiClntPlayFileByHandle(const TDesC& aTestName);
1299 * Play a midi file and verify that no events are getting lost
1301 * @class CTestMidiClntThirteenMidiEvents
1305 class CTestMidiClntThirteenMidiEvents : public CTestMmfMidiClntStep
1308 static CTestMidiClntThirteenMidiEvents* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1309 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1311 virtual void MmcuoTempoChanged(TInt aMicroBeatsPerMinute);
1312 virtual void MmcuoVolumeChanged(TInt aChannel,TReal32 aVolumeInDecibels);
1313 virtual void MmcuoMuteChanged(TInt aChannel,TBool aMuted);
1314 virtual void MmcuoMetaDataEntryFound(const TInt aMetaDataEntryId,const TTimeIntervalMicroSeconds& aPosition);
1315 virtual void MmcuoMipMessageReceived(const RArray<TMipMessageEntry>& aEntry);
1316 virtual void MmcuoPolyphonyChanged(TInt aNewPolyphony);
1317 virtual void MmcuoInstrumentChanged(TInt aChannel,TInt aBankId,TInt aInstrumentId);
1319 void InitialiseExpectedTransArrayL();
1321 CTestMidiClntThirteenMidiEvents(const TDesC& aTestName, const TTestStepType aTestType);
1322 ~CTestMidiClntThirteenMidiEvents() {};
1324 RArray<TMmcuoCallbacks> expectedTransitions;
1325 TUint8 iCurrentTransion;
1330 * Test the MIDI pluging state machine: transition from EMidiStateClosedDisengaged to EMidiStateClosedEngaged
1332 * @class CTestTrasitionFromEClosedToEClosedEngaged
1336 class CTestTrasitionFromEClosedToEClosedEngaged : public CTestMmfMidiClntStep
1339 static CTestTrasitionFromEClosedToEClosedEngaged* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1340 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1343 CTestTrasitionFromEClosedToEClosedEngaged(const TDesC& aTestName, const TTestStepType aTestType);
1344 ~CTestTrasitionFromEClosedToEClosedEngaged() {};
1349 * Test the MIDI pluging state machine: transition from EMidiStateClosedDisengaged to EMidiStateOpenEngaged
1351 * @class CTestTrasitionFromEClosedToEOpenEngaged
1355 class CTestTrasitionFromEClosedToEOpenEngaged : public CTestMmfMidiClntStep
1358 static CTestTrasitionFromEClosedToEOpenEngaged* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1359 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1362 CTestTrasitionFromEClosedToEOpenEngaged(const TDesC& aTestName, const TTestStepType aTestType);
1363 ~CTestTrasitionFromEClosedToEOpenEngaged() {};
1369 * Test the MIDI pluging state machine: transition from EMidiStateOpenEngaged to EMidiStateClosedEngaged
1371 * @class CTestTrasitionFromEOpenEngagedToEClosedEngaged
1375 class CTestTrasitionFromEOpenEngagedToEClosedEngaged : public CTestMmfMidiClntStep
1378 static CTestTrasitionFromEOpenEngagedToEClosedEngaged* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1379 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1382 CTestTrasitionFromEOpenEngagedToEClosedEngaged(const TDesC& aTestName, const TTestStepType aTestType);
1383 ~CTestTrasitionFromEOpenEngagedToEClosedEngaged() {};
1388 * Test the MIDI pluging state machine: transition from EMidiStateClosedEngaged to EMidiStateClosedDisengaged
1390 * @class CTestTrasitionFromEClosedEngagedToEClosed
1394 class CTestTrasitionFromEClosedEngagedToEClosed : public CTestMmfMidiClntStep
1397 static CTestTrasitionFromEClosedEngagedToEClosed* NewL(const TDesC& aTestName, const TTestStepType aTestType);
1398 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1401 CTestTrasitionFromEClosedEngagedToEClosed(const TDesC& aTestName, const TTestStepType aTestType);
1402 ~CTestTrasitionFromEClosedEngagedToEClosed() {};
1405 struct TDrmTestParams
1423 const TText* iFileNameKey;
1424 const TText* iUniqueId;
1425 ContentAccess::TIntent iIntent;
1426 TInt iExpectedError;
1427 TSourceType iSourceType;
1429 TTestMode iTestMode;
1432 class CCallbackTimer;
1434 class CTestStepDrm : public CTestMmfMidiClntStep
1438 virtual void OnTimer();
1440 virtual TVerdict DoTestStepPreambleL();
1441 virtual TVerdict DoTestStepPostambleL();
1442 virtual TVerdict DoTestStepL();
1443 TVerdict OpenFileL(CMidiClientUtility* aMidi);
1444 CTestStepDrm(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1446 const TDrmTestParams& iDrmParams;
1449 CCallbackTimer* iTimer;
1451 static TInt TimerGate(TAny* aPtr);
1454 * DRM-related negative test
1459 class CTestDrmNegative : public CTestStepDrm
1462 static CTestDrmNegative* NewL(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1463 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1464 virtual void MmcuoStateChanged(TMidiState /*aOldState*/,TMidiState /*aNewState*/,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError);
1466 CTestDrmNegative(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1469 class CTestDrmPlay : public CTestStepDrm
1472 static CTestDrmPlay* NewL(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1474 virtual TVerdict PlayL(CMidiClientUtility* aMidi, TTimeIntervalMicroSeconds32 aStopAfter);
1475 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1476 virtual void MmcuoStateChanged(TMidiState /*aOldState*/,TMidiState /*aNewState*/,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError);
1479 CTestDrmPlay(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1482 TMidiState iLatestState;
1487 class CTestDrmPlayStop : public CTestDrmPlay
1490 static CTestDrmPlayStop* NewL(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1492 virtual void OnTimer();
1493 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1495 CTestDrmPlayStop(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1496 CMidiClientUtility* iMidi;
1501 class CTestDrmPlayWithUI : public CTestStepDrm
1504 static CTestDrmPlayWithUI* NewL(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1506 virtual TVerdict PlayL(CMidiClientUtility* aMidi, TTimeIntervalMicroSeconds32 aStopAfter);
1507 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1508 virtual void MmcuoStateChanged(TMidiState /*aOldState*/,TMidiState /*aNewState*/,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError);
1511 TMidiState iLatestState;
1514 CTestDrmPlayWithUI(const TDesC& aTestName, const TTestStepType aTestType, const TDrmTestParams& aDrmParams);
1518 * Open a midi file more than once using FileHandle
1520 * @class CTestMidiOpenFileHandleRepeat
1524 class CTestMidiOpenFileHandleRepeat : public CTestMmfMidiClntStep
1527 CTestMidiOpenFileHandleRepeat(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
1528 ~CTestMidiOpenFileHandleRepeat() {};
1529 static CTestMidiOpenFileHandleRepeat* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay);
1531 virtual TVerdict DoTestStepL();
1532 virtual TVerdict DoTestL(CMidiClientUtility* aMidi);
1535 TBuf<KNameBufSize> iSectName; // Section name for retrieving filename
1536 TBuf<KNameBufSize> iKeyName; // Key name for retrieving filename
1537 const TBool iPlay; // Does this test require playing the Audio file
1538 TTimeIntervalMicroSeconds iDuration; // Stores duration of Audio file
1543 * Play without opening a file.
1545 * @class CTestMidiClntPlayWithoutFile
1549 class CTestMidiClntPlayWithoutFile : public CTestMmfMidiClntStep
1552 CTestMidiClntPlayWithoutFile(const TDesC& aTestName);
1553 ~CTestMidiClntPlayWithoutFile() {};
1554 static CTestMidiClntPlayWithoutFile * NewL(const TDesC& aTestName);
1556 virtual TVerdict DoTestStepL();
1557 void MmcuoStateChanged(TMidiState aOldState,TMidiState aNewState,const TTimeIntervalMicroSeconds& aTime,TInt aError);
1564 * Opening a midifile and playing it.
1566 * @class CTestMidiClntOpenAndPlayFile
1570 class CTestMidiClntOpenAndPlayFile : public CTestMmfMidiClntStep
1573 CTestMidiClntOpenAndPlayFile(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName);
1574 ~CTestMidiClntOpenAndPlayFile() {};
1575 static CTestMidiClntOpenAndPlayFile* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName);
1577 virtual TVerdict DoTestStepL();
1578 void MmcuoStateChanged(TMidiState aOldState,TMidiState aNewState,const TTimeIntervalMicroSeconds& aTime,TInt aError);
1580 TBuf<KNameBufSize> iSectName; // Section name for retrieving filename
1581 TBuf<KNameBufSize> iKeyName; // Key name for retrieving filename