diff -r d881023c13eb -r cbb1bfb7ebfb qtms/src/qtmsstream.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtms/src/qtmsstream.cpp Fri May 14 16:21:14 2010 +0300 @@ -0,0 +1,411 @@ +/* + * 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 + * + */ + +#include +#include +#include +#include +#include +#include "qtmsstreamimpl.h" +#include "qtmssource.h" +#include "qtmsclientsourceimpl.h" +#include "qtmsmodemsourceimpl.h" +#include "qtmsmicsourceimpl.h" +#include "qtmsclientsinkimpl.h" +#include "qtmsmodemsinkimpl.h" +#include "qtmsspeakersinkimpl.h" +#include "qtmspcmimpl.h" +#include "qtmsamrimpl.h" +#include "qtmsg711impl.h" +#include "qtmsg729impl.h" +#include "qtmsilbcimpl.h" +#include "qtmsvolumeeffectimpl.h" +#include "qtmsgaineffectimpl.h" +#include "qtmswrapperexport.h" + +using namespace QTMS; +using namespace TMS; + +QTMSStream::QTMSStream(void) : + iStream(NULL) + { + } + +QTMSStream::~QTMSStream() + { + //delete iStream; + //delete (static_cast (iStream)); + } + +gint QTMSStream::AddSource(QTMSSource* qsource) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + + if (iStream && qsource) + { + QTMSSourceType qsrctype; + TMSSource* tmssource(NULL); + + qsource->GetType(qsrctype); + + switch (qsrctype) + { + case QTMS_SOURCE_CLIENT: + status = static_cast + (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MODEM: + status = static_cast + (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MIC: + status = static_cast + (qsource)->GetSource(tmssource); + break; + default: + break; + } + if (status == QTMS_RESULT_SUCCESS && tmssource) + { + status = iStream->AddSource(tmssource); + } + } + return status; + } + +gint QTMSStream::RemoveSource(QTMSSource* qsource) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + + if (iStream && qsource) + { + QTMSSourceType qsrctype; + TMSSource* tmssource(NULL); + + qsource->GetType(qsrctype); + + switch (qsrctype) + { + case QTMS_SOURCE_CLIENT: + status = static_cast + (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MODEM: + status = static_cast + (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MIC: + status = static_cast + (qsource)->GetSource(tmssource); + break; + default: + break; + } + if (status == QTMS_RESULT_SUCCESS && tmssource) + { + status = iStream->RemoveSource(tmssource); + } + } + + return status; + } + +gint QTMSStream::AddSink(QTMSSink* qsink) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + + if (iStream && qsink) + { + QTMSSinkType qsinktype; + TMSSink* tmssink(NULL); + + qsink->GetType(qsinktype); + + switch (qsinktype) + { + case QTMS_SINK_CLIENT: + status = static_cast + (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_MODEM: + status = static_cast + (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_SPEAKER: + status = static_cast + (qsink)->GetSink(tmssink); + break; + default: + break; + } + if (status == QTMS_RESULT_SUCCESS && tmssink) + { + status = iStream->AddSink(tmssink); + } + } + return status; + } + +gint QTMSStream::RemoveSink(QTMSSink* qsink) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + + if (iStream && qsink) + { + QTMSSinkType qsinktype; + TMSSink* tmssink(NULL); + + qsink->GetType(qsinktype); + + switch (qsinktype) + { + case QTMS_SINK_CLIENT: + status = static_cast + (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_MODEM: + status = static_cast + (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_SPEAKER: + status = static_cast + (qsink)->GetSink(tmssink); + break; + default: + break; + } + if (status == QTMS_RESULT_SUCCESS && tmssink) + { + status = iStream->RemoveSink(tmssink); + } + } + + return status; + } + +gint QTMSStream::SetFormat(QTMSFormat* qformat) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + + if (iStream && qformat) + { + QTMSFormatType fmttype; + TMSFormat* tmsformat(NULL); + qformat->GetType(fmttype); + switch (fmttype) + { + case QTMS_FORMAT_PCM: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_AMR: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G711: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G729: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_ILBC: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + default: + break; + } + + status = iStream->SetFormat(tmsformat); + } + return status; + } + +gint QTMSStream::ResetFormat(QTMSFormat* qformat) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + + if (iStream && qformat) + { + QTMSFormatType fmttype; + TMSFormat* tmsformat(NULL); + qformat->GetType(fmttype); + switch (fmttype) + { + case QTMS_FORMAT_PCM: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_AMR: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G711: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G729: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_ILBC: + status = static_cast + (qformat)->GetFormat(tmsformat); + break; + default: + break; + } + + status = iStream->ResetFormat(tmsformat); + } + return status; + } + +gint QTMSStream::AddEffect(QTMSEffect* qeffect) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream && qeffect) + { + QTMSEffectType effecttype; + TMSEffect* tmseffect(NULL); + qeffect->GetType(effecttype); + + switch (effecttype) + { + case QTMS_EFFECT_VOLUME: + status = static_cast + (qeffect)->GetEffect(tmseffect); + break; + case QTMS_EFFECT_GAIN: + status = static_cast + (qeffect)->GetEffect(tmseffect); + break; + default: + break; + } + status = iStream->AddEffect(tmseffect); + } + return status; + } + +gint QTMSStream::RemoveEffect(QTMSEffect* qeffect) + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream && qeffect) + { + QTMSEffectType effecttype; + TMSEffect* tmseffect(NULL); + qeffect->GetType(effecttype); + + switch (effecttype) + { + case QTMS_EFFECT_VOLUME: + status = static_cast + (qeffect)->GetEffect(tmseffect); + break; + case QTMS_EFFECT_GAIN: + status = static_cast + (qeffect)->GetEffect(tmseffect); + break; + default: + break; + } + status = iStream->RemoveEffect(tmseffect); + } + return status; + } + +gint QTMSStream::GetState() + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream) + { + status = iStream->GetState(); + } + return status; + } + +gint QTMSStream::GetStreamType() + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream) + { + status = iStream->GetStreamType(); + } + return status; + } + +gint QTMSStream::GetStreamId() + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream) + { + status = iStream->GetStreamId(); + } + return status; + } + +gint QTMSStream::Init() + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream) + { + status = iStream->Init(); + } + return status; + } + +gint QTMSStream::Pause() + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream) + { + status = iStream->Pause(); + } + return status; + } + +gint QTMSStream::Start() + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream) + { + status = iStream->Start(); + } + return status; + } + +gint QTMSStream::Stop() + { + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iStream) + { + status = iStream->Stop(); + } + return status; + } + +void QTMSStream::Deinit() + { + if (iStream) + { + iStream->Deinit(); + } + } +