qtms/inc/qtmsfactoryimpl.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 13:19:19 +0300
changeset 32 edd273b3192a
parent 27 cbb1bfb7ebfb
child 50 762d760dcfdf
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

/*
 * Copyright (c) 2010 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: QT Bindings for TMS
 *
 */

#ifndef QTMSFACTORYIMPL_H_
#define QTMSFACTORYIMPL_H_

#include <e32cmn.h>
#include <qtms.h>

// FORWARD DECLARATIONS
namespace TMS {
class TMSFactory;
}

namespace QTMS {

// FORWARD DECLARATIONS
class QTMSCall;
class QTMSFormat;
class QTMSEffect;
class QTMSBuffer;
class QTMSSource;
class QTMSSink;
class QTMSGlobalRouting;
class QTMSRTPSession;
class QTMSDTMF;
class QTMSRingTone;
class QTMSInbandTone;

// CLASS DECLARATION
class QTMSFactoryImpl
    {
public:
    QTMSFactoryImpl();
    virtual ~QTMSFactoryImpl();

    gint CreateCall(QTMSCallType ctype, QTMSCall*& QTMScall, guint ctxid);
    gint DeleteCall(QTMSCall*& QTMSct);
    gint IsCallTypeSupported(QTMSCallType ctype, gboolean& flag);
    gint GetSupportedFormats(const QTMSStreamType strmtype,
            FormatVector& fmtlist);
    gint CreateFormat(QTMSFormatType fmttype, QTMSFormat*& QTMSfmt);
    gint DeleteFormat(QTMSFormat*& QTMSfmt);
    gint CreateEffect(QTMSEffectType QTMSeffecttype,
            QTMSEffect*& QTMSeffect);
    gint DeleteEffect(QTMSEffect*& QTMSeffect);
    gint CreateBuffer(QTMSBufferType buffertype, guint size,
            QTMSBuffer*& QTMSbuffer);
    gint DeleteBuffer(QTMSBuffer*& QTMSbuffer);
    gint CreateSource(QTMSSourceType srctype, QTMSSource*& QTMSsrc);
    gint DeleteSource(QTMSSource*& QTMSsrc);
    gint CreateSink(QTMSSinkType sinktype, QTMSSink*& QTMSsink);
    gint DeleteSink(QTMSSink*& QTMSsink);
    gint CreateGlobalRouting(QTMSGlobalRouting*& globrouting);
    gint DeleteGlobalRouting(QTMSGlobalRouting*& globrouting);
    gint CreateDTMF(QTMSStreamType streamid, QTMSDTMF*& dtmf);
    gint DeleteDTMF(QTMSDTMF*& dtmf);
    gint CreateRingTonePlayer(QTMSRingTone*& rt);
    gint DeleteRingTonePlayer(QTMSRingTone*& rt);
    gint CreateInbandTonePlayer(QTMSInbandTone*& inbandtone);
    gint DeleteInbandTonePlayer(QTMSInbandTone*& inbandtone);

private:
    TMS::TMSFactory *iFactory;
    };

} //namespace QTMS

#endif