audiostubs/devsoundextensions_stubs/audiocodeccistubs/sbcencoderintfccistub/src/SbcEncoderIntfcCIStub.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/audiostubs/devsoundextensions_stubs/audiocodeccistubs/sbcencoderintfccistub/src/SbcEncoderIntfcCIStub.cpp Thu Jan 14 07:14:53 2010 +0200
@@ -0,0 +1,408 @@
+/*
+* Copyright (c) 2006 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: Audio Stubs - Custom Interface stub object for configuring the SBC encoder.
+*
+*/
+
+
+// INCLUDE FILES
+#include <e32debug.h>
+#include "SbcEncoderIntfcCI.h"
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+/**
+ * CSbcEncoderIntfcCI::CSbcEncoderIntfcCI
+ * C++ default constructor.
+ */
+CSbcEncoderIntfcCI::CSbcEncoderIntfcCI()
+ {
+ }
+
+/**
+ * CSbcEncoderIntfcCI::ConstructL
+ * Symbian 2nd phase constructor.
+ */
+void CSbcEncoderIntfcCI::ConstructL()
+ {
+ }
+
+/**
+ * CSbcEncoderIntfcCI::NewL
+ * Two-phased constructor.
+ */
+EXPORT_C CSbcEncoderIntfcCI* CSbcEncoderIntfcCI::NewL()
+ {
+ CSbcEncoderIntfcCI* self = new (ELeave)CSbcEncoderIntfcCI;
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+/**
+ * Destructor
+ */
+EXPORT_C CSbcEncoderIntfcCI::~CSbcEncoderIntfcCI()
+ {
+ }
+
+/**
+ * CSbcEncoderIntfcCI::GetSupportedSamplingFrequencies
+ * Returns and array of supported sampling frequencies.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetSupportedSamplingFrequencies(
+ RArray<TUint>& aSupportedSamplingFrequencies)
+ {
+ aSupportedSamplingFrequencies.Reset();
+ aSupportedSamplingFrequencies.Append(16000);
+ aSupportedSamplingFrequencies.Append(32000);
+ aSupportedSamplingFrequencies.Append(44100);
+ aSupportedSamplingFrequencies.Append(48000);
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetSupportedSamplingFrequencies - Num of supported Fs[%d]"),
+ aSupportedSamplingFrequencies.Count());
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetSupportedChannelModes
+ * Returns and array of supported channel modes.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetSupportedChannelModes(
+ RArray<TSbcChannelMode>&
+ aSupportedChannelModes)
+ {
+ aSupportedChannelModes.Reset();
+ aSupportedChannelModes.Append(ESbcChannelMono);
+ aSupportedChannelModes.Append(ESbcChannelDual);
+ aSupportedChannelModes.Append(ESbcChannelStereo);
+ aSupportedChannelModes.Append(ESbcChannelJointStereo);
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetSupportedChannelModes - Num of supported ch modes[%d]"),
+ aSupportedChannelModes.Count());
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetSupportedNumOfBlocks
+ * Returns an array of supported block numbers.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetSupportedNumOfBlocks(
+ RArray<TUint>& aSupportedNumOfBlocks)
+ {
+ aSupportedNumOfBlocks.Reset();
+ aSupportedNumOfBlocks.Append(4);
+ aSupportedNumOfBlocks.Append(8);
+ aSupportedNumOfBlocks.Append(12);
+ aSupportedNumOfBlocks.Append(16);
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetSupportedNumOfBlocks - Num of supported blocks[%d]"),
+ aSupportedNumOfBlocks.Count());
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetSupportedNumOfSubbands
+ * Returns an array of supported subbands.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetSupportedNumOfSubbands(
+ RArray<TUint>& aSupportedNumOfSubbands)
+ {
+ aSupportedNumOfSubbands.Reset();
+ aSupportedNumOfSubbands.Append(4);
+ aSupportedNumOfSubbands.Append(8);
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetSupportedNumOfSubbands - Num of supported subbands[%d]"),
+ aSupportedNumOfSubbands.Count());
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetSupportedAllocationMethods
+ * Returns an array of supported allocation methods.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetSupportedAllocationMethods(
+ RArray<TSbcAllocationMethod>&
+ aSupportedAllocationMethods)
+ {
+ aSupportedAllocationMethods.Reset();
+ aSupportedAllocationMethods.Append(ESbcAllocationSNR);
+ aSupportedAllocationMethods.Append(ESbcAllocationLoudness);
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetSupportedAllocationMethods - Num of supported alloc methods[%d]"),
+ aSupportedAllocationMethods.Count());
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetSupportedBitpoolRange
+ * Returns supported bitpool range.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetSupportedBitpoolRange(
+ TUint& aMinSupportedBitpoolSize,
+ TUint& aMaxSupportedBitpoolSize)
+ {
+ aMinSupportedBitpoolSize = 2;
+ aMaxSupportedBitpoolSize = 250;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetSupportedBitpoolRange - Min[%d] - Max [%d]"),
+ aMinSupportedBitpoolSize,
+ aMaxSupportedBitpoolSize);
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::SetSamplingFrequency
+ * Sets new sampling frequency.
+ * (other items were commented in a header).
+ */
+EXPORT_C void CSbcEncoderIntfcCI::SetSamplingFrequency(TUint aSamplingFrequency)
+ {
+ iSamplingFrequency = aSamplingFrequency;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::SetSamplingFrequency [%d]"),
+ iSamplingFrequency);
+#endif
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetSamplingFrequency
+ * Returns current sampling frequency.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetSamplingFrequency(
+ TUint& aSamplingFrequency)
+ {
+ aSamplingFrequency = iCurrentSamplingFrequency;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetSamplingFrequency [%d]"),
+ iCurrentSamplingFrequency);
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::SetChannelMode
+ * Sets new channel mode.
+ * (other items were commented in a header).
+ */
+EXPORT_C void CSbcEncoderIntfcCI::SetChannelMode(TSbcChannelMode aChannelMode)
+ {
+ iChannelMode = aChannelMode;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::SetChannelMode [%d]"), iChannelMode);
+#endif
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetChannelMode
+ * Returns current channel mode.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetChannelMode(TSbcChannelMode& aChannelMode)
+ {
+ aChannelMode = iCurrentChannelMode;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetChannelMode [%d]"),
+ iCurrentChannelMode);
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::SetNumOfSubbands
+ * Sets new number of subbands.
+ * (other items were commented in a header).
+ */
+EXPORT_C void CSbcEncoderIntfcCI::SetNumOfSubbands(TUint aNumOfSubbands)
+ {
+ iNumOfSubbands = aNumOfSubbands;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::SetNumOfSubbands [%d]"),
+ iNumOfSubbands);
+#endif
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetNumOfSubbands
+ * Returns current number of subbands.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetNumOfSubbands(TUint& aNumOfSubbands)
+ {
+ aNumOfSubbands = iCurrentNumOfSubbands;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetNumOfSubbands [%d]"),
+ iCurrentNumOfSubbands);
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::SetNumOfBlocks
+ * Sets new number of blocks.
+ * (other items were commented in a header).
+ */
+EXPORT_C void CSbcEncoderIntfcCI::SetNumOfBlocks(TUint aNumOfBlocks)
+ {
+ iNumOfBlocks = aNumOfBlocks;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::SetNumOfBlocks [%d]"), iNumOfBlocks);
+#endif
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetNumOfBlocks
+ * Returns current number of blocks.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetNumOfBlocks(TUint& aNumOfBlocks)
+ {
+ aNumOfBlocks = iCurrentNumOfBlocks;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetNumOfBlocks [%d]"),
+ iCurrentNumOfBlocks);
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::SetAllocationMethod
+ * Sets new allocation method.
+ * (other items were commented in a header).
+ */
+EXPORT_C void CSbcEncoderIntfcCI::SetAllocationMethod(
+ TSbcAllocationMethod aAllocationMethod)
+ {
+ iAllocationMethod = aAllocationMethod;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::SetAllocationMethod [%d]"),
+ iAllocationMethod);
+#endif
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetAllocationMethod
+ * Returns current allocation method.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetAllocationMethod(
+ TSbcAllocationMethod& aAllocationMethod)
+ {
+ aAllocationMethod = iCurrentAllocationMethod;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetAllocationMethod [%d]"),
+ iCurrentAllocationMethod);
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::SetBitpoolSize
+ * Sets new bitpool size.
+ * (other items were commented in a header).
+ */
+EXPORT_C void CSbcEncoderIntfcCI::SetBitpoolSize(TUint aBitpoolSize)
+ {
+ iBitpoolSize = aBitpoolSize;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::SetBitpoolSize [%d]"), iBitpoolSize);
+#endif
+ }
+
+/*
+ * CSbcEncoderIntfcCI::GetBitpoolSize
+ * Returns current bitpool size.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::GetBitpoolSize(TUint& aBitpoolSize)
+ {
+ aBitpoolSize = iCurrentBitpoolSize;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::GetBitpoolSize [%d]"),
+ iCurrentBitpoolSize);
+#endif
+ return KErrNone;
+ }
+
+/*
+ * CSbcEncoderIntfcCI::ApplyConfig
+ * Commits new configutaion settings.
+ * (other items were commented in a header).
+ */
+EXPORT_C TInt CSbcEncoderIntfcCI::ApplyConfig()
+ {
+ iCurrentSamplingFrequency = iSamplingFrequency;
+ iCurrentChannelMode = iChannelMode;
+ iCurrentNumOfSubbands = iNumOfSubbands;
+ iCurrentNumOfBlocks = iNumOfBlocks;
+ iCurrentAllocationMethod = iAllocationMethod;
+ iCurrentBitpoolSize = iBitpoolSize;
+
+#ifdef _DEBUG
+ RDebug::Print(_L("CSbcEncoderIntfcCI::ApplyConfig - SBC config applied"));
+#endif
+ return KErrNone;
+ }
+
+// End of File