mmserv/radioutility/radio_utility/tsrc/inc/TFMRadioUtility.h
author hgs
Tue, 21 Sep 2010 11:38:43 -0500
changeset 53 eabc8c503852
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
53
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Header class of CTRadioUtility.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*
hgs
parents:
diff changeset
    17
*/
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef __CTRADIOUTILITY_H
hgs
parents:
diff changeset
    20
#define __CTRADIOUTILITY_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
//#include <e32base.h>
hgs
parents:
diff changeset
    23
//#include <e32cons.h>
hgs
parents:
diff changeset
    24
//#include "RadioSession.h"
hgs
parents:
diff changeset
    25
#include <RadioUtility.h>
hgs
parents:
diff changeset
    26
#include <RadioPlayerUtility.h>
hgs
parents:
diff changeset
    27
#include <RadioFmTunerUtility.h>
hgs
parents:
diff changeset
    28
#include <RadioRdsUtility.h>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    32
class CTRadioUtilityConsole;
hgs
parents:
diff changeset
    33
class CRadioUtility;
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
GLREF_C void Panic(TInt aPanic);
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
class CTRadioUtility : public CBase,
hgs
parents:
diff changeset
    38
						MRadioPlayerObserver,
hgs
parents:
diff changeset
    39
						MRadioFmTunerObserver,
hgs
parents:
diff changeset
    40
						MRadioRdsObserver
