devsoundextensions/telephonyaudiorouting/Session/src/TelephonyAudioRoutingManagerSession.cpp
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
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-2004 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:   This class is the main interface to the TelephonyAudioRoutingServer.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*			   : Specifically handles TelephonyAudioRoutingManager sessions.
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
                                                           
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include <e32math.h>    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <s32mem.h> 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include "TelephonyAudioRoutingClientServer.h"          
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include "TelephonyAudioRoutingManagerSession.h"      
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include "TelephonyAudioRoutingPolicyRequest.h"     
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
                                                                                                                                                                      
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
// RTelephonyAudioRoutingManagerSession::RTelephonyAudioRoutingManagerSession
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
// C++ default constructor can NOT contain any code, that
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
// might leave.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
//                                                                                                 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
EXPORT_C RTelephonyAudioRoutingManagerSession::RTelephonyAudioRoutingManagerSession()                                                         
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
	: RSessionBase(), iConnected(EFalse)                                                                    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
    {                                                                                            
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
    // No implementation required  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
                                                         
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
    }                                                                                            
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
                                                                                                    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
// RTelephonyAudioRoutingSession::Connect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
// Connects a policy client to the server.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
EXPORT_C TInt RTelephonyAudioRoutingManagerSession::Connect(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
	CTelephonyAudioRoutingManager& aAudioRoutingManager,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
	MTelephonyAudioRoutingPolicyObserver& aPolicyObserver)                                                               
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
    	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
    TELAUDRTNG_RDEBUG(_L("[TELAUDRTNG]\t RTelephonyAudioRoutingManagerSession::Connect"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
	TInt retry=2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
  	TInt err = KErrGeneral;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
	for (;;)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
		err=CreateSession(KTelAudRtngServName,TVersion(0,0,0)); // RSessionBase::CreateSession
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
		if (err!=KErrNotFound && err!=KErrServerTerminated && err!=KErrPermissionDenied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
		if (--retry==0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
		} 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	if ( err == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
		// Create active object receive handlers and add it to scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
		TRAP(err, StartPolicyRequestHandlersL(aAudioRoutingManager, aPolicyObserver));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
		if ( err == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
			iConnected = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
		SendReceive(ETelAudRtngServInitialize, TIpcArgs());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	return err;                                                                                           
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
                                                                              
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
    }     
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
// RTelephonyAudioRoutingManagerSession::Close
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
// Closes connection to the server.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
//  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
EXPORT_C void RTelephonyAudioRoutingManagerSession::Close()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	TELAUDRTNG_RDEBUG(_L("[TELAUDRTNG]\t RTelephonyAudioRoutingManagerSession::Close"));	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	if ( iConnected )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
		delete iPolicyRequest;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
		RSessionBase::Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
		iConnected = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
	}                                                                                       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
                                                                                                 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
// RTelephonyAudioRoutingManagerSession::OutputChangeCompleted
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
// Used by policy to notify server that requested output change completed
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
EXPORT_C void RTelephonyAudioRoutingManagerSession::OutputChangeCompleted(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	CTelephonyAudioRouting::TAudioOutput aOutput,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	TInt aError)                                        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
    { 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
 	TPckgBuf<CTelephonyAudioRouting::TAudioOutput> audioOutputPkg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	audioOutputPkg() = aOutput;  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	TPckgBuf<TInt> errPkg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
	errPkg() = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
	 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
 	TELAUDRTNG_RDEBUG1(_L("[TELAUDRTNG]\t RTelephonyAudioRoutingManagerSession::OutputChangeCompleted to %d"), aOutput); 	                 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
	SendReceive(ETelAudRtngServOutputChangeComplete, TIpcArgs(&audioOutputPkg, &errPkg));  	                                         	    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
// RTelephonyAudioRoutingManagerSession::OutputChanged
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
// Used by policy to notify server of audio output changes initiated by policy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
EXPORT_C void RTelephonyAudioRoutingManagerSession::OutputChanged(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
	CTelephonyAudioRouting::TAudioOutput aOutput)                                        
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
    { 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
 	TPckgBuf<CTelephonyAudioRouting::TAudioOutput> audioOutputPkg;    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
	audioOutputPkg() = aOutput;  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
//	iAudioOutput = aOutput;  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
 	TELAUDRTNG_RDEBUG1(_L("[TELAUDRTNG]\t RTelephonyAudioRoutingManagerSession::OutputChanged to %d"), aOutput); 	                 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
	SendReceive(ETelAudRtngServOutputChangedByPolicy, TIpcArgs(&audioOutputPkg));  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
	                                         	    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
    
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
// RTelephonyAudioRoutingManagerSession::AvailableOutputsChangedL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
// Used by policy session to notify server if the available audio output change.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
//  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
EXPORT_C void RTelephonyAudioRoutingManagerSession::AvailableOutputsChangedL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
	const TArray<CTelephonyAudioRouting::TAudioOutput>& aOutputs)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
    TELAUDRTNG_RDEBUG(_L("[TELAUDRTNG]\t RTelephonyAudioRoutingManagerSession::AvailableOutputsChangedL"));  	       
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	TPckgBuf<TInt> numOfOutputs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	numOfOutputs()= aOutputs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	TInt count = aOutputs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	TELAUDRTNG_RDEBUG1(_L("[TELAUDRTNG]\t AvailableOutputsChangedL: Count = %d "),count);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
	for(TInt i = 0; i < count; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
		TELAUDRTNG_RDEBUG1(_L("[TELAUDRTNG]\t AvailableOutputsChangedL: aOutputs[i] = %d "),aOutputs[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
	TInt KBufExpandSize8 = 8;//two TInts
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
	CBufFlat* dataCopyBuffer = CBufFlat::NewL(KBufExpandSize8);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
	CleanupStack::PushL(dataCopyBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	stream.Open(*dataCopyBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	for (TInt i=0;i<aOutputs.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
		stream.WriteInt16L(aOutputs[i]);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	TPtr8 ptr = dataCopyBuffer->Ptr(0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	SendReceive(ETelAudRtngDoAvailableOutputsChanged, TIpcArgs(&numOfOutputs, &ptr));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	stream.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	CleanupStack::PopAndDestroy(2);//stream, buf                    
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
// RTelephonyAudioRoutingManagerSession::SetPolicySessionIdL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
// Sets policy session Id.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
EXPORT_C void RTelephonyAudioRoutingManagerSession::SetPolicySessionIdL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	User::LeaveIfError(SendReceive(ETelAudRtngServSetPolicySessionId, TIpcArgs()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
// RTelephonyAudioRoutingManagerSession::MonitorOutputChangeRequest
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
// Used by policy session to get notification whenever any of the clients sends
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
// a SetOutput request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
EXPORT_C void RTelephonyAudioRoutingManagerSession::MonitorOutputChangeRequest()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	TELAUDRTNG_RDEBUG(_L("[TELAUDRTNG]\t RTelephonyAudioRoutingManagerSession::MonitorOutputChangeRequest "));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
	iPolicyRequest->Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	SendReceive(ETelAudRtngServMonitorOutputChange, TIpcArgs(&iAudioOutputPkg), iPolicyRequest->iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	iPolicyRequest->SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
// RTelephonyAudioRoutingManagerSession::CancelRequest
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
// Cancel a previously send request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
//	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
EXPORT_C void RTelephonyAudioRoutingManagerSession::CancelRequest(TTelAudRtngServRqst aRequest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
	TELAUDRTNG_RDEBUG(_L("[TELAUDRTNG]\t RTelephonyAudioRoutingManagerSession::CancelRequest "));	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
	TPckgBuf<TInt> request;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
   	request() = aRequest;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	SendReceive(ETelAudRtngServCancelRequest, TIpcArgs(&request));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
// RTelephonyAudioRoutingSession::AudioOutputPkg
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
// Accessor method returns iAudioOutputPkg to caller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
//	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
EXPORT_C TPckgBuf<CTelephonyAudioRouting::TAudioOutput>& RTelephonyAudioRoutingManagerSession::AudioOutputPkg()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
		return iAudioOutputPkg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
// RTelephonyAudioRoutingManagerSession::StartPolicyRequestHandlersL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
// Start asynchronous request handlers.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
void RTelephonyAudioRoutingManagerSession::StartPolicyRequestHandlersL( 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	CTelephonyAudioRoutingManager& aAudioRoutingManager, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	MTelephonyAudioRoutingPolicyObserver& aPolicyObserver )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
		iPolicyRequest = CTelephonyAudioRoutingPolicyRequest::NewL(*this, aPolicyObserver, aAudioRoutingManager, ETelAudRtngServMonitorOutputChange);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
	}