qtms/inc/qtmsfactoryimpl.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 04 Oct 2010 00:50:27 +0300
changeset 64 92dbd2a406d9
parent 51 e61a04404bdf
permissions -rw-r--r--
Revision: 201037 Kit: 201039

/*
 * 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>
#include <qtmsver.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(QTMSVer& ver);
    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