mmserv/tms/tmsutility/src/tmsutility.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 01:08:46 +0200
changeset 0 71ca22bcf22a
child 10 3d8c721bf319
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
 * 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;
    }