mmaudio_plat/restricted_audio_output_api/tsrc/RestrictedAOTestClass/src/RestrictedAOTestClassBlocks.cpp
author hgs
Tue, 02 Nov 2010 12:13:59 +0000
changeset 5 b220a9341636
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
* All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
* Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
* Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
* Description: Restricted Audio Output Test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
// INCLUDE FILES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include <e32svr.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <StifParser.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include <Stiftestinterface.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include "RestrictedAOTestClass.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include "debug.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
// EXTERNAL DATA STRUCTURES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
//extern  ?external_data;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
// EXTERNAL FUNCTION PROTOTYPES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
//extern ?external_function( ?arg_type,?arg_type );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
// CONSTANTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
//const ?type ?constant_var = ?constant;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
// MACROS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
//#define ?macro ?macro_def
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
// LOCAL CONSTANTS AND MACROS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
//const ?type ?constant_var = ?constant;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
//#define ?macro_name ?macro_def
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
// MODULE DATA STRUCTURES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
//enum ?declaration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
//typedef ?declaration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
// LOCAL FUNCTION PROTOTYPES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
//?type ?function_name( ?arg_type, ?arg_type );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
// FORWARD DECLARATIONS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
//class ?FORWARD_CLASSNAME;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
// ============================= LOCAL FUNCTIONS ===============================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
// ?function_name .
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
// Returns: ?value_1:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
//          ?value_n: _line1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
//                    _line2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
?type ?function_name(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
    ?arg_type arg,  //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
    ?arg_type arg)  //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
    ?code  // ?comment
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
    // ?comment
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
    ?code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
