mmapitest/devsoundexthaitest/src/T_CAudioOutputData.cpp
author hgs
Mon, 23 Aug 2010 22:02:51 +0100
changeset 48 73a8aa9e4318
parent 26 c36d67f77f75
permissions -rw-r--r--
2010wk32_05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     1
/*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     2
* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     3
* All rights reserved.
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     8
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     9
* Initial Contributors:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    11
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    12
* Contributors:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    13
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    14
* Description: 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    15
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    16
*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    17
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    18
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    19
#include "t_caudiooutputdata.h"
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    20
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    21
/*@{*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    22
// Output options Id's
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    23
const TUid OUTPUT_NOPREFERENCE					= TUid::Uid(0x00);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    24
const TUid OUTPUT_ALL 							= TUid::Uid(0x01);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    25
const TUid OUTPUT_NOOUTPUT 						= TUid::Uid(0x02);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    26
const TUid OUTPUT_PRIVATE 						= TUid::Uid(0x03);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    27
const TUid OUTPUT_PUBLIC  						= TUid::Uid(0x04);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    28
/*@}*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    29
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    30
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    31
/*@{*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    32
//Section name literals 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    33
_LIT(KDevSoundKey, 								"DevSoundInstanceName");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    34
_LIT(KAudioOutputPar, 							"AudioOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    35
_LIT(KSecureOutputPar,							"SecureOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    36
/*@}*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    37
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    38
/*@{*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    39
//Command literals 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    40
_LIT(KCmdNewL, 									"NewL");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    41
_LIT(KCmdDestructor, 							"~");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    42
_LIT(KCmdAudioOutput,							"AudioOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    43
_LIT(KCmdDefaultAudioOutput, 					"DefaultAudioOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    44
_LIT(KCmdRegisterObserver, 						"RegisterObserver");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    45
_LIT(KCmdSecureOutput, 							"SecureOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    46
_LIT(KCmdSetAudioOutput, 						"SetAudioOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    47
_LIT(KCmdSetSecureOutput, 						"SetSecureOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    48
_LIT(KCmdUnregisterObserver, 					"UnregisterObserver");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    49
/*@}*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    50
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    51
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    52
/*@{*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    53
// Output options literal
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    54
_LIT(KOutput_NoPreference, 						"Output_NoPreference");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    55
_LIT(KOutput_All, 								"Output_All");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    56
_LIT(KOutput_NoOutput, 							"Output_NoOutput");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    57
_LIT(KOutput_Private, 							"Output_Private");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    58
_LIT(KOutput_Public, 							"Output_Public");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    59
/*@}*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    60
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    61
const CDataWrapperBase::TEnumEntryTable CT_CAudioOutputData::iEnumOutputOptions[] = 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    62
	{ 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    63
	{ KOutput_NoPreference,		OUTPUT_NOPREFERENCE.iUid },	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    64
	{ KOutput_All,				OUTPUT_ALL.iUid },
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    65
	{ KOutput_NoOutput,			OUTPUT_NOOUTPUT.iUid },	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    66
	{ KOutput_Private,			OUTPUT_PRIVATE.iUid },
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    67
	{ KOutput_Public,			OUTPUT_PUBLIC.iUid }
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    68
	};
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    69
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    70
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    71
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    72
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    73
 * Two phase constructor
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    74
 *
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    75
 * @leave	system wide error
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    76
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    77
CT_CAudioOutputData* CT_CAudioOutputData::NewL()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    78
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    79
	CT_CAudioOutputData* ret = new (ELeave) CT_CAudioOutputData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    80
	return ret;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    81
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    82
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    83
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    84
 * Private constructor. First phase construction
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    85
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    86
CT_CAudioOutputData::CT_CAudioOutputData()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    87
	:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    88
	iAudioOutput(NULL),
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    89
	iSecureOutput(EFalse)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    90
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    91
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    92
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    93
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    94
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    95
 * Return a pointer to the object that the data wraps
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    96
 *
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    97
 * @return	pointer to the object that the data wraps
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    98
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    99
TAny* CT_CAudioOutputData::GetObject()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   100
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   101
	return iAudioOutput;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   102
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   103
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   104
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   105
 * Helper method for DoCmdDestructor
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   106
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   107
void CT_CAudioOutputData::DestroyData()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   108
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   109
	if (iAudioOutput)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   110
		{ 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   111
		delete iAudioOutput;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   112
		iAudioOutput = NULL;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   113
		}	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   114
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   115
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   116
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   117
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   118
 * Process a command read from the Ini file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   119
 * @param aCommand 			- The command to process
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   120
 * @param aSection			- The section get from the *.ini file of the project T_Wlan
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   121
 * @param aAsyncErrorIndex	- Command index dor async calls to returns errors to
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   122
 * @return TBool			- ETrue if the command is process
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   123
 * @leave					- system wide error
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   124
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   125
TBool CT_CAudioOutputData::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   126
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   127
	TBool ret = ETrue;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   128
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   129
	if (aCommand == KCmdNewL)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   130
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   131
		DoCmdNewL(aSection);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   132
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   133
	else if (aCommand == KCmdDestructor)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   134
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   135
		DoCmdDestructor();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   136
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   137
	else if (aCommand == KCmdAudioOutput)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   138
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   139
		DoCmdAudioOutput();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   140
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   141
	else if (aCommand == KCmdDefaultAudioOutput)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   142
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   143
		DoCmdDefaultAudioOutput();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   144
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   145
	else if (aCommand == KCmdRegisterObserver)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   146
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   147
		DoCmdRegisterObserverL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   148
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   149
	else if (aCommand == KCmdSecureOutput)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   150
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   151
		DoCmdSecureOutput();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   152
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   153
	else if (aCommand == KCmdSetAudioOutput)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   154
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   155
		DoCmdSetAudioOutputL(aSection);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   156
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   157
	else if (aCommand == KCmdSetSecureOutput)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   158
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   159
		DoCmdSetSecureOutputL(aSection);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   160
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   161
	else if (aCommand == KCmdUnregisterObserver)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   162
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   163
		DoCmdUnregisterObserver();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   164
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   165
	else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   166
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   167
		ERR_PRINTF1(_L("Unknown command."));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   168
		ret=EFalse;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   169
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   170
	return ret;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   171
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   172
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   173
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   174
 * Create an instance of CAudioOutput
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   175
 * @param aSection  - Section to read param from the ini file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   176
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   177
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   178
void CT_CAudioOutputData::DoCmdNewL(const TTEFSectionName& aSection) 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   179
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   180
	DestroyData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   181
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdNewL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   182
	TPtrC devSoundObject;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   183
    if( !GetStringFromConfig(aSection, KDevSoundKey, devSoundObject) )
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   184
    	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   185
    	ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KDevSoundKey);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   186
    	SetBlockResult(EFail);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   187
    	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   188
    else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   189
    	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   190
	    CMMFDevSound* DevSoundObject = static_cast<CMMFDevSound*>(GetDataObjectL(devSoundObject));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   191
	    iAudioOutput = (CAudioOutput*)DevSoundObject->CustomInterface(KUidAudioOutput);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   192
	    INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdNewL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   193
    	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   194
    }
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   195
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   196
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   197
 * Destroy an instance of CAudioOutput
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   198
 * @param none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   199
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   200
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   201
void CT_CAudioOutputData::DoCmdDestructor()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   202
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   203
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdDestroyData"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   204
	DestroyData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   205
	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdDestroyData"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   206
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   207
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   208
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   209
 * Get the audio Output pref
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   210
 * @param none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   211
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   212
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   213
void CT_CAudioOutputData::DoCmdAudioOutput()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   214
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   215
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdAudioOutput"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   216
	audioOutputPref = iAudioOutput->AudioOutput();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   217
	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdAudioOutput"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   218
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   219
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   220
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   221
 * Get the default audio output pref
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   222
 * @param none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   223
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   224
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   225
void CT_CAudioOutputData::DoCmdDefaultAudioOutput()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   226
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   227
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdDefaultAudioOutput"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   228
	audioOutputPref = iAudioOutput->DefaultAudioOutput();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   229
	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdDefaultAudioOutput"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   230
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   231
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   232
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   233
 * Register the observer
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   234
 * @param none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   235
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   236
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   237
void CT_CAudioOutputData::DoCmdRegisterObserverL() 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   238
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   239
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdRegisterObserverL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   240
    TRAPD( error, iAudioOutput->RegisterObserverL(*this) );    	    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   241
    if( error != KErrNone ) 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   242
        {
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   243
        ERR_PRINTF2(_L("Register observer failed with error %d"), error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   244
        SetError(error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   245
        }
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   246
    else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   247
    	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   248
    	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdRegisterObserverL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   249
    	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   250
    }
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   251
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   252
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   253
 * Secure the output
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   254
 * @param none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   255
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   256
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   257
void CT_CAudioOutputData::DoCmdSecureOutput()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   258
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   259
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdSecureOutput"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   260
	iSecureOutput = iAudioOutput->SecureOutput();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   261
	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdSecureOutput"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   262
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   263
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   264
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   265
 * Set the audio Output
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   266
 * @param aSection - Section to read param from the ini file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   267
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   268
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   269
void CT_CAudioOutputData::DoCmdSetAudioOutputL(const TTEFSectionName& aSection)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   270
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   271
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdSetAudioOutputL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   272
	TInt parAudioOutput;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   273
	if(!GetEnumFromConfig(aSection, KAudioOutputPar, iEnumOutputOptions, parAudioOutput))
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   274
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   275
		ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KAudioOutputPar);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   276
    	SetBlockResult(EFail); 		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   277
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   278
	else{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   279
	    TRAPD(error, iAudioOutput->SetAudioOutputL((CAudioOutput::TAudioOutputPreference)parAudioOutput));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   280
	    if( error != KErrNone )
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   281
	        {
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   282
	        ERR_PRINTF2(_L("Setting Audio output failed with error %d"), error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   283
	        SetError(error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   284
	        }    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   285
	    else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   286
	    	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   287
	    	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdSetAudioOutputL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   288
	    	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   289
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   290
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   291
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   292
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   293
 * Set the secure output
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   294
 * @param aSection - Section to read param from the ini file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   295
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   296
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   297
void CT_CAudioOutputData::DoCmdSetSecureOutputL(const TTEFSectionName& aSection)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   298
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   299
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdSetSecureOutputL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   300
    TBool parSecureOutput;    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   301
	if(!GetBoolFromConfig(aSection, KSecureOutputPar, parSecureOutput))
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   302
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   303
		ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KSecureOutputPar);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   304
    	SetBlockResult(EFail);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   305
    	    		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   306
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   307
	else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   308
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   309
		TRAPD( error, iAudioOutput->SetSecureOutputL(parSecureOutput) );
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   310
	    if( error != KErrNone ) 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   311
	        {
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   312
	        ERR_PRINTF2(_L("Setting secure output failed with error %d"), error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   313
	        SetError(error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   314
	        }
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   315
	    else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   316
	    	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   317
	    	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdSetSecureOutputL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   318
	    	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   319
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   320
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   321
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   322
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   323
 * Unregister the observer
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   324
 * @param none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   325
 * @return none
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   326
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   327
void CT_CAudioOutputData::DoCmdUnregisterObserver() 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   328
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   329
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DoCmdUnregisterObserver"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   330
  iAudioOutput->UnregisterObserver(*this);    	    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   331
  INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DoCmdUnregisterObserver"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   332
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   333
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   334
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   335
 * Shows that the audio output was change
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   336
 * @param aAudioOutput
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   337
 * @param aNewDefault  - The new default value
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   338
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   339
void CT_CAudioOutputData::DefaultAudioOutputChanged(CAudioOutput& /*aAudioOutput*/, CAudioOutput::TAudioOutputPreference aNewDefault)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   340
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   341
	INFO_PRINTF1(_L("*START*CT_CAudioOutputData::DefaultAudioOutputChanged"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   342
	INFO_PRINTF2(_L("Audio Output changed to %d"), aNewDefault);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   343
	INFO_PRINTF1(_L("*END*CT_CAudioOutputData::DefaultAudioOutputChanged"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   344
	}