mmserv/tms/tmsutility/src/tmsutility.cpp
changeset 0 71ca22bcf22a
child 10 3d8c721bf319
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/tms/tmsutility/src/tmsutility.cpp	Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,254 @@
+/*
+ * Copyright (c) 2009 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: Telephony Multimedia Service
+ *
+ */
+
+#include <e32cmn.h>
+#include <mmffourcc.h>
+#include <mmcccodecinformation.h>
+//#include <tms.h>
+#include "tmsutility.h"
+
+using namespace TMS;
+
+// -----------------------------------------------------------------------------
+// TMSUtility::TMSResult
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C gint TMSUtility::TMSResult(const gint aError)
+    {
+    gint result(TMS_RESULT_SUCCESS);
+
+    if (aError >= TMS_RESULT_SUCCESS)
+        {
+        return aError; //return TMS error
+        }
+
+    switch (aError)
+        {
+        case KErrNotFound: //-1
+            result = TMS_RESULT_DOES_NOT_EXIST;
+            break;
+        case KErrGeneral: //-2
+            result = TMS_RESULT_GENERAL_ERROR;
+            break;
+        case KErrCancel: //-3
+            result = TMS_RESULT_OPERATION_CANCELLED;
+            break;
+        case KErrNoMemory: //-4
+            result = TMS_RESULT_INSUFFICIENT_MEMORY;
+            break;
+        case KErrNotSupported: //-5
+            result = TMS_RESULT_DOES_NOT_EXIST;
+            break;
+        case KErrArgument: //-6
+            result = TMS_RESULT_INVALID_ARGUMENT;
+            break;
+        case KErrTotalLossOfPrecision: //-7
+            result = TMS_RESULT_GENERAL_ERROR;
+            break;
+        case KErrBadHandle: //-8
+            result = TMS_RESULT_INVALID_ARGUMENT;
+            break;
+        case KErrOverflow: //-9
+        case KErrUnderflow: //-10
+            result = TMS_RESULT_BUFFER_LATENCY_ERROR;
+            break;
+        case KErrAlreadyExists: //-11
+            result = TMS_RESULT_ALREADY_EXIST;
+            break;
+        case KErrPathNotFound: //-12
+            result = TMS_RESULT_GENERAL_ERROR;
+            break;
+        case KErrDied: //-13
+        case KErrInUse: //-14
+        case KErrServerTerminated: //-15
+            result = TMS_RESULT_FATAL_ERROR;
+            break;
+        case KErrServerBusy: //-16
+        case KErrCompletion: //-17
+        case KErrNotReady: //-18
+        case KErrUnknown: //-19
+        case KErrCorrupt: //-20
+        case KErrAccessDenied: //-21
+        case KErrLocked: //-22
+        case KErrWrite: //-23
+        case KErrDisMounted: //-24
+        case KErrEof: //-25
+        case KErrDiskFull: //-26
+        case KErrBadDriver: //-27
+        case KErrBadName: //-28
+        case KErrCommsLineFail: //-29
+        case KErrCommsFrame: //-30
+        case KErrCommsOverrun: //-31
+        case KErrCommsParity: //-32
+        case KErrTimedOut: //-33
+        case KErrCouldNotConnect: //-34
+        case KErrCouldNotDisconnect: //-35
+        case KErrDisconnected: //-36
+        case KErrBadLibraryEntryPoint: //-37
+        case KErrBadDescriptor: //-38
+        case KErrAbort: //-39
+        case KErrTooBig: //-40
+        case KErrDivideByZero: //-41
+        case KErrBadPower: //-42
+        case KErrDirFull: //-43
+        case KErrHardwareNotAvailable: //-44
+        case KErrSessionClosed: //-45
+        case KErrPermissionDenied: //-46
+        case KErrExtensionNotSupported: //-47
+        case KErrCommsBreak: //-48
+        case KErrNoSecureTime: //-49
+        default:
+            result = TMS_RESULT_GENERAL_ERROR;
+            break;
+        }
+    return result;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSUtility::ToTMSOutput
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TMSAudioOutput TMSUtility::ToTMSOutput(
+        CTelephonyAudioRouting::TAudioOutput taroutput)
+    {
+    TMSAudioOutput output = TMS_AUDIO_OUTPUT_NONE;
+    switch (taroutput)
+        {
+        case CTelephonyAudioRouting::ENotActive:
+        case CTelephonyAudioRouting::ENone:
+            output = TMS_AUDIO_OUTPUT_NONE;
+            break;
+        case CTelephonyAudioRouting::EHandset:
+            output = TMS_AUDIO_OUTPUT_HANDSET;
+            break;
+        case CTelephonyAudioRouting::ELoudspeaker:
+            output = TMS_AUDIO_OUTPUT_LOUDSPEAKER;
+            break;
+        case CTelephonyAudioRouting::EWiredAudioAccessory:
+            output = TMS_AUDIO_OUTPUT_WIRED_ACCESSORY;
+            break;
+        case CTelephonyAudioRouting::EBTAudioAccessory:
+            output = TMS_AUDIO_OUTPUT_ACCESSORY;
+            break;
+        case CTelephonyAudioRouting::ETTY:
+            output = TMS_AUDIO_OUTPUT_ETTY;
+            break;
+        default:
+            break;
+        }
+    return output;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSUtility::ToTAROutput
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CTelephonyAudioRouting::TAudioOutput TMSUtility::ToTAROutput(
+        TMSAudioOutput output)
+    {
+    CTelephonyAudioRouting::TAudioOutput taroutput =
+            CTelephonyAudioRouting::ENone;
+    switch (output)
+        {
+        case TMS_AUDIO_OUTPUT_NONE:
+            taroutput = CTelephonyAudioRouting::ENone;
+            break;
+        case TMS_AUDIO_OUTPUT_HANDSET:
+            taroutput = CTelephonyAudioRouting::EHandset;
+            break;
+        case TMS_AUDIO_OUTPUT_LOUDSPEAKER:
+            taroutput = CTelephonyAudioRouting::ELoudspeaker;
+            break;
+        case TMS_AUDIO_OUTPUT_WIRED_ACCESSORY:
+            taroutput = CTelephonyAudioRouting::EWiredAudioAccessory;
+            break;
+        case TMS_AUDIO_OUTPUT_ACCESSORY:
+            taroutput = CTelephonyAudioRouting::EBTAudioAccessory;
+            break;
+        case TMS_AUDIO_OUTPUT_ETTY:
+            taroutput = CTelephonyAudioRouting::ETTY;
+            break;
+        default:
+            break;
+        }
+    return taroutput;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSUtility::ToFourCC
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TUint32 TMSUtility::ToFourCC(TMSFormatType frmtType)
+    {
+    TUint32 fourCC(NULL);
+    switch (frmtType)
+        {
+        case TMS_FORMAT_PCM:
+            fourCC = KMMFFourCCCodePCM16;
+            break;
+        case TMS_FORMAT_AMR:
+            fourCC = KMccFourCCIdAMRNB;
+            break;
+        case TMS_FORMAT_G711:
+            fourCC = KMccFourCCIdG711;
+            break;
+        case TMS_FORMAT_G729:
+            fourCC = KMccFourCCIdG729;
+            break;
+        case TMS_FORMAT_ILBC:
+            fourCC = KMccFourCCIdILBC;
+            break;
+        default:
+            break;
+        }
+    return fourCC;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSUtility::FourCCToTMSFormat
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TMSFormatType TMSUtility::FourCCToTMSFormat(TUint32 fourcc)
+    {
+    TMSFormatType format = NULL;
+    switch (fourcc)
+        {
+        case KMMFFourCCCodePCM16:   // = 0x36315020
+            format = TMS_FORMAT_PCM;
+            break;
+        case KMccFourCCIdAMRNB:     //= 0x524d4120;
+            format = TMS_FORMAT_AMR;
+            break;
+        case KMccFourCCIdG711:      // = 0x31313747;
+            format = TMS_FORMAT_G711;
+            break;
+        case KMccFourCCIdG729:      // = 0x39323747;
+            format = TMS_FORMAT_G729;
+            break;
+        case KMccFourCCIdILBC:      // = 0x43424c49;
+            format = TMS_FORMAT_ILBC;
+            break;
+        default:
+            break;
+        }
+    return format;
+    }