// ============================ MEMBER FUNCTIONS ===============================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
// CRestrictedAOTestClass::Delete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
// Delete here all resources allocated and opened from test methods.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
// Called from destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
void CRestrictedAOTestClass::Delete()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
    FTRACE(FPrint(_L("CRestrictedAOTestClass::Delete")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
    iExpectedEvents.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
    iOcurredEvents.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
    iLog->Log(_L("Deleting test class..."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	  iLog->Log(_L(""));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	  iLog->Log(_L(""));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
    if(iRestrictedAudioOutput)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
    	delete iRestrictedAudioOutput;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
    if (iDevSound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
        delete iDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
        iDevSound = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
        }
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   106
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   107
    if (iFactory)
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   108
   	{
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   109
	delete iFactory;
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   110
        iFactory = NULL;
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   111
	}
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
REComSession::FinalClose();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
// CRestrictedAOTestClass::RunMethodL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
// Run specified method. Contains also table of test mothods and their names.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
TInt CRestrictedAOTestClass::RunMethodL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
    CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
    static TStifFunctionInfo const KFunctions[] =
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
        // Copy this line for every implemented function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
        // First string is the function name used in TestScripter script file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
        // Second is the actual implementation member function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   131
				ENTRY( "CreateFactory", CRestrictedAOTestClass::CreateFactory ),
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   132
				ENTRY( "CreateRestrictedAO", CRestrictedAOTestClass::CreateRestrictedAO ),
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
        ENTRY( "AppendAllowedOutput", CRestrictedAOTestClass::AppendAllowedOutput ),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
        ENTRY( "RemoveAllowedOutput", CRestrictedAOTestClass::RemoveAllowedOutput ),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
        ENTRY( "GetAllowedOutputCount", CRestrictedAOTestClass::GetAllowedOutputCount ),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
        ENTRY( "GetAllowedOutput", CRestrictedAOTestClass::GetAllowedOutput ),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
        ENTRY( "Reset", CRestrictedAOTestClass::Reset ),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
        ENTRY( "Commit", CRestrictedAOTestClass::Commit ),
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   139
        ENTRY( "GetUid", CRestrictedAOTestClass::GetUid ),
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   140
        
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
        ENTRY( "Example", CRestrictedAOTestClass::ExampleL ),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
        };
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
    const TInt count = sizeof( KFunctions ) /
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
                        sizeof( TStifFunctionInfo );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
    return RunInternalL( KFunctions, count, aItem );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
// CRestrictedAOTestClass::EventName
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
// Return descriptor with the notification description
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
TPtrC CRestrictedAOTestClass::EventName( TInt aKey )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
	static TText* const badKeyword = (TText*)L"BadKeyword";
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	static TText* const keywords[] =
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
		(TText*)L"EInitializeComplete",
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	if( (TUint)aKey >= (sizeof( keywords )/sizeof(TText*)) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
		iLog->Log(_L("Keyword out of bounds"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
		TPtrC keyword( badKeyword );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
		return keyword;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
		TPtrC keyword( keywords[aKey] );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
		return keyword;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
// CRestrictedAOTestClass::AddExpectedEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
// Add an event to the expected events' list
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
void CRestrictedAOTestClass::AddExpectedEvent(TROExpectedEvent event, TInt ms)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	FTRACE(FPrint(_L("CRestrictedAOTestClass::AddExpectedEvent")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	iExpectedEvents.Append(event);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	TPtrC eventName = EventName(event);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	iLog->Log(_L("Adding expected event:(0x%02x)%S Total=%d"), event, &eventName, iExpectedEvents.Count() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	if ( iTimeoutController && !iTimeoutController->IsActive() )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
		if (ms > 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
			iTimeoutController->Start( TTimeIntervalMicroSeconds(ms * 1000) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
			iLog->Log(_L("Timeout with default value (1s)"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
			iTimeoutController->Start( TTimeIntervalMicroSeconds(1000000) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
// CRestrictedAOTestClass::RemoveExpectedEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
// Remove the indicated event from the expected events' list
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
TBool CRestrictedAOTestClass::RemoveExpectedEvent(TROExpectedEvent aEvent)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
	FTRACE(FPrint(_L("CRestrictedAOTestClass::RemoveExpectedEvent")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
	TBool match = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
	for (TUint i=0; i < iExpectedEvents.Count() ; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
		if (iExpectedEvents[i] == aEvent)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
			iExpectedEvents.Remove(i);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
			match = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
	return match;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
// CRestrictedAOTestClass::RemoveAllExpectedEvents
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
// Remove the indicated event from the expected events' list
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
void CRestrictedAOTestClass::RemoveAllExpectedEvents()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
	FTRACE(FPrint(_L("CRestrictedAOTestClass::RemoveAllExpectedEvents")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
	iLog->Log(_L("Removing all expected events"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
	iExpectedEvents.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
	iOcurredEvents.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
// CRestrictedAOTestClass::ProcessEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
void CRestrictedAOTestClass::ProcessEvent(TROExpectedEvent aEvent, TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	FTRACE(FPrint(_L("CRestrictedAOTestClass::ProcessExpectedEvent")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
	TPtrC nameEvent = EventName(aEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	// Check for error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	if (aError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
		// Remove the event
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
		if (RemoveExpectedEvent(aEvent))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
			iLog->Log(_L("Expected Event: (0x%02x)%S has ocurred Total=%d"), aEvent, &nameEvent,iExpectedEvents.Count());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
			iLog->Log(_L("Event: (0x%02x)%S has ocurred"), aEvent, &nameEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
			return;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
		// All expected events have ocurred
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
		if (iExpectedEvents.Count() == 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
			Signal();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
			iTimeoutController->Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
		iLog->Log(_L("[Error] Event: (0x%02x)%S return with error code=%d"), aEvent, &nameEvent, aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
		if (iExpectedEvents.Count() != 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
			RemoveExpectedEvent(aEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
		iTimeoutController->Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
		Signal(KErrCallbackErrorCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
// CRestrictedAOTestClass::HandleTimeout
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
// Review if all the expected events have ocurred once the time is over
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
void CRestrictedAOTestClass::HandleTimeout(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
	FTRACE(FPrint(_L("CRestrictedAOTestClass::HandleTimeout")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
	// All expected events have ocurred
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
	if (aError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
		if (iExpectedEvents.Count() == 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
			iLog->Log(_L("Timing out but events have ocurred"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
			Signal();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
			RemoveAllExpectedEvents();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
			iLog->Log(_L("Timing out and events still pending"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
			Signal(KErrEventPending);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
		iLog->Log(_L("Timing out return a error %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
		Signal(aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
// CRestrictedAOTestClass::SetTimeout
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
// Create a timer and set a timeout
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
// When the timeout is reached the test case is marked as failed
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
// It's used rather than the "timeout" keyword in the configuration file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
// because in this way the log continues
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
TInt CRestrictedAOTestClass::SetTimeout( CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
	FTRACE(FPrint(_L("CRestrictedAOTestClass::SetTimeout")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	TInt timeout=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
	TInt error = aItem.GetNextInt(timeout) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
	if ( iTimeoutController )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
		if ( timeout > 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
			iTimeoutController->Start( TTimeIntervalMicroSeconds(timeout*1000) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
			iTimeoutController->Start( TTimeIntervalMicroSeconds(1000000) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
		iLog->Log(_L("Timeout Controller doesn't exist"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
		error = KErrTimeoutController;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
// Uses the TestModuleBase API to allow a panic as exit reason for a test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
TInt CRestrictedAOTestClass::SetAllowedPanic( CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
	FTRACE(FPrint(_L("CRestrictedAOTestClass::SetAllowedPanic")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
	TInt panicCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
	TPtrC panicType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
	if (  ( KErrNone == aItem.GetNextString(panicType) ) &&
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
	( KErrNone == aItem.GetNextInt(panicCode) )  )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
		iLog->Log(_L("Allowing panic: %S %d"), &panicType, panicCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
		iTestModuleIf.SetExitReason( CTestModuleIf::EPanic, panicCode );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
		iNormalExitReason = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
		iLog->Log(KMsgBadTestParameters);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
		error = KErrBadTestParameter;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   374
TInt CRestrictedAOTestClass::GetUid( CStifItemParser& /*aItem*/ )
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   375
    {
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   376
     TUid AudioHandlerUid = iRestrictedAudioOutputMessageHandler->Uid();
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   377
     TUid AudioProxyUid = iRestrictedAudioOutputProxy->Uid();
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   378
    
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   379
    FTRACE(FPrint(_L("CRestrictedAOTestClass::GetUid - AudioHandlerUid=%x, AudioProxyUid=%x "), iRestrictedAudioOutputMessageHandler->Uid(), iRestrictedAudioOutputProxy->Uid()));
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   380
    iLog->Log(_L("CRestrictedAOTestClass::GetUid"));
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   381
    return KErrNone;
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   382
    }
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
// CRestrictedAOTestClass::SetExpectedEvents()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
TInt CRestrictedAOTestClass::SetExpectedEvents( CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
	FTRACE(FPrint(_L("CRestrictedAOTestClass::SetExpectedEvents")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
	TInt event=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
	while ( KErrNone == aItem.GetNextInt(event))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
		AddExpectedEvent(static_cast<TROExpectedEvent>(event), 0); // Default timeout value
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
// CRestrictedAOTestClass::ExampleL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
// Example test method function.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
TInt CRestrictedAOTestClass::ExampleL( CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
    // Print to UI
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
    _LIT( KRestrictedAOTestClass, "RestrictedAOTestClass" );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
    _LIT( KExample, "In Example" );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
    TestModuleIf().Printf( 0, KRestrictedAOTestClass, KExample );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
    // Print to log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
    iLog->Log( KExample );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
    TInt i = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
    TPtrC string;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
    _LIT( KParam, "Param[%i]: %S" );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
    while ( aItem.GetNextString ( string ) == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
        TestModuleIf().Printf( i, KRestrictedAOTestClass,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
                                KParam, i, &string );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
        i++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
    return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
// CRestrictedAOTestClass::AppendAllowedOutput
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
// Append AllowedOutput
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
TInt CRestrictedAOTestClass::AppendAllowedOutput( CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
	FTRACE(FPrint(_L("CRestrictedAOTestClass::AppendAllowedOutput")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
	iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
	TPtrC AppendType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
	error = aItem.GetNextString(AppendType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
	if (error == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
		if (AppendType == KTagAll)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAllAudio"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAllAudio);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
		else if (AppendType == KTagAudioAnalog)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioAnalog"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioAnalog);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
		else if (AppendType == KTagFM)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioFMTransmitter"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioFMTransmitter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
		else if (AppendType == KTagStereoBT)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioBtHFPHSP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioBtHFPHSP);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
		else if (AppendType == KTagBTA2DP)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioBtA2DP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioBtA2DP);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
		else if (AppendType == KTagAudioUplink)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioUplink"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioUplink);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
		else if (AppendType == KTagUSB)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioUsb"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioUsb);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
		else if (AppendType == KTagRecord)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioRecording"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioRecording);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
		else if (AppendType == KTagVisualization)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowVisualization"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowVisualization);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
		* RIM CR 417-7642: HDMI with HDCP to Resctricted Audio Output API
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
		* Adding new ENUMs to CRestrictedAudioOutput::TAllowedOutputPreference for HDMI and HDCP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
		* EAllowAudioHDMI and EAllowAudioHdmiHdcpRequired
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
		*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
		else if (AppendType == KTagHDMI)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioHDMI"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioHDMI);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
		else if (AppendType == KTagHdmiHdcpRequired)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
			iLog->Log(_L("CRestrictedAOTestClass::AppendAllowedOutput - EAllowAudioHdmiHdcpRequired"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
			error = iRestrictedAudioOutput->AppendAllowedOutput(CRestrictedAudioOutput::EAllowAudioHdmiHdcpRequired);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
			iLog->Log(KMsgBadTestParameters);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
			error = KErrBadTestParameter;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
// CRestrictedAOTestClass::RemoveAllowedOutput
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
// Remove AllowedOutput
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
TInt CRestrictedAOTestClass::RemoveAllowedOutput( CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
	FTRACE(FPrint(_L("CRestrictedAOTestClass::RemoveAllowedOutput")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
	iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
	TPtrC RemoveType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
	error = aItem.GetNextString(RemoveType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
	if (error == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
		if (RemoveType == KTagAll)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAllAudio"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAllAudio);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
		else if (RemoveType == KTagAudioAnalog)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAudioAnalog"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAudioAnalog);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
		else if (RemoveType == KTagFM)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAudioFMTransmitter"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAudioFMTransmitter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
		else if (RemoveType == KTagStereoBT)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAudioBtHFPHSP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAudioBtHFPHSP);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
		else if (RemoveType == KTagBTA2DP)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAudioBtA2DP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAudioBtA2DP);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
		else if (RemoveType == KTagAudioUplink)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAudioUplink"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAudioUplink);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
		else if (RemoveType == KTagUSB)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAudioUsb"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAudioUsb);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
		else if (RemoveType == KTagRecord)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowAudioRecording"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowAudioRecording);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
		else if (RemoveType == KTagVisualization)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
			iLog->Log(_L("CRestrictedAOTestClass::RemoveAllowedOutput - EAllowVisualization"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
			error = iRestrictedAudioOutput->RemoveAllowedOutput(CRestrictedAudioOutput::EAllowVisualization);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
			iLog->Log(KMsgBadTestParameters);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
			error = KErrBadTestParameter;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
// CRestrictedAOTestClass::GetAllowedOutputCount
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
// Get AllowedOutput Count
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
TInt CRestrictedAOTestClass::GetAllowedOutputCount( CStifItemParser& /*aItem */)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
	FTRACE(FPrint(_L("CRestrictedAOTestClass::GetAllowedOutputCount")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
	iLog->Log(_L("CRestrictedAOTestClass::GetAllowedOutputCount"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
	TInt aSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
	error = iRestrictedAudioOutput->GetAllowedOutputCount(aSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
	if (error == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
		error = aSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
// CRestrictedAOTestClass::GetAllowedOutput
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
// Get Allowed Output
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
TInt CRestrictedAOTestClass::GetAllowedOutput( CStifItemParser& aItem )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
	FTRACE(FPrint(_L("CRestrictedAOTestClass::GetAllowedOutput")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
	iLog->Log(_L("CRestrictedAOTestClass::GetAllowedOutput"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	TInt aCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	TInt index;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
	TInt Found = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
	CRestrictedAudioOutput::TAllowedOutputPreference aOutput;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	error = iRestrictedAudioOutput->GetAllowedOutputCount(aCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
	if (error != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
		iLog->Log(_L("GetAllowedOutputCount return error %d"), error);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
		return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
	TPtrC ExpectedOutput;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
	error = aItem.GetNextString(ExpectedOutput);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
	if (error != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
		iLog->Log(_L("Missing parameter in config file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
		return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	for( index = 0; index < aCount; index++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
		error = iRestrictedAudioOutput->GetAllowedOutput(index, aOutput);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
		if (error == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
			switch (aOutput)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
				case 0:	//  ALL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
					if (ExpectedOutput == KTagAll)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
						iLog->Log(_L("index = %d, Allow AllAudio"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
				case 1:	// Audio Analog
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
					if (ExpectedOutput == KTagAudioAnalog)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
						iLog->Log(_L("index = %d, Allow AudioAnalog"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
				case 2:	//  AudioFMTransmitter
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
					if (ExpectedOutput == KTagFM)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
						iLog->Log(_L("index = %d, Allow AudioFMTransmitter"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
				case 3:	// AudioStereoBtHFP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
					if (ExpectedOutput == KTagStereoBT)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
						iLog->Log(_L("index = %d, Allow AudioStereoBtHFP"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
				case 4:	// AudioBtA2DP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
					if (ExpectedOutput == KTagBTA2DP)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
						iLog->Log(_L("index = %d, Allow AudioBtA2DP"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
				case 5:	// AudioUplink
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
					if (ExpectedOutput == KTagAudioUplink)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
						iLog->Log(_L("index = %d, Allow AudioUplink"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
				case 6:	//  AudioUsb
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
					if (ExpectedOutput == KTagUSB)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
						iLog->Log(_L("index = %d, Allow AudioUsb"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
				case 7:	// Audio Recording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
					if (ExpectedOutput == KTagRecord)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
						iLog->Log(_L("index = %d, Allow AudioRecording"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
				case 8:	// Visualization
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
					if (ExpectedOutput == KTagVisualization)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
						iLog->Log(_L("index = %d, Allow Visualization"), index);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
						Found = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
				default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
					iLog->Log(_L("unknown audio output"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
				} // switch
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
				if (Found == 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
					return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
		} // if
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
	} //for
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
	if (Found == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
		error = KErrNotFound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
// CRestrictedAOTestClass::Reset
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
// Reset AllowedOutput
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
TInt CRestrictedAOTestClass::Reset( CStifItemParser& /*aItem */)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
	FTRACE(FPrint(_L("CRestrictedAOTestClass::Reset")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
	iLog->Log(_L("CRestrictedAOTestClass::Reset"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
	error = iRestrictedAudioOutput->Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
// CRestrictedAOTestClass::Commit
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
// Commit AllowedOutput
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
TInt CRestrictedAOTestClass::Commit( CStifItemParser& /*aItem */)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
	FTRACE(FPrint(_L("CRestrictedAOTestClass::Commit")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
	iLog->Log(_L("CRestrictedAOTestClass::Commit"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
	error = iRestrictedAudioOutput->Commit();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
// CRestrictedAOTestClass::CreateFactory
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
// Create Factory
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
TInt CRestrictedAOTestClass::CreateFactory( CStifItemParser& /*aItem */)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
	FTRACE(FPrint(_L("CRestrictedAOTestClass::CreateFactory")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	iLog->Log(_L("CRestrictedAOTestClass::CreateFactory"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   782
	error = CConfigurationComponentsFactory::CreateFactoryL(iFactory);
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   783
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   784
	if (error == KErrNone)
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   785
		TRAP(error, iDevSound = CMMFDevSound::NewL()) ;
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
//	AddExpectedEvent(EInitializeComplete, KMediumTimeout);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
// CRestrictedAOTestClass::CreateRestrictedAO
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
// Create RestrictedAO
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
TInt CRestrictedAOTestClass::CreateRestrictedAO( CStifItemParser& /*aItem */)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
	FTRACE(FPrint(_L("CRestrictedAOTestClass::CreateRestrictedAO")));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
	iLog->Log(_L("CRestrictedAOTestClass::CreateRestrictedAO"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
	TInt error = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   802
	if (iFactory != NULL && iDevSound != NULL)
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
	{
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
   804
			error = iFactory->CreateRestrictedAudioOutput(*iDevSound, iRestrictedAudioOutput);
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
			error = KErrNotSupported;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
	return error;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
//  End of File