--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/richcallsettingsengine/rcse2/src/crcseaudiocodecentry.cpp Wed Sep 01 12:29:57 2010 +0100
@@ -0,0 +1,431 @@
+/*
+* Copyright (c) 2002-2007 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 codec entry, which is stored to db
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <featmgr.h>
+
+#include "crcseaudiocodecentry.h"
+#include "rcseconstants.h"
+#include "rcsepanic.h"
+#include "rcsedefaults.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CRCSEAudioCodecEntry::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CRCSEAudioCodecEntry* CRCSEAudioCodecEntry::NewL()
+ {
+ CRCSEAudioCodecEntry* self = NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CRCSEAudioCodecEntry::NewLC
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CRCSEAudioCodecEntry* CRCSEAudioCodecEntry::NewLC()
+ {
+ CRCSEAudioCodecEntry* self = new (ELeave) CRCSEAudioCodecEntry();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ self->ResetDefaultCodecValues();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CRCSEAudioCodecEntry::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CRCSEAudioCodecEntry::ConstructL()
+ {
+ // Check VoIP support from feature manager
+ FeatureManager::InitializeLibL();
+ TBool support = FeatureManager::FeatureSupported( KFeatureIdCommonVoip );
+ FeatureManager::UnInitializeLib();
+ if (!support)
+ {
+ User::Leave(KErrNotSupported);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CRCSEAudioCodecEntry::CRCSEAudioCodecEntry
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CRCSEAudioCodecEntry::CRCSEAudioCodecEntry()
+ {
+ }
+
+// Destructor
+EXPORT_C CRCSEAudioCodecEntry::~CRCSEAudioCodecEntry()
+ {
+ iChannels.Reset();
+ iChannels.Close();
+
+ iModeSet.Reset();
+ iModeSet.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CRCSEAudioCodecEntry::SetDefaultCodecValueSet
+// Sets default parameter values separately for each codec.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CRCSEAudioCodecEntry::SetDefaultCodecValueSet( TPtrC aCodecType )
+ {
+
+ if ( aCodecType == KAudioCodecAMR )
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecAMR;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOff;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOn;
+ iPtime = 20;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Append(1);
+ iVAD = EOff;
+ iDTX = EOff;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if ( aCodecType == KAudioCodeciLBC )
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodeciLBC;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOONotSet;
+ iModeSet.Reset();
+ iModeSet.Append(30);
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = 30;
+ iMaxptime = 180;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOff;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecVMRWB)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecVMRWB;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOff;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = KNotSet;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOONotSet;
+ iDTX = EOff;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecPCMA)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecPCMA;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOn;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = 20;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOff;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecPCMU)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecPCMU;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOn;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = 20;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOff;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecCN)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecCN;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOONotSet;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = KNotSet;
+ iMaxptime = KNotSet;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOONotSet;
+ iSamplingRate = 8000;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecG729)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecG729;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOONotSet;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = KNotSet;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOff;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecAMRWB)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecAMRWB;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOff;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOn;
+ iPtime = 20;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Append(1);
+ iVAD = EOff;
+ iDTX = EOff;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecEVRC)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecEVRC;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOONotSet;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = KNotSet;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = 5;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOONotSet;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecEVRC0)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecEVRC0;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOONotSet;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = KNotSet;
+ iMaxptime = KNotSet;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOONotSet;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecSMV)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecSMV;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOONotSet;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = KNotSet;
+ iMaxptime = KRCSEDefaultMaxptime;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = 5;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOONotSet;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else if (aCodecType == KAudioCodecSMV0)
+ {
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KAudioCodecSMV0;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+ iOctetAlign = EOONotSet;
+ iModeSet.Reset();
+ iModeChangePeriod = KNotSet;
+ iModeChangeNeighbor = EOONotSet;
+ iPtime = KNotSet;
+ iMaxptime = KNotSet;
+ iCrc = EOONotSet;
+ iRobustSorting = EOONotSet;
+ iInterLeaving = KNotSet;
+ iChannels.Reset();
+ iVAD = EOff;
+ iDTX = EOONotSet;
+ iSamplingRate = 8000;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ else
+ {
+ iOctetAlign = KRCSEDefaultOctetAlign;
+ iModeSet.Reset();
+ iModeChangePeriod = 0;
+ iModeChangeNeighbor = KRCSEDefaultModeChangeNeighbor;
+ iPtime = 0;
+ iMaxptime = 0;
+ iCrc = KRCSEDefaultCRC;
+ iRobustSorting = KRCSEDefaultRobustSorting;
+ iInterLeaving = 0;
+ iChannels.Reset();
+ iVAD = KRCSEDefaultVAD;
+ iDTX = KRCSEDefaultDTX;
+ iSamplingRate = KNotSet;
+ iAnnexb = EOONotSet;
+ iModeChangeCapability = KNotSet;
+ iMaxRed = KNotSet;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CRCSEAudioCodecEntry::ResetDefaultCodecValues
+// Resets codec entry to default settings.
+// -----------------------------------------------------------------------------
+//
+void CRCSEAudioCodecEntry::ResetDefaultCodecValues()
+ {
+ iModeSet.Reset();
+ iChannels.Reset();
+ // These parameters default values are same regardless used codec.
+ iCodecId = 0;
+ iMediaTypeName = KRCSEDefaultMediaTypeName;
+ iMediaSubTypeName = KRCSEDefaultMediaSubtypeName;
+ iJitterBufferSize = KRCSEDefaultJitterBufferSize;
+
+ // These parameters default values change with used codec, here there are set to KNotSet.
+ iOctetAlign = KRCSEDefaultOctetAlign;
+ iModeChangePeriod = 0;
+ iModeChangeNeighbor = KRCSEDefaultModeChangeNeighbor;
+ iPtime = 0;
+ iMaxptime = 0;
+ iCrc = KRCSEDefaultCRC;
+ iRobustSorting = KRCSEDefaultRobustSorting;
+ iInterLeaving = 0;
+ iVAD = KRCSEDefaultVAD;
+ iDTX = KRCSEDefaultDTX;
+ iSamplingRate = 0;
+ iAnnexb = KRCSEDefaultAnnexb;
+ iModeChangeCapability = KRCSEDefaultModeChangeCapability;
+ iMaxRed = KRCSEDefaultMaxRed;
+ }
+
+// End of File