os/mm/devsoundextensions/telephonyaudiorouting/Session/inc/TelephonyAudioRoutingManagerSession.h
First public contribution.
2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: This class is the main interface to the TelephonyAudioRoutingServer.
15 * It implements the client-side session.
21 #ifndef TELEPHONYAUDIOROUTINGMANAGERSESSION_H
22 #define TELEPHONYAUDIOROUTINGMANAGERSESSION_H
26 #include "MTelephonyAudioRoutingPolicyObserver.h"
27 #include "TelephonyAudioRoutingClientServer.h"
30 class CTelephonyAudioRoutingPolicyRequest;
31 class CTelephonyAudioRoutingManager;
36 * Main interface to the TelephonyAudioRoutingServer.
37 * It implements the client-side session.
39 * @lib TelephonyAudioRoutingManagerSession.lib
40 * @since Series 60 3.1
43 class RTelephonyAudioRoutingManagerSession : public RSessionBase
48 IMPORT_C RTelephonyAudioRoutingManagerSession();
53 * Connects a policy client to the server.
54 * @since Series 60 3.1
55 * @param aAudioRoutingManager: Client, aPolicyObserver: client observer class
56 * @return TInt: if connection was successful
58 IMPORT_C TInt Connect(CTelephonyAudioRoutingManager& aAudioRoutingManager, MTelephonyAudioRoutingPolicyObserver& aPolicyObserver);
61 * Closes connection to the server.
62 * @since Series 60 3.1
66 IMPORT_C void Close();
69 * Used by policy to notify server of audio output changes.
70 * @since Series 60 3.1
71 * @param aOutput: client obj
74 IMPORT_C void OutputChanged(CTelephonyAudioRouting::TAudioOutput aOutput);
77 * Used by policy to notify server that requested output change completed
78 * @since Series 60 3.1
79 * @param aOutput: client obj, aError: error code for operation
82 IMPORT_C void OutputChangeCompleted(CTelephonyAudioRouting::TAudioOutput aOutput, TInt aError);
86 * Used by policy session to get notification whenever any of the clients sends
87 * a SetOutput request.
88 * @since Series 60 3.1
92 IMPORT_C void MonitorOutputChangeRequest();
95 * Sets policy session Id.
96 * @since Series 60 3.1
100 IMPORT_C void SetPolicySessionIdL();
103 * Cancel a previously send request.
104 * @since Series 60 3.1
105 * @param aRequest: request to cancel
108 IMPORT_C void CancelRequest(TTelAudRtngServRqst aRequest);
111 * Used by policy session to notify server if the available audio
113 * @since Series 60 3.1
114 * @param aOutputs: array of available outputs
117 IMPORT_C void AvailableOutputsChangedL(const TArray<CTelephonyAudioRouting::TAudioOutput>& aOutputs);
120 * Provide caller with iAudioOutputPkg
121 * @since Series 60 3.1
123 * @return iAudioOutputPkg
125 IMPORT_C TPckgBuf<CTelephonyAudioRouting::TAudioOutput>& AudioOutputPkg();
130 * Start asynchronous request handlers.
131 * @since Series 60 3.1
132 * @param aAudioRoutingManager: client obj, aPolicyObserver: observer obj for callbacks
135 void StartPolicyRequestHandlersL( CTelephonyAudioRoutingManager& aAudioRoutingManager, MTelephonyAudioRoutingPolicyObserver& aPolicyObserver );
139 TPckgBuf<CTelephonyAudioRouting::TAudioOutput> iAudioOutputPkg;
140 CTelephonyAudioRoutingPolicyRequest* iPolicyRequest;
146 #endif //TELEPHONYAUDIOROUTINGSESSION_H