devsoundextensions/telephonyaudiorouting/Session/inc/TelephonyAudioRoutingSession.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devsoundextensions/telephonyaudiorouting/Session/inc/TelephonyAudioRoutingSession.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,227 @@
+/*
+* Copyright (c) 2002-2004 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 class is the main interface to the TelephonyAudioRoutingServer. 
+*				 It implements the client-side session.
+*
+*/
+
+                                      
+                                                                                 
+#ifndef TELEPHONYAUDIOROUTINGSESSION_H                                                
+#define TELEPHONYAUDIOROUTINGSESSION_H                                                  
+                                                                                 
+#include <e32base.h>
+#include <e32std.h>     
+#include "TelephonyAudioRouting.h" 
+#include "MTelephonyAudioRoutingPolicyObserver.h"
+#include "TelephonyAudioRoutingClientServer.h"
+  
+  
+class CTelephonyAudioRoutingRequest;
+class CTelephonyAudioRoutingManager;
+
+// CLASS DECLARATION
+
+/**
+*  Main interface to the TelephonyAudioRoutingServer. 
+*  It implements the client-side session.
+*
+*  @lib TelephonyAudioRoutingSession.lib
+*  @since Series 60 3.1
+*/                                     
+                                                                              
+class RTelephonyAudioRoutingSession : public RSessionBase                                   
+    { 
+                                                                               
+	public:                                                                          
+                                                                        
+    	IMPORT_C RTelephonyAudioRoutingSession();    
+    
+    public:                                                    
+         
+        /**
+        * Connects a client to the  server.
+        * @since Series 60 3.1
+        * @param aAudioRouting obj: client obj, aObserver: Client's observer class
+        * @return TInt connection success or failure
+        */                                                                        
+    	IMPORT_C TInt ConnectL(CTelephonyAudioRouting& aAudioRouting, MTelephonyAudioRoutingObserver& aObserver);        
+    	
+        /**
+        * Closes connection to the server.
+        * @since Series 60 3.1
+        * @param none
+        * @return void
+        */
+        IMPORT_C void Close();                                                      
+                                                                       
+	    /**
+        * Gets the client side version number.
+        * @since Series 60 3.1
+        * @param none
+        * @return TVersion: version
+        */
+	    IMPORT_C TVersion Version() const;                                                    
+                                                                                 
+	    /**
+        * Send a SetOutput request to server.
+        * @since Series 60 3.1
+        * @params aOutput: output value to set
+        *		  aShowNote: Boolean to indicate note option
+        * @return void
+        */
+	    IMPORT_C void SetOutput(CTelephonyAudioRouting::TAudioOutput aOutput, TBool aShowNote); 
+
+    	/**
+        * Get the available audio outputs from the server.
+        * @since Series 60 3.1
+        * @param none
+        * @return void
+        */
+    	IMPORT_C void GetAvailableOutputsL();
+    	
+    	/**
+        * Cancel a previously send request.
+        * @since Series 60 3.1
+        * @param aRequest: request to cancel
+        * @return void
+        */
+    	IMPORT_C void CancelRequest(TTelAudRtngServRqst aRequest);
+    	
+      	/**
+        * Send a request to server to receive notification whenever current audio output changes.
+        * @since Series 60 3.1
+        * @param none
+        * @return void
+        */
+    	IMPORT_C void NotifyIfOutputChanged();
+    	
+    	/**
+        * Send a request to server to receive notification whenever available audio output changes.
+        * @since Series 60 3.1
+        * @param none
+        * @return void
+        */
+    	IMPORT_C void NotifyIfAvailableOutputsChanged();
+    	
+    	// Accessor methods:
+    	
+     	/**
+        * Provide caller with iCurrentAudioOutputPkg
+        * @since Series 60 3.1
+        * @param none
+        * @return iCurrentAudioOutputPkg
+        */
+    	IMPORT_C  TPckgBuf<CTelephonyAudioRouting::TAudioOutput>& CurrentAudioOutputPkg();   	
+    	  	
+     	/**
+        * Provide caller with iPreviousAudioOutputPkg
+        * @since Series 60 3.1
+        * @param none
+        * @return iPreviousAudioOutputPkg
+        */
+    	IMPORT_C  TPckgBuf<CTelephonyAudioRouting::TAudioOutput>& PreviousAudioOutputPkg();  
+
+     	/**
+        * Provide caller with iErrPkg
+        * @since Series 60 3.1
+        * @param none
+        * @return iErrPkg value
+        */
+    	IMPORT_C  TPckgBuf<TInt>& ErrPkg();
+    	
+     	/**
+        * Provide caller with iAvailableOutputs array
+        * @since Series 60 3.1
+        * @param none
+        * @return: Array of available outputs
+        */
+    	IMPORT_C RArray<CTelephonyAudioRouting::TAudioOutput>& AvailableOutputs();  
+    	
+      	/**
+        * Sets value for iOkToGetShowNoteMode after successful completion of SetOutput call
+        * @since Series 60 3.1
+        * @param none
+        * @return: none
+        */
+    	IMPORT_C void SetShowNoteMode();  
+    	
+    	
+      	/**
+        * Provides caller with value for iShowNoteModePkg
+        * @since Series 60 3.1
+        * @param none
+        * @return: none
+        */
+    	IMPORT_C TPckgBuf<TBool>& ShowNoteMode(); 
+    	
+    	
+      	/**
+        * Will reset iOkToGetShowNoteMode value to EFalse
+        * @since Series 60 3.1
+        * @param none
+        * @return: none
+        */
+    	IMPORT_C void ResetShowNoteMode();   
+    	
+      	
+      	/**
+        * Provides caller with value for iOkToGetShowNoteMode
+        * @since Series 60 3.1
+        * @param none
+        * @return: none
+        */
+    	IMPORT_C TBool OkToGetShowNoteMode();  
+    	
+    	
+      	/**
+        * Provides caller with default values from server
+        * @since Series 60 3.1
+        * @param none
+        * @return: none
+        */    	
+    	IMPORT_C void GetDefaultValuesL();    	     	       	    	    	
+
+	private:
+
+   		/**
+        * Start asynchronous request handlers.
+        * @since Series 60 3.1
+        * @param aAudioRouting: client obj, aObserver: client's observer class for callbacks
+        * @return void
+        */
+   		void StartRequestHandlersL( CTelephonyAudioRouting& aAudioRouting, MTelephonyAudioRoutingObserver& aObserver );
+
+ 
+	private:
+
+ 		TPckgBuf<CTelephonyAudioRouting::TAudioOutput> iCurrentAudioOutputPkg;  		
+  		TPckgBuf<CTelephonyAudioRouting::TAudioOutput> iPreviousAudioOutputPkg; 
+  		TPckgBuf<TInt> iErrPkg;   
+   		TPckgBuf<TBool> iShowNoteModePkg; 
+   		TPckgBuf<TTelephonyAudioRoutingDefaultParams> iDefaultValuePkg;
+ 	    RArray<CTelephonyAudioRouting::TAudioOutput> iAvailableOutputs;
+      
+		RPointerArray<CTelephonyAudioRoutingRequest> iRequests;  
+	
+		TBool 	iConnected; 
+		TBool	iOkToGetShowNoteMode;
+
+                                                                             
+    };                                                                           
+                                      
+                                                                                 
+#endif         //TELEPHONYAUDIOROUTINGSESSION_H                                
+                                                                                 
+