--- a/phoneengine/audiohandling/src/cpeaudiodata.cpp Fri Apr 16 14:58:25 2010 +0300
+++ b/phoneengine/audiohandling/src/cpeaudiodata.cpp Mon May 03 12:31:11 2010 +0300
@@ -1,21 +1,20 @@
/*
-* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This module contains the implementation of AudioData class
-* member functions
-*
-*/
-
+ * Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: This module contains the implementation of AudioData class
+ * member functions
+ *
+ */
// INCLUDE FILES
#include "cpeaudiodata.h"
@@ -27,16 +26,20 @@
#include <talogger.h>
#include <telmicmutestatuspskeys.h>
#include <PSVariables.h>
-
+#include <tms.h>
+#include <tmseffectobsrvr.h>
+#include <tmsglobalvoleffect.h>
#include "pepanic.pan"
#include "cpeaudiodtmftoneplayer.h"
#include "cpeaudioroutingmonitor.h"
#include "cpecallaudioroutinghandler.h"
-#include "cpeaudiofactory.h"
+#include "cpeaudiofactory.h"
+#include "cpeaudioeffect.h"
+
#include <telinternalpskeys.h>
+
// CONSTANTS
//Mute Value for volume
-const TInt KPEDefaultVolume = 4;
const TInt KPEMaxVolume = 10;
// ================= MEMBER FUNCTIONS =======================
@@ -47,12 +50,10 @@
// might leave.
// -----------------------------------------------------------------------------
//
-CPEAudioData::CPEAudioData(
- MPEPhoneModelInternal& aPhoneModel
- ) : iPhoneModel( aPhoneModel )
+CPEAudioData::CPEAudioData(MPEPhoneModelInternal& aPhoneModel) :
+ iPhoneModel(aPhoneModel)
{
iRouteInitialized = EFalse;
- iAudioOutputChanged = EFalse;
}
// -----------------------------------------------------------------------------
@@ -60,66 +61,47 @@
// Symbian 2nd phase constructor can leave
// -----------------------------------------------------------------------------
//
-void CPEAudioData::ConstructL( CPEAudioFactory& aAudioFactory )
+void CPEAudioData::ConstructL(CPEAudioFactory& aAudioFactory)
{
TEFLOGSTRING( KTAOBJECT, "AUD CPEAudioData::ConstructL start" );
- iAudioRoutingMonitor = CPEAudioRoutingMonitor::NewL( *this );
- iAudioRouting = aAudioFactory.CreateTelephonyAudioRoutingL(*iAudioRoutingMonitor);
- iAudioRoutingHandler = CPECallAudioRoutingHandler::NewL( *this );
-
- //Gets audio volumes from repository
- InitializeAudioVolumes();
-
- RProperty::TType type( RProperty::EInt );
- TSecurityPolicy readPolicy( ECapability_None );
- TSecurityPolicy writePolicy( ECapabilityWriteDeviceData );
-
- RProperty::Define( KPSUidTelMicrophoneMuteStatus,
- KTelMicrophoneMuteState,
- type,
- readPolicy,
- writePolicy );
-
- TEFLOGSTRING( KTAINT, "AUD CPEAudioData::ConstructL complete" );
+ iAudioRoutingMonitor = CPEAudioRoutingMonitor::NewL(*this);
+ iAudioRouting = aAudioFactory.CreateTelephonyAudioRoutingL(
+ *iAudioRoutingMonitor);
+ iAudioRoutingHandler = CPECallAudioRoutingHandler::NewL(*this);
+ iAudioEffect = CPEAudioEffect::NewL(*this);
+
+ InitializeAudioVolume();
+
+ TEFLOGSTRING( KTAINT, "AUD CPEAudioData::ConstructL complete" );
}
// Destructor
EXPORT_C CPEAudioData::~CPEAudioData()
{
TEFLOGSTRING( KTAOBJECT, "AUD CPEAudioData::~CPEAudioData" );
-
+
delete iAudioRouting;
delete iAudioRoutingMonitor;
delete iAudioRoutingHandler;
-
+
iPEavailableOutputs.Close();
+ delete iAudioEffect;
}
// -----------------------------------------------------------------------------
-// CPEAudioData::InitializeAudioVolumes
-// Gets audio volume values from reporitory
+// CPEAudioData::InitializeAudioVolume
+// Gets audio volume value
// -----------------------------------------------------------------------------
-//
-void CPEAudioData::InitializeAudioVolumes()
+//
+void CPEAudioData::InitializeAudioVolume()
{
-// Connect to CPEGsmExternalDataHandler missing from TEPhoneEngineTestUtils wrapper !!!
- TInt volume;
-
- iPhoneModel.DataStoreExt()->Get(
- EPEIncallLoudspeakerVolumeSetting, volume );
- iLoudspeakerVolume = volume;
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::CPEAudioData, DataStoreExt()->Get, iLoudspeakerVolume = %d",
- iLoudspeakerVolume );
-
- iPhoneModel.DataStoreExt()->Get(
- EPEIncallEarVolumeSetting, volume );
- iHeadSetVolume = volume;
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::CPEAudioData, DataStoreExt()->Get, iLoudspeakerVolume = %d",
- iHeadSetVolume );
+ TInt volume = iAudioEffect->Volume();
+ iPhoneModel.DataStore()->SetAudioVolume(volume);
+ TEFLOGSTRING2( KTAINT,
+ "AUD CPEAudioData::InitializeAudioVolumes, volume = %d",
+ volume );
}
// -----------------------------------------------------------------------------
@@ -128,19 +110,14 @@
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
-EXPORT_C void CPEAudioData::GetAudioMuteSync(
- TBool& aAudioMute ) const
+EXPORT_C void CPEAudioData::GetAudioMuteSync(TBool& aAudioMute) const
{
- TEFLOGSTRING( KTAINT, "AUD CPEAudioData::GetAudioMuteSync" );
- if ( IsMuted() )
- {
- //mute is on
- aAudioMute = ETrue;
- }
- else
- {
- aAudioMute = EFalse;
- }
+ aAudioMute = iAudioEffect->MuteState();
+ TEFLOGSTRING2(
+ KTAREQIN,
+ "AUD CPEAudioData::GetAudioMuteSync: value = %d",
+ aAudioMute);
+
}
// -----------------------------------------------------------------------------
@@ -148,25 +125,10 @@
// Creates synchronous request to get audio volume.
// -----------------------------------------------------------------------------
//
-EXPORT_C void CPEAudioData::GetAudioVolumeSync(
- TInt& aAudioVolume ) const
+EXPORT_C void CPEAudioData::GetAudioVolumeSync(TInt& aAudioVolume) const
{
TEFLOGSTRING( KTAINT, "AUD CPEAudioData::GetAudioVolumeSync" );
-
- if ( iPhoneModel.DataStore()->AudioOutput() == EPELoudspeaker )
- {
- iPhoneModel.DataStoreExt()->Get(
- EPEIncallLoudspeakerVolumeSetting, aAudioVolume );
- TEFLOGSTRING( KTAINT,
- "AUD CPEAudioData::GetAudioVolumeSync: EPEIncallLoudspeakerVolumeSetting");
- }
- else
- {
- iPhoneModel.DataStoreExt()->Get(
- EPEIncallEarVolumeSetting, aAudioVolume );
- TEFLOGSTRING( KTAINT,
- "AUD CPEAudioData::GetAudioVolumeSync: EPEIncallEarVolumeSetting");
- }
+ aAudioVolume = iAudioEffect->Volume();
}
// -----------------------------------------------------------------------------
@@ -174,14 +136,13 @@
// Saves errorcode to member variable and sends error notification to PhoneEngine.
// -----------------------------------------------------------------------------
//
-void CPEAudioData::SendErrorMessage(
- const TInt aErrorCode )
+void CPEAudioData::SendErrorMessage(const TInt aErrorCode)
{
- iPhoneModel.DataStore()->SetErrorCode( aErrorCode );
- TEFLOGSTRING(
- KTAREQOUT,
- "AUD CPEAudioData::SendErrorMessage: iPhoneModel.SendMessage( MEngineMonitor::EPEMessageAudioHandlingError )" );
- iPhoneModel.SendMessage( MEngineMonitor::EPEMessageAudioHandlingError );
+ iPhoneModel.DataStore()->SetErrorCode(aErrorCode);
+ TEFLOGSTRING(
+ KTAREQOUT,
+ "AUD CPEAudioData::SendErrorMessage: iPhoneModel.SendMessage( MEngineMonitor::EPEMessageAudioHandlingError )" );
+ iPhoneModel.SendMessage(MEngineMonitor::EPEMessageAudioHandlingError);
}
// -----------------------------------------------------------------------------
@@ -189,41 +150,22 @@
// Forwards message to PhoneEngine.
// -----------------------------------------------------------------------------
//
-void CPEAudioData::SendMessage(
- const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage )
+void CPEAudioData::SendMessage(
+ const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage)
{
- TEFLOGSTRING2( KTAREQIN,
- "AUD CPEAudioData::SendMessage: aMessage = %d", aMessage );
-
- if ( aMessage == MEngineMonitor::EPEMessageAudioVolumeChanged )
- {
+ TEFLOGSTRING2( KTAREQIN,
+ "AUD CPEAudioData::SendMessage: aMessage = %d", aMessage );
+
+ if (aMessage == MEngineMonitor::EPEMessageAudioVolumeChanged)
+ {
// update volume
- if ( iPhoneModel.DataStore()->AudioOutput() == EPELoudspeaker )
- {
- iLoudspeakerVolume = iPhoneModel.DataStore()->AudioVolume();
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::SendMessage: iLoudspeakerVolume = %d",
- iLoudspeakerVolume );
- }
- else
- {
- iHeadSetVolume = iPhoneModel.DataStore()->AudioVolume();
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::SendMessage: iHeadSetVolume = %d",
- iHeadSetVolume );
- }
-
- if ( !iAudioOutputChanged )
- {
- // EPEMessageAudioVolumeChanged message must not be sent
- // while audio output change is being processed
- iPhoneModel.SendMessage( aMessage );
- }
- }
- else
- {
- iPhoneModel.SendMessage( aMessage );
- }
+ TInt volume = iPhoneModel.DataStore()->AudioVolume();
+ TEFLOGSTRING2( KTAINT,
+ "AUD CPEAudioData::SendMessage: volume = %d",
+ volume );
+ }
+
+ iPhoneModel.SendMessage(aMessage);
}
// -----------------------------------------------------------------------------
@@ -231,75 +173,30 @@
// Forwards message to PhoneEngine. Output mode is saved.
// -----------------------------------------------------------------------------
//
-void CPEAudioData::SendMessage(
+void CPEAudioData::SendMessage(
const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage,
- const CTelephonyAudioRouting::TAudioOutput aOutput )
+ const CTelephonyAudioRouting::TAudioOutput aOutput)
{
- TEFLOGSTRING3(
- KTAREQIN,
- "AUD CPEAudioData::SendMessage: aMessage = %d, aOutput = %d",
- aMessage, aOutput );
-
+ TEFLOGSTRING3(
+ KTAREQIN,
+ "AUD CPEAudioData::SendMessage: aMessage = %d, aOutput = %d",
+ aMessage, aOutput );
+
// BT long key press requires manual re-route to handset or loudspeaker
- if ( aOutput == CTelephonyAudioRouting::ENone &&
- iAudioRouting->PreviousOutput() == CTelephonyAudioRouting::EBTAudioAccessory )
+ if (aOutput == CTelephonyAudioRouting::ENone
+ && iAudioRouting->PreviousOutput()
+ == CTelephonyAudioRouting::EBTAudioAccessory)
{
- SetRoutePreference( ETrue );
+ SetRoutePreference(ETrue);
}
else
{
- // store the old audio path volume
- if ( iPhoneModel.DataStore()->AudioOutput() == EPELoudspeaker )
- {
- iLoudspeakerVolume = iPhoneModel.DataStore()->AudioVolume();
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::SendMessage: iLoudspeakerVolume = %d",
- iLoudspeakerVolume );
- }
- else
- {
- iHeadSetVolume = iPhoneModel.DataStore()->AudioVolume();
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::SendMessage: iHeadSetVolume = %d",
- iHeadSetVolume );
- }
-
// update the audio values in engineinfo
TBool status;
- iAudioRouting->GetShowNote( status );
- iPhoneModel.DataStore()->SetAudioOutput( ConvertToPE( aOutput ), ConvertToPE( PreviousOutput() ), status );
-
- // Set audio output change flag
- iAudioOutputChanged = ( MEngineMonitor::EPEMessageAudioOutputChanged == aMessage );
-
- // restore the stored volume for the new path
- if ( aOutput == CTelephonyAudioRouting::ELoudspeaker )
- {
- // restore the stored volume for the new path
- SetAudioVolumeSync( iLoudspeakerVolume );
- iPhoneModel.DataStore()->SetAudioVolume( iLoudspeakerVolume );
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::SendMessage: DataStoreExt()->Set, iLoudspeakerVolume = %d",
- iLoudspeakerVolume );
- iPhoneModel.DataStoreExt()->Set( EPEIncallLoudspeakerVolumeSetting,
- iLoudspeakerVolume );
- }
- else
- {
- // restore the stored volume for the new path
- SetAudioVolumeSync( iHeadSetVolume );
- iPhoneModel.DataStore()->SetAudioVolume( iHeadSetVolume );
- TEFLOGSTRING2( KTAINT,
- "AUD CPEAudioData::SendMessage: DataStoreExt()->Set, iHeadSetVolume = %d",
- iHeadSetVolume );
- iPhoneModel.DataStoreExt()->Set( EPEIncallEarVolumeSetting,
- iHeadSetVolume );
- }
-
- // Reset audio output change flag
- iAudioOutputChanged = EFalse;
-
- iPhoneModel.SendMessage( aMessage );
+ iAudioRouting->GetShowNote(status);
+ iPhoneModel.DataStore()->SetAudioOutput(ConvertToPE(aOutput),
+ ConvertToPE(PreviousOutput()), status);
+ iPhoneModel.SendMessage(aMessage);
}
}
@@ -307,24 +204,24 @@
// CPEAudioData::SendMessage
// Forwards message to PhoneEngine.
// -----------------------------------------------------------------------------
-//
-void CPEAudioData::SendMessage(
- const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage,
- CTelephonyAudioRouting& aTelephonyAudioRouting )
+//
+void CPEAudioData::SendMessage(
+ const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage,
+ CTelephonyAudioRouting& aTelephonyAudioRouting)
{
- TEFLOGSTRING2(
- KTAREQIN,
- "AUD CPEAudioData::SendMessage: aMessage = %d, available outputs changed ", aMessage );
- iPhoneModel.DataStore()->SetAvailableAudioOutputs(
- GetAvailableOutputs( aTelephonyAudioRouting ) );
-
- if ( iRouteInitialized &&
- aMessage == MEngineMonitor::EPEMessageAvailableAudioOutputsChanged )
+ TEFLOGSTRING2(
+ KTAREQIN,
+ "AUD CPEAudioData::SendMessage: aMessage = %d, available outputs changed ", aMessage );
+ iPhoneModel.DataStore()->SetAvailableAudioOutputs(GetAvailableOutputs(
+ aTelephonyAudioRouting));
+
+ if (iRouteInitialized && aMessage
+ == MEngineMonitor::EPEMessageAvailableAudioOutputsChanged)
{
iAudioRoutingHandler->HandleAudioRoutingAvailableChanged();
}
-
- iPhoneModel.SendMessage( aMessage );
+
+ iPhoneModel.SendMessage(aMessage);
}
// -----------------------------------------------------------------------------
@@ -333,37 +230,29 @@
// EPEMessageAudioMuteChanged message is sent when gain is changed
// -----------------------------------------------------------------------------
//
-EXPORT_C void CPEAudioData::SetAudioMuteSync(
- const TBool aAudioMute ) // Mute value to be set
+EXPORT_C void CPEAudioData::SetAudioMuteSync(const TBool aAudioMute) // Mute value to be set
{
TEFLOGSTRING( KTAINT, "AUD CPEAudioData::SetAudioMuteSync" );
-
- if ( aAudioMute )
+
+ if (aAudioMute)
{
- iPhoneModel.DataStore()->SetAudioMute( aAudioMute );
- SendMessage( MEngineMonitor::EPEMessageAudioMuteChanged );
- // Inform VoIP/PE Videocallmanager mute state. Error code not handled.
- TInt err = RProperty::Set(
- KPSUidTelMicrophoneMuteStatus,
- KTelMicrophoneMuteState,
- EPSTelMicMuteOn );
- TEFLOGSTRING2(
- KTAREQOUT,
- "AUD CPEAudioData::SetAudioMuteSync: EPSTelephonyMicMuteOn , error = %d",
- err );
+ iPhoneModel.DataStore()->SetAudioMute(aAudioMute);
+ SendMessage(MEngineMonitor::EPEMessageAudioMuteChanged);
+ TInt err = iAudioEffect->SetMuteState(ETrue);
+ TEFLOGSTRING2(
+ KTAREQOUT,
+ "AUD CPEAudioData::SetAudioMuteSync: error = %d",
+ err );
}
else
{
- iPhoneModel.DataStore()->SetAudioMute( aAudioMute );
- SendMessage( MEngineMonitor::EPEMessageAudioMuteChanged );
- TInt err = RProperty::Set(
- KPSUidTelMicrophoneMuteStatus,
- KTelMicrophoneMuteState,
- EPSTelMicMuteOff );
- TEFLOGSTRING2(
- KTAREQOUT,
- "AUD CPEAudioData::SetAudioMuteSync: EPSTelephonyMicMuteOff, error = %d",
- err );
+ iPhoneModel.DataStore()->SetAudioMute(aAudioMute);
+ SendMessage(MEngineMonitor::EPEMessageAudioMuteChanged);
+ TInt err = iAudioEffect->SetMuteState(EFalse);
+ TEFLOGSTRING2(
+ KTAREQOUT,
+ "AUD CPEAudioData::SetAudioMuteSync: error = %d",
+ err );
}
}
@@ -372,43 +261,22 @@
// Creates synchronous request to set audio volume.
// -----------------------------------------------------------------------------
//
-EXPORT_C void CPEAudioData::SetAudioVolumeSync(
- const TInt aAudioVolume ) // Volume to be set
+EXPORT_C void CPEAudioData::SetAudioVolumeSync(const TInt aAudioVolume) // Volume to be set
{
- TEFLOGSTRING2(
- KTAREQIN,
- "AUD CPEAudioData::SetAudioVolumeSync, aAudioVolume = %d",
- aAudioVolume );
-
- if ( aAudioVolume <= KPEMaxVolume )
- {
- TEFLOGSTRING2( KTAINT,
+ TEFLOGSTRING2(
+ KTAREQIN,
"AUD CPEAudioData::SetAudioVolumeSync, aAudioVolume = %d",
aAudioVolume );
-
- if ( iPhoneModel.DataStore()->AudioOutput() == EPELoudspeaker )
- {
- iPhoneModel.DataStoreExt()->Set(
- EPEIncallLoudspeakerVolumeSetting,
+
+ if (aAudioVolume <= KPEMaxVolume)
+ {
+ TEFLOGSTRING2( KTAINT,
+ "AUD CPEAudioData::SetAudioVolumeSync, aAudioVolume = %d",
aAudioVolume );
- TEFLOGSTRING( KTAINT,
- "AUD CPEAudioData::SetAudioVolumeSync: EPEIncallLoudspeakerVolumeSetting");
- }
- else
- {
- iPhoneModel.DataStoreExt()->Set(
- EPEIncallEarVolumeSetting,
- aAudioVolume );
- TEFLOGSTRING( KTAINT,
- "AUD CPEAudioData::SetAudioVolumeSync: EPEIncallEarVolumeSetting");
- }
- }
-
- iPhoneModel.DataStore()->SetAudioVolume( aAudioVolume );
- DoHandleVolumeChange( aAudioVolume );
-
- SendMessage( MEngineMonitor::EPEMessageAudioVolumeChanged );
+ iAudioEffect->SetVolume(aAudioVolume);
+ }
+ DoHandleVolumeChange(aAudioVolume, ETrue);
}
// -----------------------------------------------------------------------------
@@ -416,97 +284,95 @@
// Makes request to Telephony Audio Routing to set audio output path
// -----------------------------------------------------------------------------
//
-EXPORT_C TInt CPEAudioData::SetAudioOutput(
- const TPEAudioOutput aOutput,
- TBool aShowNote )
+EXPORT_C TInt CPEAudioData::SetAudioOutput(const TPEAudioOutput aOutput,
+ TBool aShowNote)
{
- TEFLOGSTRING2(
- KTAREQIN,
- "AUD CPEAudioData::SetAudioOutput: aOutput = %d",
- aOutput );
-
- TInt error( KErrNone );
-
- TEFLOGSTRING2( KTAERROR,
- "AUD CPEAudioData::SetAudioOutput: iRouteInitialized (%d)"
- , iRouteInitialized );
+ TEFLOGSTRING2(
+ KTAREQIN,
+ "AUD CPEAudioData::SetAudioOutput: aOutput = %d",
+ aOutput );
+
+ TInt error(KErrNone);
- if ( iRouteInitialized && iPhoneModel.DataStore()->AudioOutputAvailable( aOutput ) )
+ TEFLOGSTRING2( KTAERROR,
+ "AUD CPEAudioData::SetAudioOutput: iRouteInitialized (%d)"
+ , iRouteInitialized );
+
+ if (iRouteInitialized && iPhoneModel.DataStore()->AudioOutputAvailable(
+ aOutput))
{
- SetTAROutput( ConvertToTAR( aOutput), aShowNote );
+ SetTAROutput(ConvertToTAR(aOutput), aShowNote);
}
else
{
- if ( aOutput == EPEHandset )
+ if (aOutput == EPEHandset)
{
- iAudioRoutingHandler->SetAnswerToHandset( ETrue );
+ iAudioRoutingHandler->SetAnswerToHandset(ETrue);
}
else
{
TEFLOGSTRING2( KTAERROR,
- "AUD CPEAudioData::SetAudioOutput: Requested audio path not available (%d)"
- , aOutput );
- error = KErrArgument;
+ "AUD CPEAudioData::SetAudioOutput: Requested audio path not available (%d)"
+ , aOutput );
+ error = KErrArgument;
}
}
-
+
return error;
}
-
// -----------------------------------------------------------------------------
// CPEAudioData::SetTAROutput
// -----------------------------------------------------------------------------
//
-void CPEAudioData::SetTAROutput(
- CTelephonyAudioRouting::TAudioOutput aOutput,
- TBool aShowNote )
+void CPEAudioData::SetTAROutput(CTelephonyAudioRouting::TAudioOutput aOutput,
+ TBool aShowNote)
{
- TEFLOGSTRING2(
- KTAREQIN,
- "AUD CPEAudioData::SetTAROutput: aOutput = %d",
- aOutput );
+ TEFLOGSTRING2(
+ KTAREQIN,
+ "AUD CPEAudioData::SetTAROutput: aOutput = %d",
+ aOutput );
#if defined(__WINSCW__ ) && !defined(UNIT_TESTING)
- iAudioRouting->SetShowNote( aShowNote );
- SendMessage( MEngineMonitor::EPEMessageAudioOutputChanged, aOutput);
-#else
- CTelephonyAudioRouting::TAudioOutput output = iAudioRouting->Output();
-
- if ( output == aOutput )
+ iAudioRouting->SetShowNote(aShowNote);
+ SendMessage(MEngineMonitor::EPEMessageAudioOutputChanged, aOutput);
+#else
+ CTelephonyAudioRouting::TAudioOutput output = iAudioRouting->Output();
+
+ if ( output == aOutput )
{
// audio routing cannot changed
- TEFLOGSTRING2( KTAERROR,
- "AUD CPEAudioData::SetTAROutput: audio path already (%d)"
- , aOutput );
+ TEFLOGSTRING2( KTAERROR,
+ "AUD CPEAudioData::SetTAROutput: audio path already (%d)"
+ , aOutput );
return;
}
- iAudioRouting->SetShowNote( aShowNote );
+ iAudioRouting->SetShowNote( aShowNote );
TRAPD( err, iAudioRouting->SetOutputL( aOutput ) );
-
+
if( err )
{
- TEFLOGSTRING2( KTAERROR,
- "AUD CPEAudioData::SetTAROutput:Leave.1 (%d)", err );
+ TEFLOGSTRING2( KTAERROR,
+ "AUD CPEAudioData::SetTAROutput:Leave.1 (%d)", err );
switch ( aOutput )
{
case CTelephonyAudioRouting::ELoudspeaker:
- case CTelephonyAudioRouting::EWiredAudioAccessory:
+ case CTelephonyAudioRouting::EWiredAudioAccessory:
case CTelephonyAudioRouting::EBTAudioAccessory:
// if leave try handset
TRAPD( err2, iAudioRouting->SetOutputL( CTelephonyAudioRouting::EHandset ) );
if( err2 )
{
- TEFLOGSTRING2( KTAERROR,
- "AUD CPEAudioData::SetTAROutput:Leave.2 (%d)", err );
- }
+ TEFLOGSTRING2( KTAERROR,
+ "AUD CPEAudioData::SetTAROutput:Leave.2 (%d)", err );
+ }
break;
default:
// None
- break;
+ break;
}
}
-#endif
+#endif
}
// -----------------------------------------------------------------------------
@@ -519,8 +385,11 @@
{
TEFLOGSTRING( KTAREQIN, "AUD CPEAudioData::StartUp" );
// get available audio output paths and current audio output
- iPhoneModel.DataStore()->SetAvailableAudioOutputs( GetAvailableOutputs( *iAudioRouting ) );
- iPhoneModel.DataStore()->SetAudioOutput( ConvertToPE( iAudioRouting->Output() ), ConvertToPE( iAudioRouting->PreviousOutput() ), EFalse );
+ iPhoneModel.DataStore()->SetAvailableAudioOutputs(GetAvailableOutputs(
+ *iAudioRouting));
+ iPhoneModel.DataStore()->SetAudioOutput(ConvertToPE(
+ iAudioRouting->Output()), ConvertToPE(
+ iAudioRouting->PreviousOutput()), EFalse);
}
// -----------------------------------------------------------------------------
@@ -529,125 +398,98 @@
// Return list of available outputs
// -----------------------------------------------------------------------------
//
-TArray<TPEAudioOutput> CPEAudioData::GetAvailableOutputs(
- CTelephonyAudioRouting& aTelephonyAudioRouting )
+TArray<TPEAudioOutput> CPEAudioData::GetAvailableOutputs(
+ CTelephonyAudioRouting& aTelephonyAudioRouting)
{
- TEFLOGSTRING( KTAREQOUT,
- "AUD CPEAudioData::GetAvailableOutputs > CTelephonyAudioRouting::AvailableOutputs()" );
- TArray<CTelephonyAudioRouting::TAudioOutput> availableOutputs =
- aTelephonyAudioRouting.AvailableOutputs();
-
+ TEFLOGSTRING( KTAREQOUT,
+ "AUD CPEAudioData::GetAvailableOutputs > CTelephonyAudioRouting::AvailableOutputs()" );
+ TArray<CTelephonyAudioRouting::TAudioOutput> availableOutputs =
+ aTelephonyAudioRouting.AvailableOutputs();
+
iPEavailableOutputs.Reset();
- for ( TInt j = 0; j < availableOutputs.Count(); j++ )
+ for (TInt j = 0; j < availableOutputs.Count(); j++)
{
- iPEavailableOutputs.Append( ConvertToPE( availableOutputs[j] ) );
- TEFLOGSTRING3( KTAINT,
- "AUD CPEAudioData::GetAvailableOutputs, index: %d, available: %d",
- j,
- availableOutputs[j] );
- }
-
- return iPEavailableOutputs.Array();
+ iPEavailableOutputs.Append(ConvertToPE(availableOutputs[j]));
+ TEFLOGSTRING3( KTAINT,
+ "AUD CPEAudioData::GetAvailableOutputs, index: %d, available: %d",
+ j,
+ availableOutputs[j] );
+ }
+
+ return iPEavailableOutputs.Array();
}
-
+
// -----------------------------------------------------------------------------
-// CPEAudioData::SetDefaultVolume
+// CPEAudioData::HandleCallStarting
// -----------------------------------------------------------------------------
//
-EXPORT_C void CPEAudioData::SetDefaultVolume()
+EXPORT_C TInt CPEAudioData::HandleCallStarting(TBool aVideoCall)
{
- TEFLOGSTRING( KTAREQIN, "AUD CPEAudioData::SetDefaultVolume" );
- if ( !iLoudspeakerVolume )
- {
- TEFLOGSTRING( KTAREQIN, "AUD CPEAudioData->SetDefaultLoudspeakerVolume" );
- iLoudspeakerVolume = KPEDefaultVolume;
- iPhoneModel.DataStore()->SetAudioVolume( iLoudspeakerVolume );
- iPhoneModel.DataStoreExt()->Set( EPEIncallLoudspeakerVolumeSetting,
- iLoudspeakerVolume );
- }
- if ( !iHeadSetVolume )
- {
- TEFLOGSTRING( KTAREQIN, "AUD CPEAudioData->SetDefaultHeadSetVolume" );
- iHeadSetVolume = KPEDefaultVolume;
- iPhoneModel.DataStore()->SetAudioVolume( iHeadSetVolume );
- iPhoneModel.DataStoreExt()->Set( EPEIncallEarVolumeSetting,
- iHeadSetVolume );
+ TEFLOGSTRING( KTAMESINT, "AUD CPEAudioData::HandleCallStarting()" );
+ TInt ret(KErrNone);
+
+ if (!iRouteInitialized) // if route not already initialized
+ { // Not new route init for multi calls
+ iRouteInitialized = ETrue;
+ ret = iAudioRoutingHandler->HandleAudioRoutingCallInit(aVideoCall);
}
- DoHandleVolumeChange( KPEDefaultVolume );
- }
-
-// -----------------------------------------------------------------------------
-// CPEAudioData::HandleCallStarting
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CPEAudioData::HandleCallStarting( TBool aVideoCall )
- {
- TEFLOGSTRING( KTAMESINT, "AUD CPEAudioData::HandleCallStarting()" );
- TInt ret( KErrNone );
-
- if ( !iRouteInitialized ) // if route not already initialized
- { // Not new route init for multi calls
- iRouteInitialized = ETrue;
- ret = iAudioRoutingHandler->HandleAudioRoutingCallInit( aVideoCall );
- }
-
- return ret;
+ return ret;
}
// -----------------------------------------------------------------------------
// CPEAudioData::HandleEnergencyCallStarting
// Can be called, if new call is created before previous call is idle state
-// One used situation is that emergency call is dialed during the video call or
+// One used situation is that emergency call is dialed during the video call or
// voice call. Audio routing have to initialized when emergency is dialing state
// even previous call(voice or video) haven't got idle yet.
// -----------------------------------------------------------------------------
-//
+//
EXPORT_C TInt CPEAudioData::HandleEnergencyCallStarting()
{
TEFLOGSTRING( KTAMESINT, "AUD CPEAudioData::HandleCallSwitching()" );
- TInt ret( KErrNone );
-
+ TInt ret(KErrNone);
+
// Always new route init
- ret = iAudioRoutingHandler->HandleAudioRoutingCallInit( EFalse );
+ ret = iAudioRoutingHandler->HandleAudioRoutingCallInit(EFalse);
iRouteInitialized = ETrue;
-
- return ret;
+
+ return ret;
}
// -----------------------------------------------------------------------------
// CPEAudioData::HandleCallEnding()
// -----------------------------------------------------------------------------
-//
+//
EXPORT_C void CPEAudioData::HandleCallEnding()
{
TEFLOGSTRING( KTAMESINT, "AUD CPEAudioData::HandleCallEnding()" );
-
- if ( iRouteInitialized )
+
+ if (iRouteInitialized)
{
iRouteInitialized = EFalse;
- TEFLOGSTRING( KTAMESINT,
- "AUD CPEAudioData::HandleCallEnding() > CTelephonyAudioRouting::ENotActive" );
- SetTAROutput( CTelephonyAudioRouting::ENotActive, EFalse );
+ TEFLOGSTRING( KTAMESINT,
+ "AUD CPEAudioData::HandleCallEnding() > CTelephonyAudioRouting::ENotActive" );
+ SetTAROutput(CTelephonyAudioRouting::ENotActive, EFalse);
}
}
-
+
// -----------------------------------------------------------------------------
// CPEAudioData::CallAudioRoutePreferenceChanged()
-//
+//
// -----------------------------------------------------------------------------
-//
+//
EXPORT_C TInt CPEAudioData::CallAudioRoutePreferenceChanged()
{
TEFLOGSTRING( KTAMESINT, "AUD CPEAudioData::CallAudioRoutePreferenceChanged()" );
- if ( iRouteInitialized )
+ if (iRouteInitialized)
{
- return iAudioRoutingHandler->HandleAudioRoutePreferenceChanged();
+ return iAudioRoutingHandler->HandleAudioRoutePreferenceChanged();
}
return KErrNotReady;
- }
-
+ }
+
// -----------------------------------------------------------------------------
// CPEAudioData::PreviousOutput
// -----------------------------------------------------------------------------
@@ -656,7 +498,7 @@
{
return iAudioRouting->PreviousOutput();
}
-
+
// -----------------------------------------------------------------------------
// CPEAudioData::Output
// -----------------------------------------------------------------------------
@@ -665,62 +507,64 @@
{
return iAudioRouting->Output();
}
-
+
// -----------------------------------------------------------------------------
// CPEAudioData::SetRoutePreference
// -----------------------------------------------------------------------------
-//
-void CPEAudioData::SetRoutePreference( TBool aShowNote )
+//
+void CPEAudioData::SetRoutePreference(TBool aShowNote)
{
TEFLOGSTRING( KTAMESINT, "AUD CPEAudioData::SetRoutePreference()" );
- CTelephonyAudioRouting::TAudioOutput output = CTelephonyAudioRouting::EHandset;
-
- const TInt outputPreference = iPhoneModel.DataStore()->AudioOutputPreference();
- if ( outputPreference == EPSAudioPublic )
+ CTelephonyAudioRouting::TAudioOutput output =
+ CTelephonyAudioRouting::EHandset;
+
+ const TInt outputPreference =
+ iPhoneModel.DataStore()->AudioOutputPreference();
+ if (outputPreference == EPSAudioPublic)
{
output = CTelephonyAudioRouting::ELoudspeaker;
}
TInt error;
- iAudioRouting->SetShowNote( aShowNote );
+ iAudioRouting->SetShowNote(aShowNote);
TRAP( error, iAudioRouting->SetOutputL( output ) );
TEFLOGSTRING2( KTAMESINT, "AUD CPEAudioData::SetRoutePreference() err %d", error );
- }
-
+ }
+
// -----------------------------------------------------------------------------
// CPEAudioData::RoutePreference
// -----------------------------------------------------------------------------
-//
+//
CTelephonyAudioRouting::TAudioOutput CPEAudioData::RoutePreference()
{
- CTelephonyAudioRouting::TAudioOutput output = CTelephonyAudioRouting::EHandset;
-
- const TInt outputPreference = iPhoneModel.DataStore()->AudioOutputPreference();
- if ( outputPreference == EPSAudioPublic )
+ CTelephonyAudioRouting::TAudioOutput output =
+ CTelephonyAudioRouting::EHandset;
+
+ const TInt outputPreference =
+ iPhoneModel.DataStore()->AudioOutputPreference();
+ if (outputPreference == EPSAudioPublic)
{
output = CTelephonyAudioRouting::ELoudspeaker;
}
TEFLOGSTRING2( KTAMESINT, "AUD CPEAudioData::RoutePreference() output %d", output );
return output;
- }
+ }
// -----------------------------------------------------------------------------
// CPEAudioData::IsWiredAvailable
// -----------------------------------------------------------------------------
//
TBool CPEAudioData::IsWiredAvailable()
{
- return iPhoneModel.DataStore()->AudioOutputAvailable(
- EPEWiredAudioAccessory );
+ return iPhoneModel.DataStore()->AudioOutputAvailable(
+ EPEWiredAudioAccessory);
}
-
// -----------------------------------------------------------------------------
// CPEAudioData::IsBTAvailable
// -----------------------------------------------------------------------------
//
TBool CPEAudioData::IsBTAvailable()
{
- return iPhoneModel.DataStore()->AudioOutputAvailable(
- EPEBTAudioAccessory );
+ return iPhoneModel.DataStore()->AudioOutputAvailable(EPEBTAudioAccessory);
}
// -----------------------------------------------------------------------------
@@ -729,39 +573,20 @@
//
TBool CPEAudioData::IsTTYAvailable()
{
- return iPhoneModel.DataStore()->AudioOutputAvailable(
- EPETTY );
+ return iPhoneModel.DataStore()->AudioOutputAvailable(EPETTY);
}
- // -----------------------------------------------------------------------------
-// CPEAudioData::IsMuted
-// -----------------------------------------------------------------------------
-//
-TBool CPEAudioData::IsMuted() const
- {
- TInt value;
- TInt err = RProperty::Get(
- KPSUidTelMicrophoneMuteStatus,
- KTelMicrophoneMuteState,
- value );
-
- TEFLOGSTRING3(
- KTAREQIN,
- "AUD CPEAudioData::IsMuted: value = %d, error = %d",
- value, err );
- return ( value == EPSTelMicMuteOn ) ? ETrue : EFalse;
- }
-
// -----------------------------------------------------------------------------
// CPEAudioData::ConvertToPE
// -----------------------------------------------------------------------------
//
-TPEAudioOutput CPEAudioData::ConvertToPE( CTelephonyAudioRouting::TAudioOutput aOutput )
+TPEAudioOutput CPEAudioData::ConvertToPE(
+ CTelephonyAudioRouting::TAudioOutput aOutput)
{
TEFLOGSTRING2( KTAMESINT, "AUD CPEAudioData::ConvertToPE, aOutput %d", aOutput );
- TPEAudioOutput newOutput( EPENotActive );
-
- switch( aOutput )
+ TPEAudioOutput newOutput(EPENotActive);
+
+ switch (aOutput)
{
case CTelephonyAudioRouting::ENotActive:
newOutput = EPENotActive;
@@ -782,9 +607,9 @@
newOutput = EPETTY;
break;
default:
- break;
+ break;
}
-
+
return newOutput;
}
@@ -792,13 +617,15 @@
// CPEAudioData::ConvertToTAR
// -----------------------------------------------------------------------------
//
-CTelephonyAudioRouting::TAudioOutput CPEAudioData::ConvertToTAR( TPEAudioOutput aOutput )
+CTelephonyAudioRouting::TAudioOutput CPEAudioData::ConvertToTAR(
+ TPEAudioOutput aOutput)
{
TEFLOGSTRING2( KTAMESINT, "AUD CPEAudioData::ConvertToTAR, aOutput %d", aOutput );
-
- CTelephonyAudioRouting::TAudioOutput newOutput ( CTelephonyAudioRouting::ENotActive );
-
- switch( aOutput )
+
+ CTelephonyAudioRouting::TAudioOutput newOutput(
+ CTelephonyAudioRouting::ENotActive);
+
+ switch (aOutput)
{
case EPENotActive:
newOutput = CTelephonyAudioRouting::ENotActive;
@@ -819,7 +646,7 @@
newOutput = CTelephonyAudioRouting::ETTY;
break;
default:
- break;
+ break;
}
return newOutput;
}
@@ -828,9 +655,43 @@
// CPEAudioData::DoHandleVolumeChange
// -----------------------------------------------------------------------------
//
-void CPEAudioData::DoHandleVolumeChange( TInt /*aVolume*/ )
+void CPEAudioData::DoHandleVolumeChange(TInt aVolume, TBool aSendMsg)
{
-
+ iPhoneModel.DataStore()->SetAudioVolume(aVolume);
+
+ if (aSendMsg)
+ {
+ SendMessage(MEngineMonitor::EPEMessageAudioVolumeChanged);
+ }
}
-// End of File
+// -----------------------------------------------------------------------------
+// CPEAudioData::EffectsEvent
+// -----------------------------------------------------------------------------
+//
+void CPEAudioData::EffectsEvent(const TMSEffect& tmseffect,
+ TMSSignalEvent event)
+ {
+ TMSEffectType effecttype;
+ const_cast<TMSEffect&>(tmseffect).GetType(effecttype);
+
+ if (effecttype == TMS_EFFECT_GLOBAL_VOL &&
+ event.type == TMS_EVENT_EFFECT_VOL_CHANGED)
+ {
+ TMSVolumeEventChangeData* vd;
+ vd = static_cast<TMSVolumeEventChangeData*>(event.event_data);
+
+ // If volume change event has been triggered by routing change, we
+ // do not want to send EPEMessageAudioVolumeChanged message.
+ if (!vd->output_changed)
+ {
+ DoHandleVolumeChange(iAudioEffect->Volume(), ETrue);
+ }
+ else
+ {
+ DoHandleVolumeChange(iAudioEffect->Volume(), EFalse);
+ }
+ }
+ }
+
+// End of File