hgs
parents:
diff changeset
    41
	{
hgs
parents:
diff changeset
    42
public:
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
/**
hgs
parents:
diff changeset
    45
* NewL method for creating new instances of this class.
hgs
parents:
diff changeset
    46
* @param aParent - a pointer to the BTTestHarness
hgs
parents:
diff changeset
    47
* @return - a pointer to the newly created CBTTestHarnessConsole
hgs
parents:
diff changeset
    48
**/
hgs
parents:
diff changeset
    49
	static CTRadioUtility* NewL();
hgs
parents:
diff changeset
    50
/**
hgs
parents:
diff changeset
    51
* NewLC method for creating new instances of this class.
hgs
parents:
diff changeset
    52
* @param aParent - a pointer to the BTTestHarness
hgs
parents:
diff changeset
    53
* @return - a pointer to the newly created CBTTestHarnessConsole
hgs
parents:
diff changeset
    54
**/
hgs
parents:
diff changeset
    55
	static CTRadioUtility* NewLC();
hgs
parents:
diff changeset
    56
/**
hgs
parents:
diff changeset
    57
* Destructor
hgs
parents:
diff changeset
    58
**/
hgs
parents:
diff changeset
    59
	~CTRadioUtility();
hgs
parents:
diff changeset
    60
	
hgs
parents:
diff changeset
    61
	//
hgs
parents:
diff changeset
    62
	//Player Utility Methods to Test...
hgs
parents:
diff changeset
    63
	//
hgs
parents:
diff changeset
    64
	void Play();
hgs
parents:
diff changeset
    65
	void PlayerState();
hgs
parents:
diff changeset
    66
	void ClosePlayer();
hgs
parents:
diff changeset
    67
	void StopPlayer();
hgs
parents:
diff changeset
    68
	void Mute();
hgs
parents:
diff changeset
    69
	void IsMute();
hgs
parents:
diff changeset
    70
	void SetVolume();
hgs
parents:
diff changeset
    71
	void GetVolume();
hgs
parents:
diff changeset
    72
	void SetVolumeRamp();
hgs
parents:
diff changeset
    73
	void GetMaxVolume();
hgs
parents:
diff changeset
    74
	void SetBalance();
hgs
parents:
diff changeset
    75
	void GetBalance();
hgs
parents:
diff changeset
    76
	
hgs
parents:
diff changeset
    77
	//
hgs
parents:
diff changeset
    78
	//Tuner Utility Methods to Test...
hgs
parents:
diff changeset
    79
	//
hgs
parents:
diff changeset
    80
	void RequestTunerControl();
hgs
parents:
diff changeset
    81
	void CloseTuner();
hgs
parents:
diff changeset
    82
	void GetTunerCapabilities();
hgs
parents:
diff changeset
    83
	void EnableTunerInOfflineMode();
hgs
parents:
diff changeset
    84
	void SetFrequencyRange();
hgs
parents:
diff changeset
    85
	void CancelSetFrequencyRange();
hgs
parents:
diff changeset
    86
	void GetFrequencyRange();
hgs
parents:
diff changeset
    87
	void SetFrequency();
hgs
parents:
diff changeset
    88
	void CancelSetFrequency();
hgs
parents:
diff changeset
    89
	void GetFrequency();
hgs
parents:
diff changeset
    90
	void StationSeek();
hgs
parents:
diff changeset
    91
	void CancelStationSeek();
hgs
parents:
diff changeset
    92
	void GetSignalStrength();
hgs
parents:
diff changeset
    93
	void GetMaxSignalStrength();
hgs
parents:
diff changeset
    94
	void GetStereoMode();
hgs
parents:
diff changeset
    95
	void ForceMonoReception();
hgs
parents:
diff changeset
    96
	void GetForceMonoReception();
hgs
parents:
diff changeset
    97
	void SetSquelch();
hgs
parents:
diff changeset
    98
	void GetSquelch();
hgs
parents:
diff changeset
    99
	
hgs
parents:
diff changeset
   100
	//
hgs
parents:
diff changeset
   101
	//Rds Utility Methods to Test...
hgs
parents:
diff changeset
   102
	//
hgs
parents:
diff changeset
   103
	
hgs
parents:
diff changeset
   104
	 void Close();
hgs
parents:
diff changeset
   105
     void GetRdsCapabilities();
hgs
parents:
diff changeset
   106
     void GetRdsSignalStatus();
hgs
parents:
diff changeset
   107
     void NotifyRdsDataChange();
hgs
parents:
diff changeset
   108
     void CancelNotifyRdsDataChange();
hgs
parents:
diff changeset
   109
     void SetAutomaticSwitching();
hgs
parents:
diff changeset
   110
     void GetAutomaticSwitching();
hgs
parents:
diff changeset
   111
     void CancelAFSearch();
hgs
parents:
diff changeset
   112
     void SetAutomaticTrafficAnnouncement();
hgs
parents:
diff changeset
   113
     void GetAutomaticTrafficAnnouncement();
hgs
parents:
diff changeset
   114
     void StationSeekByPTY();
hgs
parents:
diff changeset
   115
     void StationSeekByTA();
hgs
parents:
diff changeset
   116
     void StationSeekByTP();
hgs
parents:
diff changeset
   117
     void CancelRdsStationSeek();
hgs
parents:
diff changeset
   118
     void GetFreqByPTY();
hgs
parents:
diff changeset
   119
     void CancelGetFreqByPTY();
hgs
parents:
diff changeset
   120
     void GetFreqByTA();
hgs
parents:
diff changeset
   121
     void CancelGetFreqByTA();
hgs
parents:
diff changeset
   122
     void GetPSByPTY();
hgs
parents:
diff changeset
   123
     void CancelGetPSByPTY();
hgs
parents:
diff changeset
   124
     void GetPSByTA();
hgs
parents:
diff changeset
   125
     void CancelGetPSByTA();
hgs
parents:
diff changeset
   126
     void GetProgrammeIdentification();
hgs
parents:
diff changeset
   127
     void GetProgrammeType();
hgs
parents:
diff changeset
   128
     void GetProgrammeService();
hgs
parents:
diff changeset
   129
     void GetRadioText();
hgs
parents:
diff changeset
   130
     void GetRadioTextPlus();
hgs
parents:
diff changeset
   131
     void GetClockTime();
hgs
parents:
diff changeset
   132
     void GetTrafficAnnouncementStatus();
hgs
parents:
diff changeset
   133
     void GetTrafficProgrammeStatus();
hgs
parents:
diff changeset
   134
    
hgs
parents:
diff changeset
   135
	//
hgs
parents:
diff changeset
   136
	// MRadioPlayerObserver Methods
hgs
parents:
diff changeset
   137
	//
hgs
parents:
diff changeset
   138
  
hgs
parents:
diff changeset
   139
     void MrpoStateChange( TPlayerState aState, TInt aError );
hgs
parents:
diff changeset
   140
     void MrpoVolumeChange( TInt aVolume );
hgs
parents:
diff changeset
   141
     void MrpoMuteChange( TBool aMute );
hgs
parents:
diff changeset
   142
     void MrpoBalanceChange( TInt aLeftPercentage, TInt aRightPercentage );
hgs
parents:
diff changeset
   143
     
hgs
parents:
diff changeset
   144
    //
hgs
parents:
diff changeset
   145
	// MRadioFmTunerObserver Methods
hgs
parents:
diff changeset
   146
	//
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
    void MrftoRequestTunerControlComplete( TInt aError );
hgs
parents:
diff changeset
   149
    void MrftoSetFrequencyRangeComplete( TInt aError );
hgs
parents:
diff changeset
   150
    void MrftoSetFrequencyComplete( TInt aError ); 
hgs
parents:
diff changeset
   151
    void MrftoStationSeekComplete( TInt aError, TInt aFrequency );
hgs
parents:
diff changeset
   152
    void MrftoFmTransmitterStatusChange( TBool aActive );
hgs
parents:
diff changeset
   153
    void MrftoAntennaStatusChange( TBool aAttached );
hgs
parents:
diff changeset
   154
    void MrftoOfflineModeStatusChange( TBool aOfflineMode ); 
hgs
parents:
diff changeset
   155
    void MrftoFrequencyRangeChange( TFmRadioFrequencyRange aNewRange ); 
hgs
parents:
diff changeset
   156
    void MrftoFrequencyChange( TInt aNewFrequency ); 
hgs
parents:
diff changeset
   157
    void MrftoForcedMonoChange( TBool aForcedMono );
hgs
parents:
diff changeset
   158
    void MrftoSquelchChange( TBool aSquelch );
hgs
parents:
diff changeset
   159
	
hgs
parents:
diff changeset
   160
    //
hgs
parents:
diff changeset
   161
	// MRadioRdsTunerObserver Methods
hgs
parents:
diff changeset
   162
	//
hgs
parents:
diff changeset
   163
    void MrroStationSeekByPTYComplete( TInt aError, TInt aFrequency );
hgs
parents:
diff changeset
   164
    void MrroStationSeekByTAComplete( TInt aError, TInt aFrequency );
hgs
parents:
diff changeset
   165
    void MrroStationSeekByTPComplete( TInt aError, TInt aFrequency ); 
hgs
parents:
diff changeset
   166
    void MrroGetFreqByPTYComplete( TInt aError, RArray<TInt>& aFreqList );
hgs
parents:
diff changeset
   167
    void MrroGetFreqByTAComplete( TInt aError, RArray<TInt>& aFreqList );
hgs
parents:
diff changeset
   168
    void MrroGetPSByPTYComplete( TInt aError, RArray<TRdsPSName>& aPsList );
hgs
parents:
diff changeset
   169
    void MrroGetPSByTAComplete( TInt aError, RArray<TRdsPSName>& aPsList );
hgs
parents:
diff changeset
   170
    void MrroRdsDataPI( TInt aPi );
hgs
parents:
diff changeset
   171
    void MrroRdsDataPTY( TRdsProgrammeType aPty );
hgs
parents:
diff changeset
   172
    void MrroRdsDataPS( TRdsPSName& aPs );
hgs
parents:
diff changeset
   173
    void MrroRdsDataRT( TRdsRadioText& aRt );
hgs
parents:
diff changeset
   174
    void MrroRdsDataRTplus( TRdsRTplusClass aRtPlusClass, TRdsRadioText& aRtPlusData );
hgs
parents:
diff changeset
   175
    void MrroRdsDataCT( TDateTime& aCt );
hgs
parents:
diff changeset
   176
    void MrroRdsDataTA( TBool aTaOn );
hgs
parents:
diff changeset
   177
    void MrroRdsSearchBeginAF();
hgs
parents:
diff changeset
   178
    void MrroRdsSearchEndAF( TInt aError, TInt aFrequency );
hgs
parents:
diff changeset
   179
	void MrroRdsStationChangeTA( TInt aFrequency );
hgs
parents:
diff changeset
   180
    void MrroRdsEventAutomaticSwitchingChange( TBool aAuto );
hgs
parents:
diff changeset
   181
    void MrroRdsEventAutomaticTrafficAnnouncement( TBool aAuto );
hgs
parents:
diff changeset
   182
    void MrroRdsEventSignalChange( TBool aSignal );
hgs
parents:
diff changeset
   183
 
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
/**
hgs
parents:
diff changeset
   186
* Callback that is used to indicate that a new hci command has been received 
hgs
parents:
diff changeset
   187
* from the chip.
hgs
parents:
diff changeset
   188
* @param aString - The content of the hci frame that was received.
hgs
parents:
diff changeset
   189
**/
hgs
parents:
diff changeset
   190
	//void HandleRadioEngineCallBack(TFMRadioNotifyEvent aEventCode, TInt aErrorCode);
hgs
parents:
diff changeset
   191
/**
hgs
parents:
diff changeset
   192
* Start listening for client keypresses.
hgs
parents:
diff changeset
   193
**/
hgs
parents:
diff changeset
   194
	void StartTestingL();	
hgs
parents:
diff changeset
   195
	void StopTesting();
hgs
parents:
diff changeset
   196
/**
hgs
parents:
diff changeset
   197
* Simple helper method to retrieve a pointer to the console method
hgs
parents:
diff changeset
   198
* @return a pointer to the console
hgs
parents:
diff changeset
   199
**/
hgs
parents:
diff changeset
   200
	CConsoleBase* ConsoleWin();
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
private:
hgs
parents:
diff changeset
   203
/**
hgs
parents:
diff changeset
   204
* 2nd phase constructor
hgs
parents:
diff changeset
   205
**/
hgs
parents:
diff changeset
   206
	void ConstructL();
hgs
parents:
diff changeset
   207
/**
hgs
parents:
diff changeset
   208
* c++ default constructor
hgs
parents:
diff changeset
   209
**/
hgs
parents:
diff changeset
   210
	CTRadioUtility();
hgs
parents:
diff changeset
   211
	void HandleNotifyL( const TUid aUid, const TDesC& aKey, const TDesC& aValue );
hgs
parents:
diff changeset
   212
public:
hgs
parents:
diff changeset
   213
	CConsoleBase* iConsole; //pointer to the console window
hgs
parents:
diff changeset
   214
private:
hgs
parents:
diff changeset
   215
	CRadioUtility*			iRadioUtility;
hgs
parents:
diff changeset
   216
	CTRadioUtilityConsole* 	iReadConsole; 
hgs
parents:
diff changeset
   217
	CRadioFmTunerUtility*	iFmTunerUtility;
hgs
parents:
diff changeset
   218
	CRadioPlayerUtility*	iPlayerUtility;
hgs
parents:
diff changeset
   219
	CRadioRdsUtility*		iRdsUtility;
hgs
parents:
diff changeset
   220
	TFmRadioFrequencyRange  iRange;
hgs
parents:
diff changeset
   221
	};
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
class CTRadioUtilityConsole : public CActive
hgs
parents:
diff changeset
   224
	{
hgs
parents:
diff changeset
   225
public:
hgs
parents:
diff changeset
   226
/**
hgs
parents:
diff changeset
   227
* NewL method for creating new instances of this class.
hgs
parents:
diff changeset
   228
* @param aParent - a pointer to the BTTestHarness
hgs
parents:
diff changeset
   229
* @return - a pointer to the newly created CBTTestHarnessConsole
hgs
parents:
diff changeset
   230
**/
hgs
parents:
diff changeset
   231
	static CTRadioUtilityConsole* NewL(CTRadioUtility* aParent);
hgs
parents:
diff changeset
   232
/**
hgs
parents:
diff changeset
   233
* NewLC method for creating new instances of this class.
hgs
parents:
diff changeset
   234
* @param aParent - a pointer to the BTTestHarness
hgs
parents:
diff changeset
   235
* @return - a pointer to the newly created CBTTestHarnessConsole
hgs
parents:
diff changeset
   236
**/
hgs
parents:
diff changeset
   237
	static CTRadioUtilityConsole* NewLC(CTRadioUtility* aParent);
hgs
parents:
diff changeset
   238
/**
hgs
parents:
diff changeset
   239
* Destructor
hgs
parents:
diff changeset
   240
**/
hgs
parents:
diff changeset
   241
	~CTRadioUtilityConsole();
hgs
parents:
diff changeset
   242
/**
hgs
parents:
diff changeset
   243
* Display the console options, and wait for another key press.
hgs
parents:
diff changeset
   244
**/
hgs
parents:
diff changeset
   245
	void IssueRequestL();
hgs
parents:
diff changeset
   246
/**
hgs
parents:
diff changeset
   247
* This method is called whenever a key is pressed in the console window.
hgs
parents:
diff changeset
   248
**/
hgs
parents:
diff changeset
   249
	void RunL();
hgs
parents:
diff changeset
   250
/**
hgs
parents:
diff changeset
   251
* Cancel any outstanding test requests.
hgs
parents:
diff changeset
   252
**/
hgs
parents:
diff changeset
   253
	void DoCancel();
hgs
parents:
diff changeset
   254
protected:
hgs
parents:
diff changeset
   255
	CTRadioUtilityConsole(CTRadioUtility* aParent);
hgs
parents:
diff changeset
   256
private:
hgs
parents:
diff changeset
   257
/**
hgs
parents:
diff changeset
   258
* 2nd phase constructor
hgs
parents:
diff changeset
   259
**/
hgs
parents:
diff changeset
   260
	void ConstructL();
hgs
parents:
diff changeset
   261
/**
hgs
parents:
diff changeset
   262
* Outstanding request has been completed, start waiting for another request.
hgs
parents:
diff changeset
   263
**/
hgs
parents:
diff changeset
   264
	void ReadConsoleL();
hgs
parents:
diff changeset
   265
	CRadioUtility* GetRadioEngine();
hgs
parents:
diff changeset
   266
private:
hgs
parents:
diff changeset
   267
	CTRadioUtility* iParent;
hgs
parents:
diff changeset
   268
	CConsoleBase* iConsole;
hgs
parents:
diff changeset
   269
	};
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
#endif // __CTRADIOUTILITY_H