mmserv/voipaudioservices/inc/VoIPAudioSession.h
changeset 0 71ca22bcf22a
child 53 eabc8c503852
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/voipaudioservices/inc/VoIPAudioSession.h	Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,607 @@
+/*
+ * Copyright (c) 2007-2008 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:  Declares RVoIPAudioSession - client side interface to
+ *                VoIP server.
+ *
+ */
+
+#ifndef __VOIPAUDIOSESSION_H
+#define __VOIPAUDIOSESSION_H
+
+// INCLUDES
+#include <mmfbase.h>
+#include <mmfutilities.h> //for TFourCC
+#include <voipaudiocommon.h>
+#include <voipdownlinkstream.h>
+#include <voipformatintfc.h>
+#include <voipjitterbufferintfc.h>
+#include "VoIPAudioClientServer.h"
+
+// CONSTANTS
+
+// FORWARD DECLARATIONS
+class CVoIPFormatIntfc;
+
+// CLASS DECLARATION
+
+/**
+ * RVoIPAudioSession API
+ */
+class RVoIPAudioSession : public RSessionBase
+    {
+public:
+    /**
+     * Opens a connection to the server.
+     * @return KErrNone if successful connection created
+     */
+    IMPORT_C TInt Connect();
+    /**
+     * @return The server version this session can connct to
+     */
+    IMPORT_C TVersion Version() const;
+    /**
+     * Close the session to the server
+     */
+    IMPORT_C void Close();
+
+    // Downlink stream methods
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt OpenDownlink(TMMFPrioritySettings aPriority);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt GetMaxVolume();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt SetVolume(const TInt aVolume);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt GetVolume();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param const TMMFPrioritySettings
+     * @param RArray<TUint32>&
+     * @param TInt&
+     * @return TInt
+     */
+    IMPORT_C TInt GetSupportedDecoders(const TMMFPrioritySettings aPriority,
+            RArray<TUint32>& aDecoders, TInt& aFrameSize);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt SetDecoder(const TUint32 aDecoder);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt SetAudioDevice(
+            const CVoIPAudioDownlinkStream::TVoIPOutputDevice aDevice);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt GetAudioDevice(
+            CVoIPAudioDownlinkStream::TVoIPOutputDevice& aDevice);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt StartDownlink();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt StopDownlink();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C void CloseDownlink();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TPtr8
+     * @param const TInt64
+     * @return TInt
+     */
+    IMPORT_C TInt BufferFilled(TPtr8 aBuffer, const TUint aBufferSequence = 0);
+
+    // Uplink stream methods
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param const TMMFPrioritySettings
+     * @return TInt
+     */
+    IMPORT_C TInt OpenUplink(const TMMFPrioritySettings aPriority);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt GetMaxGain();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt SetGain(const TInt aGain);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt GetGain();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param const TMMFPrioritySettings
+     * @param RArray<TUint32>&
+     * @param TInt&
+     * @return TInt
+     */
+    IMPORT_C TInt GetSupportedEncoders(const TMMFPrioritySettings aPriority,
+            RArray<TUint32>& aEncoders, TInt& aFrameSize);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt SetEncoder(const TUint32 aEncoder);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt StartUplink();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt StopUplink();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C void CloseUplink();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TPtr8
+     * @return TInt
+     */
+    IMPORT_C TInt BufferEmptied(TPtr8 aBuffer);
+
+    // Codec CI methods
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TArray<TUint>&
+     * @return void
+     */
+    IMPORT_C void GetSupportedBitRatesL(RArray<TUint>& aArray);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param const TUint
+     * @return TInt
+     */
+    IMPORT_C TInt SetBitRate(const TUint aBitrate);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TUint&
+     * @return TInt
+     */
+    IMPORT_C TInt GetBitRate(TUint& aBitrate);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool
+     * @return TInt
+     */
+    IMPORT_C TInt SetVAD(const TBool aVad);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool&
+     * @return TInt
+     */
+    IMPORT_C TInt GetVAD(TBool& aVad);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool&
+     * @return TInt
+     */
+    IMPORT_C TInt FrameModeRequiredForEC(TBool& aMode);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool
+     * @return TInt
+     */
+    IMPORT_C TInt SetFrameMode(const TBool aMode);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool&
+     * @return TInt
+     */
+    IMPORT_C TInt GetFrameMode(TBool& aMode);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt ConcealErrorForNextBuffer();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TG711CodecMode
+     * @return TInt
+     */
+    IMPORT_C TInt SetMode(const CVoIPFormatIntfc::TG711CodecMode aMode);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TG711CodecMode&
+     * @return TInt
+     */
+    IMPORT_C TInt GetMode(CVoIPFormatIntfc::TG711CodecMode& aMode);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TILBCCodecMode
+     * @return TInt
+     */
+    IMPORT_C TInt SetMode(const CVoIPFormatIntfc::TILBCCodecMode aMode);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TILBCCodecMode&
+     * @return TInt
+     */
+    IMPORT_C TInt GetMode(CVoIPFormatIntfc::TILBCCodecMode& aMode);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool
+     * @return TInt
+     */
+    IMPORT_C TInt SetCNG(const TBool aCng);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool&
+     * @return TInt
+     */
+    IMPORT_C TInt GetCNG(TBool& aCng);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool
+     * @return TInt
+     */
+    IMPORT_C TInt SetPLC(const TBool aPlc);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TBool&
+     * @return TInt
+     */
+    IMPORT_C TInt GetPLC(TBool& aPlc);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt BadLsfNextBuffer();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt OpenDTMFTonePlayer();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt PlayDTMFTone(const TDesC& aTones);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt StopDTMFTonePlay();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C void CloseDTMFTonePlayer();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt OpenRingTonePlayer();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TDesC&
+     * @return TInt
+     */
+    IMPORT_C TInt OpenRingTonePlayer(const TDesC& aFileName);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param RFile&
+     * @return TInt
+     */
+    IMPORT_C TInt OpenRingTonePlayer(const RFile& aFileHandle);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param TDes&
+     * @param TDes&
+     * @return TInt
+     */
+    IMPORT_C TInt OpenRingTonePlayer(const TDesC8& aDesData);
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt PlayRingTone();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt PauseRingTone();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt ResumeRingTone();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt StopRingTone();
+
+    /**
+     * ?description
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return void
+     */
+    IMPORT_C void CloseRingTonePlayer();
+
+    /**
+     * ConfigureJitterBuffer
+     *
+     * @since S60 v5.0
+     * @param const TVoIPJBConfig&
+     * @return TInt
+     */
+    IMPORT_C TInt ConfigureJitterBuffer(const TVoIPJBConfig& aJbConfig);
+
+    /**
+     * ResetJitterBuffer
+     *
+     * @since S60 v5.0
+     * @param const TBool
+     * @return TInt
+     */
+    IMPORT_C TInt ResetJitterBuffer(const TBool aPlayTone);
+
+    /**
+     * DelayDown
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt DelayDown();
+
+    /**
+     * DelayUp
+     *
+     * @since S60 v5.0
+     * @param none
+     * @return TInt
+     */
+    IMPORT_C TInt DelayUp();
+
+private:
+    /**
+     * PopulateArrayL
+     *
+     * @since S60 v5.0
+     * @param TVoIPAudioClientServerRequest
+     * @param RArray<TUint32>&
+     * @param TInt
+     * @return void
+     */
+    void PopulateArrayL(TVoIPAudioClientServerRequest aRequest,
+            RArray<TUint32>& aDecoders, TInt aCount);
+
+    TInt SendClientRequest(TVoIPAudioClientServerRequest aRequest,
+            const TIpcArgs& aArgs) const;
+
+    };
+
+#endif // __VOIPAUDIOSESSION_H
+
+// End of file