mmhais/a3facl/src/buffersink/logicalbuffersink.cpp
author hgs
Fri, 08 Oct 2010 19:40:43 +0100
changeset 0 79dd3e2336a0
permissions -rw-r--r--
2010wk36_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     2
// All rights reserved.
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     7
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     8
// Initial Contributors:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    10
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    11
// Contributors:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    12
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    13
// Description:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    14
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    15
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    16
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    17
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    18
#include "logicalbuffersink.h"
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    19
#include <a3f/audioprocessingunittypeuids.h>
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    20
#include <ecom/implementationproxy.h> // For making it ECom plugin
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    21
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    22
// Exported proxy for instantiation method resolution
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    23
// Define the interface UIDs
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    24
const TImplementationProxy ImplementationTable[] =
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    25
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    26
	IMPLEMENTATION_PROXY_ENTRY(KMmfBufferSinkUid, CLogicalBufferSink::NewL)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    27
	};
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    28
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    29
EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    30
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    31
	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    32
	return ImplementationTable;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    33
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    34
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    35
// Constructor
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    36
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    37
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    38
CLogicalBufferSink::CLogicalBufferSink(TAny* aParam) : CAudioProcessingUnit(aParam)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    39
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    40
	TRACE_CREATE();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    41
	DP_CONTEXT(CLogicalBufferSink::CLogicalBufferSink *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    42
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    43
	DP_OUT();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    44
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    45
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    46
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    47
// Factory method
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    48
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    49
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    50
CLogicalBufferSink* CLogicalBufferSink::NewL(TAny* aParameters)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    51
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    52
	DP_STATIC_CONTEXT(CLogicalBufferSink::NewL *CD0*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    53
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    54
	CLogicalBufferSink* self = new(ELeave)CLogicalBufferSink(aParameters);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    55
	CleanupStack::PushL(self);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    56
	self->ConstructL();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    57
	CleanupStack::Pop(self);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    58
	DP0_RET(self, "0x%x");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    59
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    60
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    61
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    62
// Second phase constructor
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    63
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    64
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    65
void CLogicalBufferSink::ConstructL()
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    66
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    67
	DP_CONTEXT(CLogicalBufferSink::ConstructL *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    68
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    69
	DP_OUT();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    70
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    71
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    72
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    73
// Destructor
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    74
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    75
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    76
CLogicalBufferSink::~CLogicalBufferSink()
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    77
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    78
	DP_CONTEXT(CLogicalBufferSink::~CLogicalBufferSink *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    79
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    80
	DP_OUT();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    81
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    82
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    83
// from class MMMFBufferSink
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    84
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    85
// CLogicalBufferSink::SetDataConsumer
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    86
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    87
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    88
TInt CLogicalBufferSink::SetDataConsumer(MMMFAudioDataConsumer& aConsumer)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    89
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    90
	DP_CONTEXT(CLogicalBufferSink::SetDataConsumer *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    91
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    92
	iConsumer = &aConsumer;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    93
	DP0_RET(KErrNone,"%d");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    94
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    95
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    96
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    97
// CLogicalBufferSink::BufferEmptied
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    98
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    99
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   100
TInt CLogicalBufferSink::BufferEmptied(CMMFBuffer* aBuffer)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   101
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   102
	DP_CONTEXT(CLogicalBufferSink::BufferEmptied *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   103
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   104
	TInt err = KErrNone;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   105
	err = iAdaptationBufferSink->BufferEmptied(aBuffer);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   106
	DP0_RET(err,"%d");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   107
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   108
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   109
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   110
// CLogicalBufferSink::BuffersDiscarded
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   111
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   112
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   113
TInt CLogicalBufferSink::BuffersDiscarded()
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   114
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   115
	DP_CONTEXT(CLogicalBufferSink::BuffersDiscarded *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   116
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   117
	TInt err = KErrNone;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   118
	err = iAdaptationBufferSink->BuffersDiscarded();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   119
	DP0_RET(err,"%d");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   120
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   121
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   122
// From CAudioProcessingUnit
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   123
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   124
// CLogicalBufferSink::IsTypeOf
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   125
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   126
//  
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   127
TBool CLogicalBufferSink::IsTypeOf(TUid aTypeId) const
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   128
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   129
	DP_CONTEXT(CLogicalBufferSink::IsTypeOf *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   130
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   131
	TBool result = EFalse;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   132
	if (iType == aTypeId)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   133
		{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   134
		result = ETrue;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   135
		}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   136
	DP0_RET(result, "%d");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   137
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   138
    
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   139
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   140
// CLogicalBufferSink::Interface
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   141
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   142
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   143
TAny* CLogicalBufferSink::Interface(TUid aType)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   144
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   145
	DP_CONTEXT(CLogicalBufferSink::Interface *CD1*, CtxDevSound, DPLOCAL);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   146
	DP_IN();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   147
	MMMFBufferSink* ptr = NULL;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   148
	if(aType==KUidMmfBufferSink)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   149
		{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   150
		ptr = static_cast<MMMFBufferSink*>(this);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   151
		}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   152
	DP_OUT();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   153
	return ptr;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   154
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   155
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   156
// From MMMFAudioDataConsumer
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   157
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   158
// CLogicalBufferSink::BufferToBeFilled
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   159
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   160
// 
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   161
void CLogicalBufferSink::BufferToBeEmptied(MMMFBufferSink* /*aSink*/, CMMFBuffer* aBuffer)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   162
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   163
	iConsumer->BufferToBeEmptied(this, aBuffer);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   164
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   165
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   166
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   167
// CLogicalBufferSource::DiscardBuffers
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   168
// ---------------------------------------------------------------------------
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   169
// 
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   170
void CLogicalBufferSink::DiscardBuffers(MMMFBufferSink* /*aSink*/)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   171
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   172
	iConsumer->DiscardBuffers(this);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   173
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   174
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   175
// end of file