# HG changeset patch
# User hgs
# Date 1278674593 -3600
# Node ID eb1e5d7cc6885d1c404af98b0a162171d425d71b
# Parent c36d67f77f75d1c9dcc94b4271873b6cf4aea10f
2010wk25_03
diff -r c36d67f77f75 -r eb1e5d7cc688 build.config.xml
--- a/build.config.xml Thu Jun 24 10:37:45 2010 +0100
+++ b/build.config.xml Fri Jul 09 12:23:13 2010 +0100
@@ -1,190 +1,230 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-]>
-
-
-
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3facf/group/bld.inf
--- a/devsound/a3facf/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3facf/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -40,6 +40,7 @@
../inc/mbuffersource.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(a3f/mbuffersource.h)
../inc/msynccisupport.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(a3f/msynccisupport.h)
../inc/tonedata.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(a3f/tonedata.h)
+../inc/mcontexteffectiveclient.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(a3f/mcontexteffectiveclient.h)
// DEF FILES
../bwins/audiocontextfactory.def /epoc32/include/def/bwins/audiocontextfactory.def
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3facf/group/multimedia_a3f_acf.mrp
--- a/devsound/a3facf/group/multimedia_a3f_acf.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3facf/group/multimedia_a3f_acf.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_a3f_acf.mrp
#
-# Copyright (c) 2007 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:
+#Copyright (c) Symbian Software Ltd 2007. All rights reserved.
#
component multimedia_a3f_acf
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/bwins/mmfdevsoundadaptor.def
--- a/devsound/a3fdevsound/bwins/mmfdevsoundadaptor.def Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/bwins/mmfdevsoundadaptor.def Fri Jul 09 12:23:13 2010 +0100
@@ -2,7 +2,7 @@
??1CMMFDevSoundAdaptation@@UAE@XZ @ 1 NONAME ; CMMFDevSoundAdaptation::~CMMFDevSoundAdaptation(void)
?CancelInitialize@CMMFDevSoundAdaptation@@QAEHXZ @ 2 NONAME ; int CMMFDevSoundAdaptation::CancelInitialize(void)
?Capabilities@CMMFDevSoundAdaptation@@QAEHAAVTMMFCapabilities@@@Z @ 3 NONAME ; int CMMFDevSoundAdaptation::Capabilities(class TMMFCapabilities &)
- ?ClientConfig@CMMFDevSoundAdaptation@@QBEABVTMMFClientConfig@@XZ @ 4 NONAME ; class TMMFClientConfig const & CMMFDevSoundAdaptation::ClientConfig(void) const
+ ?ClientConfig@CMMFDevSoundAdaptation@@QBEABVTMMFClientConfig@@XZ @ 4 NONAME ABSENT ; class TMMFClientConfig const & CMMFDevSoundAdaptation::ClientConfig(void) const
?CloseDevSound@CMMFDevSoundAdaptation@@QAEHXZ @ 5 NONAME ; int CMMFDevSoundAdaptation::CloseDevSound(void)
?Config@CMMFDevSoundAdaptation@@QBE?AVTMMFCapabilities@@XZ @ 6 NONAME ; class TMMFCapabilities CMMFDevSoundAdaptation::Config(void) const
?CustomInterface@CMMFDevSoundAdaptation@@QAEPAXVTUid@@@Z @ 7 NONAME ; void * CMMFDevSoundAdaptation::CustomInterface(class TUid)
@@ -34,7 +34,7 @@
?RecordInitL@CMMFDevSoundAdaptation@@QAEXXZ @ 33 NONAME ; void CMMFDevSoundAdaptation::RecordInitL(void)
?SamplesPlayed@CMMFDevSoundAdaptation@@QAEHXZ @ 34 NONAME ; int CMMFDevSoundAdaptation::SamplesPlayed(void)
?SamplesRecorded@CMMFDevSoundAdaptation@@QAEHXZ @ 35 NONAME ; int CMMFDevSoundAdaptation::SamplesRecorded(void)
- ?SetClientConfig@CMMFDevSoundAdaptation@@QAEHABVTMMFClientConfig@@@Z @ 36 NONAME ; int CMMFDevSoundAdaptation::SetClientConfig(class TMMFClientConfig const &)
+ ?SetClientConfig@CMMFDevSoundAdaptation@@QAEHABVTProcessId@@@Z @ 36 NONAME ; int CMMFDevSoundAdaptation::SetClientConfig(class TProcessId const &)
?SetConfigL@CMMFDevSoundAdaptation@@QAEXABVTMMFCapabilities@@@Z @ 37 NONAME ; void CMMFDevSoundAdaptation::SetConfigL(class TMMFCapabilities const &)
?SetDTMFLengths@CMMFDevSoundAdaptation@@QAEHAAVTTimeIntervalMicroSeconds32@@00@Z @ 38 NONAME ; int CMMFDevSoundAdaptation::SetDTMFLengths(class TTimeIntervalMicroSeconds32 &, class TTimeIntervalMicroSeconds32 &, class TTimeIntervalMicroSeconds32 &)
?SetGain@CMMFDevSoundAdaptation@@QAEHHAAH@Z @ 39 NONAME ; int CMMFDevSoundAdaptation::SetGain(int, int &)
@@ -56,4 +56,5 @@
?BufferErrorEvent@CMMFDevSoundAdaptation@@QAEXXZ @ 55 NONAME ; void CMMFDevSoundAdaptation::BufferErrorEvent(void)
?ProcessingError@CMMFDevSoundAdaptation@@QAEHAAH@Z @ 56 NONAME ; int CMMFDevSoundAdaptation::ProcessingError(int &)
?RollbackAdaptorActiveStateToBeforeCommit@CMMFDevSoundAdaptation@@QAEXXZ @ 57 NONAME ; void CMMFDevSoundAdaptation::RollbackAdaptorActiveStateToBeforeCommit(void)
+ ?SetClientConfig@CMMFDevSoundAdaptation@@QAEHABVTProcessId@@0@Z @ 58 NONAME ; int CMMFDevSoundAdaptation::SetClientConfig(class TProcessId const &, class TProcessId const &)
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/eabi/mmfdevsoundadaptor.def
--- a/devsound/a3fdevsound/eabi/mmfdevsoundadaptor.def Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/eabi/mmfdevsoundadaptor.def Fri Jul 09 12:23:13 2010 +0100
@@ -17,7 +17,7 @@
_ZN22CMMFDevSoundAdaptation15GetPlayBalanceLERiS0_ @ 16 NONAME
_ZN22CMMFDevSoundAdaptation15PlayDTMFStringLERK7TDesC16 @ 17 NONAME
_ZN22CMMFDevSoundAdaptation15SamplesRecordedEv @ 18 NONAME
- _ZN22CMMFDevSoundAdaptation15SetClientConfigERK16TMMFClientConfig @ 19 NONAME
+ _ZN22CMMFDevSoundAdaptation15SetClientConfigERK16TMMFClientConfig @ 19 NONAME ABSENT
_ZN22CMMFDevSoundAdaptation15SetPlayBalanceLEiiRi @ 20 NONAME
_ZN22CMMFDevSoundAdaptation16CancelInitializeEv @ 21 NONAME
_ZN22CMMFDevSoundAdaptation17FixedSequenceNameEi @ 22 NONAME
@@ -44,7 +44,7 @@
_ZN22CMMFDevSoundAdaptationD0Ev @ 43 NONAME
_ZN22CMMFDevSoundAdaptationD1Ev @ 44 NONAME
_ZN22CMMFDevSoundAdaptationD2Ev @ 45 NONAME
- _ZNK22CMMFDevSoundAdaptation12ClientConfigEv @ 46 NONAME
+ _ZNK22CMMFDevSoundAdaptation12ClientConfigEv @ 46 NONAME ABSENT
_ZNK22CMMFDevSoundAdaptation27GetSupportedInputDataTypesLER6RArrayI7TFourCCERK20TMMFPrioritySettings @ 47 NONAME
_ZNK22CMMFDevSoundAdaptation28GetSupportedOutputDataTypesLER6RArrayI7TFourCCERK20TMMFPrioritySettings @ 48 NONAME
_ZNK22CMMFDevSoundAdaptation6ConfigEv @ 49 NONAME
@@ -63,4 +63,6 @@
_ZN22CMMFDevSoundAdaptation16BufferErrorEventEv @ 62 NONAME
_ZN22CMMFDevSoundAdaptation15ProcessingErrorERi @ 63 NONAME
_ZN22CMMFDevSoundAdaptation40RollbackAdaptorActiveStateToBeforeCommitEv @ 64 NONAME
+ _ZN22CMMFDevSoundAdaptation15SetClientConfigERK10TProcessId @ 65 NONAME
+ _ZN22CMMFDevSoundAdaptation15SetClientConfigERK10TProcessIdS2_ @ 66 NONAME
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/group/multimedia_a3f_devsound.mrp
--- a/devsound/a3fdevsound/group/multimedia_a3f_devsound.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/group/multimedia_a3f_devsound.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_a3f_devsound.mrp
#
-# Copyright (c) 2007 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:
+#Copyright (c) Symbian Software Ltd 2007. All rights reserved.
#
component multimedia_a3f_devsound
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/devsoundadaptor/cdevaudio.cpp
--- a/devsound/a3fdevsound/src/devsoundadaptor/cdevaudio.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/devsoundadaptor/cdevaudio.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -28,6 +28,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -495,11 +496,6 @@
DP_IN();
TInt err(KErrNone);
- if( iActiveState != EDevSoundAdaptorInitialised_Initialised)
- {
- DP0_RET(KErrNotReady, "%d");
- }
-
// Redo partial cancelling of initialization after pre-emption clash event in
// EDevSoundAdaptorRemovingProcessingUnits state.
if (iActiveState == EDevSoundAdaptorUnitialised_Uninitialised &&
@@ -508,7 +504,11 @@
err = iCurrentAudioControl->RemoveProcessingUnits();
DP0_RET(err, "%d");
}
-
+ else if(iActiveState != EDevSoundAdaptorInitialised_Initialised)
+ {
+ DP0_RET(KErrNotReady, "%d");
+ }
+
err = iCurrentAudioControl->Uninitialize();
DP0_RET(err, "%d");
@@ -557,18 +557,19 @@
{
return iPriorityFlag;
}
+
// -----------------------------------------------------------------------------
// CDevAudio::SetClientConfig
// -----------------------------------------------------------------------------
//
-TInt CDevAudio::SetClientConfig(const TMMFClientConfig& aClientConfig)
+TInt CDevAudio::SetClientConfig(const TProcessId& aProcessId)
{
DP_CONTEXT(CDevAudio::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
DP_IN();
// TODO: Check if the TClientContextSettings atributte go back since
// if not there is no way to send the vendor id
TClientContextSettings context;
- context.iProcessId = aClientConfig.iProcessId;
+ context.iProcessId = aProcessId;
TInt err = iAudioContext->SetClientSettings(context);
if (err != KErrNone)
{
@@ -577,6 +578,43 @@
DP0_RET(err, "%d");
}
+TInt CDevAudio::SetClientConfig(const TProcessId& aActualProcessId, const TProcessId& aProcessId)
+ {
+ DP_CONTEXT(CDevAudio::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
+ DP_IN();
+
+ MContextSetEffectiveClient* setEffectiveClient
+ = static_cast(iAudioContext->Interface(KSetClientInfoUid));
+
+ TInt err;
+
+ if (!setEffectiveClient)
+ {
+ DP0(DLINFO, "MContextSetEffectiveClient not supported, revert to old behaviour of just passing actual client info");
+ err = SetClientConfig(aActualProcessId);
+ }
+ else
+ {
+ TClientContextSettings context;
+ context.iProcessId = aProcessId;
+ err = iAudioContext->SetClientSettings(context);
+ if (err != KErrNone)
+ {
+ DP1(DLERR, "Error %d setting client context!",err);
+ }
+ if (!err)
+ {
+ err = setEffectiveClient->SetEffectiveClientInfo(aActualProcessId);
+ if (err != KErrNone)
+ {
+ DP1(DLERR, "Error %d setting effective client context!",err);
+ }
+ }
+ }
+
+ DP0_RET(err, "%d");
+ }
+
void CDevAudio::ContextEvent(TUid /*aEvent*/, TInt /*aError*/)
{
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/devsoundadaptor/cdevaudio.h
--- a/devsound/a3fdevsound/src/devsoundadaptor/cdevaudio.h Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/devsoundadaptor/cdevaudio.h Fri Jul 09 12:23:13 2010 +0100
@@ -143,10 +143,11 @@
/**
* Sets client configuration
* @since
- * @param TMMFClientConfig& aClientConfig A reference to client
- * configuration object.
+ * @param aProcessId DevSound's client process
+ * @param aActualProcessId DevSound's effective/actual client (supplied by SetClientThreadInfo)
*/
- TInt SetClientConfig(const TMMFClientConfig& aClientConfig);
+ TInt SetClientConfig(const TProcessId& aProcessId);
+ TInt SetClientConfig(const TProcessId& aActualProcessId, const TProcessId& aProcessId);
/**
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/devsoundadaptor/cdevcommoncontrol.cpp
--- a/devsound/a3fdevsound/src/devsoundadaptor/cdevcommoncontrol.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/devsoundadaptor/cdevcommoncontrol.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -107,10 +107,6 @@
DP_IN();
TInt err = KErrNone;
- if(iDevAudio->iActiveState != EDevSoundAdaptorPaused_Primed)
- {
- err = KErrNotReady;
- }
//If following condition is true, then we are here because of a
//pre-emption clash in last Commit cycle started from
@@ -121,6 +117,10 @@
err = Unload();
DP0_RET(err,"%d");
}
+ else if(iDevAudio->iActiveState != EDevSoundAdaptorPaused_Primed)
+ {
+ DP0_RET(KErrNotReady, "%d");
+ }
if(err == KErrNone)
{
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptation.cpp
--- a/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptation.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptation.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -750,27 +750,23 @@
// -----------------------------------------------------------------------------
//
EXPORT_C TInt CMMFDevSoundAdaptation::SetClientConfig(
- const TMMFClientConfig& aClientConfig)
- {
- DP_CONTEXT(CMMFDevSoundAdaptation::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
- DP_IN();
- TInt retVal = iBody->SetClientConfig(aClientConfig);
- DP0_RET(retVal, "%d");
- }
+ const TProcessId& aProcessId)
+ {
+ DP_CONTEXT(CMMFDevSoundAdaptation::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
+ DP_IN();
+ TInt retVal = iBody->SetClientConfig(aProcessId);
+ DP0_RET(retVal, "%d");
+ }
-// -----------------------------------------------------------------------------
-// CMMFDevSoundAdaptation::ClientConfig
-// Returns client capabilities of this instance of DevSound Adaptation.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TMMFClientConfig& CMMFDevSoundAdaptation::ClientConfig() const
- {
- DP_CONTEXT(CMMFDevSoundAdaptation::ClientConfig *CD1*, CtxDevSound, DPLOCAL);
- DP_IN();
- DP_OUT();
- return(iBody->ClientConfig());
- }
+EXPORT_C TInt CMMFDevSoundAdaptation::SetClientConfig(
+ const TProcessId& aActualProcessId,
+ const TProcessId& aProcessId)
+ {
+ DP_CONTEXT(CMMFDevSoundAdaptation::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
+ DP_IN();
+ TInt retVal = iBody->SetClientConfig(aActualProcessId, aProcessId);
+ DP0_RET(retVal, "%d");
+ }
// -----------------------------------------------------------------------------
// CMMFDevSoundAdaptation::EmptyBuffers
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptation.h
--- a/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptation.h Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptation.h Fri Jul 09 12:23:13 2010 +0100
@@ -252,21 +252,6 @@
};
-
-/**
-@publishedAll
-@released
-* A class representing client application information.
-*
-* @lib MmfDevSoundAdaptation.lib
-* @since
-*/
-class TMMFClientConfig
- {
- public:
- TProcessId iProcessId; //<<< Application Process Id
- };
-
// CLASS DECLARATION
/**
@@ -827,18 +812,12 @@
/**
* Sets client configuration
* @since
- * @param TMMFClientConfig& aClientConfig A reference to client
- * configuration object.
+ * @param aActualProcessId the effective devsound client (supplied with SetClientThreadInfo)
+ * @param aProcessId the client of DevSound
* @return KErrNone if successful, system wide error otherwise
*/
- IMPORT_C TInt SetClientConfig(const TMMFClientConfig& aClientConfig);
-
- /**
- * Returns client configuration
- * @since
- * @return void
- */
- IMPORT_C const TMMFClientConfig& ClientConfig() const;
+ IMPORT_C TInt SetClientConfig(const TProcessId& aProcessId);
+ IMPORT_C TInt SetClientConfig(const TProcessId& aActualProcessId, const TProcessId& aProcessId);
/**
* Empties the buffers below DevSound without deleting the codec.
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptationbody.cpp
--- a/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptationbody.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptationbody.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -1004,33 +1004,25 @@
// -----------------------------------------------------------------------------
//
TInt CMMFDevSoundAdaptation::CBody::SetClientConfig(
- const TMMFClientConfig& aClientConfig)
- {
- DP_CONTEXT(CMMFDevSoundAdaptation::CBody::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
- DP_IN();
+ const TProcessId& aActualProcessId,
+ const TProcessId& aProcessId)
+ {
+ DP_CONTEXT(CMMFDevSoundAdaptation::CBody::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
+ DP_IN();
- TInt err = iDevAudio->SetClientConfig(aClientConfig);
- if (err == KErrNone)
- {
- iClientConfig = aClientConfig;
- }
- DP0_RET(err, "%d");
- }
+ TInt err = iDevAudio->SetClientConfig(aActualProcessId, aProcessId);
+ DP0_RET(err, "%d");
+ }
-// -----------------------------------------------------------------------------
-// TMMFClientConfig& CMMFDevSoundAdaptation::CBody::ClientConfig
-// Returns client capabilities of this instance of DevSound Adaptation.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TMMFClientConfig& CMMFDevSoundAdaptation::CBody::ClientConfig() const
- {
- DP_CONTEXT(CMMFDevSoundAdaptation::CBody::ClientConfig *CD1*, CtxDevSound, DPLOCAL);
- DP_IN();
- DP_OUT();
- return iClientConfig;
- }
+TInt CMMFDevSoundAdaptation::CBody::SetClientConfig(
+ const TProcessId& aProcessId)
+ {
+ DP_CONTEXT(CMMFDevSoundAdaptation::CBody::SetClientConfig *CD1*, CtxDevSound, DPLOCAL);
+ DP_IN();
+ TInt err = iDevAudio->SetClientConfig(aProcessId);
+ DP0_RET(err, "%d");
+ }
TBool CMMFDevSoundAdaptation::CBody::CloseDevSound()
{
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptationbody.h
--- a/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptationbody.h Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/devsoundadaptor/mmfdevsoundadaptationbody.h Fri Jul 09 12:23:13 2010 +0100
@@ -590,19 +590,12 @@
/**
* Sets client configuration
* @since
- * @param TMMFClientConfig& aClientConfig A reference to client
- * configuration object.
+ * @param aActualProcessId the effective devsound client (supplied with SetClientThreadInfo)
+ * @param aProcessId the client of DevSound
* @return KErrNone if successful, system wide error otherwise
*/
- TInt SetClientConfig(const TMMFClientConfig& aClientConfig);
-
- /**
- * Returns client configuration
- * @since
- * @return const TMMFClientConfig& A constant reference to client
- * configuration.
- */
- const TMMFClientConfig& ClientConfig() const;
+ TInt SetClientConfig(const TProcessId& aProcessId);
+ TInt SetClientConfig(const TProcessId& aActualProcessId, const TProcessId& aProcessId);
/**
* Return to idle state, preparing for destruction.
@@ -709,11 +702,6 @@
TMMFCapabilities iMmfConfig;
/**
- * holds client platsec related information (VID,SID,PID,caps)
- */
- TMMFClientConfig iClientConfig;
-
- /**
* holds client audio type information
*/
TMMFPrioritySettings iPrioritySettings;
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.cpp
--- a/devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -2314,11 +2314,20 @@
static_cast(Server()));
ASSERT(server); // session should always have a server!
+
+ TProcessId actualProcessId = server->ActualProcessId();
+ TProcessId processId = server->ProcessId();
+
+ if (actualProcessId!=processId)
+ {
+ // we have a differing actual process id, so pass that to the adaptor too
+ err = iAdapter->SetClientConfig(actualProcessId, processId);
+ }
+ else
+ {
+ err = iAdapter->SetClientConfig(processId);
+ }
- TMMFClientConfig clientConfig;
- clientConfig.iProcessId = server->ActualProcessId();
-
- err = iAdapter->SetClientConfig(clientConfig);
if (!err)
{
iSetClientConfigApplied = ETrue;
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fintegrationtest/group/bld.inf
--- a/devsound/a3fintegrationtest/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fintegrationtest/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -18,18 +18,21 @@
PRJ_PLATFORMS
DEFAULT
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
// DEVSOUND
../mmpfiles/tsi_a3f_devsound.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/tsi_a3f_devsound_pcm_record.script c:/tsi_a3f_devsound/tsi_a3f_devsound_pcm_record.script
../scripts/tsi_a3f_devsound_pcm_long_record.script c:/tsi_a3f_devsound/tsi_a3f_devsound_pcm_long_record.script
../scripts/tsi_a3f_devsound_pcm_play.script c:/tsi_a3f_devsound/tsi_a3f_devsound_pcm_play.script
+../scripts/tsi_a3f_devsound_pcm_play2.script c:/tsi_a3f_devsound/tsi_a3f_devsound_pcm_play2.script
+../scripts/tsi_a3f_devsound_pcm_play3.script c:/tsi_a3f_devsound/tsi_a3f_devsound_pcm_play3.script
+../scripts/tsi_a3f_devsound_pcm_play4.script c:/tsi_a3f_devsound/tsi_a3f_devsound_pcm_play4.script
// To be uncommented if long playback script required
../scripts/tsi_a3f_devsound_pcm_long_play.script c:/tsi_a3f_devsound/tsi_a3f_devsound_pcm_long_play.script
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fintegrationtest/group/tsi_a3f_devsound.iby
--- a/devsound/a3fintegrationtest/group/tsi_a3f_devsound.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fintegrationtest/group/tsi_a3f_devsound.iby Fri Jul 09 12:23:13 2010 +0100
@@ -28,6 +28,9 @@
data=EPOCROOT##epoc32\data\c\tsi_a3f_devsound\tsi_a3f_devsound_pcm_long_record.script \tsi_a3f_devsound_pcm_long_record.script
data=EPOCROOT##epoc32\data\c\tsi_a3f_devsound\tsi_a3f_devsound_pcm_play.script \tsi_a3f_devsound_pcm_play.script
+data=EPOCROOT##epoc32\data\c\tsi_a3f_devsound\tsi_a3f_devsound_pcm_play2.script \tsi_a3f_devsound_pcm_play2.script
+data=EPOCROOT##epoc32\data\c\tsi_a3f_devsound\tsi_a3f_devsound_pcm_play3.script \tsi_a3f_devsound_pcm_play3.script
+data=EPOCROOT##epoc32\data\c\tsi_a3f_devsound\tsi_a3f_devsound_pcm_play4.script \tsi_a3f_devsound_pcm_play4.script
// To be uncommented if long playback script required
data=EPOCROOT##epoc32\data\c\tsi_a3f_devsound\tsi_a3f_devsound_pcm_long_play.script \tsi_a3f_devsound_pcm_long_play.script
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fintegrationtest/scripts/tsi_a3f_devsound_pcm_play.script
--- a/devsound/a3fintegrationtest/scripts/tsi_a3f_devsound_pcm_play.script Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fintegrationtest/scripts/tsi_a3f_devsound_pcm_play.script Fri Jul 09 12:23:13 2010 +0100
@@ -120,530 +120,3 @@
RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0007 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
TEST_COMPLETE
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0008
-//! @SYMTestCaseDesc Positive: PCM 22.050k stereo playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in stereo mode with sampling rate of 22.050 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw audio data in stereo mode with sampling rate of 22.050 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0008 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0009
-//! @SYMTestCaseDesc Positive: PCM 32k mono playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 32 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw audio data in mono mode with sampling rate of 32 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0009 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0010
-//! @SYMTestCaseDesc Positive: PCM 32k stereo playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in stereo mode with sampling rate of 32 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw audio data in stereo mode with sampling rate of 32 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0010 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0011
-//! @SYMTestCaseDesc Positive: PCM 44.100k mono playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 44.100 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw audio data in mono mode with sampling rate of 44.100 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0011 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0012
-//! @SYMTestCaseDesc Positive: PCM 44.100k stereo playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in stereo mode with sampling rate of 44.100 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw audio data in stereo mode with sampling rate of 44.100 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0012 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0013
-//! @SYMTestCaseDesc Positive: PCM 48k mono playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 48 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw audio data in mono mode with sampling rate of 48 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0013 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0014
-//! @SYMTestCaseDesc Positive: PCM 48k stereo playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in stereo mode with sampling rate of 48 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw audio data in stereo mode with sampling rate of 48 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0014 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0015
-//! @SYMTestCaseDesc Negative: Play empty PCM raw audio data file (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestStatus
-//! @SYMTestActions
-//! @SYMTestExpectedResults
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0015 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0016
-//! @SYMTestCaseDesc Positive: PCM 48k stereo playback of sine audio data (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw sine audio data in stereo mode with sampling rate of 48 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 raw sine audio data in stereo mode with sampling rate of 48 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0016 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0017
-//! @SYMTestCaseDesc Positive: Play a 8 bitmupcm raw file (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestStatus
-//! @SYMTestActions 1. Configure DevSound to play 8bit MuLaw audio data in mono mode with sampling rate of 8 KHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play 8bit MuLaw audio data in mono mode with sampling rate of 8 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0017 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0018
-//! @SYMTestCaseDesc Negative: PCM mono playback with invalid sample rate (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with an invalid sample rate.
-//! 2. Verify the valid error code is received
-//! @SYMTestExpectedResults CMMFDevSound::SetConfigL should return with KErrArgument
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0018 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0019
-//! @SYMTestCaseDesc Negative: PCM 8k playback with invalid channel mode (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in an invalid mode with sampling rate of 8 kHz.
-//! 2. Verify the valid error code is received
-//! @SYMTestExpectedResults CMMFDevSound::SetConfigL should return with KErrArgument
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0019 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0020
-//! @SYMTestCaseDesc Negative: PCM 8k mono playback with invalid FourCC (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Initialise DevSound with an invalid FourCC code
-//! 2. Verify the valid error code is received
-//! @SYMTestExpectedResults CMMFDevSound::InitializeL should return with KErrNotSupported
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0020 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0021
-//! @SYMTestCaseDesc Negative: PCM 8k mono playback of corrupt file (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestStatus
-//! @SYMTestActions 1. Configure DevSound to play PCM8 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM8 audio data in mono mode with sampling rate of 8 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0021 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0022
-//! @SYMTestCaseDesc Positive: Play to the EOF a specified number of times (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7918
-//! @SYMPREQ 1540
-//! @SYMTestStatus
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback once EOF is reached.
-//! 4. Restart playback again
-//! 5. Stop test when EOF is reached again
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 audio data in mono mode with sampling rate of 8 KHz twice with all the DevSound callback
-//! functions being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0022 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0023
-//! @SYMTestCaseDesc Positive: PCM playback with default parameters. Default FourCC input datatype and default config values (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7925
-//! @SYMPREQ 1540
-//! @SYMTestStatus
-//! @SYMTestActions 1. Initialise DevSound for playback without specifying format nor configuration parameters
-//! 2. Start playing and read recorded data from a PCM16/8 kHz file.
-//! 3. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play PCM16 audio data in mono mode with sampling rate of 8 KHz with all the DevSound callback functions
-//! being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0023 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0024
-//! @SYMTestCaseDesc Positive: Play->Stop->Play->Stop->Play EOF. Stop is called a specified number of times through ini file.
-//! Last playback continues until the EOF (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7919
-//! @SYMPREQ 1540
-//! @SYMTestStatus
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback after 10 seconds.
-//! 4. Restart playback
-//! 5. Stop playback after 10 seconds.
-//! 6. Restart playback
-//! 7. Stop playback once EOF is reached.
-//! @SYMTestExpectedResults Devsound to successfully play-stop-play-stop-play PCM16 audio data in mono mode with sampling rate of 8 KHz with all the DevSound callback
-//! functions being executed as required throughout the test.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0024 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0025
-//! @SYMTestCaseDesc Positive: Read the current device configuration during playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. In the BuffertoBeFilled callback check the current device configuration matches the one set at the beginning of the test.
-//! 4. Stop the test
-//! @SYMTestExpectedResults Values queried during playback should match the ones set before the playback started
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0025 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0026
-//! @SYMTestCaseDesc Positive: Set volume before play, start play, stop play and get volume (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Set volume to a value specified in the ini file
-//! 3. Start playing and read recorded data from file.
-//! 4. Stop playback after 10 seconds and get the volume from DevSound
-//! 5. Check the values match
-//! @SYMTestExpectedResults The Volume after the playback has stopped should match the volume set before playback
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0026 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0027
-//! @SYMTestCaseDesc Positive: Empty buffers when playback paused (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7926
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Pause playback after 10 seconds
-//! 4. Call EmptyBuffers while in paused state
-//! @SYMTestExpectedResults EmptyBuffers in paused state should return with KErrNone
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0027 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0028
-//! @SYMTestCaseDesc Negative: Initialize DevSound in Record mode and play (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Initialise DevSound in Recording state
-//! 2. Call PlayInitL
-//! 3. Error code should be received
-//! @SYMTestExpectedResults PlayInitL must return with KErrNotReady
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0028 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0029
-//! @SYMTestCaseDesc Negative: Empty buffers during playback (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Call EmptyBuffers after the first BTBF state
-//! @SYMTestExpectedResults EmptyBuffers while playing should return with KErrNone
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0029 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0030
-//! @SYMTestCaseDesc Negative: Call InitializeL while playback is in progress (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. After 10 seconds have passed, and playback is still in progress, initialise DevSound again
-//! 4. Error code should be received
-//! @SYMTestExpectedResults Second call to InitializeL must return with KErrNotReady
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0030 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0031
-//! @SYMTestCaseDesc Negative: Initialize DevSound HwDeviceUID (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Initialise DevSound using a HwDeviceUID instead of a FourCC code
-//! 2. Error code should be received
-//! @SYMTestExpectedResults InitializeL must return with KErrNotSupported
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0031 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0032
-//! @SYMTestCaseDesc Positive: Set Play balance during playback and get it to confirm balance set correctly (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. In the BuffertoBeFilled callback set the playback balance
-//! 4. Get the balance and check that it's the same as the one that was set
-//! @SYMTestExpectedResults SetPlayBalanceL returns with KErrNone
-//! GetPlayBalanceL returns with KErrNone and the left and right balance values match the ones previously set
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0032 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0033
-//! @SYMTestCaseDesc Positive: Get the number of samples played after stopping the playback (+ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Start playing and read recorded data from file.
-//! 3. Stop playback after 10 seconds and get the number of samples played
-//! 4. Samples Played should be more than 0
-//! @SYMTestExpectedResults SamplesPlayed should return a value greater than 0
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0033 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0034
-//! @SYMTestCaseDesc Negative: Call second InitializeL before the first InitializeL has completed (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Initialise DevSound for playback
-//! 2. Initialise DevSound again without waiting for the InitializeComplete callback
-//! @SYMTestExpectedResults The first initialisation should complete correctly, the second one should fail with KErrNotReady
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0034 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0035
-//! @SYMTestCaseDesc Negative: Call second PlayInitL before the first PlayInitL has completed (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data in mono mode with sampling rate of 8 kHz.
-//! 2. Call PlayInitL twice.
-//! 3. In the BufferToBeFilled callback check the error codes of both PlayInitL calls
-//! @SYMTestExpectedResults The first PlayInitL should complete correctly, the second one should fail with KErrNotReady
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0035 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0036
-//! @SYMTestCaseDesc Negative: Set the volume beyond the maximum and minimum supported values and get the set volume to check if volume is cropped (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Initialise DevSound for playback
-//! 2. Get the Max Volume supported
-//! 3. Set the volume higher than the Max Volume
-//! 4. Verify the volume was cropped to the Max Volume
-//! 5. Set the volume lower than zero
-//! 6. Verify the volume was cropped to zero
-//! @SYMTestExpectedResults Setting the volume to a value beyond the maximum supported volume will crop it to the maximum supported volume.
-//! Setting the volume to a value below the minimum supported volume will crop ot to the minimum supported volume
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0036 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0037
-//! @SYMTestCaseDesc Negative: Initialize the DevSound in TMMFState EMMFStateConverting (-ve)
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ 7927
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Initialise DevSound in converting state
-//! @SYMTestExpectedResults InitializeL must return with KErrNotSupported. DevSound is not initialised
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0037 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0038
-//! @SYMTestCaseDesc Positive: Call CMMFDevSound::CancelInitialize before the InitializeComplete callback. (+ve)
-//!
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ ????
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data.
-//! 2. Initialize DevSound via CMMFDevSound::InitializeL in play mode using TMMFState::EMMFStatePlaying.
-//! 3. Call CMMFDevSound::CancelInitialize before the InitializeComplete callback is received
-//! 4. Wait 10 seconds to ensure the InitializeComplete callback is not received.
-//! 5. Call SetConfig to verify DevSound is not initialized.
-//!
-//! @SYMTestExpectedResults The CMMFDevSound::CancelInitialize call cancels the InitializeComplete callback. DevSound is not Initialized
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0038 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0039
-//! @SYMTestCaseDesc Negative: Call CMMFDevSound::CancelInitialize after the InitializeComplete callback. (-ve)
-//!
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ ????
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data.
-//! 2. Initialize DevSound via CMMFDevSound::InitializeL in record mode using TMMFState::EMMFStateRecording.
-//! 3. Call CMMFDevSound::CancelInitialize after the InitializeComplete callback is received
-//!
-//! @SYMTestExpectedResults The CMMFDevSound::CancelInitialize call returns with KErrNotReady. DevSound is Initialized
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0039 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0040
-//! @SYMTestCaseDesc Negative: Call CMMFDevSound::EmptyBuffers after creating the DevSound object. (-ve)
-//!
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ ????
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Create the DevSound object
-//! 2. Call CMMFDevSound::EmptyBuffers
-//!
-//! @SYMTestExpectedResults The CMMFDevSound::EmptyBuffers call returns with KErrNotReady.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0040
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0041
-//! @SYMTestCaseDesc Negative: Call CMMFDevSound::EmptyBuffers after the InitializeComplete callback. (-ve)
-//!
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ ????
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data.
-//! 2. Initialize DevSound via CMMFDevSound::InitializeL in play mode using TMMFState::EMMFStatePlaying.
-//! 3. Call CMMFDevSound::EmptyBuffers after the InitializeComplete callback is received
-//!
-//! @SYMTestExpectedResults The CMMFDevSound::EmptyBuffers call returns with KErrNotReady.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0041 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-A3F-DEVSOUND-PLAY-PCM-I-0042
-//! @SYMTestCaseDesc Negative: Call CMMFDevSound::EmptyBuffers before the InitializeComplete callback. (-ve)
-//!
-//! @SYMTestPriority High
-//! @SYMTestType CIT
-//! @SYMREQ ????
-//! @SYMPREQ 1540
-//! @SYMTestActions 1. Configure DevSound to play PCM16 raw audio data.
-//! 2. Initialize DevSound via CMMFDevSound::InitializeL in play mode using TMMFState::EMMFStatePlaying.
-//! 3. Call CMMFDevSound::EmptyBuffers before the InitializeComplete callback is received
-//!
-//! @SYMTestExpectedResults The CMMFDevSound::EmptyBuffers call returns with KErrNotReady.
-
-RUN_TEST_STEP 600000 TSI_A3F_DEVSOUND MM-A3F-DEVSOUND-PLAY-PCM-I-0042 \tsi_a3f_devsound\tsi_a3f_devsound_play.ini
-TEST_COMPLETE
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3fsrvstart/group/multimedia_a3f_serverstart.mrp
--- a/devsound/a3fsrvstart/group/multimedia_a3f_serverstart.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3fsrvstart/group/multimedia_a3f_serverstart.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_a3f_serverstart.mrp
#
-# Copyright (c) 2008 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:
+#Copyright (c) Symbian Software Ltd 2008. All rights reserved.
#
component multimedia_a3f_serverstart
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/a3ftrace/group/multimedia_a3f_traces.mrp
--- a/devsound/a3ftrace/group/multimedia_a3f_traces.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/a3ftrace/group/multimedia_a3f_traces.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_a3f_traces.mrp
#
-# Copyright (c) 2007 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:
+#Copyright (c) Symbian Software Ltd 2007. All rights reserved.
#
component multimedia_a3f_traces
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundapi/group/bld.inf
--- a/devsound/devsoundapi/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundapi/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -19,12 +19,12 @@
../inc/SoundDevice.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/sounddevice.inl)
../inc/DevSoundStandardCustomInterfaces.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/devsoundstandardcustominterfaces.h)
../inc/MmfDevSoundCustomInterfaceSupport.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfacesupport.h)
-../inc/mmfdevsoundcustominterfaceobserver.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfaceobserver.h)
-../inc/mmfdevsoundcustominterfacesupportclasses.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfacesupportclasses.h)
+../inc/mmfdevsoundcustominterfaceobserver.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfaceobserver.h)
+../inc/mmfdevsoundcustominterfacesupportclasses.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfacesupportclasses.h)
../bwins/MMFDEVSOUND.DEF /epoc32/include/def/bwins/mmfdevsound.def
../eabi/MMFDevSound.def /epoc32/include/def/eabi/mmfdevsound.def
PRJ_MMPFILES
// DevSound
-../MMPFiles/mmfdevsoundlib.mmp
+../mmpfiles/mmfdevsoundlib.mmp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/inc/MmfDevSoundCustomCommands.h
--- a/devsound/devsoundpluginsupport/inc/MmfDevSoundCustomCommands.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 2005-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:
-//
-
-#ifndef MMFDEVSOUNDCUSTOMCOMMANDS_H
-#define MMFDEVSOUNDCUSTOMCOMMANDS_H
-
-/**
-* @internalTechnology
-* @file
-*/
-
-enum TMMFDevSoundCustomCommand
- {
- EMMFDevSoundCustomCommandCIOpenSlave,
- EMMFDevSoundCustomCommandCICloseSlave,
- EMMFDevSoundCustomCommandCISendSlaveSyncCommand,
- EMMFDevSoundCustomCommandCISendSlaveSyncCommandResult,
- EMMFDevSoundCustomCommandCISendSlaveAsyncCommand,
- EMMFDevSoundCustomCommandCISendSlaveAsyncCommandResult
- };
-
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/inc/MmfDevSoundCustomInterface.h
--- a/devsound/devsoundpluginsupport/inc/MmfDevSoundCustomInterface.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,430 +0,0 @@
-// Copyright (c) 2005-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:
-//
-
-/**
- @publishedPartner
- @released
- @file
-*/
-
-#ifndef MMFDEVSOUNDCUSTOMINTERFACE_H
-#define MMFDEVSOUNDCUSTOMINTERFACE_H
-
-// forward reference
-class MMMFDevSoundCustomInterfaceMuxPlugin;
-class MMMFDevSoundCustomInterfaceDeMuxPlugin;
-
-/**
-* structure to hold command, handle pair
-*/
-class TMMFDevSoundCustomInterfaceCommand
- {
-public:
- TInt iCommand;
- TInt iHandle;
- };
-
-typedef TPckgBuf TMMFDevSoundCustomInterfaceCommandPackage;
-
-/**
-* structure to hold custom interface data
-*/
-class TMMFDevSoundCustomInterfaceData
- {
-public:
- TUid iId;
- TInt iHandle;
- MMMFDevSoundCustomInterfaceMuxPlugin* iInterface;
- };
-
-/**
-* structure to hold custom interface data on server side
-*/
-class TMMFDevSoundCustomInterfaceDeMuxData
- {
-public:
- TUid iId;
- MMMFDevSoundCustomInterfaceDeMuxPlugin* iInterface;
- };
-
-
-/**
-* mixin for custom command pipeline used by utility to reroute commands
-*/
-class MMMFDevSoundCustomInterfaceChannel
- {
-public:
- /**
- Implements a synchronous custom command
- @param aUid
- The UID of the custom command
- @param aParam1
- A buffer of data to be supplied to the receiver
- @param aParam2
- A buffer of data to be supplied to the receiver
- @param aOutParam
- A buffer that will be written into by the receiver
- and returned to the client
- @return the result of the custom command
- */
- virtual TInt SyncCustomCommand(TUid aUid, const TDesC8& aParam1, const TDesC8& aParam2, TDes8* aOutParam) = 0;
-
- /**
- Implements an asynchronous custom command
- @param aUid
- The UID of the custom command
- @param aStatus
- The request status of the active object that
- will be called upon the completion of the request
- @param aParam1
- A buffer of data to be supplied to the receiver
- @param aParam2
- A buffer of data to be supplied to the receiver
- @param aOutParam
- A buffer that will be written into by the receiver
- and returned to the client
- */
- virtual void AsyncCustomCommand(TUid aUid, TRequestStatus& aStatus, const TDesC8& aParam1, const TDesC8& aParam2, TDes8* aOutParam) = 0;
- };
-
-
-/**
-* custom interface API mixin
-*/
-class MMMFDevSoundCustomInterfaceTarget
- {
-public:
- /**
- Obtain a custom interface
- @param aInterfaceId
- The UID of the required custom interface
- @return a pointer to the custom interface
- */
- virtual TAny* CustomInterface(TUid aInterfaceId) = 0;
- };
-
-
-/**
-* the custom interface MUX Mixin class implemented by the mux utility
-*/
-class MMMFDevSoundCustomInterfaceMuxUtility
- {
-public:
- /**
- Attempt to open the slave plugin
- @param aInterface
- The UID of the requested slave
- @param aPackageBuf
- A buffer that can be used to supply initialisation data
- @return one of the system-wide error codes
- */
- virtual TInt OpenSlave(TUid aInterface, const TDesC8& aPackageBuf) = 0;
-
- /**
- Close the slave plugin
- @param aHandle
- The handle of the slave to close
- */
- virtual void CloseSlave(TInt aHandle) = 0;
-
- /**
- Send a synchronous command to the slave
- @param aHandle
- The handle of the remote slave plugin
- @param aCommand
- The command to send to the slave
- @param aPackageBuf
- Buffer of data to send to slave
- @return the return code from the command
- */
- virtual TInt SendSlaveSyncCommand(TInt aHandle, TInt aCommand, const TDesC8& aPackageBuf) = 0;
-
- /**
- Send a synchronous command to the slave and obtain a result
- @param aHandle
- The handle of the remote slave plugin
- @param aCommand
- The command to send to the slave
- @param aPackageBuf
- Buffer of data to send to slave
- @param aResultBuf
- Buffer to contain the result from the destination.
- This must be large enough to contain the result.
- @return the return code from the command
- */
- virtual TInt SendSlaveSyncCommandResult(TInt aHandle, TInt aCommand, const TDesC8& aPackageBuf, TDes8& aResultBuf) = 0;
-
- /**
- Send an asychronous command to the slave
- @param aComPackage
- A package containing the handle of the remote slave and
- the command to be sent
- @see TMMFDevSoundCustomInterfaceCommandPackage
- @param aStatus
- The request status of the active object that will called
- upon the completion of the request
- @param aPackageBuf
- Buffer of data to send to slave
- */
- virtual void SendSlaveAsyncCommand(TMMFDevSoundCustomInterfaceCommandPackage& aComPackage, TRequestStatus& aStatus, const TDesC8& aPackageBuf) = 0;
-
- /**
- Send an asychronous command to the slave and obtain a result
- @param aComPackage
- A package containing the handle of the remote slave and
- the command to be sent
- @see TMMFDevSoundCustomInterfaceCommandPackage
- @param aStatus
- The request status of the active object that will be called
- upon the completion of the request
- @param aPackageBuf
- Buffer of data to send to slave
- @param aResultBuf
- Buffer to contain the result from the destination.
- This must be large enough to contain the result.
- */
- virtual void SendSlaveAsyncCommandResult(TMMFDevSoundCustomInterfaceCommandPackage& aComPackage, TRequestStatus& aStatus, const TDesC8& aPackageBuf, TDes8& aResultBuf) = 0;
- };
-
-
-/**
-* mixin implemented by Mux plugin itself
-*/
-class MMMFDevSoundCustomInterfaceMuxPlugin
- {
-public:
- /**
- Attempt to open the interface.
- @param aInterfaceId
- The UID of the required interface
- @return one of the system wide error codes
- */
- virtual TInt OpenInterface(TUid aInterfaceId) = 0;
-
- /**
- Equivalent to destructor. Called to destroy plugin.
- */
- virtual void Release() = 0;
- /**
- Pass destructor key.
- Called on construction so plugin takes responsibility to call REComSession::DestroyedImplementation()
- @param aDestructorKey
- The Uid returned by REComSession::CreateImplementationL() or similar
- */
- virtual void PassDestructorKey(TUid aDestructorKey) = 0;
-
- /**
- Complete construction.
- Pass additional values from the construction phase, used subsequently by the plugin.
- @param aCustomUtility
- The custom interface utility used by the plugin to communicate with the remote
- server side DeMux plugin
- */
- virtual void CompleteConstructL(MMMFDevSoundCustomInterfaceMuxUtility* aCustomUtility) = 0;
-
- /**
- Return the custom interface
- @param aInterfaceId
- The id of the required custom interface
- @return the custom interface supported by this plugin
- */
- virtual TAny* CustomInterface(TUid aInterfaceId) = 0;
- };
-
-
-/**
-* the custom interface DEMUX Mixin class implemented by the DeMux interface
-* this is likely to be the DevSound server implementation
-*/
-class MMMFDevSoundCustomInterfaceDeMuxInterface
- {
-public:
- /**
- Open the slave
- @param aInterface
- The UID of the requested interface
- @param aPackageBuf
- A package of data that can be supplied for initialisation
- @return the result of the operation
- */
- virtual TInt DoOpenSlaveL(TUid aInterface, const TDesC8& aPackageBuf) = 0;
-
- /**
- Close the slave
- @param aHandle
- The handle of the slave plugin
- */
- virtual void DoCloseSlaveL(TInt aHandle) = 0;
-
- // original RMessage is supplied so that remote demux plugin can extract necessary details
- // using DeMux utility
-
- /**
- Relay the synchronous custom command onto the slave
- @param aMessage
- The IPC message to be sent to the slave
- @return the result of the operation
- */
- virtual TInt DoSendSlaveSyncCommandL(const RMmfIpcMessage& aMessage) = 0;
-
- /**
- Relay the synchronous custom command onto the slave and obtain a result
- @param aMessage
- The IPC message to be sent to the slave
- @return the result of the operation
- */
- virtual TInt DoSendSlaveSyncCommandResultL(const RMmfIpcMessage& aMessage) = 0;
-
- /**
- Relay an asynchronous command onto the slave
- @param aMessage
- The IPC message to be sent to the slave
- */
- virtual void DoSendSlaveAsyncCommandL(const RMmfIpcMessage& aMessage) = 0;
-
- /**
- Relay an asynchronous command onto the slave and obtain a result
- @param aMessage
- The IPC message to be sent to the slave@param aMessage
- */
- virtual void DoSendSlaveAsyncCommandResultL(const RMmfIpcMessage& aMessage) = 0;
- };
-
-
-/**
-* message data structure for demux utility
-*/
-class TMMFDevSoundCIMessageData
- {
-public:
- TInt iCommand;
- TInt iHandle;
- };
-
-
-/**
-* mixin class implemented by the demux utility
-*/
-class MMMFDevSoundCustomInterfaceDeMuxUtility
- {
-public:
- /**
- Get all settings at once into a client supplied package
- @param aMessage
- The IPC message
- @param aData
- Structure containing the command and handle
- @see TMMFDevSoundCIMessageData
- */
- virtual void GetSyncMessageDataL(const RMmfIpcMessage& aMessage, TMMFDevSoundCIMessageData& aData) = 0;
-
- /**
- Get all settings at once into a client supplied package
- from an asynchronous message
- @param aMessage
- The IPC message
- @param aData
- Structure containing the command and handle
- @see TMMFDevSoundCIMessageData
- */
- virtual void GetAsyncMessageDataL(const RMmfIpcMessage& aMessage, TMMFDevSoundCIMessageData& aData) = 0;
-
- /**
- Obtain the input descriptor length from the message
- @param aMessage
- The IPC message
- @return the length of the input descriptor in the message
- */
- virtual TInt InputDesLength(const RMmfIpcMessage& aMessage) = 0;
-
- /**
- Read the data from the input descriptor into the supplied buffer
- @param aMessage
- The IPC message
- @param aBufToFill
- The descriptor to copy the data from the input message into
- */
- virtual void ReadFromInputDesL(const RMmfIpcMessage& aMessage, TDes8* aBufToFill) = 0;
-
- /**
- Write the supplied buffer into the output buffer in the IPC message
- @param aMessage
- The IPC message
- @param aBufToWrite
- The buffer to write to the output buffer in the supplied IPC message
- */
- virtual void WriteToOutputDesL(const RMmfIpcMessage& aMessage, TDesC8& aBufToWrite) = 0;
-
- /**
- Complete the supplied IPC message with the supplied error code
- @param aMessage
- The IPC message
- @param aError
- One of the system wide error codes to complete the message with
- */
- virtual void CompleteMessage(const RMmfIpcMessage& aMessage, TInt aError) = 0;
- };
-
-
-/**
-* mixin implemented by DeMux plugin itself
-*/
-class MMMFDevSoundCustomInterfaceDeMuxPlugin : public MMMFDevSoundCustomInterfaceDeMuxInterface
- {
-public:
- /**
- Attempt to open the interface.
- @param aInterfaceId
- The UID of the required interface
- @return a handle to the remote plugin
- */
- virtual TInt OpenInterface(TUid aInterfaceId) = 0;
-
- /**
- Equivalent to destructor. Called to destroy plugin.
- */
- virtual void Release() = 0;
- /**
- Pass destructor key.
- Called on construction so plugin takes responsibility to call REComSession::DestroyedImplementation()
- @param aDestructorKey
- The Uid returned by REComSession::CreateImplementationL() or similar
- */
- virtual void PassDestructorKey(TUid aDestructorKey) = 0;
-
- /**
- Complete construction.
- Set the target of the custom interface call
- @param aDevSoundServer
- The DevSound to call the custom interface on.
- */
- virtual void SetInterfaceTarget(MMMFDevSoundCustomInterfaceTarget* aTarget) = 0;
-
- /**
- Complete construction.
- @param aUtility
- A pointer to the DeMux utility to use
- */
- virtual void CompleteConstructL(MMMFDevSoundCustomInterfaceDeMuxUtility* aUtility) = 0;
-
- /**
- Refresh the interfaces if circumstances / other areas of DevSound have changed
- */
- virtual void RefreshL() = 0;
- };
-
-
-
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/inc/MmfDevSoundCustomInterface.hrh
--- a/devsound/devsoundpluginsupport/inc/MmfDevSoundCustomInterface.hrh Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-// MmfDevSoundCustomInterface.hrh
-
-// Copyright (c) 2005-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:
-//
-
-/**
- @publishedPartner
- @released
- @file
-*/
-
-#ifndef MMFDEVSOUNDCUSTOMINTERFACE_HRH
-#define MMFDEVSOUNDCUSTOMINTERFACE_HRH
-
-/**
-* used internally to denote a custom interface plugin for DevSound
-*/
-#define KUidDevSoundCustomInterfaceMux 0x102070ac
-#define KUidDevSoundCustomInterfaceDeMux 0x102070ad
-
-#if defined(SYMBIAN_MULTIMEDIA_A3FDEVSOUND) && !defined(KUidDevSoundCIClientExtension)
-/**
-* Custom Interface Extension Implementation UIDs
-* Only a single extension adapter is allowed and the implementation must use these UIDs
-*/
-#define KUidDevSoundCIClientExtension 0x10283405
-#define KUidDevSoundCIServerExtension 0x10283406
-#define KMmfUidCIClientExtensionImpl 0x10283408
-#define KMmfUidCIServerExtensionImpl 0x10283409
-#endif
-
-/**
-* used internally to denote a Playback status custom interface plugin
-*/
-#define KMmfUidCustomInterfacePlayBackStatusDll 0x10273836
-#define KMmfUidCustomInterfacePlayBackStatusMux 0x10273811
-#define KMmfUidCustomInterfacePlayBackStatusDeMux 0x10273813
-
-/**
-* used internally to denote an Aac decoder config custom interface plugin
-*/
-#define KMmfUidCustomInterfaceAacDecoderConfigDll 0x102825BB
-#define KMmfUidCustomInterfaceAacDecoderConfigMux 0x102825FD
-#define KMmfUidCustomInterfaceAacDecoderConfigDeMux 0x102825BC
-
-/**
-* used internally to denote a G729 encoder intfc custom interface plugin
-*/
-#define KMmfUidCustomInterfaceG729DecoderIntfcDll 0x102825BE
-#define KMmfUidCustomInterfaceG729DecoderIntfcMux 0x10282603
-#define KMmfUidCustomInterfaceG729DecoderIntfcDeMux 0x102825BF
-
-/**
-* used internally to denote a G729 encoder intfc custom interface plugin
-*/
-#define KMmfUidCustomInterfaceG729EncoderIntfcDll 0x102825C0
-#define KMmfUidCustomInterfaceG729EncoderIntfcMux 0x10282604
-#define KMmfUidCustomInterfaceG729EncoderIntfcDeMux 0x102825C1
-
-/**
-* used internally to denote an audio vibra control custom interface plugin
-*/
-#define KMmfUidCustomInterfaceAudioVibraControlDll 0x102825C2
-#define KMmfUidCustomInterfaceAudioVibraControlMux 0x10282608
-#define KMmfUidCustomInterfaceAudioVibraControlDeMux 0x102825C3
-
-/**
-* used internally to denote a sample buffering custom interface plugin
-*/
-#define KMmfUidCustomInterfaceSampleBufferingDll 0x102825C4
-#define KMmfUidCustomInterfaceSampleBufferingMux 0x10282609
-#define KMmfUidCustomInterfaceSampleBufferingDeMux 0x102825C5
-
-/**
-* used internally to denote a DSP control custom interface plugin
-*/
-#define KMmfUidCustomInterfaceDspControlDll 0x102825C6
-#define KMmfUidCustomInterfaceDspControlMux 0x1028260A
-#define KMmfUidCustomInterfaceDspControlDeMux 0x102825C7
-
-/**
-* used internally to denote an speech encoder config custom interface plugin
-*/
-#define KMmfUidCustomInterfaceSpeechEncoderConfigDll 0x102825D5
-#define KMmfUidCustomInterfaceSpeechEncoderConfigMux 0x10282607
-#define KMmfUidCustomInterfaceSpeechEncoderConfigDeMux 0x102825D6
-
-/**
-* used internally to denote a G711 encoder intfc custom interface plugin
-*/
-#define KMmfUidCustomInterfaceG711DecoderIntfcDll 0x102825D7
-#define KMmfUidCustomInterfaceG711DecoderIntfcMux 0x10282601
-#define KMmfUidCustomInterfaceG711DecoderIntfcDeMux 0x102825D8
-
-/**
-* used internally to denote a G711 encoder intfc custom interface plugin
-*/
-#define KMmfUidCustomInterfaceG711EncoderIntfcDll 0x102825D9
-#define KMmfUidCustomInterfaceG711EncoderIntfcMux 0x10282602
-#define KMmfUidCustomInterfaceG711EncoderIntfcDeMux 0x102825DA
-
-/**
-* used internally to denote a Ilbc encoder intfc custom interface plugin
-*/
-#define KMmfUidCustomInterfaceIlbcDecoderIntfcDll 0x102825DB
-#define KMmfUidCustomInterfaceIlbcDecoderIntfcMux 0x10282605
-#define KMmfUidCustomInterfaceIlbcDecoderIntfcDeMux 0x102825DC
-
-/**
-* used internally to denote a Ilbc encoder intfc custom interface plugin
-*/
-#define KMmfUidCustomInterfaceIlbcEncoderIntfcDll 0x102825DD
-#define KMmfUidCustomInterfaceIlbcEncoderIntfcMux 0x10282606
-#define KMmfUidCustomInterfaceIlbcEncoderIntfcDeMux 0x102825DE
-
-/**
-* used internally to denote a error concealment intfc custom interface plugin
-*/
-#define KMmfUidCustomInterfaceErrorConcealmentIntfcDll 0x102825DF
-#define KMmfUidCustomInterfaceErrorConcealmentIntfcMux 0x10207AB6
-#define KMmfUidCustomInterfaceErrorConcealmentIntfcDeMux 0x102825E0
-
-/**
-* used internally to denote a gsm config custom interface plugin
-*/
-#define KMmfUidCustomInterfaceGsmConfigDll 0x1028261B
-#define KMmfUidCustomInterfaceGsmConfigMux 0x102825FC
-#define KMmfUidCustomInterfaceGsmConfigDeMux 0x1028261C
-
-/**
-* used internally to denote a underflow auto stop control custom interface plugin
-*/
-#define KMmfUidCustomInterfaceUnderflowAutoStopCtrlDll 0x1028261D
-#define KMmfUidCustomInterfaceUnderflowAutoStopCtrlMux 0x1028260B
-#define KMmfUidCustomInterfaceUnderflowAutoStopCtrlDeMux 0x1028261E
-
-/**
-* used internally to denote an EAac+ Decoder custom interface plugin
-*/
-#define KMmfUidCustomInterfaceEAacPlusDecoderDll 0x1027381c
-#define KMmfUidCustomInterfaceEAacPlusDecoderMux 0x102825ff
-#define KMmfUidCustomInterfaceEAacPlusDecoderDeMux 0x1027381d
-
-/**
-* used internally to denote an SBC Encoder custom interface plugin
-*/
-#define KMmfUidCustomInterfaceSbcEncoderDll 0x102825cd
-#define KMmfUidCustomInterfaceSbcEncoderMux 0x10282600
-#define KMmfUidCustomInterfaceSbcEncoderDeMux 0x102825ce
-
-/**
-* used internally to denote a Set DRM Protected custom interface plugin
-*/
-#define KMmfUidCustomInterfaceSetDRMProtectedDll 0x1027381e
-#define KMmfUidCustomInterfaceSetDRMProtectedMux 0x1028260c
-#define KMmfUidCustomInterfaceSetDRMProtectedDeMux 0x102825cf
-
-/**
-* used internally to denote an Advanced AAC Encode Settings custom interface plugin
-*/
-#define KMmfUidCustomInterfaceAdvancedAACEncodeSettingsDll 0x102825d1
-#define KMmfUidCustomInterfaceAdvancedAACEncodeSettingsMux 0x10273949
-#define KMmfUidCustomInterfaceAdvancedAACEncodeSettingsDeMux 0x102825d2
-
-/**
-* used internally to denote a Get Timestamps custom interface plugin
-*/
-#define KMmfUidCustomInterfaceGetTimestampsDll 0x102825ea
-#define KMmfUidCustomInterfaceGetTimestampsMux 0x1028260e
-#define KMmfUidCustomInterfaceGetTimestampsDeMux 0x102825eb
-
-/**
-* used internally to denote a Buffer Frames Configuration custom interface plugin
-*/
-#define KMmfUidCustomInterfaceBufferFramesConfigDll 0x102825ec
-#define KMmfUidCustomInterfaceBufferFramesConfigMux 0x1028260d
-#define KMmfUidCustomInterfaceBufferFramesConfigDeMux 0x102825ed
-
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/inc/plugin/DevSoundPlugin.h
--- a/devsound/devsoundpluginsupport/inc/plugin/DevSoundPlugin.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +0,0 @@
-
-// Copyright (c) 2001-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef DEVSOUNDPLUGIN_H
-#define DEVSOUNDPLUGIN_H
-
-_LIT8(KDevSoundPluginMatchString, "*"); // ECom insists on something
-
-/**
-Interface class used in the plugin implementation of DevSound.
-The CMMFDevSound implementation loads a plugin based on this interface class.
-Once this has been constructed, calls to method functions of CMMFDevSound are passed
-verbatim to this interface. For further description of required functionality,
-see CMMFDevSound.
-
-@see CMMFDevSound
-*/
-
-class MMMFDevSoundPlugin
- {
-public:
- /**
- This must provide an implementation as defined by CMMFDevSound::~CMMFDevSound()
-
- @see CMMFDevSound::~CMMFDevSound()
- */
- virtual ~MMMFDevSoundPlugin() {}
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)
-
- @param aDevSoundObserver
- A reference to DevSound Observer instance.
- @param aMode
- The mode for which this object will be used.
-
- @see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)
- */
- virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)=0;
-
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)
-
- @param aDevSoundObserver
- A reference to DevSound Observer instance.
- @param aHWDev
- The CMMFHwDevice implementation identifier.
- @param aMode
- The mode for which this object will be used.
-
- @see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)
- */
- virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)
-
- @param aDevSoundObserver
- A reference to DevSound Observer instance.
- @param aDesiredFourCC
- The CMMFHwDevice implementation FourCC code.
- @param aMode
- The mode for which this object will be used.
-
- @see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)
- */
- virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::Capabilities()
-
- @return The device settings.
-
- @see CMMFDevSound::Capabilities()
- */
- virtual TMMFCapabilities Capabilities()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::Config()
-
- @return The device settings.
-
- @see CMMFDevSound::Config()
- */
- virtual TMMFCapabilities Config() const=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::SetConfigL(const TMMFCapabilities& aCaps)
-
- @param aCaps The attribute values to which CMMFDevSound object will be configured to.
-
- @see CMMFDevSound::SetConfigL(const TMMFCapabilities& aCaps)
- */
- virtual void SetConfigL(const TMMFCapabilities& aCaps)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::MaxVolume()
-
- @return The maximum volume. This value is platform dependent but is always greater than or equal
- to one.
-
- @see CMMFDevSound::MaxVolume()
- */
- virtual TInt MaxVolume()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::Volume()
-
- @return The current volume level.
-
- @see CMMFDevSound::Volume()
- */
- virtual TInt Volume()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::SetVolume()
-
- @param aVolume
- The volume setting. This can be any value from 0 to the value
- returned by a call to CMMFDevSound::MaxVolume(). If the
- volume is not within this range, the volume is automatically set to
- minimum or maximum value based on the value that is being passed.
- Setting a zero value mutes the sound. Setting the maximum value
- results in the loudest possible sound.
-
- @see CMMFDevSound::SetVolume()
- */
- virtual void SetVolume(TInt aVolume)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::MaxGain()
-
- @return The maximum gain. This value is platform dependent but is always greater than or equal
- to one.
-
- @see CMMFDevSound::MaxGain()
- */
- virtual TInt MaxGain()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::Gain()
-
- @return The current gain level.
-
- @see CMMFDevSound::Gain()
- */
- virtual TInt Gain()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::SetGain()
-
- @param aGain
- The gain setting. This can be any value from zero to the value
- returned by a call to CMMFDevSound::MaxGain(). If the
- volume is not within this range, the gain is automatically set to
- minimum or maximum value based on the value that is being passed.
- Setting a zero value mutes the sound. Setting the maximum value
- results in the loudest possible sound.
- @see CMMFDevSound::SetGain()
- */
- virtual void SetGain(TInt aGain)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
-
- @param aLeftPercentage
- On return contains the left speaker volume percentage.
- @param aRightPercentage
- On return contains the right speaker volume percentage.
-
- @see CMMFDevSound::GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
- */
- virtual void GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
-
- @param aLeftPercentage
- On return contains left speaker volume perecentage. This can be any
- value from zero to 100. Setting a zero value mutes the sound on left
- speaker.
- @param aRightPercentage
- On return contains right speaker volume perecentage. This can be any
- value from zero to 100. Setting a zero value mutes the sound on
- right speaker.
-
- @see CMMFDevSound::SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
- */
- virtual void SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
-
- @param aLeftPercentage
- On return contains the left microphone gain percentage.
- @param aRightPercentage
- On return contains the right microphone gain percentage.
-
- @see CMMFDevSound::GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
- */
- virtual void GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::GetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
-
- @param aLeftPercentage
- The left microphone gain precentage. This can be any value from zero to
- 100. Setting a zero value mutes the gain on left microphone.
- @param aRightPercentage
- The right microphone gain precentage. This can be any value from zero to
- 100. Setting a zero value mutes the gain on right microphone.
-
- @see CMMFDevSound::GetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
- */
- virtual void SetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::PlayInitL()
-
- @see CMMFDevSound::PlayInitL()
- */
- virtual void PlayInitL()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::RecordInitL()
-
- @see CMMFDevSound::RecordInitL()
- */
- virtual void RecordInitL()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::PlayData()
-
- @see CMMFDevSound::PlayData()
- */
- virtual void PlayData()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::RecordData()
-
- @see CMMFDevSound::RecordData()
- */
- virtual void RecordData()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::Stop()
-
- @see CMMFDevSound::Stop()
- */
- virtual void Stop()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::Pause()
-
- @see CMMFDevSound::Pause()
- */
- virtual void Pause()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::SamplesRecorded()
-
- @return The samples recorded.
-
- @see CMMFDevSound::SamplesRecorded()
- */
- virtual TInt SamplesRecorded()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::SamplesPlayed()
-
- @return The samples played.
-
- @see CMMFDevSound::SamplesPlayed()
- */
- virtual TInt SamplesPlayed()=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)
-
- @param aFrequency
- The frequency at which the tone will be played.
- @param aDuration
- The period over which the tone will be played. A zero value causes
- the no tone to be played.
-
- @see CMMFDevSound::PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)
- */
- virtual void PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)
-
- @param aFrequencyOne
- The first frequency of dual tone.
- @param aFrequencyTwo
- The second frequency of dual tone
- @param aDuration
- The period over which the tone will be played. A zero value causes
- the no tone to be played (Verify this with test app).
-
- @see CMMFDevSound::PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)
- */
- virtual void PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::PlayDTMFStringL(const TDesC& aDTMFString)
-
- @param aDTMFString The DTMF sequence in a descriptor.
-
- @see CMMFDevSound::PlayDTMFStringL(const TDesC& aDTMFString)
- */
- virtual void PlayDTMFStringL(const TDesC& aDTMFString)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::PlayToneSequenceL(const TDesC8& aData)
-
- @param aData The tone sequence in a descriptor.
-
- @see CMMFDevSound::PlayToneSequenceL(const TDesC8& aData)
- */
- virtual void PlayToneSequenceL(const TDesC8& aData)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::PlayFixedSequenceL(TInt aSequenceNumber)
-
- @param aSequenceNumber
- The index identifying the specific pre-defined tone sequence. Index
- values are relative to zero.
- This can be any value from zero to the value returned by a call to
- FixedSequenceCount() - 1.
- The function raises a panic if the sequence number is not within this
- range.
-
- @see CMMFDevSound::PlayFixedSequenceL(TInt aSequenceNumber)
- @see FixedSequenceCount()
- */
- virtual void PlayFixedSequenceL(TInt aSequenceNumber)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::SetToneRepeats(TInt aRepeatCount,
- const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)
-
- @param aRepeatCount
- The number of times the tone, together with the trailing silence,
- is to be repeated. If this is set to KMdaRepeatForever, then the
- tone, together with the trailing silence, is repeated indefinitely
- or until Stop() is called. If this is set to zero, then the tone is
- not repeated.
- @param aRepeatTrailingSilence
- An interval of silence which will be played after each tone.
- Supported only during tone playing.
-
- @see CMMFDevSound::SetToneRepeats(TInt aRepeatCount,
- const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)
- */
- virtual void SetToneRepeats(TInt aRepeatCount,
- const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::(TTimeIntervalMicroSeconds32& aToneOnLength,
- TTimeIntervalMicroSeconds32& aToneOffLength,
- TTimeIntervalMicroSeconds32& aPauseLength)
-
- @param aToneOnLength
- The period over which the tone will be played. If this is set to
- zero, then the tone is not played.
- @param aToneOffLength
- The period over which the no tone will be played.
- @param aPauseLength
- The period over which the tone playing will be paused.
-
- @see CMMFDevSound::(TTimeIntervalMicroSeconds32& aToneOnLength,
- TTimeIntervalMicroSeconds32& aToneOffLength,
- TTimeIntervalMicroSeconds32& aPauseLength)
- */
- virtual void SetDTMFLengths(TTimeIntervalMicroSeconds32& aToneOnLength,
- TTimeIntervalMicroSeconds32& aToneOffLength,
- TTimeIntervalMicroSeconds32& aPauseLength)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
-
- @param aRampDuration
- The period over which the volume is to rise. A zero value causes
- the tone sample to be played at the normal level for the full
- duration of the playback. A value, which is longer than the duration
- of the tone sample means that the sample never reaches its normal
- volume level.
-
- @see CMMFDevSound::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
- */
- virtual void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)
-
- @param aPrioritySettings
- A class type representing the client's priority, priority preference and state.
-
- @see CMMFDevSound::SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)
- */
- virtual void SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::CustomInterface(TUid aInterfaceId)
-
- @param aInterfaceId
- The interface UID, defined with the custom interface.
-
- @return A pointer to the interface implementation, or NULL if the device does not
- implement the interface requested. The return value must be cast to the
- correct type by the user.The user should be careful while caching the custom interface pointer,
- as in some situations the lower level custom interface pointer may become NULL
-
- @see CMMFDevSound::CustomInterface(TUid aInterfaceId)
- */
- virtual TAny* CustomInterface(TUid aInterfaceId)=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::FixedSequenceCount()
-
- @return The fixed sequence count. This value is implementation dependent but is always greater
- than or equal to zero.
-
- @see CMMFDevSound::FixedSequenceCount()
- */
- virtual TInt FixedSequenceCount()=0;
-
- /**
- This must provide an implementation as defined by CMMFDevSound::FixedSequenceName(TInt aSequenceNumber)
-
- @param aSequenceNumber
- The index identifying the specific pre-defined tone sequence. Index values are relative
- to zero. This can be any value from zero to the value returned by a call to
- FixedSequenceCount() - 1.
- The function raises a panic if sequence number is not within this
- range.
-
- @return A reference to a Descriptor containing the fixed sequence name indexed by
- aSequenceNumber.
-
- @see CMMFDevSound::FixedSequenceName(TInt aSequenceNumber)
- @see FixedSequenceCount()
- */
- virtual const TDesC& FixedSequenceName(TInt aSequenceNumber)=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::GetSupportedInputDataTypesL(RArray& aSupportedDataTypes,
- const TMMFPrioritySettings& aPrioritySettings) const
-
- @param aSupportedDataTypes
- The array of supported data types that will be filled in by this function.
- The supported data types of the DevSound are in the form of an array
- of TFourCC codes. Any existing entries in the array will be overwritten on
- calling this function. If no supported data types are found given the priority
- settings, then the aSupportedDatatypes array will have zero entries.
- @param aPrioritySettings
- The priority settings used to determine the supported datatypes. Note this
- does not set the priority settings. For input datatypes the iState member
- of the priority settings would be expected to be either
- EMMFStatePlaying or EMMFStatePlayingRecording. The priority settings may
- effect the supported datatypes depending on the audio routing.
-
- @see CMMFDevSound::GetSupportedInputDataTypesL(RArray& aSupportedDataTypes,
- const TMMFPrioritySettings& aPrioritySettings) const
- */
- virtual void GetSupportedInputDataTypesL(RArray& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const=0;
-
- /**
- This must provide an implementation as defined by
- CMMFDevSound::GetSupportedOutputDataTypesL(RArray& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const
-
- @param aSupportedDataTypes
- The array of supported data types that will be filled in by this function.
- The supported datatypes of the DevSound are in the form of an array
- of TFourCC codes.
- Any existing entries in the array will be overwritten on calling this function.
- If no supported datatypes are found given the priority settings, then
- the aSupportedDatatypes array will have zero entries.
- @param aPrioritySettings
- The priority settings used to determine the supported data types. Note this
- does not set the priority settings. For output data types the iState member
- of the priority settings would expected to be either
- EMMFStateRecording or EMMFStatePlayingRecording. The priority settings may
- effect the supported datatypes depending on the audio routing.
-
- @see CMMFDevSound::GetSupportedOutputDataTypesL(RArray& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const
- */
- virtual void GetSupportedOutputDataTypesL(RArray& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const=0;
-
- };
-
-#endif // DEVSOUNDPLUGIN_H
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCIFileBlockLength.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCIFileBlockLength.mmp Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-// Copyright (c) 2006-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:
-//
-
-#include "../src/custominterfaces/cmmfdevsoundcifileblocklengthimpluid.hrh"
-
-/**
-@file
-
-@SYMPurpose DevSound custom interface to allow block length to be set
-*/
-
-TARGET mmfdevsoundcifileblocklength.dll
-CAPABILITY ALL -TCB
-TARGETTYPE PLUGIN
-UNPAGED
-
-UID 0x10009D8D KMmfUidCIFileBlockLengthDll
-VENDORID 0x70000001
-
-SOURCEPATH ../src/custominterfaces
-
-SOURCE cmmfdevsoundcifileblocklength.cpp
-
-
-START RESOURCE 102737FD.rss
-#ifdef SYMBIAN_SECURE_ECOM
-TARGET mmfdevsoundcifileblocklength.rsc
-#endif
-END
-
-USERINCLUDE ../src/CustomInterfaces
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY euser.lib
-LIBRARY mmfserverbaseclasses.lib
-LIBRARY mmfcontrollerframework.lib
-LIBRARY ecom.lib
-LIBRARY estor.lib
-
-
-SMPSAFE
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCustomInterfaceBitRate.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCustomInterfaceBitRate.mmp Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// Copyright (c) 2005-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:
-//
-
-#include "../src/CustomInterfaces/cmmfdevsoundcibitrateimplementationuid.hrh"
-
-/**
-@file
-
-@SYMPurpose mmfdevsoundcustominterfacebitrate.dll
-*/
-
-TARGET mmfdevsoundcustominterfacebitrate.dll
-CAPABILITY ALL -TCB
-TARGETTYPE PLUGIN
-UNPAGED
-
-UID 0x10009D8D KMmfUidCustomInterfaceBitRateDll
-VENDORID 0x70000001
-
-SOURCEPATH ../src/CustomInterfaces
-
-SOURCE cmmfdevsoundcibitrate.cpp
-
-
-START RESOURCE 102070B4.rss
-TARGET mmfdevsoundcustominterfacebitrate.rsc
-END
-
-
-USERINCLUDE ../src/CustomInterfaces
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY euser.lib
-LIBRARY mmfserverbaseclasses.lib
-LIBRARY mmfcontrollerframework.lib
-LIBRARY ecom.lib
-LIBRARY estor.lib
-
-
-SMPSAFE
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/aacdecoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/aacdecoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/aacdecoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceAacDecoderConfigDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE aacdecoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/advancedaacencodesettingsci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/advancedaacencodesettingsci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/advancedaacencodesettingsci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceAdvancedAACEncodeSettingsDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE advancedaacencodesettingsci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/audiobufferprefillci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/audiobufferprefillci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/audiobufferprefillci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceSampleBufferingDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE audiobufferprefillci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/audiovibracontrolci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/audiovibracontrolci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/audiovibracontrolci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceAudioVibraControlDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE audiovibracontrolci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/bufferframesconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/bufferframesconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/bufferframesconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceBufferFramesConfigDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE bufferframesconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/dspcontrolci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/dspcontrolci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/dspcontrolci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceDspControlDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE dspcontrolci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/eaacplusdecoderci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/eaacplusdecoderci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/eaacplusdecoderci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceEAacPlusDecoderDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE eaacplusdecoderci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/errorconcealmentci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/errorconcealmentci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/errorconcealmentci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceErrorConcealmentIntfcDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE errorconcealmentci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/g711decoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/g711decoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/g711decoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceG711DecoderIntfcDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE g711decoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/g711encoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/g711encoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/g711encoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceG711EncoderIntfcDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE g711encoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/g729decoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/g729decoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/g729decoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceG729DecoderIntfcDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE g729decoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/g729encoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/g729encoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/g729encoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceG729EncoderIntfcDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE g729encoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/gettimestampsci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/gettimestampsci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/gettimestampsci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceGetTimestampsDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE gettimestampsci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/gsmconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/gsmconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/gsmconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceGsmConfigDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE gsmconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/ilbcdecoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/ilbcdecoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/ilbcdecoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceIlbcDecoderIntfcDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE ilbcdecoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/ilbcencoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/ilbcencoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/ilbcencoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceIlbcEncoderIntfcDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE ilbcencoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/playbackstatusci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/playbackstatusci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/playbackstatusci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfacePlayBackStatusDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE playbackstatusci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/sbcencoderci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/sbcencoderci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/sbcencoderci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceSbcEncoderDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE sbcencoderci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/setdrmprotectedci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/setdrmprotectedci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/setdrmprotectedci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceSetDRMProtectedDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE setdrmprotectedci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/speechencoderconfigci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/speechencoderconfigci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/speechencoderconfigci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceSpeechEncoderConfigDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE speechencoderconfigci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/mmpfiles/underflowautostopcontrolci.mmp
--- a/devsound/devsoundpluginsupport/mmpfiles/underflowautostopcontrolci.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundpluginsupport/mmpfiles/underflowautostopcontrolci.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -28,7 +28,7 @@
UID 0x10009D8D KMmfUidCustomInterfaceUnderflowAutoStopCtrlDll
VENDORID 0x70000001
-SOURCEPATH ../src/custominterfaces
+SOURCEPATH ../src/CustomInterfaces
SOURCE underflowautostopcontrolci.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIBitRate.cpp
--- a/devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIBitRate.cpp Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,459 +0,0 @@
-/*
-* Copyright (c) 2005 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:
-*
-*/
-
-
-#include "cmmfdevsoundcibitrateimplementationuid.hrh"
-
-#include
-#include
-#include
-
-#include "cmmfdevsoundcibitrate.h"
-
-// __________________________________________________________________________
-// Implementation
-
-////////////////////////////////////////// MUX /////////////////////
-
-TInt CMMFDevSoundCIBitRateMux::OpenInterface(TUid /*aInterfaceId*/)
- {
- // attempt to open the interface link with the
- // remote slave device
- iRemoteHandle = -1;
- TUid slaveId = {KMmfUidCustomInterfaceBitRateDeMux};
-
- TInt handle = iUtility->OpenSlave(slaveId, KNullDesC8);
- if (handle >= 0)
- {
- iRemoteHandle = handle;
- }
-
- return iRemoteHandle;
- }
-
-void CMMFDevSoundCIBitRateMux::Release()
- {
- // close the slave device if it exists
- if (iRemoteHandle != -1)
- {
- // we assume the slave is closed correctly
- iUtility->CloseSlave(iRemoteHandle);
- }
-
- TUid key = iKey;
- delete this;
-
- // tell ECom to destroy us
- REComSession::DestroyedImplementation(key);
- }
-
-void CMMFDevSoundCIBitRateMux::PassDestructorKey(TUid aDestructorKey)
- {
- // store the destructor key
- iKey = aDestructorKey;
- }
-
-void CMMFDevSoundCIBitRateMux::CompleteConstructL(MMMFDevSoundCustomInterfaceMuxUtility* aCustomUtility)
- {
- // store a pointer to the utility
- iUtility = aCustomUtility;
- }
-
-MMMFDevSoundCustomInterfaceMuxPlugin* CMMFDevSoundCIBitRateMux::NewL()
- {
- CMMFDevSoundCIBitRateMux* self = new (ELeave) CMMFDevSoundCIBitRateMux;
- return self;
- }
-
-TAny* CMMFDevSoundCIBitRateMux::CustomInterface(TUid /*aInterfaceId*/)
- {
- MMMFDevSoundCustomInterfaceBitRate* interface = this;
- return interface;
- }
-
-CMMFDevSoundCIBitRateMux::CMMFDevSoundCIBitRateMux() :
- iRemoteHandle(-1)
- {
- }
-
-CMMFDevSoundCIBitRateMux::~CMMFDevSoundCIBitRateMux()
- {
- }
-
-// from MMMFDevSoundCustomInterfaceBitRate
-void CMMFDevSoundCIBitRateMux::GetSupportedBitRatesL(RArray& aSupportedBitRates)
- {
- if (iRemoteHandle == -1)
- {
- User::Leave(KErrNotReady);
- }
-
- // first clear out the array
- aSupportedBitRates.Reset();
-
- // now fetch the count from the server
- TInt count = -1;
- count = iUtility->SendSlaveSyncCommand(iRemoteHandle, EMMFDevSoundCIBitRateGetSupportedBitRates, KNullDesC8);
-
- // if count is negative then the server side left with an error
- if (count < 0)
- {
- User::Leave(count);
- }
-
- // no point getting the data if the count is zero
- if (count != 0)
- {
- // allocate a temporary buffer to hold the bitrates
- HBufC8* buf = HBufC8::NewLC(count * sizeof(TInt32));
- TPtr8 ptr = buf->Des();
-
- // fetch the bitrates - but send over the received count to be sure
- TPckgBuf countBuf(count);
- User::LeaveIfError(iUtility->SendSlaveSyncCommandResult(
- iRemoteHandle,
- EMMFDevSoundCIBitRateGetSupportedBitRatesArray,
- countBuf, ptr));
-
- // stream data into the pointer
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- TInt err = KErrNone;
- for (TInt i = 0; i < count; i++)
- {
- // note we don't destroy array because we don't own it
- // but we do reset it as it is incomplete
- err = aSupportedBitRates.Append(stream.ReadInt32L());
- if (err != KErrNone)
- {
- aSupportedBitRates.Reset();
- User::Leave(KErrCorrupt);
- }
- }
-
- CleanupStack::PopAndDestroy(2, buf);// stream, buf
- }
- }
-
-TInt CMMFDevSoundCIBitRateMux::BitRateL()
- {
- if (iRemoteHandle == -1)
- {
- User::Leave(KErrNotReady);
- }
-
- // send EMMFDevSoundCIBitRateBitRate command to slave
- TInt bitrate = 0;
- bitrate = iUtility->SendSlaveSyncCommand(iRemoteHandle, EMMFDevSoundCIBitRateBitRate, KNullDesC8);
-
- // if bitrate is negative then remote side left with an error
- if (bitrate < 0)
- {
- User::Leave(bitrate);
- }
-
- return bitrate;
- }
-
-void CMMFDevSoundCIBitRateMux::SetBitRateL(TInt aBitRate)
- {
- if (iRemoteHandle == -1)
- {
- User::Leave(KErrNotReady);
- }
-
- // send the bitrate in the sync command
- TPckgBuf bitBuffer(aBitRate);
-
- // any return code other than zero is an error
- User::LeaveIfError(iUtility->SendSlaveSyncCommand(iRemoteHandle, EMMFDevSoundCIBitRateSetBitRate, bitBuffer));
- }
-
-/////////////////////////////////////// DEMUX //////////////////////
-
-
-TInt CMMFDevSoundCIBitRateDeMux::OpenInterface(TUid /*aInterfaceId*/)
- {
- return KErrNone;
- }
-
-void CMMFDevSoundCIBitRateDeMux::Release()
- {
- TUid key = iKey;
-
- delete this;
-
- // tell ECom to destroy us
- REComSession::DestroyedImplementation(key);
- }
-
-void CMMFDevSoundCIBitRateDeMux::PassDestructorKey(TUid aDestructorKey)
- {
- // store the destructor key
- iKey = aDestructorKey;
- }
-
-void CMMFDevSoundCIBitRateDeMux::SetInterfaceTarget(MMMFDevSoundCustomInterfaceTarget* aTarget)
- {
- iTarget = aTarget;
- }
-
-void CMMFDevSoundCIBitRateDeMux::CompleteConstructL(MMMFDevSoundCustomInterfaceDeMuxUtility* aCustomUtility)
- {
- // store a pointer to the utility
- iUtility = aCustomUtility;
- }
-
-void CMMFDevSoundCIBitRateDeMux::RefreshL()
- {
- // refetch the bitrate custom interface if we already have a target
- if (iTarget)
- {
- MMMFDevSoundCustomInterfaceBitRate* ptr = NULL;
- ptr = static_cast (iTarget->CustomInterface(KUidCustomInterfaceDevSoundBitRate));
-
- if (!ptr)
- {
- iBitRateInterface = NULL;
- User::Leave(KErrNotSupported);
- }
- else
- {
- iBitRateInterface = ptr;
- }
- }
- }
-
-
-MMMFDevSoundCustomInterfaceDeMuxPlugin* CMMFDevSoundCIBitRateDeMux::NewL()
- {
- CMMFDevSoundCIBitRateDeMux* self = new (ELeave) CMMFDevSoundCIBitRateDeMux;
- return self;
- }
-
-CMMFDevSoundCIBitRateDeMux::CMMFDevSoundCIBitRateDeMux()
- {
-
- }
-
-CMMFDevSoundCIBitRateDeMux::~CMMFDevSoundCIBitRateDeMux()
- {
- iBitRateArray.Reset();
- iBitRateArray.Close();
- }
-
-
-TInt CMMFDevSoundCIBitRateDeMux::DoOpenSlaveL(TUid /*aInterface*/, const TDesC8& /*aPackageBuf*/)
- {
- // fetch the bitrate custom interface
- MMMFDevSoundCustomInterfaceBitRate* ptr = NULL;
- ptr = static_cast (iTarget->CustomInterface(KUidCustomInterfaceDevSoundBitRate));
-
- if (!ptr)
- {
- iBitRateInterface = NULL;
- User::Leave(KErrNotSupported);
- }
- else
- {
- iBitRateInterface = ptr;
- }
- return KErrNone;
- }
-
-void CMMFDevSoundCIBitRateDeMux::DoCloseSlaveL(TInt /*aHandle*/)
- {
- // nothing to do
- }
-
-// original RMessage is supplied so that remote demux plugin can extract necessary details
-// using DeMux utility
-TInt CMMFDevSoundCIBitRateDeMux::DoSendSlaveSyncCommandL(const RMmfIpcMessage& aMessage)
- {
- TMMFDevSoundCIMessageData data;
-
- // decode message
- iUtility->GetSyncMessageDataL(aMessage, data);
- TInt retVal = -1;
-
- switch (data.iCommand)
- {
- case EMMFDevSoundCIBitRateBitRate:
- {
- retVal = DoBitRateL();
- break;
- }
- case EMMFDevSoundCIBitRateSetBitRate:
- {
- // we know that offset 2 contains a TInt
- TPckgBuf bitBuffer;
- iUtility->ReadFromInputDesL(aMessage, &bitBuffer);
-
- DoSetBitRateL(bitBuffer());
- retVal = KErrNone;
- break;
- }
- case EMMFDevSoundCIBitRateGetSupportedBitRates:
- {
- // reset the current bitrate array
- iBitRateArray.Reset();
- DoGetSupportedBitRatesL(iBitRateArray);
-
- // send back the array count
- TInt count = iBitRateArray.Count();
- retVal = count;
- break;
- }
- default:
- {
- User::Leave(KErrNotSupported);
- }
- }
-
- return retVal;
- }
-
-TInt CMMFDevSoundCIBitRateDeMux::DoSendSlaveSyncCommandResultL(const RMmfIpcMessage& aMessage)
- {
- TMMFDevSoundCIMessageData data;
-
- // decode message
- iUtility->GetSyncMessageDataL(aMessage, data);
-
- switch (data.iCommand)
- {
- case EMMFDevSoundCIBitRateGetSupportedBitRatesArray:
- {
- DoCopyBitRateBufferToClientL(aMessage);
- break;
- }
- default:
- {
- User::Leave(KErrNotSupported);
- }
- }
- return KErrNone;
- }
-
-void CMMFDevSoundCIBitRateDeMux::DoSendSlaveAsyncCommandL(const RMmfIpcMessage& /*aMessage*/)
- {
- // not used in this interface
- }
-
-void CMMFDevSoundCIBitRateDeMux::DoSendSlaveAsyncCommandResultL(const RMmfIpcMessage& /*aMessage*/)
- {
- // not used in this interface
- }
-
-// bitrate custom interface implementation
-void CMMFDevSoundCIBitRateDeMux::DoGetSupportedBitRatesL(RArray& aSupportedBitRates)
- {
- if (!iBitRateInterface)
- {
- User::Leave(KErrNotReady);
- }
-
- iBitRateInterface->GetSupportedBitRatesL(aSupportedBitRates);
- }
-
-
-void CMMFDevSoundCIBitRateDeMux::DoCopyBitRateBufferToClientL(const RMmfIpcMessage& aMessage)
- {
- if (!iBitRateInterface)
- {
- User::Leave(KErrNotReady);
- }
-
- // check our count is the same as the client's
- TPckgBuf countBuffer;
- iUtility->ReadFromInputDesL(aMessage, &countBuffer);
-
- TInt count = countBuffer();
- if (count != iBitRateArray.Count())
- {
- User::Leave(KErrCorrupt);
- }
-
- // send back the array - the client has the count already
- const TInt KBufExpandSize8 = 8; //two TInt's
- CBufFlat* dataCopyBuffer = CBufFlat::NewL(KBufExpandSize8);
- CleanupStack::PushL(dataCopyBuffer);
- RBufWriteStream stream;
- stream.Open(*dataCopyBuffer);
- CleanupClosePushL(stream);
-
- for (TInt i = 0; i < count; i++)
- {
- stream.WriteInt32L(iBitRateArray[i]);
- }
-
- // write the data to the supplied descriptor buffer
- TPtr8 ptrBuf = dataCopyBuffer->Ptr(0);
- iUtility->WriteToOutputDesL(aMessage, ptrBuf);
- stream.Close();
-
- CleanupStack::PopAndDestroy(2); // iDataCopyBuffer, stream
- }
-
-
-TInt CMMFDevSoundCIBitRateDeMux::DoBitRateL()
- {
- if (!iBitRateInterface)
- {
- User::Leave(KErrNotReady);
- }
- return iBitRateInterface->BitRateL();
- }
-
-void CMMFDevSoundCIBitRateDeMux::DoSetBitRateL(TInt aBitRate)
- {
- if (!iBitRateInterface)
- {
- User::Leave(KErrNotReady);
- }
-
- // set the bitrate
- iBitRateInterface->SetBitRateL(aBitRate);
- }
-
-
-
-//
-// ImplementationTable
-//
-
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KMmfUidCustomInterfaceBitRateMux, CMMFDevSoundCIBitRateMux::NewL),
- IMPLEMENTATION_PROXY_ENTRY(KMmfUidCustomInterfaceBitRateDeMux, CMMFDevSoundCIBitRateDeMux::NewL),
- };
-
-
-//
-// ImplementationGroupProxy
-//
-////////////////////////////////////////////////////////////////////////////////
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
- return ImplementationTable;
- }
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIBitRate.h
--- a/devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIBitRate.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
-// Copyright (c) 2005-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:
-//
-
-#ifndef CMMFDEVSOUNDCIBITRATE_H
-#define CMMFDEVSOUNDCIBITRATE_H
-
-#include
-#include
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include
-#endif
-#include
-#include
-#include
-
-/**
- @internalComponent
- @prototype
- @file
- */
-
-enum TMMFDevSoundCIBitRateCommands
- {
- EMMFDevSoundCIBitRateBitRate = 0,
- EMMFDevSoundCIBitRateSetBitRate,
- EMMFDevSoundCIBitRateGetSupportedBitRates,
- EMMFDevSoundCIBitRateGetSupportedBitRatesArray
- };
-
-/**
- * CMMFDevSoundCIBitRate
- *
- * implementation of the BitRate custom interface pair
- */
-class CMMFDevSoundCIBitRateMux : public CBase,
- public MMMFDevSoundCustomInterfaceMuxPlugin,
- public MMMFDevSoundCustomInterfaceBitRate
- {
-public:
- /**
- Attempt to open the interface.
- @param aInterfaceId
- The UID of the interface to open.
- @return one of the system wide error codes
- */
- virtual TInt OpenInterface(TUid aInterfaceId);
-
- /**
- Equivalent to destructor. Called to destroy plugin.
- */
- virtual void Release();
- /**
- Pass destructor key.
- Called on construction so plugin takes responsibility to call REComSession::DestroyedImplementation()
- @param aDestructorKey
- The Uid returned by REComSession::CreateImplementationL() or similar
- */
- virtual void PassDestructorKey(TUid aDestructorKey);
-
- /**
- Complete construction.
- Pass additional values from the construction phase, used subsequently by the plugin.
- @param aCustomUtility
- The custom interface utility used by the plugin to communicate with the remote
- server side DeMux plugin
- */
- virtual void CompleteConstructL(MMMFDevSoundCustomInterfaceMuxUtility* aCustomUtility);
-
- /**
- Return the custom interface
- @param aInterfaceId
- The UID of the required custom interface
- @return the custom interface supported by this plugin
- */
- virtual TAny* CustomInterface(TUid aInterfaceId);
-
- /**
- Instantiate a CMMFDevSoundCIBitRateMux class
- @return the pointer to the new class, cast to the Mux plugin mixin
- */
- static MMMFDevSoundCustomInterfaceMuxPlugin* NewL();
-
-protected:
- // from MMMFDevSoundCustomInterfaceBitRate
- virtual void GetSupportedBitRatesL(RArray& aSupportedBitRates);
- virtual TInt BitRateL();
- virtual void SetBitRateL(TInt aBitRate);
-
- CMMFDevSoundCIBitRateMux();
- ~CMMFDevSoundCIBitRateMux();
-
-protected:
- TUid iKey;
- TInt iRemoteHandle;
- MMMFDevSoundCustomInterfaceMuxUtility* iUtility;
- };
-
-
-/**
- * DeMux side of pair
- */
-
-class CMMFDevSoundCIBitRateDeMux : public CBase,
- public MMMFDevSoundCustomInterfaceDeMuxPlugin
- {
-public:
- /**
- Instantiate a CMMFDevSoundCIBitRateDeMux class
- @return a pointer to the new class cast to the DeMux plugin mixin
- */
- static MMMFDevSoundCustomInterfaceDeMuxPlugin* NewL();
-
- /**
- Attempt to open the interface.
- @param aInterfaceId
- The UID of the interface to open.
- @return a handle to the remote plugin
- */
- virtual TInt OpenInterface(TUid aInterfaceId);
-
- /**
- Equivalent to destructor. Called to destroy plugin.
- */
- virtual void Release();
- /**
- Pass destructor key.
- Called on construction so plugin takes responsibility to call REComSession::DestroyedImplementation()
- @param aDestructorKey
- The Uid returned by REComSession::CreateImplementationL() or similar
- */
- virtual void PassDestructorKey(TUid aDestructorKey);
-
- /**
- Set the target of the custom interface call
- @param aTarget
- The DevSound to call the custom interface on.
- */
- virtual void SetInterfaceTarget(MMMFDevSoundCustomInterfaceTarget* aTarget);
-
- /**
- Complete construction.
- @param aUtility
- The DeMux utility to use
- */
- virtual void CompleteConstructL(MMMFDevSoundCustomInterfaceDeMuxUtility* aUtility);
-
- /**
- Refresh the current custom interface connections
- */
- virtual void RefreshL();
-
- // from MMMFDeMuxInterface
- /**
- Open the slave
- @param aInterface
- The UID of the requested interface
- @param aPackageBuf
- A package of data that can be supplied for initialisation
- @return the result of the operation
- */
- virtual TInt DoOpenSlaveL(TUid aInterface, const TDesC8& aPackageBuf);
-
- /**
- Close the slave
- @param aHandle
- The handle of the slave plugin
- */
- virtual void DoCloseSlaveL(TInt aHandle);
-
- // original RMessage is supplied so that remote demux plugin can extract necessary details
- // using DeMux utility
-
- /**
- Relay the synchronous custom command onto the slave
- @param aMessage
- The IPC message to be sent to the slave
- @return the result of the operation
- */
- virtual TInt DoSendSlaveSyncCommandL(const RMmfIpcMessage& aMessage);
-
- /**
- Relay the synchronous custom command onto the slave and obtain a result
- @param aMessage
- The IPC message to be sent to the slave
- @return the result of the operation
- */
- virtual TInt DoSendSlaveSyncCommandResultL(const RMmfIpcMessage& aMessage);
-
- /**
- Relay an asynchronous command onto the slave
- @param aMessage
- The IPC message to be sent to the slave
- */
- virtual void DoSendSlaveAsyncCommandL(const RMmfIpcMessage& aMessage);
-
- /**
- Relay an asynchronous command onto the slave and obtain a result
- @param aMessage
- The IPC message to be sent to the slave@param aMessage
- */
- virtual void DoSendSlaveAsyncCommandResultL(const RMmfIpcMessage& aMessage);
-
-protected:
- ~CMMFDevSoundCIBitRateDeMux();
- CMMFDevSoundCIBitRateDeMux();
-
- // implementation of bitrate custom interface
- void DoGetSupportedBitRatesL(RArray& aSupportedBitRates);
- void DoCopyBitRateBufferToClientL(const RMmfIpcMessage& aMessage);
- TInt DoBitRateL();
- void DoSetBitRateL(TInt aBitRate);
-
-protected:
- MMMFDevSoundCustomInterfaceDeMuxUtility* iUtility;
- MMMFDevSoundCustomInterfaceTarget* iTarget;
- MMMFDevSoundCustomInterfaceBitRate* iBitRateInterface;
- TUid iKey;
-
- // array for bitrates
- RArray iBitRateArray;
- };
-
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIBitRateImplementationUID.hrh
--- a/devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIBitRateImplementationUID.hrh Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 2005-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:
-//
-
-/**
- @file
- @internalTechnology
-*/
-
-#ifndef __CMMFDEVSOUNDCIBITRATEIMPLEMENTATIONUID_HRH__
-#define __CMMFDEVSOUNDCIBITRATEIMPLEMENTATIONUID_HRH__
-
-// These are the ECOM Implementation UIDs for the Bitrate Custom Interface
-
-#define KMmfUidCustomInterfaceBitRateDll 0x102070b4
-
-// The below interface is currently defined but has been supplied by a
-// licensee. If this is deemed to be a problem then use 0x102070b5 instead
-#define KMmfUidCustomInterfaceBitRateMux 0x101F7DD5
-
-#define KMmfUidCustomInterfaceBitRateDeMux 0x102070b6
-
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLength.cpp
--- a/devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLength.cpp Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-// Copyright (c) 2006-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:
-//
-
-#include "cmmfdevsoundcifileblocklengthimpluid.hrh"
-
-#include
-#include
-#include
-#include
-
-#include "cmmfdevsoundcifileblocklength.h"
-
-// __________________________________________________________________________
-// Implementation
-
-// MUX //
-
-TInt CMMFDevSoundCIFileBlockLengthMux::OpenInterface(TUid /*aInterfaceId*/)
- {
- // attempt to open the interface link with the
- // remote slave device
- iRemoteHandle = -1;
- TUid slaveId = {KMmfUidCIFileBlockLengthDeMux};
-
- TInt handle = iUtility->OpenSlave(slaveId, KNullDesC8);
- if (handle >= 0)
- {
- iRemoteHandle = handle;
- }
-
- return iRemoteHandle;
- }
-
-void CMMFDevSoundCIFileBlockLengthMux::Release()
- {
- // close the slave device if it exists
- if (iRemoteHandle != -1)
- {
- // we assume the slave is closed correctly
- iUtility->CloseSlave(iRemoteHandle);
- }
-
- TUid key = iKey;
- delete this;
-
- // tell ECom to destroy us
- REComSession::DestroyedImplementation(key);
- }
-
-void CMMFDevSoundCIFileBlockLengthMux::PassDestructorKey(TUid aDestructorKey)
- {
- // store the destructor key
- iKey = aDestructorKey;
- }
-
-void CMMFDevSoundCIFileBlockLengthMux::CompleteConstructL(MMMFDevSoundCustomInterfaceMuxUtility* aCustomUtility)
- {
- // store a pointer to the utility
- iUtility = aCustomUtility;
- }
-
-MMMFDevSoundCustomInterfaceMuxPlugin* CMMFDevSoundCIFileBlockLengthMux::NewL()
- {
- CMMFDevSoundCIFileBlockLengthMux* self = new (ELeave) CMMFDevSoundCIFileBlockLengthMux;
- return self;
- }
-
-TAny* CMMFDevSoundCIFileBlockLengthMux::CustomInterface(TUid /*aInterfaceId*/)
- {
- MMMFDevSoundCustomInterfaceFileBlockLength* interface = this;
- return interface;
- }
-
-CMMFDevSoundCIFileBlockLengthMux::CMMFDevSoundCIFileBlockLengthMux() :
- iRemoteHandle(-1)
- {
- }
-
-CMMFDevSoundCIFileBlockLengthMux::~CMMFDevSoundCIFileBlockLengthMux()
- {
- }
-
-// from MMMFDevSoundCustomInterfaceFileBlockLength
-
-void CMMFDevSoundCIFileBlockLengthMux::SetFileBlockLength(TUint aBlockAlign)
- {
- if (iRemoteHandle == -1)
- {
- return;
- }
-
- // send the BlockAlign in the sync command
- TPckgBuf blockAlignBuffer(aBlockAlign);
-
- iUtility->SendSlaveSyncCommand(iRemoteHandle, EMMFDevSoundCIBlockLengthSetFileBlockLength, blockAlignBuffer);
- }
-
-// DEMUX //
-
-
-TInt CMMFDevSoundCIFileBlockLengthDeMux::OpenInterface(TUid /*aInterfaceId*/)
- {
- return KErrNone;
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::Release()
- {
- TUid key = iKey;
-
- delete this;
-
- // tell ECom to destroy us
- REComSession::DestroyedImplementation(key);
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::PassDestructorKey(TUid aDestructorKey)
- {
- // store the destructor key
- iKey = aDestructorKey;
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::SetInterfaceTarget(MMMFDevSoundCustomInterfaceTarget* aTarget)
- {
- iTarget = aTarget;
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::CompleteConstructL(MMMFDevSoundCustomInterfaceDeMuxUtility* aCustomUtility)
- {
- // store a pointer to the utility
- iUtility = aCustomUtility;
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::RefreshL()
- {
- // refetch the fileblocklength custom interface if we already have a target
- if (iTarget)
- {
- MMMFDevSoundCustomInterfaceFileBlockLength* ptr = NULL;
- ptr = static_cast(iTarget->CustomInterface(KUidCustomInterfaceDevSoundFileBlockLength));
-
- if (!ptr)
- {
- iFileBlockLengthInterface = NULL;
- User::Leave(KErrNotSupported);
- }
- else
- {
- iFileBlockLengthInterface = ptr;
- }
- }
- }
-
-
-MMMFDevSoundCustomInterfaceDeMuxPlugin* CMMFDevSoundCIFileBlockLengthDeMux::NewL()
- {
- CMMFDevSoundCIFileBlockLengthDeMux* self = new (ELeave) CMMFDevSoundCIFileBlockLengthDeMux;
- return self;
- }
-
-CMMFDevSoundCIFileBlockLengthDeMux::CMMFDevSoundCIFileBlockLengthDeMux()
- {
- }
-
-CMMFDevSoundCIFileBlockLengthDeMux::~CMMFDevSoundCIFileBlockLengthDeMux()
- {
- }
-
-
-TInt CMMFDevSoundCIFileBlockLengthDeMux::DoOpenSlaveL(TUid /*aInterface*/, const TDesC8& /*aPackageBuf*/)
- {
- // fetch the fileblocklength custom interface
- MMMFDevSoundCustomInterfaceFileBlockLength* ptr = NULL;
- ptr = static_cast (iTarget->CustomInterface(KUidCustomInterfaceDevSoundFileBlockLength));
-
- if (!ptr)
- {
- iFileBlockLengthInterface = NULL;
- User::Leave(KErrNotSupported);
- }
- else
- {
- iFileBlockLengthInterface = ptr;
- }
- return KErrNone;
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::DoCloseSlaveL(TInt /*aHandle*/)
- {
- // nothing to do
- }
-
-// original RMessage is supplied so that remote demux plugin can extract necessary details
-// using DeMux utility
-TInt CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveSyncCommandL(const RMmfIpcMessage& aMessage)
- {
- TMMFDevSoundCIMessageData data;
-
- // decode message
- iUtility->GetSyncMessageDataL(aMessage, data);
- TInt retVal = -1;
-
- switch (data.iCommand)
- {
- case EMMFDevSoundCIBlockLengthSetFileBlockLength:
- {
- // we know that offset 2 contains a TInt
- TPckgBuf blockAlignBuffer;
- iUtility->ReadFromInputDesL(aMessage, &blockAlignBuffer);
-
- DoSetFileBlockLengthL(blockAlignBuffer());
- retVal = KErrNone;
- break;
- }
-
- default:
- {
- User::Leave(KErrNotSupported);
- }
- }
-
- return retVal;
- }
-
-TInt CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveSyncCommandResultL(const RMmfIpcMessage& /*aMessage*/)
- {
- return KErrNotSupported;
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveAsyncCommandL(const RMmfIpcMessage& /*aMessage*/)
- {
- // not used in this interface
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveAsyncCommandResultL(const RMmfIpcMessage& /*aMessage*/)
- {
- // not used in this interface
- }
-
-void CMMFDevSoundCIFileBlockLengthDeMux::DoSetFileBlockLengthL(TUint aBlockAlign)
- {
- if (!iFileBlockLengthInterface)
- {
- User::Leave(KErrNotReady);
- }
-
- // set the block length
- iFileBlockLengthInterface->SetFileBlockLength(aBlockAlign);
- }
-
-
-
-//
-// ImplementationTable
-//
-
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KMmfUidCIFileBlockLengthMux, CMMFDevSoundCIFileBlockLengthMux::NewL),
- IMPLEMENTATION_PROXY_ENTRY(KMmfUidCIFileBlockLengthDeMux, CMMFDevSoundCIFileBlockLengthDeMux::NewL),
- };
-
-
-//
-// ImplementationGroupProxy
-//
-//
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
- return ImplementationTable;
- }
-
-#ifndef EKA2
-/** DLL Entry point */
-GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
- {
- return(KErrNone);
- }
-#endif
-
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLength.h
--- a/devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLength.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-// Copyright (c) 2006-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:
-//
-
-#ifndef CMMFDEVSOUNDCIFILEBLOCKLENGTH_H
-#define CMMFDEVSOUNDCIFILEBLOCKLENGTH_H
-
-#include
-#include
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include
-#endif
-#include
-#include
-#include
-
-
-enum TMMFDevSoundCIBlockLengthCommands
- {
- EMMFDevSoundCIBlockLengthSetFileBlockLength = 0
- };
-
-/**
- * CMMFDevSoundCIFileBlockLengthMux
- *
- * implementation of the FileBlockLength custom interface pair
- */
-class CMMFDevSoundCIFileBlockLengthMux : public CBase,
- public MMMFDevSoundCustomInterfaceMuxPlugin,
- public MMMFDevSoundCustomInterfaceFileBlockLength
- {
-public:
- /**
- Attempt to open the interface.
- @param aInterfaceId
- The UID of the interface to open.
- @return one of the system wide error codes
- */
- virtual TInt OpenInterface(TUid aInterfaceId);
-
- /**
- Equivalent to destructor. Called to destroy plugin.
- */
- virtual void Release();
- /**
- Pass destructor key.
- Called on construction so plugin takes responsibility to call REComSession::DestroyedImplementation()
- @param aDestructorKey
- The Uid returned by REComSession::CreateImplementationL() or similar
- */
- virtual void PassDestructorKey(TUid aDestructorKey);
-
- /**
- Complete construction.
- Pass additional values from the construction phase, used subsequently by the plugin.
- @param aCustomUtility
- The custom interface utility used by the plugin to communicate with the remote
- server side DeMux plugin
- */
- virtual void CompleteConstructL(MMMFDevSoundCustomInterfaceMuxUtility* aCustomUtility);
-
- /**
- Return the custom interface
- @param aInterfaceId
- The UID of the required custom interface
- @return the custom interface supported by this plugin
- */
- virtual TAny* CustomInterface(TUid aInterfaceId);
-
- /**
- Instantiate a CMMFDevSoundCIFileBlockLengthMux class
- @return the pointer to the new class, cast to the Mux plugin mixin
- */
- static MMMFDevSoundCustomInterfaceMuxPlugin* NewL();
-
-protected:
- // from MMMFDevSoundCustomInterfaceFileBlockLength
- virtual void SetFileBlockLength(TUint aBlockAlign);
-
- CMMFDevSoundCIFileBlockLengthMux();
- ~CMMFDevSoundCIFileBlockLengthMux();
-
-protected:
- TUid iKey;
- TInt iRemoteHandle;
- MMMFDevSoundCustomInterfaceMuxUtility* iUtility;
- };
-
-
-/**
- * DeMux side of pair
- */
-
-class CMMFDevSoundCIFileBlockLengthDeMux : public CBase,
- public MMMFDevSoundCustomInterfaceDeMuxPlugin
- {
-public:
- /**
- Instantiate a CMMFDevSoundCIFileBlockLengthDeMux class
- @return a pointer to the new class cast to the DeMux plugin mixin
- */
- static MMMFDevSoundCustomInterfaceDeMuxPlugin* NewL();
-
- /**
- Attempt to open the interface.
- @param aInterfaceId
- The UID of the interface to open.
- @return a handle to the remote plugin
- */
- virtual TInt OpenInterface(TUid aInterfaceId);
-
- /**
- Equivalent to destructor. Called to destroy plugin.
- */
- virtual void Release();
- /**
- Pass destructor key.
- Called on construction so plugin takes responsibility to call REComSession::DestroyedImplementation()
- @param aDestructorKey
- The Uid returned by REComSession::CreateImplementationL() or similar
- */
- virtual void PassDestructorKey(TUid aDestructorKey);
-
- /**
- Set the target of the custom interface call
- @param aTarget
- The DevSound to call the custom interface on.
- */
- virtual void SetInterfaceTarget(MMMFDevSoundCustomInterfaceTarget* aTarget);
-
- /**
- Complete construction.
- @param aUtility
- The DeMux utility to use
- */
- virtual void CompleteConstructL(MMMFDevSoundCustomInterfaceDeMuxUtility* aUtility);
-
- /**
- Refresh the current custom interface connections
- */
- virtual void RefreshL();
-
- // from MMMFDeMuxInterface
- /**
- Open the slave
- @param aInterface
- The UID of the requested interface
- @param aPackageBuf
- A package of data that can be supplied for initialisation
- @return the result of the operation
- */
- virtual TInt DoOpenSlaveL(TUid aInterface, const TDesC8& aPackageBuf);
-
- /**
- Close the slave
- @param aHandle
- The handle of the slave plugin
- */
- virtual void DoCloseSlaveL(TInt aHandle);
-
- // original RMessage is supplied so that remote demux plugin can extract necessary details
- // using DeMux utility
-
- /**
- Relay the synchronous custom command onto the slave
- @param aMessage
- The IPC message to be sent to the slave
- @return the result of the operation
- */
- virtual TInt DoSendSlaveSyncCommandL(const RMmfIpcMessage& aMessage);
-
- /**
- Relay the synchronous custom command onto the slave and obtain a result
- @param aMessage
- The IPC message to be sent to the slave
- @return the result of the operation
- */
- virtual TInt DoSendSlaveSyncCommandResultL(const RMmfIpcMessage& aMessage);
-
- /**
- Relay an asynchronous command onto the slave
- @param aMessage
- The IPC message to be sent to the slave
- */
- virtual void DoSendSlaveAsyncCommandL(const RMmfIpcMessage& aMessage);
-
- /**
- Relay an asynchronous command onto the slave and obtain a result
- @param aMessage
- The IPC message to be sent to the slave@param aMessage
- */
- virtual void DoSendSlaveAsyncCommandResultL(const RMmfIpcMessage& aMessage);
-
-protected:
- ~CMMFDevSoundCIFileBlockLengthDeMux();
- CMMFDevSoundCIFileBlockLengthDeMux();
-
- // implementation of FileBlockLength custom interface
- void DoSetFileBlockLengthL(TUint aBlockAlign);
-
-protected:
- MMMFDevSoundCustomInterfaceDeMuxUtility* iUtility;
- MMMFDevSoundCustomInterfaceTarget* iTarget;
- MMMFDevSoundCustomInterfaceFileBlockLength* iFileBlockLengthInterface;
- TUid iKey;
-
- };
-
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLengthImplUID.hrh
--- a/devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLengthImplUID.hrh Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-// Copyright (c) 2006-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:
-//
-
-#ifndef __CMMFDEVSOUNDCIFILEBLOCKLENGTHIMPLUID_HRH__
-#define __CMMFDEVSOUNDCIFILEBLOCKLENGTHIMPLUID_HRH__
-
-// These are the ECOM Implementation UIDs for the File Block Length Custom Interface
-
-#define KMmfUidCIFileBlockLengthDll 0x102737fd
-
-#define KMmfUidCIFileBlockLengthMux 0x10273806
-
-#define KMmfUidCIFileBlockLengthDeMux 0x102737fe
-
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundrefplugin/group/bld.inf
--- a/devsound/devsoundrefplugin/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundrefplugin/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -27,8 +27,8 @@
../inc/SwCodecWrapper/mmfSwCodecWrapper.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfswcodecwrapper.h)
../inc/SwCodecWrapper/mmfSwCodecWrappercustomInterfacesUIDs.hrh /epoc32/include/mmf/server/mmfswcodecwrappercustominterfacesuids.hrh
-../inc/Plugin/mmfHwDeviceImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfhwdeviceimplementationuids.hrh
-../inc/Plugin/mmfSBCCodecImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfsbccodecimplementationuids.hrh
+../inc/plugin/mmfHwDeviceImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfhwdeviceimplementationuids.hrh
+../inc/plugin/mmfSBCCodecImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfsbccodecimplementationuids.hrh
// Romkit include files
devsound_refplugin.iby /epoc32/rom/include/
@@ -48,14 +48,14 @@
#endif
//Audio Tone Controller
-../mmpfiles/controller/mmfaudiotonecontroller.mmp
+../mmpfiles/controller/MmfAudioToneController.mmp
//Sw Codec Wrapper
../mmpfiles/swcodecwrapper/mmfswaudiodevice.mmp
../mmpfiles/swcodecwrapper/mmfswcodecwrapper.mmp
// SBC encoder
-../mmpfiles/codec/sbcencoder.mmp
+../mmpfiles/codec/SBCEncoder.mmp
//audio 'software' hw device plugins
../mmpfiles/plugin/mmfAudioHwDevices.mmp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundrefplugin/mmpfiles/plugin/Gsm610HwDevices.mmp
--- a/devsound/devsoundrefplugin/mmpfiles/plugin/Gsm610HwDevices.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundrefplugin/mmpfiles/plugin/Gsm610HwDevices.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -34,7 +34,7 @@
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-SOURCEPATH ../../src/plugin/audio/gsm610
+SOURCEPATH ../../src/plugin/audio/Gsm610
source GSM610.CPP gsm610Proxy.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/devsoundrefplugin/mmpfiles/plugin/mmfAudioHwDevices.mmp
--- a/devsound/devsoundrefplugin/mmpfiles/plugin/mmfAudioHwDevices.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/devsoundrefplugin/mmpfiles/plugin/mmfAudioHwDevices.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -36,7 +36,7 @@
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-SOURCEPATH ../../src/Plugin/Audio
+SOURCEPATH ../../src/plugin/audio
SOURCE MMFAudioCodecImplementationProxy.cpp
SOURCE MMFpcm16ToPcm16HwDevice.cpp
SOURCE MMFpcm16ToPcmU8HwDevice.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/hwdevapi/group/bld.inf
--- a/devsound/hwdevapi/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/devsound/hwdevapi/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -27,8 +27,8 @@
//export mmfhwdevice.h/.inl
../inc/mmfhwdevice.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfhwdevice.h)
../inc/MmfHwDevice.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfhwdevice.inl)
-../inc/MMFHwDeviceCmds.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfhwdevicecmds.h)
-../inc/TaskConfig.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/taskconfig.h)
+../inc/MMFHwDeviceCmds.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfhwdevicecmds.h)
+../inc/TaskConfig.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/taskconfig.h)
../inc/mmfhwdevicesetup.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfhwdevicesetup.h)
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/sounddevbt/group/BLD.INF
--- a/devsound/sounddevbt/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-// Copyright (c) 2002-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:
-// Note:: This is intended to be included in ...\MMF\group\bld.inf.
-//
-//
-
-
-
-PRJ_TESTMMPFILES
-
-#include "../group/COMMON.INF"
-
-// Policy
-../MMPFiles/server/MmfBtAudioPolicy.mmp
-
-#include "../PlatSec/bld_include.inf"
diff -r c36d67f77f75 -r eb1e5d7cc688 devsound/sounddevbt/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devsound/sounddevbt/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,27 @@
+// Copyright (c) 2002-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:
+// Note:: This is intended to be included in ...\MMF\group\bld.inf.
+//
+//
+
+
+
+PRJ_TESTMMPFILES
+
+#include "../group/COMMON.INF"
+
+// Policy
+../MMPFiles/server/MmfBtAudioPolicy.mmp
+
+#include "../PlatSec/bld_include.inf"
diff -r c36d67f77f75 -r eb1e5d7cc688 devsoundextensions/drmaudioplayer/DRMPlayServer/inc/DRMCustomCommandAsyncAO.h
--- a/devsoundextensions/drmaudioplayer/DRMPlayServer/inc/DRMCustomCommandAsyncAO.h Thu Jun 24 10:37:45 2010 +0100
+++ b/devsoundextensions/drmaudioplayer/DRMPlayServer/inc/DRMCustomCommandAsyncAO.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#include
#include "DRMPlaySession.h"
-// #include
+// #include
class CDRMPlayServerSession;
diff -r c36d67f77f75 -r eb1e5d7cc688 devsoundextensions/effects/Loudness/LoudnessEffect/Src/LoudnessBase.cpp
--- a/devsoundextensions/effects/Loudness/LoudnessEffect/Src/LoudnessBase.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/devsoundextensions/effects/Loudness/LoudnessEffect/Src/LoudnessBase.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -78,6 +78,7 @@
if ( !loudnessProxy )
{
DEBPRN1("No Adaptation Support - leaving");
+ CleanupStack::Pop(customInterface);
User::Leave(KErrNotSupported);
}
@@ -156,6 +157,7 @@
if ( !loudnessProxy )
{
DEBPRN1("No Adaptation Support - leaving");
+ CleanupStack::Pop(customInterface);
User::Leave(KErrNotSupported);
}
@@ -187,6 +189,7 @@
if ( !loudnessProxy )
{
DEBPRN1("No Adaptation Support - leaving");
+ CleanupStack::Pop(customInterface);
User::Leave(KErrNotSupported);
}
@@ -273,6 +276,7 @@
if ( !loudnessProxy )
{
DEBPRN1("No Adaptation Support - leaving");
+ CleanupStack::Pop(customInterface);
User::Leave(KErrNotSupported);
}
@@ -330,6 +334,7 @@
if ( !loudnessProxy )
{
DEBPRN1("No Adaptation Support - leaving");
+ CleanupStack::Pop(customInterface);
User::Leave(KErrNotSupported);
}
@@ -361,6 +366,7 @@
if ( !loudnessProxy )
{
DEBPRN1("No Adaptation Support - leaving");
+ CleanupStack::Pop(customInterface);
User::Leave(KErrNotSupported);
}
@@ -392,6 +398,7 @@
if ( !loudnessProxy )
{
DEBPRN1("No Adaptation Support - leaving");
+ CleanupStack::Pop(customInterface);
User::Leave(KErrNotSupported);
}
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/camerafw/group/BLD.INF
--- a/imagingandcamerafws/camerafw/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-// Copyright (c) 2007-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:
-// On board camera API
-//
-//
-
-/**
- @file
-*/
-
-PRJ_EXPORTS
-../Include/ECam.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam.h)
-../Include/ecamconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamconst.h)
-#ifdef SYMBIAN_OLD_EXPORT_LOCATION
-../Include/ecamdef.h /epoc32/include/ecamdef.h
-#endif
-../Include/ECamUids.hrh /epoc32/include/ecamuids.hrh
-../Include/ecamuidsconst.hrh /epoc32/include/ecamuidsconst.hrh
-../Include/ecamuidsdef.hrh /epoc32/include/ecamuidsdef.hrh
-../Include/ecamerrors.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecamerrors.h)
-../Include/ecamerrorsconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamerrorsconst.h)
-#ifdef SYMBIAN_OLD_EXPORT_LOCATION
-../Include/ecamerrorsdef.h /epoc32/include/ecamerrorsdef.h
-#endif
-../Include/ECam/ECamPlugin.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamplugin.h)
-../Include/ECam/ECamInfoPlugin.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecaminfoplugin.h)
-../Include/ecamadvsettingsuids.hrh /epoc32/include/ecamadvsettingsuids.hrh
-../Include/ecamadvsettingsuidsconst.hrh /epoc32/include/ecamadvsettingsuidsconst.hrh
-../Include/ecamadvsettingsuidsdef.hrh /epoc32/include/ecamadvsettingsuidsdef.hrh
-../Include/ecamadvsettings.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecamadvsettings.h)
-../Include/ecamadvsettingsconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamadvsettingsconst.h)
-../Include/ecamadvsettingsdef.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamadvsettingsdef.h)
-../Include/ecamimageprocessing.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecamimageprocessing.h)
-../Include/ecamimageprocessingconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamimageprocessingconst.h)
-#ifdef SYMBIAN_OLD_EXPORT_LOCATION
-../Include/ecamimageprocessingdef.h /epoc32/include/ecamimageprocessingdef.h
-#endif
-../Include/ecamcapturecontrol.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamcapturecontrol.h)
-../Include/ecamcapturecontrolconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamcapturecontrolconst.h)
-../Include/ecamviewfinder.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamviewfinder.h)
-../Include/ecamviewfinderdef.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamviewfinderdef.h)
-../Include/ECam/ecamadvsettingsintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamadvsettingsintf.h)
-../Include/ECam/ecamcapturecontrolintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamcapturecontrolintf.h)
-../Include/ECam/ecamimageprocessingintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamimageprocessingintf.h)
-../Include/ECam/ecamviewfinderintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamviewfinderintf.h)
-../Include/ECam/implementationfactoryintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/implementationfactoryintf.h)
-../Include/ECam/ecamadvsettingsintfuids.hrh /epoc32/include/ecam/ecamadvsettingsintfuids.hrh
-
-../Include/CameraHistogram.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/camerahistogram.h)
-../Include/MCameraHistogram.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcamerahistogram.h)
-../Include/CameraOverlay.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam/cameraoverlay.h)
-../Include/cameraoverlayconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/cameraoverlayconst.h)
-../Include/MCameraOverlay.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcameraoverlay.h)
-../Include/CameraSnapshot.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/camerasnapshot.h)
-../Include/MCameraSnapshot.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcamerasnapshot.h)
-../Include/ECamCommonUIDs.hrh /epoc32/include/ecam/ecamcommonuids.hrh
-../Include/ecamcommonuidsconst.hrh /epoc32/include/ecam/ecamcommonuidsconst.hrh
-../Include/ECamCommonUIDif.hrh /epoc32/include/ecam/ecamcommonuidif.hrh
-
-../Include/ecamconstants.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam/ecamconstants.h)
-#ifdef SYMBIAN_OLD_EXPORT_LOCATION
-../Include/ecamversion.h /epoc32/include/ecam/ecamversion.h
-#endif
-
-../Include/ecamdirectviewfinder.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam/ecamdirectviewfinder.h)
-../Include/mcameradirectviewfinder.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcameradirectviewfinder.h)
-../Include/ecamdirectviewfinderuids.hrh /epoc32/include/ecam/ecamdirectviewfinderuids.hrh
-../Include/cameradirectviewfinderuidif.hrh /epoc32/include/ecam/cameradirectviewfinderuidif.hrh
-
-../bwins/ECamu.def /epoc32/release/wins/ecamu.def
-../eabi/ecamU.def /epoc32/include/def/eabi/ecamu.def
-
-../bwins/ecamadvsettingsU.def /epoc32/release/wins/ecamadvsettingsu.def
-../eabi/ecamadvsettingsU.def /epoc32/include/def/eabi/ecamadvsettingsu.def
-
-../bwins/ecamsnapshotU.DEF /epoc32/release/wins/ecamsnapshotu.def
-../bwins/ecamoverlayU.DEF /epoc32/release/wins/ecamoverlayu.def
-../bwins/ecamhistogramU.DEF /epoc32/release/wins/ecamhistogramu.def
-
-../eabi/ecamsnapshotU.DEF /epoc32/include/def/eabi/ecamsnapshotu.def
-../eabi/ecamoverlayU.DEF /epoc32/include/def/eabi/ecamoverlayu.def
-../eabi/ecamhistogramU.DEF /epoc32/include/def/eabi/ecamhistogramu.def
-
-../bwins/ecamdirectviewfinderU.def /epoc32/release/wins/ecamdirectviewfinderu.def
-../eabi/ecamdirectviewfinderU.def /epoc32/include/def/eabi/ecamdirectviewfinderu.def
-
-// ROM buildsupport
-../Include/ECam.iby /epoc32/rom/include/ecam.iby
-
-PRJ_MMPFILES
-../mmpfiles/ECam.mmp
-../mmpfiles/ECamPluginSupport.mmp
-../mmpfiles/ECamAdvSettings.mmp
-../mmpfiles/ECamHistogram.mmp
-../mmpfiles/ECamOverlay.mmp
-../mmpfiles/ECamSnapshot.mmp
-../mmpfiles/ECamDirectViewFinder.mmp
-
-PRJ_TESTMMPFILES
-//removed due to techview dependency
-//../mmpfiles/TestCameraApp.mmp
-
-
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/camerafw/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/camerafw/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,116 @@
+// Copyright (c) 2007-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:
+// On board camera API
+//
+//
+
+/**
+ @file
+*/
+
+PRJ_EXPORTS
+../Include/ECam.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam.h)
+../Include/ecamconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamconst.h)
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+../Include/ecamdef.h /epoc32/include/ecamdef.h
+#endif
+../Include/ECamUids.hrh /epoc32/include/ecamuids.hrh
+../Include/ecamuidsconst.hrh /epoc32/include/ecamuidsconst.hrh
+../Include/ecamuidsdef.hrh /epoc32/include/ecamuidsdef.hrh
+../Include/ecamerrors.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecamerrors.h)
+../Include/ecamerrorsconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamerrorsconst.h)
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+../Include/ecamerrorsdef.h /epoc32/include/ecamerrorsdef.h
+#endif
+../Include/ECam/ECamPlugin.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamplugin.h)
+../Include/ECam/ECamInfoPlugin.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecaminfoplugin.h)
+../Include/ecamadvsettingsuids.hrh /epoc32/include/ecamadvsettingsuids.hrh
+../Include/ecamadvsettingsuidsconst.hrh /epoc32/include/ecamadvsettingsuidsconst.hrh
+../Include/ecamadvsettingsuidsdef.hrh /epoc32/include/ecamadvsettingsuidsdef.hrh
+../Include/ecamadvsettings.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecamadvsettings.h)
+../Include/ecamadvsettingsconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamadvsettingsconst.h)
+../Include/ecamadvsettingsdef.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamadvsettingsdef.h)
+../Include/ecamimageprocessing.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecamimageprocessing.h)
+../Include/ecamimageprocessingconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamimageprocessingconst.h)
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+../Include/ecamimageprocessingdef.h /epoc32/include/ecamimageprocessingdef.h
+#endif
+../Include/ecamcapturecontrol.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamcapturecontrol.h)
+../Include/ecamcapturecontrolconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamcapturecontrolconst.h)
+../Include/ecamviewfinder.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamviewfinder.h)
+../Include/ecamviewfinderdef.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecamviewfinderdef.h)
+../Include/ECam/ecamadvsettingsintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamadvsettingsintf.h)
+../Include/ECam/ecamcapturecontrolintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamcapturecontrolintf.h)
+../Include/ECam/ecamimageprocessingintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamimageprocessingintf.h)
+../Include/ECam/ecamviewfinderintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/ecamviewfinderintf.h)
+../Include/ECam/implementationfactoryintf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/implementationfactoryintf.h)
+../Include/ECam/ecamadvsettingsintfuids.hrh /epoc32/include/ecam/ecamadvsettingsintfuids.hrh
+
+../Include/CameraHistogram.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/camerahistogram.h)
+../Include/MCameraHistogram.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcamerahistogram.h)
+../Include/CameraOverlay.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam/cameraoverlay.h)
+../Include/cameraoverlayconst.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/cameraoverlayconst.h)
+../Include/MCameraOverlay.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcameraoverlay.h)
+../Include/CameraSnapshot.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/camerasnapshot.h)
+../Include/MCameraSnapshot.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcamerasnapshot.h)
+../Include/ECamCommonUIDs.hrh /epoc32/include/ecam/ecamcommonuids.hrh
+../Include/ecamcommonuidsconst.hrh /epoc32/include/ecam/ecamcommonuidsconst.hrh
+../Include/ECamCommonUIDif.hrh /epoc32/include/ecam/ecamcommonuidif.hrh
+
+../Include/ecamconstants.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam/ecamconstants.h)
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+../Include/ecamversion.h /epoc32/include/ecam/ecamversion.h
+#endif
+
+../Include/ecamdirectviewfinder.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ecam/ecamdirectviewfinder.h)
+../Include/mcameradirectviewfinder.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ecam/mcameradirectviewfinder.h)
+../Include/ecamdirectviewfinderuids.hrh /epoc32/include/ecam/ecamdirectviewfinderuids.hrh
+../Include/cameradirectviewfinderuidif.hrh /epoc32/include/ecam/cameradirectviewfinderuidif.hrh
+
+../bwins/ECamu.def /epoc32/release/wins/ecamu.def
+../eabi/ecamU.def /epoc32/include/def/eabi/ecamu.def
+
+../bwins/ecamadvsettingsU.def /epoc32/release/wins/ecamadvsettingsu.def
+../eabi/ecamadvsettingsU.def /epoc32/include/def/eabi/ecamadvsettingsu.def
+
+../bwins/ecamsnapshotU.DEF /epoc32/release/wins/ecamsnapshotu.def
+../bwins/ecamoverlayU.DEF /epoc32/release/wins/ecamoverlayu.def
+../bwins/ecamhistogramU.DEF /epoc32/release/wins/ecamhistogramu.def
+
+../eabi/ecamsnapshotU.DEF /epoc32/include/def/eabi/ecamsnapshotu.def
+../eabi/ecamoverlayU.DEF /epoc32/include/def/eabi/ecamoverlayu.def
+../eabi/ecamhistogramU.DEF /epoc32/include/def/eabi/ecamhistogramu.def
+
+../bwins/ecamdirectviewfinderU.def /epoc32/release/wins/ecamdirectviewfinderu.def
+../eabi/ecamdirectviewfinderU.def /epoc32/include/def/eabi/ecamdirectviewfinderu.def
+
+// ROM buildsupport
+../Include/ECam.iby /epoc32/rom/include/ecam.iby
+
+PRJ_MMPFILES
+../mmpfiles/ECam.mmp
+../mmpfiles/ECamPluginSupport.mmp
+../mmpfiles/ECamAdvSettings.mmp
+../mmpfiles/ECamHistogram.mmp
+../mmpfiles/ECamOverlay.mmp
+../mmpfiles/ECamSnapshot.mmp
+../mmpfiles/ECamDirectViewFinder.mmp
+
+PRJ_TESTMMPFILES
+//removed due to techview dependency
+//../mmpfiles/TestCameraApp.mmp
+
+
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/camerafw/group/multimedia_ecam_framework.mrp
--- a/imagingandcamerafws/camerafw/group/multimedia_ecam_framework.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/camerafw/group/multimedia_ecam_framework.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_ecam_framework.mrp
#
-# Copyright (c) 2007 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:
+#Copyright (c) Symbian Software Ltd 2007. All rights reserved.
#
component multimedia_ecam_framework
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/cameraunittest/group/BLD.INF
--- a/imagingandcamerafws/cameraunittest/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-
-PRJ_MMPFILES
-../group/TSU_ECM_API.mmp
-../group/TSU_ECM_ADV.mmp
-../group/ECamUnitTestPlugin.mmp
-../group/ecamramplugin.mmp
-../group/copyfile.mmp
-../group/tsu_ecm_ram.mmp
-
-PRJ_EXPORTS
-../scripts/TSU_ECM_API.script c:/mm/tsu_ecm_api.script
-../scripts/TSU_ECM_ADV_ALLOC.script c:/mm/tsu_ecm_adv_alloc.script
-../scripts/TSU_ECM_ADV.script c:/mm/tsu_ecm_adv.script
-../scripts/tsu_ecm_ram.script c:/mm/tsu_ecm_ram.script
-
-// .iby
-../inc/tsu_ecm_api.iby /epoc32/rom/include/tsu_ecm_api.iby
-../inc/tsu_ecm_adv.iby /epoc32/rom/include/tsu_ecm_adv.iby
-../inc/tsu_ecm_ram.iby /epoc32/rom/include/tsu_ecm_ram.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/cameraunittest/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/cameraunittest/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,37 @@
+// Copyright (c) 2004-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:
+//
+
+
+PRJ_TESTMMPFILES
+../group/TSU_ECM_API.mmp
+../group/TSU_ECM_ADV.mmp
+../group/ECamUnitTestPlugin.mmp
+../group/ecamramplugin.mmp
+../group/copyfile.mmp
+../group/tsu_ecm_ram.mmp
+
+PRJ_TESTEXPORTS
+../scripts/TSU_ECM_API.script c:/mm/tsu_ecm_api.script
+../scripts/TSU_ECM_ADV_ALLOC.script c:/mm/tsu_ecm_adv_alloc.script
+../scripts/TSU_ECM_ADV.script c:/mm/tsu_ecm_adv.script
+../scripts/tsu_ecm_ram.script c:/mm/tsu_ecm_ram.script
+
+// .iby
+../inc/tsu_ecm_api.iby /epoc32/rom/include/tsu_ecm_api.iby
+../inc/tsu_ecm_api_excl_test.iby /epoc32/rom/include/tsu_ecm_api_excl_test.iby
+../inc/tsu_ecm_adv.iby /epoc32/rom/include/tsu_ecm_adv.iby
+../inc/tsu_ecm_adv_excl_test.iby /epoc32/rom/include/tsu_ecm_adv_excl_test.iby
+../inc/tsu_ecm_ram.iby /epoc32/rom/include/tsu_ecm_ram.iby
+../inc/tsu_ecm_ram_excl_test.iby /epoc32/rom/include/tsu_ecm_ram_excl_test.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/cameraunittest/inc/tsu_ecm_adv.iby
--- a/imagingandcamerafws/cameraunittest/inc/tsu_ecm_adv.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/cameraunittest/inc/tsu_ecm_adv.iby Fri Jul 09 12:23:13 2010 +0100
@@ -18,13 +18,9 @@
// debug build
-file=ABI_DIR\DEBUG_DIR\TSU_ECM_ADV.dll System\Libs\TSU_ECM_ADV.dll
+#include
data=EPOCROOT##epoc32\data\c\mm\TSU_ECM_ADV_ALLOC.script TSU_ECM_ADV_ALLOC.script
data=EPOCROOT##epoc32\data\c\mm\TSU_ECM_ADV.script TSU_ECM_ADV.script
-#ifndef SYMBIAN_EXCLUDE_ECAM_UNITTESTPLUGIN
-ECOM_PLUGIN(ECamUnitTestPlugin.dll,102070CF.rsc)
-#endif
-
#endif //TSU_ECM_ADV_IBY
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/cameraunittest/inc/tsu_ecm_api.iby
--- a/imagingandcamerafws/cameraunittest/inc/tsu_ecm_api.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/cameraunittest/inc/tsu_ecm_api.iby Fri Jul 09 12:23:13 2010 +0100
@@ -16,9 +16,7 @@
#ifndef TSU_ECM_API_IBY
#define TSU_ECM_API_IBY
-// debug build
-
-file=ABI_DIR\DEBUG_DIR\TSU_ECM_API.dll System\Libs\TSU_ECM_API.dll
+#include
data=EPOCROOT##epoc32\data\c\mm\TSU_ECM_API.script TSU_ECM_API.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/cameraunittest/inc/tsu_ecm_ram.iby
--- a/imagingandcamerafws/cameraunittest/inc/tsu_ecm_ram.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/cameraunittest/inc/tsu_ecm_ram.iby Fri Jul 09 12:23:13 2010 +0100
@@ -16,13 +16,8 @@
#ifndef TSU_ECM_RAM_IBY
#define TSU_ECM_RAM_IBY
-file=ABI_DIR\DEBUG_DIR\tsu_ecm_ram.dll System\Libs\tsu_ecm_ram.dll
+#include
data=EPOCROOT##epoc32\data\c\mm\tsu_ecm_ram.script tsu_ecm_ram.script
-data=ABI_DIR\DEBUG_DIR\ecamramplugin.dll testplugins\ecamramplugin.dll
-data=ZRESOURCE\Plugins\ecamramplugin.rsc testplugins\ecamramplugin.rsc
-
-file=ABI_DIR\DEBUG_DIR\copyfile.exe copyfile.exe
-
#endif // TSU_ECM_RAM_IBY
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/BitmapTransform/group/BLD.inf
--- a/imagingandcamerafws/imagingfws/BitmapTransform/group/BLD.inf Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// Copyright (c) 2001-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:
-//
-
-PRJ_EXPORTS
-../inc/BitmapTransforms.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(bitmaptransforms.h)
-../inc/BitmapTransforms.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(bitmaptransforms.inl)
-../inc/BitmTrans/BitmTransPlugin.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(bitmtrans/bitmtransplugin.h)
-../inc/BitmTrans/BitmTransUids.hrh /epoc32/include/bitmtrans/bitmtransuids.hrh
-../inc/BitmTrans/BitmTransPanic.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(bitmtrans/bitmtranspanic.h)
-
-
-// ROM buildsupport
-../inc/BitmapTransforms.iby /epoc32/rom/include/bitmaptransforms.iby
-
-PRJ_MMPFILES
-../MmpFiles/BitmapTransforms.mmp
-
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/BitmapTransform/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/BitmapTransform/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,31 @@
+// Copyright (c) 2001-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:
+//
+
+PRJ_EXPORTS
+../inc/BitmapTransforms.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(bitmaptransforms.h)
+../inc/BitmapTransforms.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(bitmaptransforms.inl)
+../inc/BitmTrans/BitmTransPlugin.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(bitmtrans/bitmtransplugin.h)
+../inc/BitmTrans/BitmTransUids.hrh /epoc32/include/bitmtrans/bitmtransuids.hrh
+../inc/BitmTrans/BitmTransPanic.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(bitmtrans/bitmtranspanic.h)
+
+
+// ROM buildsupport
+../inc/BitmapTransforms.iby /epoc32/rom/include/bitmaptransforms.iby
+
+PRJ_MMPFILES
+../MmpFiles/BitmapTransforms.mmp
+
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/GifScaler/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/GifScaler/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,40 @@
+// Copyright (c) 2003-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:
+// This file basically provides the information required for building the whole of a component
+// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
+// Examples are provided below of the kind of things we're expecting
+// Gif scaling API
+//
+//
+
+/**
+ @file
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_EXPORTS
+// specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+../inc/gifscaler.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(gifscaler.h)
+// ROM buildsupport
+../inc/GifScaler.iby /epoc32/rom/include/gifscaler.iby
+
+PRJ_MMPFILES
+../MmpFiles/GifScaler.mmp
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/GifScaler/group/bld_include.inf
--- a/imagingandcamerafws/imagingfws/GifScaler/group/bld_include.inf Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// Copyright (c) 2003-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:
-// This file basically provides the information required for building the whole of a component
-// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
-// Examples are provided below of the kind of things we're expecting
-// Gif scaling API
-//
-//
-
-/**
- @file
-*/
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-DEFAULT
-
-PRJ_EXPORTS
-// specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-../inc/gifscaler.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(gifscaler.h)
-// ROM buildsupport
-../inc/GifScaler.iby /epoc32/rom/include/gifscaler.iby
-
-PRJ_MMPFILES
-../MmpFiles/GifScaler.mmp
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/ImageTransform/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/ImageTransform/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2004-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:
+// This file basically provides the information required for building the whole of a component
+// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
+// Examples are provided below of the kind of things we're expecting
+//
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_EXPORTS
+// specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+../inc/ImageTransform.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imagetransform.h)
+../inc/icl/ImageTransform.hrh /epoc32/include/icl/imagetransform.hrh
+../inc/icl/ImageTransformPlugin.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagetransformplugin.h)
+../inc/icl/ImageTransformPanicCodes.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagetransformpaniccodes.h)
+../inc/icl/ImageTransformPluginExt.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagetransformpluginext.h)
+../inc/icl/squeezetransformextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/squeezetransformextension.h)
+../inc/icl/orientationtransformextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/orientationtransformextension.h)
+../inc/icl/overlaytransformextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/overlaytransformextension.h)
+
+// ROM buildsupport
+../inc/ImageTransform.iby /epoc32/rom/include/imagetransform.iby
+
+PRJ_MMPFILES
+../MmpFiles/ImageTransform.mmp
+../MmpFiles/ImageTransformResolver.mmp
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/ImageTransform/group/bld_include.inf
--- a/imagingandcamerafws/imagingfws/ImageTransform/group/bld_include.inf Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-// Copyright (c) 2004-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:
-// This file basically provides the information required for building the whole of a component
-// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
-// Examples are provided below of the kind of things we're expecting
-//
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-DEFAULT
-
-PRJ_EXPORTS
-// specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-../inc/ImageTransform.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imagetransform.h)
-../inc/icl/ImageTransform.hrh /epoc32/include/icl/imagetransform.hrh
-../inc/icl/ImageTransformPlugin.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagetransformplugin.h)
-../inc/icl/ImageTransformPanicCodes.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagetransformpaniccodes.h)
-../inc/icl/ImageTransformPluginExt.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagetransformpluginext.h)
-../inc/icl/squeezetransformextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/squeezetransformextension.h)
-../inc/icl/orientationtransformextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/orientationtransformextension.h)
-../inc/icl/overlaytransformextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/overlaytransformextension.h)
-
-// ROM buildsupport
-../inc/ImageTransform.iby /epoc32/rom/include/imagetransform.iby
-
-PRJ_MMPFILES
-../MmpFiles/ImageTransform.mmp
-../MmpFiles/ImageTransformResolver.mmp
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/MediaClientImage/Group/BLD.INF
--- a/imagingandcamerafws/imagingfws/MediaClientImage/Group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-// Copyright (c) 1999-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:
-// This file basically provides the information required for building the whole of a component
-// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
-// Examples are provided below of the kind of things we're expecting
-//
-//
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-
-DEFAULT
-
-PRJ_EXPORTS
-
-../Include/MdaImageConverter.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaimageconverter.h)
-#ifdef SYMBIAN_OLD_EXPORT_LOCATION
-../Include/MdaFrameInfo.h /epoc32/include/mdaframeinfo.h
-#endif
-../Include/MediaSvrConvert.iby /epoc32/rom/include/ //
-
-PRJ_MMPFILES
-// specify the .mmp files required for building the important component releasables
-// note that you should specify any .mmp files for test programs further down the file.
-//
-// It's best if the .MMP files are specified in the order in which the components are
-// built, but that eventually shouldn't matter
-//
-// Use C++ style #defines to denote that a component is only built for a particular platform
-//
-// specify "tidy" if the component you need to build doesn't need to be released to
-// the rest of the company
-// specify "ignore" if the MMP file exists but should be ignored - William wants this!
-
-../MmpFiles/Client/MediaClientImage.mmp // Client image utilities
-
-
-PRJ_TESTMMPFILES
-// specify the .mmp files required for building any test programs here
-//
-// you can specify "manual" to denote that a test should be listed in a generated
-// batch file for running a group of tests which require user input during testing.
-// you can specify "support" to denote that a file is a test support file and shouldn't
-// be listed in a batch file for running a group of tests
-// By default, each test will be listed in a batch file for running a group of tests
-// which can be left to run without requiring watching over by the person running the tests,
-// i.e. tests where no user input is required. The default will apply if neither "manual"
-// or "support" is specified.
-
-PRJ_TESTEXPORTS
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/MediaClientImage/Group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/MediaClientImage/Group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,63 @@
+// Copyright (c) 1999-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:
+// This file basically provides the information required for building the whole of a component
+// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
+// Examples are provided below of the kind of things we're expecting
+//
+//
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+
+DEFAULT
+
+PRJ_EXPORTS
+
+../Include/MdaImageConverter.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaimageconverter.h)
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+../Include/MdaFrameInfo.h /epoc32/include/mdaframeinfo.h
+#endif
+../Include/MediaSvrConvert.iby /epoc32/rom/include/ //
+
+PRJ_MMPFILES
+// specify the .mmp files required for building the important component releasables
+// note that you should specify any .mmp files for test programs further down the file.
+//
+// It's best if the .MMP files are specified in the order in which the components are
+// built, but that eventually shouldn't matter
+//
+// Use C++ style #defines to denote that a component is only built for a particular platform
+//
+// specify "tidy" if the component you need to build doesn't need to be released to
+// the rest of the company
+// specify "ignore" if the MMP file exists but should be ignored - William wants this!
+
+../MmpFiles/Client/MediaClientImage.mmp // Client image utilities
+
+
+PRJ_TESTMMPFILES
+// specify the .mmp files required for building any test programs here
+//
+// you can specify "manual" to denote that a test should be listed in a generated
+// batch file for running a group of tests which require user input during testing.
+// you can specify "support" to denote that a file is a test support file and shouldn't
+// be listed in a batch file for running a group of tests
+// By default, each test will be listed in a batch file for running a group of tests
+// which can be left to run without requiring watching over by the person running the tests,
+// i.e. tests where no user input is required. The default will apply if neither "manual"
+// or "support" is specified.
+
+PRJ_TESTEXPORTS
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/group/BLD.INF
--- a/imagingandcamerafws/imagingfws/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-// Copyright (c) 2001-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:
-// Image conversion library
-// This file basically provides the information required for building the whole of a component
-// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
-// Examples are provided below of the kind of things we're expecting
-//
-//
-
-/**
- @file
-*/
-
-
-// Include imagedisplay, imagetransform, imageprocessor, panorama and gifscaler sub-components
-#include "../GifScaler/group/bld_include.inf"
-#include "../ImageDisplay/group/bld.inf"
-#include "../ImageTransform/group/bld_include.inf"
-#include "../ImageProcessor/group/bld.inf"
-#include "../panorama/group/bld.inf"
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-DEFAULT
-
-PRJ_EXPORTS
-// specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// Public include files
-../inc/ImageConversion.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imageconversion.h)
-../inc/iclrecognizerutil.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(iclrecognizerutil.h)
-
-../inc/ICLExif.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(iclexif.h)
-../ExifUtility/inc/ExifUtility.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(exifutility.h)
-../inc/ICLExifImageFrame.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(iclexifimageframe.h)
-../inc/imageframe.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imageframe.h)
-../inc/imageframeconst.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imageframeconst.h)
-
-../inc/icl/ImageCodecData.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagecodecdata.h)
-../inc/icl/imageprocessor.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageprocessor.h)
-../inc/icl/ImageCodec.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagecodec.h)
-../inc/icl/imagecodecdef.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(icl/imagecodecdef.h)
-../inc/icl/ImageData.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagedata.h)
-../inc/icl/ImagePlugin.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageplugin.h)
-../inc/icl/ImageConstruct.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageconstruct.h)
-../inc/icl/ICL_PropertyUIDS.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/icl_propertyuids.h)
-../inc/icl/imageconversionextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageconversionextension.h)
-../inc/icl/imageconversionextensionintf.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageconversionextensionintf.h)
-
-../inc/icl/ICL_UIDS.hrh /epoc32/include/icl/icl_uids.hrh
-../inc/icl/icl_uids_const.hrh /epoc32/include/icl/icl_uids_const.hrh
-../inc/icl/icl_uids_def.hrh /epoc32/include/icl/icl_uids_def.hrh
-
-../inc/icl/ICL_PropertyUIDS.hrh /epoc32/include/icl/icl_propertyuids.hrh
-../inc/imageframeformats.hrh /epoc32/include/imageframeformats.hrh
-../inc/imageframeconst.hrh /epoc32/include/imageframeconst.hrh
-
-// ROM buildsupport
-../group/ImageConversion.iby /epoc32/rom/include/imageconversion.iby
-../ExifUtility/inc/ExifUtility.iby /epoc32/rom/include/exifutility.iby
-
-
-PRJ_MMPFILES
-// specify the .mmp files required for building the important component releasables
-// note that you should specify any .mmp files for test programs further down the file.
-//
-// It's best if the .MMP files are specified in the order in which the components are
-// built, but that eventually shouldn't matter
-//
-// Use C++ style #defines to denote that a component is only built for a particular platform
-//
-// specify "tidy" if the component you need to build doesn't need to be released to
-// the rest of the company
-// specify "ignore" if the MMP file exists but should be ignored - William wants this!
-
-
-// Firstly build the image conversion library
-../group/ImageProcessorPerf.mmp
-../group/ImageConversion.mmp
-../group/ExifLibStatic.mmp
-
-// Now build the image conversion custom resolver
-../group/ImageConversionResolver.mmp
-
-// Now build the image recognizer
-../group/RecIcl.mmp
-
-../group/JPEGExifPlugin.mmp
-../ExifUtility/mmpfiles/ExifUtility.mmp
-../group/JPEGImageFramePlugin.mmp
-
-
-
-PRJ_TESTMMPFILES
-// specify the .mmp files required for building any test programs here
-//
-// you can specify "manual" to denote that a test should be listed in a generated
-// batch file for running a group of tests which require user input during testing.
-// you can specify "support" to denote that a file is a test support file and shouldn't
-// be listed in a batch file for running a group of tests
-// By default, each test will be listed in a batch file for running a group of tests
-// which can be left to run without requiring watching over by the person running the tests,
-// i.e. tests where no user input is required. The default will apply if neither "manual"
-// or "support" is specified.
-
-../group/TImageViewer.mmp
-../group/TImageDisplay.mmp
-../group/TImageTran.mmp
-../group/tphotoeditor.mmp
-
-PRJ_TESTEXPORTS
-// specify the source file followed by its destination here
-// copy will be used to copsy the source file to its destination
-
-// Romkit include files - additional test files
-../group/ImageConversionTest.iby /epoc32/rom/include/imageconversiontest.iby
-../group/ImageConversionProfile.iby /epoc32/rom/include/imageconversionprofile.iby
-../group/TImageViewer.iby /epoc32/rom/include/timageviewer.iby
-../group/TImageDisplay.iby /epoc32/rom/include/timagedisplay.iby
-../group/timagetran.iby /epoc32/rom/include/timagetran.iby
-../group/tphotoeditor.iby /epoc32/rom/include/tphotoeditor.iby
-
-
-PRJ_TESTEXPORTS
-// BitmapTransforms
-#include "../BitmapTransform/group/BLD.inf"
-// MediaClientImage
-#include "../MediaClientImage/Group/BLD.INF"
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,140 @@
+// Copyright (c) 2001-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:
+// Image conversion library
+// This file basically provides the information required for building the whole of a component
+// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
+// Examples are provided below of the kind of things we're expecting
+//
+//
+
+/**
+ @file
+*/
+
+
+// Include imagedisplay, imagetransform, imageprocessor, panorama and gifscaler sub-components
+#include "../GifScaler/group/bld.inf"
+#include "../ImageDisplay/group/bld.inf"
+#include "../ImageTransform/group/bld.inf"
+#include "../ImageProcessor/group/bld.inf"
+#include "../panorama/group/bld.inf"
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_EXPORTS
+// specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// Public include files
+../inc/ImageConversion.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imageconversion.h)
+../inc/iclrecognizerutil.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(iclrecognizerutil.h)
+
+../inc/ICLExif.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(iclexif.h)
+../ExifUtility/inc/ExifUtility.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(exifutility.h)
+../inc/ICLExifImageFrame.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(iclexifimageframe.h)
+../inc/imageframe.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imageframe.h)
+../inc/imageframeconst.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(imageframeconst.h)
+
+../inc/icl/ImageCodecData.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagecodecdata.h)
+../inc/icl/imageprocessor.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageprocessor.h)
+../inc/icl/ImageCodec.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagecodec.h)
+../inc/icl/imagecodecdef.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(icl/imagecodecdef.h)
+../inc/icl/ImageData.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imagedata.h)
+../inc/icl/ImagePlugin.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageplugin.h)
+../inc/icl/ImageConstruct.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageconstruct.h)
+../inc/icl/ICL_PropertyUIDS.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/icl_propertyuids.h)
+../inc/icl/imageconversionextension.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageconversionextension.h)
+../inc/icl/imageconversionextensionintf.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(icl/imageconversionextensionintf.h)
+
+../inc/icl/ICL_UIDS.hrh /epoc32/include/icl/icl_uids.hrh
+../inc/icl/icl_uids_const.hrh /epoc32/include/icl/icl_uids_const.hrh
+../inc/icl/icl_uids_def.hrh /epoc32/include/icl/icl_uids_def.hrh
+
+../inc/icl/ICL_PropertyUIDS.hrh /epoc32/include/icl/icl_propertyuids.hrh
+../inc/imageframeformats.hrh /epoc32/include/imageframeformats.hrh
+../inc/imageframeconst.hrh /epoc32/include/imageframeconst.hrh
+
+// ROM buildsupport
+../group/ImageConversion.iby /epoc32/rom/include/imageconversion.iby
+../ExifUtility/inc/ExifUtility.iby /epoc32/rom/include/exifutility.iby
+
+
+PRJ_MMPFILES
+// specify the .mmp files required for building the important component releasables
+// note that you should specify any .mmp files for test programs further down the file.
+//
+// It's best if the .MMP files are specified in the order in which the components are
+// built, but that eventually shouldn't matter
+//
+// Use C++ style #defines to denote that a component is only built for a particular platform
+//
+// specify "tidy" if the component you need to build doesn't need to be released to
+// the rest of the company
+// specify "ignore" if the MMP file exists but should be ignored - William wants this!
+
+
+// Firstly build the image conversion library
+../group/ImageProcessorPerf.mmp
+../group/ImageConversion.mmp
+../group/ExifLibStatic.mmp
+
+// Now build the image conversion custom resolver
+../group/ImageConversionResolver.mmp
+
+// Now build the image recognizer
+../group/RecIcl.mmp
+
+../group/JPEGExifPlugin.mmp
+../ExifUtility/mmpfiles/ExifUtility.mmp
+../group/JPEGImageFramePlugin.mmp
+
+
+
+PRJ_TESTMMPFILES
+// specify the .mmp files required for building any test programs here
+//
+// you can specify "manual" to denote that a test should be listed in a generated
+// batch file for running a group of tests which require user input during testing.
+// you can specify "support" to denote that a file is a test support file and shouldn't
+// be listed in a batch file for running a group of tests
+// By default, each test will be listed in a batch file for running a group of tests
+// which can be left to run without requiring watching over by the person running the tests,
+// i.e. tests where no user input is required. The default will apply if neither "manual"
+// or "support" is specified.
+
+../group/TImageViewer.mmp
+../group/TImageDisplay.mmp
+../group/TImageTran.mmp
+../group/tphotoeditor.mmp
+
+PRJ_TESTEXPORTS
+// specify the source file followed by its destination here
+// copy will be used to copsy the source file to its destination
+
+// Romkit include files - additional test files
+../group/ImageConversionTest.iby /epoc32/rom/include/imageconversiontest.iby
+../group/ImageConversionProfile.iby /epoc32/rom/include/imageconversionprofile.iby
+../group/TImageViewer.iby /epoc32/rom/include/timageviewer.iby
+../group/TImageDisplay.iby /epoc32/rom/include/timagedisplay.iby
+../group/timagetran.iby /epoc32/rom/include/timagetran.iby
+../group/tphotoeditor.iby /epoc32/rom/include/tphotoeditor.iby
+
+
+PRJ_TESTEXPORTS
+// BitmapTransforms
+#include "../BitmapTransform/group/bld.inf"
+// MediaClientImage
+#include "../MediaClientImage/Group/bld.inf"
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/inc/ImageConversion.h
--- a/imagingandcamerafws/imagingfws/inc/ImageConversion.h Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingfws/inc/ImageConversion.h Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2001-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"
@@ -340,7 +340,15 @@
Requests that codec applies the auto rotation when decoding according to the orientation tag in the image Exif header.
*/
- EOptionAutoRotate = 0x040000
+ EOptionAutoRotate = 0x040000,
+
+ /**
+ @publishedPartner
+ @prototype
+
+ Requests the Codec to do optimised partial image decoding, whenever partial decoding is needed.
+ */
+ EOptionOptimisedPartialImageDecoding = 0x80000
};
/**
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/inc/icl/ICL_PropertyUIDS.h
--- a/imagingandcamerafws/imagingfws/inc/icl/ICL_PropertyUIDS.h Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingfws/inc/icl/ICL_PropertyUIDS.h Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-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"
@@ -98,6 +98,12 @@
*/
const TUid KUidJPGAutoRotateSupport = {KUidJPGAutoRotateSupportValue};
+/**
+Identifier for optimised partial decoding support property.
+ @see KUidJPGOptimisedPartialDecodingSupportValue
+*/
+const TUid KUidJPGOptimisedPartialDecodingSupport = {KUidJPGOptimisedPartialDecodingSupportValue};
+
/**
Identifier for an ICL Extension. This is used in the opaque_data section of an ICL
codec plugin as part of a pair of values "KUidICLExtension "
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/inc/icl/ICL_PropertyUIDS.hrh
--- a/imagingandcamerafws/imagingfws/inc/icl/ICL_PropertyUIDS.hrh Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingfws/inc/icl/ICL_PropertyUIDS.hrh Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-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"
@@ -89,6 +89,12 @@
*/
#define KUidJPGAutoRotateSupportValue 0x10287049
+/**
+Defines the numerical value for KUidJPGOptimisedPartialDecodingSupport.
+ @see KUidJPGOptimisedPartialDecodingSupport
+*/
+#define KUidJPGOptimisedPartialDecodingSupportValue 0x2002BCBD
+
/**
Defines the numerical value for KUidICLExtension.
@see KUidICLExtension
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingfws/src/ImageResolverAPI.cpp
--- a/imagingandcamerafws/imagingfws/src/ImageResolverAPI.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingfws/src/ImageResolverAPI.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-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"
@@ -554,8 +554,12 @@
if ((aOptions & CImageDecoder::EOptionAutoRotate) != 0)
{
iOptionsUidsArray.Append(KUidJPGAutoRotateSupport);
- iOptions = aOptions;
}
+ if((aOptions & CImageDecoder::EOptionOptimisedPartialImageDecoding) != 0)
+ {
+ iOptionsUidsArray.Append(KUidJPGOptimisedPartialDecodingSupport);
+ }
+ iOptions = aOptions;
}
/*
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/Codecs/Group/BLD.INF
--- a/imagingandcamerafws/imaginginttest/Codecs/Group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 2001-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:
-// This file basically provides the information required for building the whole of a component
-// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
-// Examples are provided below of the kind of things we're expecting
-//
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-
-
-PRJ_EXPORTS
-
-ppm1codec.iby /epoc32/rom/include/ppm1codec.iby
-ppm2codec.iby /epoc32/rom/include/ppm2codec.iby
-
-PRJ_MMPFILES
-
-../Group/PPm1Codec.mmp
-../Group/PPm2Codec.mmp
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/Codecs/Group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imaginginttest/Codecs/Group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,37 @@
+// Copyright (c) 2001-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:
+// This file basically provides the information required for building the whole of a component
+// C & C++ style comments are allowed in this file because it's passed through the C++ preprocessor
+// Examples are provided below of the kind of things we're expecting
+//
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+PRJ_TESTEXPORTS
+
+ppm1codec.iby /epoc32/rom/include/ppm1codec.iby
+ppm2codec.iby /epoc32/rom/include/ppm2codec.iby
+
+PRJ_TESTMMPFILES
+
+../Group/PPm1Codec.mmp
+../Group/PPm2Codec.mmp
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/Codecs/PpmSamples/lain.ppm
Binary file imagingandcamerafws/imaginginttest/Codecs/PpmSamples/lain.ppm has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/TSI_ICL_COD/group/Bld.inf
--- a/imagingandcamerafws/imaginginttest/TSI_ICL_COD/group/Bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-#include "../../TestImageIAgent/group/bld.inf"
-
-PRJ_MMPFILES
-../MMPFiles/TSI_ICL_COD.mmp
-
-PRJ_EXPORTS
-// Test Scripts
-../scriptFiles/TSI_ICL_COD_00.script c:/icl/tsi_icl_cod_00.script
-../scriptFiles/TSI_ICL_COD_01.script c:/icl/tsi_icl_cod_01.script
-../scriptFiles/TSI_ICL_COD_02.script c:/icl/tsi_icl_cod_02.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/TSI_ICL_COD/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imaginginttest/TSI_ICL_COD/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,32 @@
+// Copyright (c) 2004-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:
+//
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+#include "../../TestImageIAgent/group/bld.inf"
+PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+../MMPFiles/TSI_ICL_COD.mmp
+
+PRJ_TESTEXPORTS
+// Test Scripts
+../scriptFiles/TSI_ICL_COD_00.script c:/icl/tsi_icl_cod_00.script
+../scriptFiles/TSI_ICL_COD_01.script c:/icl/tsi_icl_cod_01.script
+../scriptFiles/TSI_ICL_COD_02.script c:/icl/tsi_icl_cod_02.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/TestImageIAgent/group/bld.inf
--- a/imagingandcamerafws/imaginginttest/TestImageIAgent/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imaginginttest/TestImageIAgent/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,7 +17,11 @@
DEFAULT
PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+PRJ_TESTEXPORTS
../group/multimediatestimageiagent.iby /epoc32/rom/include/multimediatestimageiagent.iby
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
multimediatestimageiagent.mmp
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/group/Bld.inf
--- a/imagingandcamerafws/imaginginttest/group/Bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,286 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-// DEFAULT MISA
-// WINS ARMI THUMB
-// MINT
-
-#ifdef SYMBIAN_ENABLE_1630_JPEG_EXTENSIONS
-#include "../imagedecoder/group/bld_include.inf"
-#include "../imageencoder/group/bld_include.inf"
-#endif
-
-#include "../tsi_icl_btrans_01/group/BLD.INF"
-#include "../TSI_ICL_COD/group/Bld.inf"
-#include "../te_tsi_icl_cod_5/group/bld.inf"
-#include "../te_tsi_icl_pluginsupport_01/group/bld.inf"
-#include "../Codecs/Group/BLD.INF"
-
-
-PRJ_MMPFILES
-
-// TSI_WP5 files
-// Add the build instructions - NOTE - Must be inserted here in MMP list
-../mmpfiles/TSI_ICL_FRM_00.mmp
-
-PRJ_EXPORTS
-../scriptfiles/TSI_ICL_FRM_00.script c:/icl/tsi_icl_frm_00.script
-
-../scriptfiles/TSI_ICL_FRM_FS.script c:/icl/tsi_icl_frm_fs.script
-../scriptfiles/TSI_ICL_FRM_DRM.script c:/icl/tsi_icl_frm_drm.script
-
-../scriptfiles/TSI_ICL_FRM_RF.script c:/icl/tsi_icl_frm_rf.script
-../scriptfiles/TSI_ICL_FRM_RF_ALLOC.script c:/icl/tsi_icl_frm_rf_alloc.script
-
-../scriptfiles/TSI_ICL_FRM_YUV.script c:/icl/tsi_icl_frm_yuv.script
-../scriptfiles/TSI_ICL_FRM_YUV_ALLOC.script c:/icl/tsi_icl_frm_yuv_alloc.script
-
-../scriptfiles/TSI_ICL_FRM_00.ini c:/icl/tsi_icl_frm_00.ini
-
-
-// test files
-../src/Data/jfif444_8.mbm c:/icl/refimages/jfif444_8.mbm
-../src/Data/jfif444.drm c:/icl/testimages/jfif444.drm
-../src/Data/drmstub.drm c:/icl/testimages/drmstub.drm
-../src/Data/jfif444.mbm c:/icl/refimages/jfif444.mbm
-../src/Data/trans_1.mbm c:/icl/refimages/trans_1.mbm
-../src/Data/trans_8.mbm c:/icl/refimages/trans_8.mbm
-../src/Data/bmp8bpp_8.mbm c:/icl/refimages/bmp8bpp_8.mbm
-../src/Data/operator.drm c:/icl/testimages/operator.drm
-../src/Data/operator.mbm c:/icl/refimages/operator.mbm
-../src/Data/sun.mbm c:/icl/refimages/sun.mbm
-../src/Data/png4_8.mbm c:/icl/refimages/png4_8.mbm
-../src/Data/tif3_4.mbm c:/icl/refimages/tif3_4.mbm
-../src/Data/wmf3_8.mbm c:/icl/refimages/wmf3_8.mbm
-../src/Data/icoepoc.mbm c:/icl/refimages/icoepoc.mbm
-../src/Data/mbm24bpp_4.mbm c:/icl/refimages/mbm24bpp_4.mbm
-../src/Data/mbm24bpp_4.mbm c:/icl/testimages/mbm24bpp_4.mbm
-../src/Data/minimum.mbm c:/icl/refimages/minimum.mbm
-../src/Data/textfile.mbm c:/icl/refimages/textfile.mbm
-../src/Data/img_1705.mbm c:/icl/refimages/img_1705.mbm
-
-../src/Data/Preview.ppm c:/icl/testimages/preview.ppm
-../src/Data/preview.mbm c:/icl/refimages/preview.mbm
-../src/Data/mbm_datanewl_0300.uic c:/icl/testimages/mbm_datanewl_0300.uic
-../src/Data/mbm_datanewl_0300.mbm c:/icl/refimages/mbm_datanewl_0300.mbm
-
-
-
-// SYMBIAN_CAF_V2
-../src/Data/Image.contentrights c:/icl/testimages/image.contentrights
-../src/Data/Image.content c:/icl/testimages/image.content
-
-#ifdef SYMBIAN_ENABLE_1630_JPEG_EXTENSIONS
-// test images
-../data/testimages/mbm/bitmap_verySmall02.mbm c:/icl/testimages/mbm/bitmap_verysmall02.mbm
-../data/testimages/mbm/bitmap_verySmall01.mbm c:/icl/testimages/mbm/bitmap_verysmall01.mbm
-../data/testimages/mbm/bitmap_average01.mbm c:/icl/testimages/mbm/bitmap_average01.mbm
-../data/testimages/mbm/bitmap_average02.mbm c:/icl/testimages/mbm/bitmap_average02.mbm
-../data/testimages/mbm/bitmap_small01.mbm c:/icl/testimages/mbm/bitmap_small01.mbm
-../data/testimages/mbm/bitmap_small02.mbm c:/icl/testimages/mbm/bitmap_small02.mbm
-../data/testimages/mbm/bitmap_small03.mbm c:/icl/testimages/mbm/bitmap_small03.mbm
-../data/testimages/mbm/bitmap_small08.mbm c:/icl/testimages/mbm/bitmap_small08.mbm
-../data/testimages/mbm/bitmap_wideandthin01.mbm c:/icl/testimages/mbm/bitmap_wideandthin01.mbm
-../data/testimages/mbm/bitmap_wideandthin08.mbm c:/icl/testimages/mbm/bitmap_wideandthin08.mbm
-../data/testimages/mbm/bitmap_wideandthin16.mbm c:/icl/testimages/mbm/bitmap_wideandthin16.mbm
-../data/testimages/mbm/bitmap_wideandthin14.mbm c:/icl/testimages/mbm/bitmap_wideandthin14.mbm
-../data/testimages/mbm/bitmap_wideandthin13.mbm c:/icl/testimages/mbm/bitmap_wideandthin13.mbm
-../data/testimages/mbm/bitmap_tallandthin01.mbm c:/icl/testimages/mbm/bitmap_tallandthin01.mbm
-../data/testimages/mbm/bitmap_tallandthin08.mbm c:/icl/testimages/mbm/bitmap_tallandthin08.mbm
-../data/testimages/mbm/bitmap_tallandthin06.mbm c:/icl/testimages/mbm/bitmap_tallandthin06.mbm
-../data/testimages/mbm/bitmap_tallandthin16.mbm c:/icl/testimages/mbm/bitmap_tallandthin16.mbm
-../data/testimages/mbm/bitmap_tallandthin17.mbm c:/icl/testimages/mbm/bitmap_tallandthin17.mbm
-../data/testimages/mbm/jpeg_tallandthin16.mbm c:/icl/testimages/mbm/jpeg_tallandthin16.mbm
-../data/testimages/mbm/jpeg_multiscan.mbm c:/icl/testimages/mbm/jpeg_multiscan.mbm
-../data/testimages/mbm/bitmap_restartinterop.mbm c:/icl/testimages/mbm/bitmap_restartinterop.mbm
-
-// reference images
-../data/refimages/mbm/jpeg_sml07_refperf100.mbm c:/icl/refimages/mbm/jpeg_sml07_refperf100.mbm
-../data/refimages/mbm/jpeg_sml10_refperf110.mbm c:/icl/refimages/mbm/jpeg_sml10_refperf110.mbm
-../data/refimages/mbm/jpeg_sml11_refperf130.mbm c:/icl/refimages/mbm/jpeg_sml11_refperf130.mbm
-../data/refimages/mbm/jpeg_sml11_refperf150.mbm c:/icl/refimages/mbm/jpeg_sml11_refperf150.mbm
-../data/refimages/mbm/jpeg_avg02_refperf160.mbm c:/icl/refimages/mbm/jpeg_avg02_refperf160.mbm
-../data/refimages/mbm/jpeg_sml11_refperf170.mbm c:/icl/refimages/mbm/jpeg_sml11_refperf170.mbm
-../data/refimages/mbm/jpeg_avg02_refperf180.mbm c:/icl/refimages/mbm/jpeg_avg02_refperf180.mbm
-../data/refimages/mbm/jpeg_sml07_refperf200.mbm c:/icl/refimages/mbm/jpeg_sml07_refperf200.mbm
-../data/refimages/mbm/jpeg_sml02_refperf210.mbm c:/icl/refimages/mbm/jpeg_sml02_refperf210.mbm
-../data/refimages/mbm/jpeg_sml04_refperf300.mbm c:/icl/refimages/mbm/jpeg_sml04_refperf300.mbm
-../data/refimages/mbm/jpeg_sml03_refperf310_510.mbm c:/icl/refimages/mbm/jpeg_sml03_refperf310_510.mbm
-../data/refimages/mbm/jpeg_sml04_refperf330.mbm c:/icl/refimages/mbm/jpeg_sml04_refperf330.mbm
-../data/refimages/mbm/jpeg_sml03_refperf340.mbm c:/icl/refimages/mbm/jpeg_sml03_refperf340.mbm
-../data/refimages/mbm/jpeg_sml07_refperf400.mbm c:/icl/refimages/mbm/jpeg_sml07_refperf400.mbm
-../data/refimages/mbm/jpeg_sml02_refperf410.mbm c:/icl/refimages/mbm/jpeg_sml02_refperf410.mbm
-../data/refimages/mbm/jpeg_sml04_refperf500.mbm c:/icl/refimages/mbm/jpeg_sml04_refperf500.mbm
-../data/refimages/mbm/jpeg_sml02_refperf700.mbm c:/icl/refimages/mbm/jpeg_sml02_refperf700.mbm
-../data/refimages/mbm/jpeg_avg02_refperf710.mbm c:/icl/refimages/mbm/jpeg_avg02_refperf710.mbm
-
-../data/refimages/mbm/jpeg_sml05_refcrop50_70.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop50_70.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop98.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop98.mbm
-../data/refimages/mbm/jpeg_sml09_refcrop110_emono.mbm c:/icl/refimages/mbm/jpeg_sml09_refcrop110_emono.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop120_eclr420.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop120_eclr420.mbm
-../data/refimages/mbm/jpeg_sml13_refcrop130_eclr422.mbm c:/icl/refimages/mbm/jpeg_sml13_refcrop130_eclr422.mbm
-../data/refimages/mbm/jpeg_sml14_refcrop135_eclr444.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop135_eclr444.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop140_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop140_egray2.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop150_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop150_egray4.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop155_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop155_egray16.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop160_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop160_egray256.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop165_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop165_eclr16.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop170_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop170_eclr256.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop180_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop180_eclr64k.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop190_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop190_eclr16m.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop200_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop200_eclr4k.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop212.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop212.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop220.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop220.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop230.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop230.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop240.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop240.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop260.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop260.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop370_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop370_egray2.mbm
-../data/refimages/mbm/jpeg_sml07_refcrop380_egray4.mbm c:/icl/refimages/mbm/jpeg_sml07_refcrop380_egray4.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop400.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop400.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop401.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop401.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop402.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop402.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop403.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop403.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop404.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop404.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop405.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop405.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop406.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop406.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop410_410_2_420_430_430_5.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop410_410_2_420_430_430_5.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop420_2_430_2.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop420_2_430_2.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop430_3.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_3.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop430_4.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_4.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop430_6.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_6.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop430_7.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_7.mbm
-../data/refimages/mbm/jpeg_sml14_refcrop440.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop440.mbm
-../data/refimages/mbm/jpeg_sml14_refcrop450.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop450.mbm
-../data/refimages/mbm/jpeg_sml14_refcrop460.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop460.mbm
-../data/refimages/mbm/jpeg_sml14_refcrop470.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop470.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop510.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop510.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop520.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop520.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop530.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop530.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop540.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop540.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop550.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop550.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop560.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop560.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop570.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop570.mbm
-../data/refimages/mbm/jpeg_sml12_refcrop580.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop580.mbm
-../data/refimages/mbm/jpeg_avg01_refcrop590.mbm c:/icl/refimages/mbm/jpeg_avg01_refcrop590.mbm
-../data/refimages/mbm/jpeg_crpt02_refcrop610.mbm c:/icl/refimages/mbm/jpeg_crpt02_refcrop610.mbm
-../data/refimages/mbm/jpeg_crpt02_refcrop615.mbm c:/icl/refimages/mbm/jpeg_crpt02_refcrop615.mbm
-../data/refimages/mbm/jpeg_sml11_refcrop690_eclr420.mbm c:/icl/refimages/mbm/jpeg_sml11_refcrop690_eclr420.mbm
-../data/refimages/mbm/jpeg_mltscan_refcrop700.mbm c:/icl/refimages/mbm/jpeg_mltscan_refcrop700.mbm
-../data/refimages/mbm/jpeg_reinterop_refcrop720.mbm c:/icl/refimages/mbm/jpeg_reinterop_refcrop720.mbm
-
-../data/refimages/mbm/jpeg_sml05_refscal110_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal110_egray2.mbm
-../data/refimages/mbm/jpeg_sml05_refscal120_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal120_egray4.mbm
-../data/refimages/mbm/jpeg_sml05_refscal130_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal130_egray16.mbm
-../data/refimages/mbm/jpeg_sml05_refscal140_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal140_egray256.mbm
-../data/refimages/mbm/jpeg_sml05_refscal150_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal150_eclr16.mbm
-../data/refimages/mbm/jpeg_sml05_refscal160_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal160_eclr256.mbm
-../data/refimages/mbm/jpeg_sml05_refscal170_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal170_eclr64k.mbm
-../data/refimages/mbm/jpeg_sml05_refscal180_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal180_eclr16m.mbm
-../data/refimages/mbm/jpeg_sml04_refscal190_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal190_eclr4k.mbm
-../data/refimages/mbm/jpeg_sml04_refscal195_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal195_eclr4k.mbm
-../data/refimages/mbm/jpeg_sml04_refscal210.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal210.mbm
-../data/refimages/mbm/jpeg_sml04_refscal220.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal220.mbm
-../data/refimages/mbm/jpeg_sml04_refscal230.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal230.mbm
-../data/refimages/mbm/jpeg_crpt05_refscal710.mbm c:/icl/refimages/mbm/jpeg_crpt05_refscal710.mbm
-../data/refimages/mbm/jpeg_reinterop_refscal720.mbm c:/icl/refimages/mbm/jpeg_reinterop_refscal720.mbm
-
-../data/refimages/mbm/jpeg_sml01_refrtmr30_50_180_210_220.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr30_50_180_210_220.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr70_egray2.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr70_egray2.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr80_egray4.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr80_egray4.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr90_egray16.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr90_egray16.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr100_egray256.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr100_egray256.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr110_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr110_eclr16.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr120_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr120_eclr256.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr130_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr130_eclr64k.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr140_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr140_eclr16m.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr150_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr150_eclr4k.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr162.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr162.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr170_230.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr170_230.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr190_240.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr190_240.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr200.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr200.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr250.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr250.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr260.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr260.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr270.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr270.mbm
-../data/refimages/mbm/jpeg_sml05_refrtmr320_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refrtmr320_egray2.mbm
-../data/refimages/mbm/jpeg_sml07_refrtmr330_egray4.mbm c:/icl/refimages/mbm/jpeg_sml07_refrtmr330_egray4.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr350.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr350.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr360.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr360.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr370.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr370.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr380.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr380.mbm
-../data/refimages/mbm/jpeg_sml02_refrtmr400_520_550.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr400_520_550.mbm
-../data/refimages/mbm/jpeg_sml02_refrtmr410.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr410.mbm
-../data/refimages/mbm/jpeg_sml02_refrtmr420.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr420.mbm
-../data/refimages/mbm/jpeg_sml02_refrtmr460_510.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr460_510.mbm
-../data/refimages/mbm/jpeg_sml02_refrtmr480_540.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr480_540.mbm
-../data/refimages/mbm/jpeg_sml02_refrtmr500_530.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr500_530.mbm
-../data/refimages/mbm/jpeg_crpt05_refrtmr710.mbm c:/icl/refimages/mbm/jpeg_crpt05_refrtmr710.mbm
-../data/refimages/mbm/jpeg_mltscan_refrtmr700.mbm c:/icl/refimages/mbm/jpeg_mltscan_refrtmr700.mbm
-../data/refimages/mbm/jpeg_reinterop_refrtmr720.mbm c:/icl/refimages/mbm/jpeg_reinterop_refrtmr720.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr750.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr750.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr760.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr760.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr770.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr770.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr780.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr780.mbm
-../data/refimages/mbm/image_content_refrtmr790.mbm c:/icl/refimages/mbm/image_content_refrtmr790.mbm
-../data/refimages/mbm/jpeg_sml01_refrtmr740.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr740.mbm
-
-../data/refimages/mbm/jpeg_sml05_refmuop10_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop10_egray2.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop20_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop20_egray4.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop30_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop30_egray16.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop40_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop40_egray256.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop50_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop50_eclr16.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop60_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop60_eclr256.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop70_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop70_eclr64k.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop80_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop80_eclr16m.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop90_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop90_eclr4k.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop110_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop110_egray2.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop120_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop120_egray4.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop130_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop130_egray16.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop140_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop140_egray256.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop150_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop150_eclr16.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop160_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop160_eclr256.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop170_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop170_eclr64k.mbm
-../data/refimages/mbm/jpeg_sml04_refmuop180_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml04_refmuop180_eclr16m.mbm
-../data/refimages/mbm/jpeg_sml04_refmuop190_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml04_refmuop190_eclr4k.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop210_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop210_egray2.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop220_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop220_egray4.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop230_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop230_egray16.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop240_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop240_egray256.mbm
-../data/refimages/mbm/jpeg_sml05_refmuop250_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop250_eclr16.mbm
-../data/refimages/mbm/jpeg_sml05_refcrop730.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop730.mbm
-../data/refimages/mbm/jpeg_sml05_refscal730_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal730_egray2.mbm
-
-../data/refimages/mbm/auto_rot_1_refarto10.mbm c:/icl/refimages/mbm/auto_rot_1_refarto10.mbm
-../data/refimages/mbm/auto_rot_1_refarto20.mbm c:/icl/refimages/mbm/auto_rot_1_refarto20.mbm
-../data/refimages/mbm/auto_rot_2_refarto30.mbm c:/icl/refimages/mbm/auto_rot_2_refarto30.mbm
-../data/refimages/mbm/auto_rot_4_refarto40.mbm c:/icl/refimages/mbm/auto_rot_4_refarto40.mbm
-../data/refimages/mbm/auto_rot_1_refarcr60.mbm c:/icl/refimages/mbm/auto_rot_1_refarcr60.mbm
-../data/refimages/mbm/auto_rot_1_refarcr70.mbm c:/icl/refimages/mbm/auto_rot_1_refarcr70.mbm
-../data/refimages/mbm/auto_rot_2_refarsc150_eclr80.mbm c:/icl/refimages/mbm/auto_rot_2_refarsc150_eclr80.mbm
-../data/refimages/mbm/auto_rot_2_refarsc90_egray2.mbm c:/icl/refimages/mbm/auto_rot_2_refarsc90_egray2.mbm
-../data/refimages/mbm/bitmap_sml01_refarto110.mbm c:/icl/refimages/mbm/bitmap_sml01_refarto110.mbm
-../data/refimages/mbm/jpeg_sml03_refarto100.mbm c:/icl/refimages/mbm/jpeg_sml03_refarto100.mbm
-../data/refimages/mbm/auto_rot_4_ref160_dec1.mbm c:/icl/refimages/mbm/auto_rot_4_ref160_dec1.mbm
-../data/refimages/mbm/auto_rot_4_refarto160.mbm c:/icl/refimages/mbm/auto_rot_4_refarto160.mbm
-
-#endif
-
-// there used to be a number of exports below which were mirrored in the unit tests.
-// instead these are no longer exported from here and are just exported from the unit
-// tests in order to fix errors in the mrp file mappings. Thus the unit tests have to
-// be built before running the integrations tests.
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imaginginttest/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,292 @@
+// Copyright (c) 2004-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:
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+// DEFAULT MISA
+// WINS ARMI THUMB
+// MINT
+
+#ifdef SYMBIAN_ENABLE_1630_JPEG_EXTENSIONS
+#include "../imagedecoder/group/bld.inf"
+#include "../imageencoder/group/bld.inf"
+#endif
+
+#include "../tsi_icl_btrans_01/group/bld.inf"
+#include "../TSI_ICL_COD/group/bld.inf"
+#include "../te_tsi_icl_cod_5/group/bld.inf"
+#include "../te_tsi_icl_pluginsupport_01/group/bld.inf"
+#include "../Codecs/Group/bld.inf"
+
+
+PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+
+// TSI_WP5 files
+// Add the build instructions - NOTE - Must be inserted here in MMP list
+../mmpfiles/TSI_ICL_FRM_00.mmp
+
+PRJ_TESTEXPORTS
+../scriptfiles/TSI_ICL_FRM_00.script c:/icl/tsi_icl_frm_00.script
+
+../scriptfiles/TSI_ICL_FRM_FS.script c:/icl/tsi_icl_frm_fs.script
+../scriptfiles/TSI_ICL_FRM_DRM.script c:/icl/tsi_icl_frm_drm.script
+
+../scriptfiles/TSI_ICL_FRM_RF.script c:/icl/tsi_icl_frm_rf.script
+../scriptfiles/TSI_ICL_FRM_RF_ALLOC.script c:/icl/tsi_icl_frm_rf_alloc.script
+
+../scriptfiles/TSI_ICL_FRM_YUV.script c:/icl/tsi_icl_frm_yuv.script
+../scriptfiles/TSI_ICL_FRM_YUV_ALLOC.script c:/icl/tsi_icl_frm_yuv_alloc.script
+
+../scriptfiles/TSI_ICL_FRM_00.ini c:/icl/tsi_icl_frm_00.ini
+
+../group/IntTest_Icl.iby /epoc32/rom/include/IntTest_Icl.iby
+
+// test files
+../src/Data/jfif444_8.mbm c:/icl/refimages/jfif444_8.mbm
+../src/Data/jfif444.drm c:/icl/testimages/jfif444.drm
+../src/Data/drmstub.drm c:/icl/testimages/drmstub.drm
+../src/Data/jfif444.mbm c:/icl/refimages/jfif444.mbm
+../src/Data/trans_1.mbm c:/icl/refimages/trans_1.mbm
+../src/Data/trans_8.mbm c:/icl/refimages/trans_8.mbm
+../src/Data/bmp8bpp_8.mbm c:/icl/refimages/bmp8bpp_8.mbm
+../src/Data/operator.drm c:/icl/testimages/operator.drm
+../src/Data/operator.mbm c:/icl/refimages/operator.mbm
+../src/Data/sun.mbm c:/icl/refimages/sun.mbm
+../src/Data/png4_8.mbm c:/icl/refimages/png4_8.mbm
+../src/Data/tif3_4.mbm c:/icl/refimages/tif3_4.mbm
+../src/Data/wmf3_8.mbm c:/icl/refimages/wmf3_8.mbm
+../src/Data/icoepoc.mbm c:/icl/refimages/icoepoc.mbm
+../src/Data/mbm24bpp_4.mbm c:/icl/refimages/mbm24bpp_4.mbm
+../src/Data/mbm24bpp_4.mbm c:/icl/testimages/mbm24bpp_4.mbm
+../src/Data/minimum.mbm c:/icl/refimages/minimum.mbm
+../src/Data/textfile.mbm c:/icl/refimages/textfile.mbm
+../src/Data/img_1705.mbm c:/icl/refimages/img_1705.mbm
+
+../src/Data/Preview.ppm c:/icl/testimages/preview.ppm
+../src/Data/preview.mbm c:/icl/refimages/preview.mbm
+../src/Data/mbm_datanewl_0300.uic c:/icl/testimages/mbm_datanewl_0300.uic
+../src/Data/mbm_datanewl_0300.mbm c:/icl/refimages/mbm_datanewl_0300.mbm
+
+
+
+// SYMBIAN_CAF_V2
+../src/Data/Image.contentrights c:/icl/testimages/image.contentrights
+../src/Data/Image.content c:/icl/testimages/image.content
+
+#ifdef SYMBIAN_ENABLE_1630_JPEG_EXTENSIONS
+// test images
+../data/testimages/mbm/bitmap_verySmall02.mbm c:/icl/testimages/mbm/bitmap_verysmall02.mbm
+../data/testimages/mbm/bitmap_verySmall01.mbm c:/icl/testimages/mbm/bitmap_verysmall01.mbm
+../data/testimages/mbm/bitmap_average01.mbm c:/icl/testimages/mbm/bitmap_average01.mbm
+../data/testimages/mbm/bitmap_average02.mbm c:/icl/testimages/mbm/bitmap_average02.mbm
+../data/testimages/mbm/bitmap_small01.mbm c:/icl/testimages/mbm/bitmap_small01.mbm
+../data/testimages/mbm/bitmap_small02.mbm c:/icl/testimages/mbm/bitmap_small02.mbm
+../data/testimages/mbm/bitmap_small03.mbm c:/icl/testimages/mbm/bitmap_small03.mbm
+../data/testimages/mbm/bitmap_small08.mbm c:/icl/testimages/mbm/bitmap_small08.mbm
+../data/testimages/mbm/bitmap_wideandthin01.mbm c:/icl/testimages/mbm/bitmap_wideandthin01.mbm
+../data/testimages/mbm/bitmap_wideandthin08.mbm c:/icl/testimages/mbm/bitmap_wideandthin08.mbm
+../data/testimages/mbm/bitmap_wideandthin16.mbm c:/icl/testimages/mbm/bitmap_wideandthin16.mbm
+../data/testimages/mbm/bitmap_wideandthin14.mbm c:/icl/testimages/mbm/bitmap_wideandthin14.mbm
+../data/testimages/mbm/bitmap_wideandthin13.mbm c:/icl/testimages/mbm/bitmap_wideandthin13.mbm
+../data/testimages/mbm/bitmap_tallandthin01.mbm c:/icl/testimages/mbm/bitmap_tallandthin01.mbm
+../data/testimages/mbm/bitmap_tallandthin08.mbm c:/icl/testimages/mbm/bitmap_tallandthin08.mbm
+../data/testimages/mbm/bitmap_tallandthin06.mbm c:/icl/testimages/mbm/bitmap_tallandthin06.mbm
+../data/testimages/mbm/bitmap_tallandthin16.mbm c:/icl/testimages/mbm/bitmap_tallandthin16.mbm
+../data/testimages/mbm/bitmap_tallandthin17.mbm c:/icl/testimages/mbm/bitmap_tallandthin17.mbm
+../data/testimages/mbm/jpeg_tallandthin16.mbm c:/icl/testimages/mbm/jpeg_tallandthin16.mbm
+../data/testimages/mbm/jpeg_multiscan.mbm c:/icl/testimages/mbm/jpeg_multiscan.mbm
+../data/testimages/mbm/bitmap_restartinterop.mbm c:/icl/testimages/mbm/bitmap_restartinterop.mbm
+
+// reference images
+../data/refimages/mbm/jpeg_sml07_refperf100.mbm c:/icl/refimages/mbm/jpeg_sml07_refperf100.mbm
+../data/refimages/mbm/jpeg_sml10_refperf110.mbm c:/icl/refimages/mbm/jpeg_sml10_refperf110.mbm
+../data/refimages/mbm/jpeg_sml11_refperf130.mbm c:/icl/refimages/mbm/jpeg_sml11_refperf130.mbm
+../data/refimages/mbm/jpeg_sml11_refperf150.mbm c:/icl/refimages/mbm/jpeg_sml11_refperf150.mbm
+../data/refimages/mbm/jpeg_avg02_refperf160.mbm c:/icl/refimages/mbm/jpeg_avg02_refperf160.mbm
+../data/refimages/mbm/jpeg_sml11_refperf170.mbm c:/icl/refimages/mbm/jpeg_sml11_refperf170.mbm
+../data/refimages/mbm/jpeg_avg02_refperf180.mbm c:/icl/refimages/mbm/jpeg_avg02_refperf180.mbm
+../data/refimages/mbm/jpeg_sml07_refperf200.mbm c:/icl/refimages/mbm/jpeg_sml07_refperf200.mbm
+../data/refimages/mbm/jpeg_sml02_refperf210.mbm c:/icl/refimages/mbm/jpeg_sml02_refperf210.mbm
+../data/refimages/mbm/jpeg_sml04_refperf300.mbm c:/icl/refimages/mbm/jpeg_sml04_refperf300.mbm
+../data/refimages/mbm/jpeg_sml03_refperf310_510.mbm c:/icl/refimages/mbm/jpeg_sml03_refperf310_510.mbm
+../data/refimages/mbm/jpeg_sml04_refperf330.mbm c:/icl/refimages/mbm/jpeg_sml04_refperf330.mbm
+../data/refimages/mbm/jpeg_sml03_refperf340.mbm c:/icl/refimages/mbm/jpeg_sml03_refperf340.mbm
+../data/refimages/mbm/jpeg_sml07_refperf400.mbm c:/icl/refimages/mbm/jpeg_sml07_refperf400.mbm
+../data/refimages/mbm/jpeg_sml02_refperf410.mbm c:/icl/refimages/mbm/jpeg_sml02_refperf410.mbm
+../data/refimages/mbm/jpeg_sml04_refperf500.mbm c:/icl/refimages/mbm/jpeg_sml04_refperf500.mbm
+../data/refimages/mbm/jpeg_sml02_refperf700.mbm c:/icl/refimages/mbm/jpeg_sml02_refperf700.mbm
+../data/refimages/mbm/jpeg_avg02_refperf710.mbm c:/icl/refimages/mbm/jpeg_avg02_refperf710.mbm
+
+../data/refimages/mbm/jpeg_sml05_refcrop50_70.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop50_70.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop98.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop98.mbm
+../data/refimages/mbm/jpeg_sml09_refcrop110_emono.mbm c:/icl/refimages/mbm/jpeg_sml09_refcrop110_emono.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop120_eclr420.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop120_eclr420.mbm
+../data/refimages/mbm/jpeg_sml13_refcrop130_eclr422.mbm c:/icl/refimages/mbm/jpeg_sml13_refcrop130_eclr422.mbm
+../data/refimages/mbm/jpeg_sml14_refcrop135_eclr444.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop135_eclr444.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop140_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop140_egray2.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop150_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop150_egray4.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop155_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop155_egray16.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop160_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop160_egray256.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop165_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop165_eclr16.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop170_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop170_eclr256.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop180_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop180_eclr64k.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop190_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop190_eclr16m.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop200_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop200_eclr4k.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop212.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop212.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop220.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop220.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop230.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop230.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop240.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop240.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop260.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop260.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop370_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop370_egray2.mbm
+../data/refimages/mbm/jpeg_sml07_refcrop380_egray4.mbm c:/icl/refimages/mbm/jpeg_sml07_refcrop380_egray4.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop400.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop400.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop401.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop401.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop402.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop402.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop403.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop403.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop404.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop404.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop405.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop405.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop406.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop406.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop410_410_2_420_430_430_5.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop410_410_2_420_430_430_5.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop420_2_430_2.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop420_2_430_2.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop430_3.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_3.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop430_4.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_4.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop430_6.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_6.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop430_7.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop430_7.mbm
+../data/refimages/mbm/jpeg_sml14_refcrop440.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop440.mbm
+../data/refimages/mbm/jpeg_sml14_refcrop450.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop450.mbm
+../data/refimages/mbm/jpeg_sml14_refcrop460.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop460.mbm
+../data/refimages/mbm/jpeg_sml14_refcrop470.mbm c:/icl/refimages/mbm/jpeg_sml14_refcrop470.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop510.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop510.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop520.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop520.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop530.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop530.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop540.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop540.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop550.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop550.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop560.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop560.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop570.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop570.mbm
+../data/refimages/mbm/jpeg_sml12_refcrop580.mbm c:/icl/refimages/mbm/jpeg_sml12_refcrop580.mbm
+../data/refimages/mbm/jpeg_avg01_refcrop590.mbm c:/icl/refimages/mbm/jpeg_avg01_refcrop590.mbm
+../data/refimages/mbm/jpeg_crpt02_refcrop610.mbm c:/icl/refimages/mbm/jpeg_crpt02_refcrop610.mbm
+../data/refimages/mbm/jpeg_crpt02_refcrop615.mbm c:/icl/refimages/mbm/jpeg_crpt02_refcrop615.mbm
+../data/refimages/mbm/jpeg_sml11_refcrop690_eclr420.mbm c:/icl/refimages/mbm/jpeg_sml11_refcrop690_eclr420.mbm
+../data/refimages/mbm/jpeg_mltscan_refcrop700.mbm c:/icl/refimages/mbm/jpeg_mltscan_refcrop700.mbm
+../data/refimages/mbm/jpeg_reinterop_refcrop720.mbm c:/icl/refimages/mbm/jpeg_reinterop_refcrop720.mbm
+
+../data/refimages/mbm/jpeg_sml05_refscal110_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal110_egray2.mbm
+../data/refimages/mbm/jpeg_sml05_refscal120_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal120_egray4.mbm
+../data/refimages/mbm/jpeg_sml05_refscal130_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal130_egray16.mbm
+../data/refimages/mbm/jpeg_sml05_refscal140_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal140_egray256.mbm
+../data/refimages/mbm/jpeg_sml05_refscal150_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal150_eclr16.mbm
+../data/refimages/mbm/jpeg_sml05_refscal160_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal160_eclr256.mbm
+../data/refimages/mbm/jpeg_sml05_refscal170_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal170_eclr64k.mbm
+../data/refimages/mbm/jpeg_sml05_refscal180_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal180_eclr16m.mbm
+../data/refimages/mbm/jpeg_sml04_refscal190_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal190_eclr4k.mbm
+../data/refimages/mbm/jpeg_sml04_refscal195_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal195_eclr4k.mbm
+../data/refimages/mbm/jpeg_sml04_refscal210.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal210.mbm
+../data/refimages/mbm/jpeg_sml04_refscal220.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal220.mbm
+../data/refimages/mbm/jpeg_sml04_refscal230.mbm c:/icl/refimages/mbm/jpeg_sml04_refscal230.mbm
+../data/refimages/mbm/jpeg_crpt05_refscal710.mbm c:/icl/refimages/mbm/jpeg_crpt05_refscal710.mbm
+../data/refimages/mbm/jpeg_reinterop_refscal720.mbm c:/icl/refimages/mbm/jpeg_reinterop_refscal720.mbm
+
+../data/refimages/mbm/jpeg_sml01_refrtmr30_50_180_210_220.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr30_50_180_210_220.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr70_egray2.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr70_egray2.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr80_egray4.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr80_egray4.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr90_egray16.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr90_egray16.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr100_egray256.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr100_egray256.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr110_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr110_eclr16.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr120_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr120_eclr256.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr130_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr130_eclr64k.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr140_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr140_eclr16m.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr150_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr150_eclr4k.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr162.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr162.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr170_230.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr170_230.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr190_240.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr190_240.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr200.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr200.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr250.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr250.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr260.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr260.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr270.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr270.mbm
+../data/refimages/mbm/jpeg_sml05_refrtmr320_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refrtmr320_egray2.mbm
+../data/refimages/mbm/jpeg_sml07_refrtmr330_egray4.mbm c:/icl/refimages/mbm/jpeg_sml07_refrtmr330_egray4.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr350.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr350.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr360.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr360.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr370.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr370.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr380.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr380.mbm
+../data/refimages/mbm/jpeg_sml02_refrtmr400_520_550.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr400_520_550.mbm
+../data/refimages/mbm/jpeg_sml02_refrtmr410.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr410.mbm
+../data/refimages/mbm/jpeg_sml02_refrtmr420.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr420.mbm
+../data/refimages/mbm/jpeg_sml02_refrtmr460_510.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr460_510.mbm
+../data/refimages/mbm/jpeg_sml02_refrtmr480_540.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr480_540.mbm
+../data/refimages/mbm/jpeg_sml02_refrtmr500_530.mbm c:/icl/refimages/mbm/jpeg_sml02_refrtmr500_530.mbm
+../data/refimages/mbm/jpeg_crpt05_refrtmr710.mbm c:/icl/refimages/mbm/jpeg_crpt05_refrtmr710.mbm
+../data/refimages/mbm/jpeg_mltscan_refrtmr700.mbm c:/icl/refimages/mbm/jpeg_mltscan_refrtmr700.mbm
+../data/refimages/mbm/jpeg_reinterop_refrtmr720.mbm c:/icl/refimages/mbm/jpeg_reinterop_refrtmr720.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr750.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr750.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr760.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr760.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr770.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr770.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr780.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr780.mbm
+../data/refimages/mbm/image_content_refrtmr790.mbm c:/icl/refimages/mbm/image_content_refrtmr790.mbm
+../data/refimages/mbm/jpeg_sml01_refrtmr740.mbm c:/icl/refimages/mbm/jpeg_sml01_refrtmr740.mbm
+
+../data/refimages/mbm/jpeg_sml05_refmuop10_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop10_egray2.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop20_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop20_egray4.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop30_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop30_egray16.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop40_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop40_egray256.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop50_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop50_eclr16.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop60_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop60_eclr256.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop70_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop70_eclr64k.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop80_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop80_eclr16m.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop90_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop90_eclr4k.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop110_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop110_egray2.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop120_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop120_egray4.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop130_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop130_egray16.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop140_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop140_egray256.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop150_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop150_eclr16.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop160_eclr256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop160_eclr256.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop170_eclr64k.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop170_eclr64k.mbm
+../data/refimages/mbm/jpeg_sml04_refmuop180_eclr16m.mbm c:/icl/refimages/mbm/jpeg_sml04_refmuop180_eclr16m.mbm
+../data/refimages/mbm/jpeg_sml04_refmuop190_eclr4k.mbm c:/icl/refimages/mbm/jpeg_sml04_refmuop190_eclr4k.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop210_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop210_egray2.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop220_egray4.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop220_egray4.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop230_egray16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop230_egray16.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop240_egray256.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop240_egray256.mbm
+../data/refimages/mbm/jpeg_sml05_refmuop250_eclr16.mbm c:/icl/refimages/mbm/jpeg_sml05_refmuop250_eclr16.mbm
+../data/refimages/mbm/jpeg_sml05_refcrop730.mbm c:/icl/refimages/mbm/jpeg_sml05_refcrop730.mbm
+../data/refimages/mbm/jpeg_sml05_refscal730_egray2.mbm c:/icl/refimages/mbm/jpeg_sml05_refscal730_egray2.mbm
+
+../data/refimages/mbm/auto_rot_1_refarto10.mbm c:/icl/refimages/mbm/auto_rot_1_refarto10.mbm
+../data/refimages/mbm/auto_rot_1_refarto20.mbm c:/icl/refimages/mbm/auto_rot_1_refarto20.mbm
+../data/refimages/mbm/auto_rot_2_refarto30.mbm c:/icl/refimages/mbm/auto_rot_2_refarto30.mbm
+../data/refimages/mbm/auto_rot_4_refarto40.mbm c:/icl/refimages/mbm/auto_rot_4_refarto40.mbm
+../data/refimages/mbm/auto_rot_1_refarcr60.mbm c:/icl/refimages/mbm/auto_rot_1_refarcr60.mbm
+../data/refimages/mbm/auto_rot_1_refarcr70.mbm c:/icl/refimages/mbm/auto_rot_1_refarcr70.mbm
+../data/refimages/mbm/auto_rot_2_refarsc150_eclr80.mbm c:/icl/refimages/mbm/auto_rot_2_refarsc150_eclr80.mbm
+../data/refimages/mbm/auto_rot_2_refarsc90_egray2.mbm c:/icl/refimages/mbm/auto_rot_2_refarsc90_egray2.mbm
+../data/refimages/mbm/bitmap_sml01_refarto110.mbm c:/icl/refimages/mbm/bitmap_sml01_refarto110.mbm
+../data/refimages/mbm/jpeg_sml03_refarto100.mbm c:/icl/refimages/mbm/jpeg_sml03_refarto100.mbm
+../data/refimages/mbm/auto_rot_4_ref160_dec1.mbm c:/icl/refimages/mbm/auto_rot_4_ref160_dec1.mbm
+../data/refimages/mbm/auto_rot_4_refarto160.mbm c:/icl/refimages/mbm/auto_rot_4_refarto160.mbm
+
+
+#endif
+
+// there used to be a number of exports below which were mirrored in the unit tests.
+// instead these are no longer exported from here and are just exported from the unit
+// tests in order to fix errors in the mrp file mappings. Thus the unit tests have to
+// be built before running the integrations tests.
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/imagedecoder/group/bld_include.inf
--- a/imagingandcamerafws/imaginginttest/imagedecoder/group/bld_include.inf Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 2007-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:
-// \inttest\icl\imagedecoder\group is built from \inttest\icl\group
-//
-//
-
-
-PRJ_MMPFILES
-tsi_icl_imagedecoder.mmp
-
-
-PRJ_EXPORTS
-../group/tsi_icl_imagedecoder.iby /epoc32/rom/include/tsi_icl_imagedecoder.iby
-
-../scripts/tsi_icl_imagedecoder_perf.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_perf.ini
-../scripts/tsi_icl_imagedecoder_perf.script c:/icl/imagedecoder/tsi_icl_imagedecoder_perf.script
-
-../scripts/tsi_icl_imagedecoder_extinterface.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_extinterface.ini
-../scripts/tsi_icl_imagedecoder_extinterface.script c:/icl/imagedecoder/tsi_icl_imagedecoder_extinterface.script
-../scripts/tsi_icl_imagedecoder_extinterface_panic.script c:/icl/imagedecoder/tsi_icl_imagedecoder_extinterface_panic.script
-
-../scripts/tsi_icl_imagedecoder_crop.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_crop.ini
-../scripts/tsi_icl_imagedecoder_crop.script c:/icl/imagedecoder/tsi_icl_imagedecoder_crop.script
-
-../scripts/tsi_icl_imagedecoder_scale.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_scale.ini
-../scripts/tsi_icl_imagedecoder_scale.script c:/icl/imagedecoder/tsi_icl_imagedecoder_scale.script
-
-../scripts/tsi_icl_imagedecoder_rotation.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_rotation.ini
-../scripts/tsi_icl_imagedecoder_rotation.script c:/icl/imagedecoder/tsi_icl_imagedecoder_rotation.script
-
-../scripts/tsi_icl_imagedecoder_stream.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_stream.ini
-../scripts/tsi_icl_imagedecoder_stream.script c:/icl/imagedecoder/tsi_icl_imagedecoder_stream.script
-
-../scripts/tsi_icl_imagedecoder_multipleop.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_multipleop.ini
-../scripts/tsi_icl_imagedecoder_multipleop.script c:/icl/imagedecoder/tsi_icl_imagedecoder_multipleop.script
-
-../scripts/tsi_icl_imagedecoder_autorotate.ini c:/icl/imagedecoder/tsi_icl_imagedecoder_autorotate.ini
-../scripts/tsi_icl_imagedecoder_autorotate.script c:/icl/imagedecoder/tsi_icl_imagedecoder_autorotate.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/imageencoder/group/bld_include.inf
--- a/imagingandcamerafws/imaginginttest/imageencoder/group/bld_include.inf Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 2007-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:
-// bld.inf
-//
-//
-
-
-PRJ_MMPFILES
-tsi_icl_imageencoder.mmp
-
-
-PRJ_EXPORTS
-../group/tsi_icl_imageencoder.iby /epoc32/rom/include/tsi_icl_imageencoder.iby
-
-../scripts/tsi_icl_imageencoder_perf.ini c:/icl/imageencoder/tsi_icl_imageencoder_perf.ini
-../scripts/tsi_icl_imageencoder_perf1.script c:/icl/imageencoder/tsi_icl_imageencoder_perf1.script
-../scripts/tsi_icl_imageencoder_perf2.script c:/icl/imageencoder/tsi_icl_imageencoder_perf2.script
-../scripts/tsi_icl_imageencoder_perf3.script c:/icl/imageencoder/tsi_icl_imageencoder_perf3.script
-
-../scripts/tsi_icl_imageencoder_extinterface.ini c:/icl/imageencoder/tsi_icl_imageencoder_extinterface.ini
-../scripts/tsi_icl_imageencoder_extinterface.script c:/icl/imageencoder/tsi_icl_imageencoder_extinterface.script
-
-../scripts/tsi_icl_imageencoder_mirror.ini c:/icl/imageencoder/tsi_icl_imageencoder_mirror.ini
-../scripts/tsi_icl_imageencoder_mirror1.script c:/icl/imageencoder/tsi_icl_imageencoder_mirror1.script
-../scripts/tsi_icl_imageencoder_mirror2.script c:/icl/imageencoder/tsi_icl_imageencoder_mirror2.script
-
-../scripts/tsi_icl_imageencoder_stream.ini c:/icl/imageencoder/tsi_icl_imageencoder_stream.ini
-../scripts/tsi_icl_imageencoder_stream.script c:/icl/imageencoder/tsi_icl_imageencoder_stream.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/src/Data/lain.ppm
Binary file imagingandcamerafws/imaginginttest/src/Data/lain.ppm has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/src/TestStepConversion.cpp
--- a/imagingandcamerafws/imaginginttest/src/TestStepConversion.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imaginginttest/src/TestStepConversion.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -1609,8 +1609,8 @@
INFO_PRINTF1(_L("Implementation information"));
INFO_PRINTF2(_L("Display name : %S"), &dispName);
INFO_PRINTF2(_L("Version : %d"), theVersion);
- INFO_PRINTF2(_L("Data type : %S"), &dataType);
- INFO_PRINTF2(_L("Opaque data : %S"), &opaqueData);
+ //INFO_PRINTF2(_L("Data type : %S"), &dataType);
+ //INFO_PRINTF2(_L("Opaque data : %S"), &opaqueData);
//-------
CleanupStack::PopAndDestroy(3, theImageFromFile); //theImageDecoder, theImageFromFile, theImplementationInfo
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/group/bld.inf
--- a/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -14,6 +14,12 @@
//
PRJ_EXPORTS
+// None
+
+PRJ_MMPFILES
+// None
+
+PRJ_TESTEXPORTS
../scripts/te_tsi_icl_cod_5Suite_1.script c:/testdata/scripts/te_tsi_icl_cod_5suite_1.script
../scripts/te_tsi_icl_cod_5Suite_2.script c:/testdata/scripts/te_tsi_icl_cod_5suite_2.script
@@ -946,13 +952,7 @@
../testdata/bmp/ref/8bpp_bmp_16mu_no_mask_decode.mbm c:/te_tsi_icl_cod_05/bmp/ref/8bpp_bmp_16mu_no_mask_decode.mbm
../testdata/bmp/ref/8bpp_bmp_16ma_no_mask_decode.mbm c:/te_tsi_icl_cod_05/bmp/ref/8bpp_bmp_16ma_no_mask_decode.mbm
-PRJ_TESTEXPORTS
-// None
-
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
Te_tsi_icl_cod_5suite.mmp
-Te_tsi_icl_cod_5asuite.mmp
-
-PRJ_TESTMMPFILES
-// None
+Te_tsi_icl_cod_5asuite.mmp
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/te_tsi_icl_pluginsupport_01/group/bld.inf
--- a/imagingandcamerafws/imaginginttest/te_tsi_icl_pluginsupport_01/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imaginginttest/te_tsi_icl_pluginsupport_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -15,14 +15,15 @@
PRJ_EXPORTS
+PRJ_MMPFILES
+
+PRJ_TESTEXPORTS
+
../testdata/imagetransform_source.jpeg c:/te_tsi_icl_pluginsupport_01/imagetransform_source.jpeg
../scripts/te_tsi_icl_pluginsupport_01suite.script c:/testdata/scripts/te_tsi_icl_pluginsupport_01suite.script
./te_tsi_icl_pluginsupport_01suite.iby /epoc32/rom/include/te_tsi_icl_pluginsupport_01suite.iby
-PRJ_TESTEXPORTS
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
te_tsi_icl_pluginsupport_01suite.mmp
-
-PRJ_TESTMMPFILES
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/group/BLD.INF
--- a/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-// DEFAULT MISA
-// WINS ARMI THUMB
-// MINT
-
-PRJ_MMPFILES
-
-../mmpfiles/TSI_ICL_BTRANS_01.mmp
-
-PRJ_EXPORTS
-
-// scripts
-../scripts/TSI_ICL_BTRANS_01.script c:/mm/tsi_icl_btrans_01.script
-../scripts/TSI_ICL_BTRANS_01_Panic.script c:/mm/tsi_icl_btrans_01_panic.script
-../scripts/TSI_ICL_BTRANS_01_Alloc.script c:/mm/tsi_icl_btrans_01_alloc.script
-
-// iby
-TSI_ICL_BTRANS_01.IBY /epoc32/rom/include/tsi_icl_btrans_01.iby
-
-//test files
-//In order to fix mrp errors the below file is exported from TSU_ICL_COD_01 instead
-//thus the unit tests have to be built before running this test suite.
-//This has been commented below for reference.
-//..\TestFiles\imagevid_8.mbm C:\TImage\imagevid_8.mbm
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,46 @@
+// Copyright (c) 2004-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:
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+// DEFAULT MISA
+// WINS ARMI THUMB
+// MINT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+../mmpfiles/TSI_ICL_BTRANS_01.mmp
+
+PRJ_TESTEXPORTS
+
+// scripts
+../scripts/TSI_ICL_BTRANS_01.script c:/mm/tsi_icl_btrans_01.script
+../scripts/TSI_ICL_BTRANS_01_Panic.script c:/mm/tsi_icl_btrans_01_panic.script
+../scripts/TSI_ICL_BTRANS_01_Alloc.script c:/mm/tsi_icl_btrans_01_alloc.script
+
+// iby
+TSI_ICL_BTRANS_01.IBY /epoc32/rom/include/tsi_icl_btrans_01.iby
+
+//test files
+//In order to fix mrp errors the below file is exported from TSU_ICL_COD_01 instead
+//thus the unit tests have to be built before running this test suite.
+//This has been commented below for reference.
+//..\TestFiles\imagevid_8.mbm C:\TImage\imagevid_8.mbm
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-// DEFAULT MISA
-// WINS ARMI THUMB
-// MINT
-
-PRJ_MMPFILES
-
-// TSI_WP5 files
-../MMPFiles/TSU_ICL_COD_03.mmp
-../MMPFiles/testiclresolver.mmp
-
-PRJ_EXPORTS
-
-// scripts
-../scripts/TSU_ICL_COD_03.script c:/tsu_icl_cod_03.script
-../scripts/TSU_ICL_COD_03_alloc.script c:/tsu_icl_cod_03_alloc.script
-
-// iby
-TSU_ICL_COD_03.iby /epoc32/rom/include/tsu_icl_cod_03.iby
-
-
-PRJ_EXPORTS
-
-// test files
-../TestFiles/gifPalette.mbm c:/tsu_icl_cod_03/gifpalette.mbm
-../TestFiles/clinton.mbm c:/tsu_icl_cod_03/clinton.mbm
-../TestFiles/anmatcat.mbm c:/tsu_icl_cod_03/anmatcat.mbm
-../TestFiles/am475.mbm c:/tsu_icl_cod_03/am475.mbm
-../TestFiles/Restart0.mbm c:/tsu_icl_cod_03/restart0.mbm
-../TestFiles/InterlacResize.mbm c:/tsu_icl_cod_03/interlacresize.mbm
-../TestFiles/Cancel.mbm c:/tsu_icl_cod_03/cancel.mbm
-../TestFiles/Comment.mbm c:/tsu_icl_cod_03/comment.mbm
-../TestFiles/AdobeMono.mbm c:/tsu_icl_cod_03/adobemono.mbm
-../TestFiles/NGimage1.mbm c:/tsu_icl_cod_03/ngimage1.mbm
-../TestFiles/bmp1bpp.mbm c:/tsu_icl_cod_03/bmp1bpp.mbm
-../TestFiles/png8bpp_g0_b.mbm c:/tsu_icl_cod_03/png8bpp_g0_b.mbm
-../TestFiles/png4bpp_g0_b.mbm c:/tsu_icl_cod_03/png4bpp_g0_b.mbm
-../TestFiles/png2bpp_g0_b.mbm c:/tsu_icl_cod_03/png2bpp_g0_b.mbm
-../TestFiles/Anibdog.mbm c:/tsu_icl_cod_03/anibdog.mbm
-../TestFiles/bit1.mbm c:/tsu_icl_cod_03/bit1.mbm
-../TestFiles/bit2.mbm c:/tsu_icl_cod_03/bit2.mbm
-../TestFiles/bit3.mbm c:/tsu_icl_cod_03/bit3.mbm
-../TestFiles/bit4.mbm c:/tsu_icl_cod_03/bit4.mbm
-../TestFiles/bit5.mbm c:/tsu_icl_cod_03/bit5.mbm
-../TestFiles/bit6.mbm c:/tsu_icl_cod_03/bit6.mbm
-../TestFiles/bit7.mbm c:/tsu_icl_cod_03/bit7.mbm
-../TestFiles/bit8.mbm c:/tsu_icl_cod_03/bit8.mbm
-../TestFiles/stil1002.mbm c:/tsu_icl_cod_03/stil1002.mbm
-../TestFiles/640X480.mbm c:/tsu_icl_cod_03/640x480.mbm
-../TestFiles/160x120_5080.mbm c:/tsu_icl_cod_03/160x120_5080.mbm
-../TestFiles/80x60_5080.mbm c:/tsu_icl_cod_03/80x60_5080.mbm
-../TestFiles/anim_1_160x120_5080.mbm c:/tsu_icl_cod_03/anim_1_160x120_5080.mbm
-../TestFiles/anim_2_160x120_5080.mbm c:/tsu_icl_cod_03/anim_2_160x120_5080.mbm
-../TestFiles/anim_3_160x120_5080.mbm c:/tsu_icl_cod_03/anim_3_160x120_5080.mbm
-../TestFiles/WMFRef/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfref/dibpatternbrush.mbm
-../TestFiles/WMFRef/Intersect.mbm c:/tsu_icl_cod_03/wmfref/intersect.mbm
-../TestFiles/WMFRef/PatBlt.mbm c:/tsu_icl_cod_03/wmfref/patblt.mbm
-../TestFiles/WMFRef/Polygon.mbm c:/tsu_icl_cod_03/wmfref/polygon.mbm
-../TestFiles/WMFRef/Rop2.mbm c:/tsu_icl_cod_03/wmfref/rop2.mbm
-../TestFiles/WMFRef/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfref/rop2nobkgnd.mbm
-../TestFiles/WMFRef/Text.mbm c:/tsu_icl_cod_03/wmfref/text.mbm
-../TestFiles/WMFRef/The_Rest.mbm c:/tsu_icl_cod_03/wmfref/the_rest.mbm
-../TestFiles/WMFRef/mso290.mbm c:/tsu_icl_cod_03/wmfref/mso290.mbm
-
-../TestFiles/WMFRefMask/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfrefmask/dibpatternbrush.mbm
-../TestFiles/WMFRefMask/Intersect.mbm c:/tsu_icl_cod_03/wmfrefmask/intersect.mbm
-../TestFiles/WMFRefMask/PatBlt.mbm c:/tsu_icl_cod_03/wmfrefmask/patblt.mbm
-../TestFiles/WMFRefMask/Polygon.mbm c:/tsu_icl_cod_03/wmfrefmask/polygon.mbm
-../TestFiles/WMFRefMask/Rop2.mbm c:/tsu_icl_cod_03/wmfrefmask/rop2.mbm
-../TestFiles/WMFRefMask/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfrefmask/rop2nobkgnd.mbm
-../TestFiles/WMFRefMask/Text.mbm c:/tsu_icl_cod_03/wmfrefmask/text.mbm
-../TestFiles/WMFRefMask/The_Rest.mbm c:/tsu_icl_cod_03/wmfrefmask/the_rest.mbm
-../TestFiles/WMFRefMask/mso290.mbm c:/tsu_icl_cod_03/wmfrefmask/mso290.mbm
-
-../TestFiles/WMFArmRef/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfarmref/dibpatternbrush.mbm
-../TestFiles/WMFArmRef/Intersect.mbm c:/tsu_icl_cod_03/wmfarmref/intersect.mbm
-../TestFiles/WMFArmRef/PatBlt.mbm c:/tsu_icl_cod_03/wmfarmref/patblt.mbm
-../TestFiles/WMFArmRef/Polygon.mbm c:/tsu_icl_cod_03/wmfarmref/polygon.mbm
-../TestFiles/WMFArmRef/Rop2.mbm c:/tsu_icl_cod_03/wmfarmref/rop2.mbm
-../TestFiles/WMFArmRef/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfarmref/rop2nobkgnd.mbm
-../TestFiles/WMFArmRef/Text.mbm c:/tsu_icl_cod_03/wmfarmref/text.mbm
-../TestFiles/WMFArmRef/The_Rest.mbm c:/tsu_icl_cod_03/wmfarmref/the_rest.mbm
-../TestFiles/WMFArmRef/text_ne.mbm c:/tsu_icl_cod_03/wmfarmref/text_ne.mbm
-../TestFiles/WMFArmRef/the_rest_ne.mbm c:/tsu_icl_cod_03/wmfarmref/the_rest_ne.mbm
-../TestFiles/WMFArmRef/text_h6.mbm c:/tsu_icl_cod_03/wmfarmref/text_h6.mbm
-../TestFiles/WMFArmRef/the_rest_h6.mbm c:/tsu_icl_cod_03/wmfarmref/the_rest_h6.mbm
-../TestFiles/WMFArmRef/mso290.mbm c:/tsu_icl_cod_03/wmfarmref/mso290.mbm
-
-../TestFiles/WMFArmRefMask/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfarmrefmask/dibpatternbrush.mbm
-../TestFiles/WMFArmRefMask/Intersect.mbm c:/tsu_icl_cod_03/wmfarmrefmask/intersect.mbm
-../TestFiles/WMFArmRefMask/PatBlt.mbm c:/tsu_icl_cod_03/wmfarmrefmask/patblt.mbm
-../TestFiles/WMFArmRefMask/Polygon.mbm c:/tsu_icl_cod_03/wmfarmrefmask/polygon.mbm
-../TestFiles/WMFArmRefMask/Rop2.mbm c:/tsu_icl_cod_03/wmfarmrefmask/rop2.mbm
-../TestFiles/WMFArmRefMask/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfarmrefmask/rop2nobkgnd.mbm
-../TestFiles/WMFArmRefMask/Text.mbm c:/tsu_icl_cod_03/wmfarmrefmask/text.mbm
-../TestFiles/WMFArmRefMask/The_Rest.mbm c:/tsu_icl_cod_03/wmfarmrefmask/the_rest.mbm
-../TestFiles/WMFArmRefMask/text_ne.mbm c:/tsu_icl_cod_03/wmfarmrefmask/text_ne.mbm
-../TestFiles/WMFArmRefMask/the_rest_ne.mbm c:/tsu_icl_cod_03/wmfarmrefmask/the_rest_ne.mbm
-../TestFiles/WMFArmRefMask/text_h6.mbm c:/tsu_icl_cod_03/wmfarmrefmask/text_h6.mbm
-../TestFiles/WMFArmRefMask/the_rest_h6.mbm c:/tsu_icl_cod_03/wmfarmrefmask/the_rest_h6.mbm
-../TestFiles/WMFArmRefMask/mso290.mbm c:/tsu_icl_cod_03/wmfarmrefmask/mso290.mbm
-
-../TestFiles/Image(078).mbm c:/tsu_icl_cod_03/image(078).mbm
-../TestFiles/240_320_xy_15_15(1).mbm c:/tsu_icl_cod_03/240_320_xy_15_15(1).mbm
-../TestFiles/240_320_xy_15_15(2).mbm c:/tsu_icl_cod_03/240_320_xy_15_15(2).mbm
-../TestFiles/240_320_xy_15_15(3).mbm c:/tsu_icl_cod_03/240_320_xy_15_15(3).mbm
-../TestFiles/ref_nail_peace.mbm c:/tsu_icl_cod_03/ref_nail_peace.mbm
-../TestFiles/ref_mask_peace.mbm c:/tsu_icl_cod_03/ref_mask_peace.mbm
-../TestFiles/ref_frame_peace.mbm c:/tsu_icl_cod_03/ref_frame_peace.mbm
-../TestFiles/jfifthumb.mbm c:/tsu_icl_cod_03/jfifthumb.mbm
-../TestFiles/ref_waterdrop_firstframe.mbm c:/tsu_icl_cod_03/ref_waterdrop_firstframe.mbm
-../TestFiles/clock-zero-sub-block.mbm c:/tsu_icl_cod_03/clock-zero-sub-block.mbm
-../TestFiles/ref_streamFFFFJpg.mbm c:/tsu_icl_cod_03/ref_streamffffjpg.mbm
-
-../TestFiles/scaled1.mbm c:/tsu_icl_cod_03/scaled1.mbm
-../TestFiles/rf4_bmp8bpp_8_bmp.mbm c:/tsu_icl_cod_03/rf4_bmp8bpp_8_bmp.mbm
-../TestFiles/rf4_anim_640x480_5080_gif.mbm c:/tsu_icl_cod_03/rf4_anim_640x480_5080_gif.mbm
-../TestFiles/rf4_icoepoc_ico.mbm c:/tsu_icl_cod_03/rf4_icoepoc_ico.mbm
-../TestFiles/rf4_MISS0001_JPG.mbm c:/tsu_icl_cod_03/rf4_miss0001_jpg.mbm
-../TestFiles/rf4_scaled1_mbm.mbm c:/tsu_icl_cod_03/rf4_scaled1_mbm.mbm
-../TestFiles/rf4_operator_ota.mbm c:/tsu_icl_cod_03/rf4_operator_ota.mbm
-../TestFiles/rf4_png8bpp_g0_b_png.mbm c:/tsu_icl_cod_03/rf4_png8bpp_g0_b_png.mbm
-../TestFiles/rf4_tif3_4_tif.mbm c:/tsu_icl_cod_03/rf4_tif3_4_tif.mbm
-../TestFiles/rf4_sun_wbmp.mbm c:/tsu_icl_cod_03/rf4_sun_wbmp.mbm
-../TestFiles/mso290(2)_0.mbm c:/tsu_icl_cod_03/mso290(2)_0.mbm
-../TestFiles/mso290(3)_1.mbm c:/tsu_icl_cod_03/mso290(3)_1.mbm
-../TestFiles/mso290(4)_2.mbm c:/tsu_icl_cod_03/mso290(4)_2.mbm
-../TestFiles/mso290(5)_3.mbm c:/tsu_icl_cod_03/mso290(5)_3.mbm
-../TestFiles/mso290(6)_0.mbm c:/tsu_icl_cod_03/mso290(6)_0.mbm
-../TestFiles/mso290(7)_1.mbm c:/tsu_icl_cod_03/mso290(7)_1.mbm
-../TestFiles/mso290(8)_2.mbm c:/tsu_icl_cod_03/mso290(8)_2.mbm
-../TestFiles/multiscan_EColor16M_0rf.mbm c:/tsu_icl_cod_03/multiscan_ecolor16m_0rf.mbm
-../TestFiles/multiscan_EColor16M_2rf.mbm c:/tsu_icl_cod_03/multiscan_ecolor16m_2rf.mbm
-../TestFiles/multiscan_EColor4K_1rf.mbm c:/tsu_icl_cod_03/multiscan_ecolor4k_1rf.mbm
-../TestFiles/multiscan_EGray2_0rf.mbm c:/tsu_icl_cod_03/multiscan_egray2_0rf.mbm
-../TestFiles/multiscan_EGray256_3rf.mbm c:/tsu_icl_cod_03/multiscan_egray256_3rf.mbm
-../TestFiles/multiscan_v_deleted_at_end.mbm c:/tsu_icl_cod_03/multiscan_v_deleted_at_end.mbm
-../TestFiles/multiscan_uv_few_deleted_at_end.mbm c:/tsu_icl_cod_03/multiscan_uv_few_deleted_at_end.mbm
-../TestFiles/multiscan1_EColor16M_0rf.mbm c:/tsu_icl_cod_03/multiscan1_ecolor16m_0rf.mbm
-../TestFiles/multiscan_exif_EColor16M_1rf.mbm c:/tsu_icl_cod_03/multiscan_exif_ecolor16m_1rf.mbm
-../TestFiles/testsource1.mbm c:/tsu_icl_cod_03/testsource1.mbm
-../TestFiles/testsource2.mbm c:/tsu_icl_cod_03/testsource2.mbm
-../TestFiles/os2v1header.mbm c:/tsu_icl_cod_03/os2v1header.mbm
-../TestFiles/valuesd1.mbm c:/tsu_icl_cod_03/valuesd1.mbm
-../TestFiles/valuesd4.mbm c:/tsu_icl_cod_03/valuesd4.mbm
-../TestFiles/valuesd8.mbm c:/tsu_icl_cod_03/valuesd8.mbm
-../TestFiles/valuesd24.mbm c:/tsu_icl_cod_03/valuesd24.mbm
-../TestFiles/winv3depth24withpalettebmp.mbm c:/tsu_icl_cod_03/winv3depth24withpalettebmp.mbm
-
-../TestFiles/test.dummy c:/tsu_icl_cod_03/test.dummy
-../TestFiles/anim1_gif89_Reduced_Size_Mask.mbm c:/tsu_icl_cod_03/anim1_gif89_reduced_size_mask.mbm
-../TestFiles/refbut4.mbm c:/tsu_icl_cod_03/refbut4.mbm
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,177 @@
+// Copyright (c) 2004-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:
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+// DEFAULT MISA
+// WINS ARMI THUMB
+// MINT
+
+PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
+
+// TSI_WP5 files
+../MMPFiles/TSU_ICL_COD_03.mmp
+../MMPFiles/testiclresolver.mmp
+
+PRJ_TESTEXPORTS
+
+// scripts
+../scripts/TSU_ICL_COD_03.script c:/tsu_icl_cod_03.script
+../scripts/TSU_ICL_COD_03_alloc.script c:/tsu_icl_cod_03_alloc.script
+
+// iby
+TSU_ICL_COD_03.iby /epoc32/rom/include/tsu_icl_cod_03.iby
+
+
+PRJ_TESTEXPORTS
+
+// test files
+../TestFiles/gifPalette.mbm c:/tsu_icl_cod_03/gifpalette.mbm
+../TestFiles/clinton.mbm c:/tsu_icl_cod_03/clinton.mbm
+../TestFiles/anmatcat.mbm c:/tsu_icl_cod_03/anmatcat.mbm
+../TestFiles/am475.mbm c:/tsu_icl_cod_03/am475.mbm
+../TestFiles/Restart0.mbm c:/tsu_icl_cod_03/restart0.mbm
+../TestFiles/InterlacResize.mbm c:/tsu_icl_cod_03/interlacresize.mbm
+../TestFiles/Cancel.mbm c:/tsu_icl_cod_03/cancel.mbm
+../TestFiles/Comment.mbm c:/tsu_icl_cod_03/comment.mbm
+../TestFiles/AdobeMono.mbm c:/tsu_icl_cod_03/adobemono.mbm
+../TestFiles/NGimage1.mbm c:/tsu_icl_cod_03/ngimage1.mbm
+../TestFiles/bmp1bpp.mbm c:/tsu_icl_cod_03/bmp1bpp.mbm
+../TestFiles/png8bpp_g0_b.mbm c:/tsu_icl_cod_03/png8bpp_g0_b.mbm
+../TestFiles/png4bpp_g0_b.mbm c:/tsu_icl_cod_03/png4bpp_g0_b.mbm
+../TestFiles/png2bpp_g0_b.mbm c:/tsu_icl_cod_03/png2bpp_g0_b.mbm
+../TestFiles/Anibdog.mbm c:/tsu_icl_cod_03/anibdog.mbm
+../TestFiles/bit1.mbm c:/tsu_icl_cod_03/bit1.mbm
+../TestFiles/bit2.mbm c:/tsu_icl_cod_03/bit2.mbm
+../TestFiles/bit3.mbm c:/tsu_icl_cod_03/bit3.mbm
+../TestFiles/bit4.mbm c:/tsu_icl_cod_03/bit4.mbm
+../TestFiles/bit5.mbm c:/tsu_icl_cod_03/bit5.mbm
+../TestFiles/bit6.mbm c:/tsu_icl_cod_03/bit6.mbm
+../TestFiles/bit7.mbm c:/tsu_icl_cod_03/bit7.mbm
+../TestFiles/bit8.mbm c:/tsu_icl_cod_03/bit8.mbm
+../TestFiles/stil1002.mbm c:/tsu_icl_cod_03/stil1002.mbm
+../TestFiles/640X480.mbm c:/tsu_icl_cod_03/640x480.mbm
+../TestFiles/160x120_5080.mbm c:/tsu_icl_cod_03/160x120_5080.mbm
+../TestFiles/80x60_5080.mbm c:/tsu_icl_cod_03/80x60_5080.mbm
+../TestFiles/anim_1_160x120_5080.mbm c:/tsu_icl_cod_03/anim_1_160x120_5080.mbm
+../TestFiles/anim_2_160x120_5080.mbm c:/tsu_icl_cod_03/anim_2_160x120_5080.mbm
+../TestFiles/anim_3_160x120_5080.mbm c:/tsu_icl_cod_03/anim_3_160x120_5080.mbm
+../TestFiles/WMFRef/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfref/dibpatternbrush.mbm
+../TestFiles/WMFRef/Intersect.mbm c:/tsu_icl_cod_03/wmfref/intersect.mbm
+../TestFiles/WMFRef/PatBlt.mbm c:/tsu_icl_cod_03/wmfref/patblt.mbm
+../TestFiles/WMFRef/Polygon.mbm c:/tsu_icl_cod_03/wmfref/polygon.mbm
+../TestFiles/WMFRef/Rop2.mbm c:/tsu_icl_cod_03/wmfref/rop2.mbm
+../TestFiles/WMFRef/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfref/rop2nobkgnd.mbm
+../TestFiles/WMFRef/Text.mbm c:/tsu_icl_cod_03/wmfref/text.mbm
+../TestFiles/WMFRef/The_Rest.mbm c:/tsu_icl_cod_03/wmfref/the_rest.mbm
+../TestFiles/WMFRef/mso290.mbm c:/tsu_icl_cod_03/wmfref/mso290.mbm
+
+../TestFiles/WMFRefMask/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfrefmask/dibpatternbrush.mbm
+../TestFiles/WMFRefMask/Intersect.mbm c:/tsu_icl_cod_03/wmfrefmask/intersect.mbm
+../TestFiles/WMFRefMask/PatBlt.mbm c:/tsu_icl_cod_03/wmfrefmask/patblt.mbm
+../TestFiles/WMFRefMask/Polygon.mbm c:/tsu_icl_cod_03/wmfrefmask/polygon.mbm
+../TestFiles/WMFRefMask/Rop2.mbm c:/tsu_icl_cod_03/wmfrefmask/rop2.mbm
+../TestFiles/WMFRefMask/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfrefmask/rop2nobkgnd.mbm
+../TestFiles/WMFRefMask/Text.mbm c:/tsu_icl_cod_03/wmfrefmask/text.mbm
+../TestFiles/WMFRefMask/The_Rest.mbm c:/tsu_icl_cod_03/wmfrefmask/the_rest.mbm
+../TestFiles/WMFRefMask/mso290.mbm c:/tsu_icl_cod_03/wmfrefmask/mso290.mbm
+
+../TestFiles/WMFArmRef/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfarmref/dibpatternbrush.mbm
+../TestFiles/WMFArmRef/Intersect.mbm c:/tsu_icl_cod_03/wmfarmref/intersect.mbm
+../TestFiles/WMFArmRef/PatBlt.mbm c:/tsu_icl_cod_03/wmfarmref/patblt.mbm
+../TestFiles/WMFArmRef/Polygon.mbm c:/tsu_icl_cod_03/wmfarmref/polygon.mbm
+../TestFiles/WMFArmRef/Rop2.mbm c:/tsu_icl_cod_03/wmfarmref/rop2.mbm
+../TestFiles/WMFArmRef/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfarmref/rop2nobkgnd.mbm
+../TestFiles/WMFArmRef/Text.mbm c:/tsu_icl_cod_03/wmfarmref/text.mbm
+../TestFiles/WMFArmRef/The_Rest.mbm c:/tsu_icl_cod_03/wmfarmref/the_rest.mbm
+../TestFiles/WMFArmRef/text_ne.mbm c:/tsu_icl_cod_03/wmfarmref/text_ne.mbm
+../TestFiles/WMFArmRef/the_rest_ne.mbm c:/tsu_icl_cod_03/wmfarmref/the_rest_ne.mbm
+../TestFiles/WMFArmRef/text_h6.mbm c:/tsu_icl_cod_03/wmfarmref/text_h6.mbm
+../TestFiles/WMFArmRef/the_rest_h6.mbm c:/tsu_icl_cod_03/wmfarmref/the_rest_h6.mbm
+../TestFiles/WMFArmRef/mso290.mbm c:/tsu_icl_cod_03/wmfarmref/mso290.mbm
+
+../TestFiles/WMFArmRefMask/DibPatternBrush.mbm c:/tsu_icl_cod_03/wmfarmrefmask/dibpatternbrush.mbm
+../TestFiles/WMFArmRefMask/Intersect.mbm c:/tsu_icl_cod_03/wmfarmrefmask/intersect.mbm
+../TestFiles/WMFArmRefMask/PatBlt.mbm c:/tsu_icl_cod_03/wmfarmrefmask/patblt.mbm
+../TestFiles/WMFArmRefMask/Polygon.mbm c:/tsu_icl_cod_03/wmfarmrefmask/polygon.mbm
+../TestFiles/WMFArmRefMask/Rop2.mbm c:/tsu_icl_cod_03/wmfarmrefmask/rop2.mbm
+../TestFiles/WMFArmRefMask/Rop2NoBkgnd.mbm c:/tsu_icl_cod_03/wmfarmrefmask/rop2nobkgnd.mbm
+../TestFiles/WMFArmRefMask/Text.mbm c:/tsu_icl_cod_03/wmfarmrefmask/text.mbm
+../TestFiles/WMFArmRefMask/The_Rest.mbm c:/tsu_icl_cod_03/wmfarmrefmask/the_rest.mbm
+../TestFiles/WMFArmRefMask/text_ne.mbm c:/tsu_icl_cod_03/wmfarmrefmask/text_ne.mbm
+../TestFiles/WMFArmRefMask/the_rest_ne.mbm c:/tsu_icl_cod_03/wmfarmrefmask/the_rest_ne.mbm
+../TestFiles/WMFArmRefMask/text_h6.mbm c:/tsu_icl_cod_03/wmfarmrefmask/text_h6.mbm
+../TestFiles/WMFArmRefMask/the_rest_h6.mbm c:/tsu_icl_cod_03/wmfarmrefmask/the_rest_h6.mbm
+../TestFiles/WMFArmRefMask/mso290.mbm c:/tsu_icl_cod_03/wmfarmrefmask/mso290.mbm
+
+../TestFiles/Image(078).mbm c:/tsu_icl_cod_03/image(078).mbm
+../TestFiles/240_320_xy_15_15(1).mbm c:/tsu_icl_cod_03/240_320_xy_15_15(1).mbm
+../TestFiles/240_320_xy_15_15(2).mbm c:/tsu_icl_cod_03/240_320_xy_15_15(2).mbm
+../TestFiles/240_320_xy_15_15(3).mbm c:/tsu_icl_cod_03/240_320_xy_15_15(3).mbm
+../TestFiles/ref_nail_peace.mbm c:/tsu_icl_cod_03/ref_nail_peace.mbm
+../TestFiles/ref_mask_peace.mbm c:/tsu_icl_cod_03/ref_mask_peace.mbm
+../TestFiles/ref_frame_peace.mbm c:/tsu_icl_cod_03/ref_frame_peace.mbm
+../TestFiles/jfifthumb.mbm c:/tsu_icl_cod_03/jfifthumb.mbm
+../TestFiles/ref_waterdrop_firstframe.mbm c:/tsu_icl_cod_03/ref_waterdrop_firstframe.mbm
+../TestFiles/clock-zero-sub-block.mbm c:/tsu_icl_cod_03/clock-zero-sub-block.mbm
+../TestFiles/ref_streamFFFFJpg.mbm c:/tsu_icl_cod_03/ref_streamffffjpg.mbm
+
+../TestFiles/scaled1.mbm c:/tsu_icl_cod_03/scaled1.mbm
+../TestFiles/rf4_bmp8bpp_8_bmp.mbm c:/tsu_icl_cod_03/rf4_bmp8bpp_8_bmp.mbm
+../TestFiles/rf4_anim_640x480_5080_gif.mbm c:/tsu_icl_cod_03/rf4_anim_640x480_5080_gif.mbm
+../TestFiles/rf4_icoepoc_ico.mbm c:/tsu_icl_cod_03/rf4_icoepoc_ico.mbm
+../TestFiles/rf4_MISS0001_JPG.mbm c:/tsu_icl_cod_03/rf4_miss0001_jpg.mbm
+../TestFiles/rf4_scaled1_mbm.mbm c:/tsu_icl_cod_03/rf4_scaled1_mbm.mbm
+../TestFiles/rf4_operator_ota.mbm c:/tsu_icl_cod_03/rf4_operator_ota.mbm
+../TestFiles/rf4_png8bpp_g0_b_png.mbm c:/tsu_icl_cod_03/rf4_png8bpp_g0_b_png.mbm
+../TestFiles/rf4_tif3_4_tif.mbm c:/tsu_icl_cod_03/rf4_tif3_4_tif.mbm
+../TestFiles/rf4_sun_wbmp.mbm c:/tsu_icl_cod_03/rf4_sun_wbmp.mbm
+../TestFiles/mso290(2)_0.mbm c:/tsu_icl_cod_03/mso290(2)_0.mbm
+../TestFiles/mso290(3)_1.mbm c:/tsu_icl_cod_03/mso290(3)_1.mbm
+../TestFiles/mso290(4)_2.mbm c:/tsu_icl_cod_03/mso290(4)_2.mbm
+../TestFiles/mso290(5)_3.mbm c:/tsu_icl_cod_03/mso290(5)_3.mbm
+../TestFiles/mso290(6)_0.mbm c:/tsu_icl_cod_03/mso290(6)_0.mbm
+../TestFiles/mso290(7)_1.mbm c:/tsu_icl_cod_03/mso290(7)_1.mbm
+../TestFiles/mso290(8)_2.mbm c:/tsu_icl_cod_03/mso290(8)_2.mbm
+../TestFiles/multiscan_EColor16M_0rf.mbm c:/tsu_icl_cod_03/multiscan_ecolor16m_0rf.mbm
+../TestFiles/multiscan_EColor16M_2rf.mbm c:/tsu_icl_cod_03/multiscan_ecolor16m_2rf.mbm
+../TestFiles/multiscan_EColor4K_1rf.mbm c:/tsu_icl_cod_03/multiscan_ecolor4k_1rf.mbm
+../TestFiles/multiscan_EGray2_0rf.mbm c:/tsu_icl_cod_03/multiscan_egray2_0rf.mbm
+../TestFiles/multiscan_EGray256_3rf.mbm c:/tsu_icl_cod_03/multiscan_egray256_3rf.mbm
+../TestFiles/multiscan_v_deleted_at_end.mbm c:/tsu_icl_cod_03/multiscan_v_deleted_at_end.mbm
+../TestFiles/multiscan_uv_few_deleted_at_end.mbm c:/tsu_icl_cod_03/multiscan_uv_few_deleted_at_end.mbm
+../TestFiles/multiscan1_EColor16M_0rf.mbm c:/tsu_icl_cod_03/multiscan1_ecolor16m_0rf.mbm
+../TestFiles/multiscan_exif_EColor16M_1rf.mbm c:/tsu_icl_cod_03/multiscan_exif_ecolor16m_1rf.mbm
+../TestFiles/testsource1.mbm c:/tsu_icl_cod_03/testsource1.mbm
+../TestFiles/testsource2.mbm c:/tsu_icl_cod_03/testsource2.mbm
+../TestFiles/os2v1header.mbm c:/tsu_icl_cod_03/os2v1header.mbm
+../TestFiles/valuesd1.mbm c:/tsu_icl_cod_03/valuesd1.mbm
+../TestFiles/valuesd4.mbm c:/tsu_icl_cod_03/valuesd4.mbm
+../TestFiles/valuesd8.mbm c:/tsu_icl_cod_03/valuesd8.mbm
+../TestFiles/valuesd24.mbm c:/tsu_icl_cod_03/valuesd24.mbm
+../TestFiles/winv3depth24withpalettebmp.mbm c:/tsu_icl_cod_03/winv3depth24withpalettebmp.mbm
+
+../TestFiles/test.dummy c:/tsu_icl_cod_03/test.dummy
+../TestFiles/anim1_gif89_Reduced_Size_Mask.mbm c:/tsu_icl_cod_03/anim1_gif89_reduced_size_mask.mbm
+../TestFiles/refbut4.mbm c:/tsu_icl_cod_03/refbut4.mbm
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-
-PRJ_MMPFILES
-
-../MMPFiles/TSU_ICL_COD_04.mmp
-
-PRJ_EXPORTS
-
-// ini file
-../scripts/TSU_ICL_COD_04.ini c:/tsu_icl_cod_04.ini
-
-// scripts
-../scripts/TSU_ICL_COD_04.script c:/tsu_icl_cod_04.script
-../scripts/TSU_ICL_COD_04_alloc.script c:/tsu_icl_cod_04_alloc.script
-../scripts/TSU_ICL_COD_04b.script c:/tsu_icl_cod_04b.script
-
-../TestFiles/DecodeThumbnail.mbm c:/tsu_icl_cod_04/decodethumbnail.mbm
-../TestFiles/EncodeTestSource.mbm c:/tsu_icl_cod_04/encodetestsource.mbm
-../TestFiles/EncodeThumbnail.mbm c:/tsu_icl_cod_04/encodethumbnail.mbm
-../TestFiles/CamSunset2MPRed2.mbm c:/tsu_icl_cod_04/camsunset2mpred2.mbm
-../TestFiles/CamSunset2MPRed3.mbm c:/tsu_icl_cod_04/camsunset2mpred3.mbm
-../TestFiles/CamSunset2MPRed2_64K.mbm c:/tsu_icl_cod_04/camsunset2mpred2_64k.mbm
-../TestFiles/289_8981100000300165521f.mbm c:/tsu_icl_cod_04/289_8981100000300165521f.mbm
-../TestFiles/system-3128-1.mbm c:/tsu_icl_cod_04/system-3128-1.mbm
-../TestFiles/NO_TRAIL.mbm c:/tsu_icl_cod_04/no_trail.mbm
-../TestFiles/TestCorruptThumbnailHeader.mbm c:/tsu_icl_cod_04/testcorruptthumbnailheader.mbm
-../TestFiles/TestNoExifReference.mbm c:/tsu_icl_cod_04/testnoexifreference.mbm
-
-// iby
-TSU_ICL_COD_04.iby /epoc32/rom/include/tsu_icl_cod_04.iby
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,54 @@
+// Copyright (c) 2004-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:
+//
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+
+PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+
+../MMPFiles/TSU_ICL_COD_04.mmp
+
+PRJ_TESTEXPORTS
+
+// ini file
+../scripts/TSU_ICL_COD_04.ini c:/tsu_icl_cod_04.ini
+
+// scripts
+../scripts/TSU_ICL_COD_04.script c:/tsu_icl_cod_04.script
+../scripts/TSU_ICL_COD_04_alloc.script c:/tsu_icl_cod_04_alloc.script
+../scripts/TSU_ICL_COD_04b.script c:/tsu_icl_cod_04b.script
+
+../TestFiles/DecodeThumbnail.mbm c:/tsu_icl_cod_04/decodethumbnail.mbm
+../TestFiles/EncodeTestSource.mbm c:/tsu_icl_cod_04/encodetestsource.mbm
+../TestFiles/EncodeThumbnail.mbm c:/tsu_icl_cod_04/encodethumbnail.mbm
+../TestFiles/CamSunset2MPRed2.mbm c:/tsu_icl_cod_04/camsunset2mpred2.mbm
+../TestFiles/CamSunset2MPRed3.mbm c:/tsu_icl_cod_04/camsunset2mpred3.mbm
+../TestFiles/CamSunset2MPRed2_64K.mbm c:/tsu_icl_cod_04/camsunset2mpred2_64k.mbm
+../TestFiles/289_8981100000300165521f.mbm c:/tsu_icl_cod_04/289_8981100000300165521f.mbm
+../TestFiles/system-3128-1.mbm c:/tsu_icl_cod_04/system-3128-1.mbm
+../TestFiles/NO_TRAIL.mbm c:/tsu_icl_cod_04/no_trail.mbm
+../TestFiles/TestCorruptThumbnailHeader.mbm c:/tsu_icl_cod_04/testcorruptthumbnailheader.mbm
+../TestFiles/TestNoExifReference.mbm c:/tsu_icl_cod_04/testnoexifreference.mbm
+
+// iby
+TSU_ICL_COD_04.iby /epoc32/rom/include/tsu_icl_cod_04.iby
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-// DEFAULT MISA
-// WINS ARMI THUMB
-// MINT
-
-PRJ_MMPFILES
-
-// TSI_WP5 files
-../MMPFiles/TSU_ICL_TMDAVID.mmp
-
-PRJ_EXPORTS
-
-// scripts
-../scripts/TSU_ICL_TMDAVID.script c:/tsu_icl_tmdavid.script
-
-// iby
-//TSU_ICL_TMDAVID.iby \epoc32\rom\include\TSU_ICL_TMDAVID.iby
-
-// Test files
-
-../TestFiles/TMdaVid/mbm12bpp.mbm c:/tmdavid/mbm12bpp.mbm
-../TestFiles/TMdaVid/mbm16bpp.mbm c:/tmdavid/mbm16bpp.mbm
-../TestFiles/TMdaVid/mbm1bpp.mbm c:/tmdavid/mbm1bpp.mbm
-../TestFiles/TMdaVid/mbm24bpp.mbm c:/tmdavid/mbm24bpp.mbm
-../TestFiles/TMdaVid/mbm2bpp.mbm c:/tmdavid/mbm2bpp.mbm
-../TestFiles/TMdaVid/mbm4bppc.mbm c:/tmdavid/mbm4bppc.mbm
-../TestFiles/TMdaVid/mbm4bppm.mbm c:/tmdavid/mbm4bppm.mbm
-../TestFiles/TMdaVid/mbm8bppc.mbm c:/tmdavid/mbm8bppc.mbm
-../TestFiles/TMdaVid/mbm8bppm.mbm c:/tmdavid/mbm8bppm.mbm
-../TestFiles/TMdaVid/tmdavid.mbm c:/tmdavid/tmdavid.mbm
-../TestFiles/TMdaVid/Anon/otabitmap.mbm c:/tmdavid/anon/otabitmap.mbm
-../TestFiles/TMdaVid/Anon/wirelessbitmap.mbm c:/tmdavid/anon/wirelessbitmap.mbm
-
-../TestFiles/TMdaVid/Ref/bmp1bpp.mbm c:/tmdavid/ref/bmp1bpp.mbm
-../TestFiles/TMdaVid/Ref/bmp24bpp.mbm c:/tmdavid/ref/bmp24bpp.mbm
-../TestFiles/TMdaVid/Ref/bmp4bpp.mbm c:/tmdavid/ref/bmp4bpp.mbm
-../TestFiles/TMdaVid/Ref/bmp8bpp.mbm c:/tmdavid/ref/bmp8bpp.mbm
-../TestFiles/TMdaVid/Ref/bmprle4.mbm c:/tmdavid/ref/bmprle4.mbm
-../TestFiles/TMdaVid/Ref/bmprle8.mbm c:/tmdavid/ref/bmprle8.mbm
-../TestFiles/TMdaVid/Ref/jfif10.mbm c:/tmdavid/ref/jfif10.mbm
-../TestFiles/TMdaVid/Ref/jfif100.mbm c:/tmdavid/ref/jfif100.mbm
-../TestFiles/TMdaVid/Ref/jfif30.mbm c:/tmdavid/ref/jfif30.mbm
-../TestFiles/TMdaVid/Ref/jfif420.mbm c:/tmdavid/ref/jfif420.mbm
-../TestFiles/TMdaVid/Ref/jfif422.mbm c:/tmdavid/ref/jfif422.mbm
-../TestFiles/TMdaVid/Ref/jfif444.mbm c:/tmdavid/ref/jfif444.mbm
-../TestFiles/TMdaVid/Ref/jfif60.mbm c:/tmdavid/ref/jfif60.mbm
-../TestFiles/TMdaVid/Ref/jfifMono.mbm c:/tmdavid/ref/jfifmono.mbm
-../TestFiles/TMdaVid/Ref/jfifProg.mbm c:/tmdavid/ref/jfifprog.mbm
-../TestFiles/TMdaVid/Ref/mbm12bpp.mbm c:/tmdavid/ref/mbm12bpp.mbm
-../TestFiles/TMdaVid/Ref/mbm16bpp.mbm c:/tmdavid/ref/mbm16bpp.mbm
-../TestFiles/TMdaVid/Ref/mbm1bpp.mbm c:/tmdavid/ref/mbm1bpp.mbm
-../TestFiles/TMdaVid/Ref/mbm24bpp.mbm c:/tmdavid/ref/mbm24bpp.mbm
-../TestFiles/TMdaVid/Ref/mbm2bpp.mbm c:/tmdavid/ref/mbm2bpp.mbm
-../TestFiles/TMdaVid/Ref/mbm4bppc.mbm c:/tmdavid/ref/mbm4bppc.mbm
-../TestFiles/TMdaVid/Ref/mbm4bppm.mbm c:/tmdavid/ref/mbm4bppm.mbm
-../TestFiles/TMdaVid/Ref/mbm8bppc.mbm c:/tmdavid/ref/mbm8bppc.mbm
-../TestFiles/TMdaVid/Ref/mbm8bppm.mbm c:/tmdavid/ref/mbm8bppm.mbm
-../TestFiles/TMdaVid/Ref/png1.mbm c:/tmdavid/ref/png1.mbm
-../TestFiles/TMdaVid/Ref/png2.mbm c:/tmdavid/ref/png2.mbm
-../TestFiles/TMdaVid/Ref/png3.mbm c:/tmdavid/ref/png3.mbm
-../TestFiles/TMdaVid/Ref/png4.mbm c:/tmdavid/ref/png4.mbm
-../TestFiles/TMdaVid/Ref/scaled0.mbm c:/tmdavid/ref/scaled0.mbm
-../TestFiles/TMdaVid/Ref/scaled1.mbm c:/tmdavid/ref/scaled1.mbm
-../TestFiles/TMdaVid/Ref/scaled2.mbm c:/tmdavid/ref/scaled2.mbm
-../TestFiles/TMdaVid/Ref/scaled3.mbm c:/tmdavid/ref/scaled3.mbm
-../TestFiles/TMdaVid/Ref/scaled4.mbm c:/tmdavid/ref/scaled4.mbm
-../TestFiles/TMdaVid/Ref/scaled5.mbm c:/tmdavid/ref/scaled5.mbm
-../TestFiles/TMdaVid/Ref/tif1.mbm c:/tmdavid/ref/tif1.mbm
-../TestFiles/TMdaVid/Ref/tif2.mbm c:/tmdavid/ref/tif2.mbm
-../TestFiles/TMdaVid/Ref/tif3.mbm c:/tmdavid/ref/tif3.mbm
-../TestFiles/TMdaVid/Ref/tmdavid.mbm c:/tmdavid/ref/tmdavid.mbm
-../TestFiles/TMdaVid/Ref/trans.mbm c:/tmdavid/ref/trans.mbm
-../TestFiles/TMdaVid/Ref/wmf1.mbm c:/tmdavid/ref/wmf1.mbm
-../TestFiles/TMdaVid/Ref/wmf2.mbm c:/tmdavid/ref/wmf2.mbm
-../TestFiles/TMdaVid/Ref/wmf3.mbm c:/tmdavid/ref/wmf3.mbm
-../TestFiles/TMdaVid/Ref/wmf4.mbm c:/tmdavid/ref/wmf4.mbm
-../TestFiles/TMdaVid/Ref/wmf5.mbm c:/tmdavid/ref/wmf5.mbm
-../TestFiles/TMdaVid/Ref/wmf6.mbm c:/tmdavid/ref/wmf6.mbm
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,101 @@
+// Copyright (c) 2004-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:
+//
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+// DEFAULT MISA
+// WINS ARMI THUMB
+// MINT
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// TSI_WP5 files
+../MMPFiles/TSU_ICL_TMDAVID.mmp
+
+PRJ_EXPORTS
+
+PRJ_TESTEXPORTS
+
+// scripts
+../scripts/TSU_ICL_TMDAVID.script c:/tsu_icl_tmdavid.script
+
+// iby
+//TSU_ICL_TMDAVID.iby \epoc32\rom\include\TSU_ICL_TMDAVID.iby
+
+// Test files
+
+../TestFiles/TMdaVid/mbm12bpp.mbm c:/tmdavid/mbm12bpp.mbm
+../TestFiles/TMdaVid/mbm16bpp.mbm c:/tmdavid/mbm16bpp.mbm
+../TestFiles/TMdaVid/mbm1bpp.mbm c:/tmdavid/mbm1bpp.mbm
+../TestFiles/TMdaVid/mbm24bpp.mbm c:/tmdavid/mbm24bpp.mbm
+../TestFiles/TMdaVid/mbm2bpp.mbm c:/tmdavid/mbm2bpp.mbm
+../TestFiles/TMdaVid/mbm4bppc.mbm c:/tmdavid/mbm4bppc.mbm
+../TestFiles/TMdaVid/mbm4bppm.mbm c:/tmdavid/mbm4bppm.mbm
+../TestFiles/TMdaVid/mbm8bppc.mbm c:/tmdavid/mbm8bppc.mbm
+../TestFiles/TMdaVid/mbm8bppm.mbm c:/tmdavid/mbm8bppm.mbm
+../TestFiles/TMdaVid/tmdavid.mbm c:/tmdavid/tmdavid.mbm
+../TestFiles/TMdaVid/Anon/otabitmap.mbm c:/tmdavid/anon/otabitmap.mbm
+../TestFiles/TMdaVid/Anon/wirelessbitmap.mbm c:/tmdavid/anon/wirelessbitmap.mbm
+
+../TestFiles/TMdaVid/Ref/bmp1bpp.mbm c:/tmdavid/ref/bmp1bpp.mbm
+../TestFiles/TMdaVid/Ref/bmp24bpp.mbm c:/tmdavid/ref/bmp24bpp.mbm
+../TestFiles/TMdaVid/Ref/bmp4bpp.mbm c:/tmdavid/ref/bmp4bpp.mbm
+../TestFiles/TMdaVid/Ref/bmp8bpp.mbm c:/tmdavid/ref/bmp8bpp.mbm
+../TestFiles/TMdaVid/Ref/bmprle4.mbm c:/tmdavid/ref/bmprle4.mbm
+../TestFiles/TMdaVid/Ref/bmprle8.mbm c:/tmdavid/ref/bmprle8.mbm
+../TestFiles/TMdaVid/Ref/jfif10.mbm c:/tmdavid/ref/jfif10.mbm
+../TestFiles/TMdaVid/Ref/jfif100.mbm c:/tmdavid/ref/jfif100.mbm
+../TestFiles/TMdaVid/Ref/jfif30.mbm c:/tmdavid/ref/jfif30.mbm
+../TestFiles/TMdaVid/Ref/jfif420.mbm c:/tmdavid/ref/jfif420.mbm
+../TestFiles/TMdaVid/Ref/jfif422.mbm c:/tmdavid/ref/jfif422.mbm
+../TestFiles/TMdaVid/Ref/jfif444.mbm c:/tmdavid/ref/jfif444.mbm
+../TestFiles/TMdaVid/Ref/jfif60.mbm c:/tmdavid/ref/jfif60.mbm
+../TestFiles/TMdaVid/Ref/jfifMono.mbm c:/tmdavid/ref/jfifmono.mbm
+../TestFiles/TMdaVid/Ref/jfifProg.mbm c:/tmdavid/ref/jfifprog.mbm
+../TestFiles/TMdaVid/Ref/mbm12bpp.mbm c:/tmdavid/ref/mbm12bpp.mbm
+../TestFiles/TMdaVid/Ref/mbm16bpp.mbm c:/tmdavid/ref/mbm16bpp.mbm
+../TestFiles/TMdaVid/Ref/mbm1bpp.mbm c:/tmdavid/ref/mbm1bpp.mbm
+../TestFiles/TMdaVid/Ref/mbm24bpp.mbm c:/tmdavid/ref/mbm24bpp.mbm
+../TestFiles/TMdaVid/Ref/mbm2bpp.mbm c:/tmdavid/ref/mbm2bpp.mbm
+../TestFiles/TMdaVid/Ref/mbm4bppc.mbm c:/tmdavid/ref/mbm4bppc.mbm
+../TestFiles/TMdaVid/Ref/mbm4bppm.mbm c:/tmdavid/ref/mbm4bppm.mbm
+../TestFiles/TMdaVid/Ref/mbm8bppc.mbm c:/tmdavid/ref/mbm8bppc.mbm
+../TestFiles/TMdaVid/Ref/mbm8bppm.mbm c:/tmdavid/ref/mbm8bppm.mbm
+../TestFiles/TMdaVid/Ref/png1.mbm c:/tmdavid/ref/png1.mbm
+../TestFiles/TMdaVid/Ref/png2.mbm c:/tmdavid/ref/png2.mbm
+../TestFiles/TMdaVid/Ref/png3.mbm c:/tmdavid/ref/png3.mbm
+../TestFiles/TMdaVid/Ref/png4.mbm c:/tmdavid/ref/png4.mbm
+../TestFiles/TMdaVid/Ref/scaled0.mbm c:/tmdavid/ref/scaled0.mbm
+../TestFiles/TMdaVid/Ref/scaled1.mbm c:/tmdavid/ref/scaled1.mbm
+../TestFiles/TMdaVid/Ref/scaled2.mbm c:/tmdavid/ref/scaled2.mbm
+../TestFiles/TMdaVid/Ref/scaled3.mbm c:/tmdavid/ref/scaled3.mbm
+../TestFiles/TMdaVid/Ref/scaled4.mbm c:/tmdavid/ref/scaled4.mbm
+../TestFiles/TMdaVid/Ref/scaled5.mbm c:/tmdavid/ref/scaled5.mbm
+../TestFiles/TMdaVid/Ref/tif1.mbm c:/tmdavid/ref/tif1.mbm
+../TestFiles/TMdaVid/Ref/tif2.mbm c:/tmdavid/ref/tif2.mbm
+../TestFiles/TMdaVid/Ref/tif3.mbm c:/tmdavid/ref/tif3.mbm
+../TestFiles/TMdaVid/Ref/tmdavid.mbm c:/tmdavid/ref/tmdavid.mbm
+../TestFiles/TMdaVid/Ref/trans.mbm c:/tmdavid/ref/trans.mbm
+../TestFiles/TMdaVid/Ref/wmf1.mbm c:/tmdavid/ref/wmf1.mbm
+../TestFiles/TMdaVid/Ref/wmf2.mbm c:/tmdavid/ref/wmf2.mbm
+../TestFiles/TMdaVid/Ref/wmf3.mbm c:/tmdavid/ref/wmf3.mbm
+../TestFiles/TMdaVid/Ref/wmf4.mbm c:/tmdavid/ref/wmf4.mbm
+../TestFiles/TMdaVid/Ref/wmf5.mbm c:/tmdavid/ref/wmf5.mbm
+../TestFiles/TMdaVid/Ref/wmf6.mbm c:/tmdavid/ref/wmf6.mbm
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// Copyright (c) 2002-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:
-// BLD.INF - Overall ICL UnitTest bld.inf file
-//
-//
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-
-
-#include "../testcodec/group/bld.inf"
-
-#include "../tsu_icl_frm_01/group/bld.inf"
-
-#include "../tsu_icl_cod_01/group/BLD.INF"
-
-#include "../tsu_icl_cod_02/group/BLD.INF"
-
-#include "../TSU_ICL_COD_03/group/BLD.INF"
-
-#include "../TSU_ICL_COD_04/group/BLD.INF"
-
-#include "../tsu_icl_mediasvr/group/bld.inf"
-
-#include "../tsu_icl_btrans_01/group/bld.inf"
-
-#include "../TSU_ICL_TMDAVID/group/BLD.INF"
-
-#include "../tsu_icl_imgdisp/group/bld.inf"
-
-#include "../tsu_icl_GenIclImgDisp_01/group/bld.inf"
-
-#include "../tsu_icl_MngImgDisp_01/group/bld.inf"
-
-#include "../tsu_icl_imageframe/group/bld.inf"
-
-#include "../tsu_icl_pfm_02/group/BLD.INF"
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,53 @@
+// Copyright (c) 2002-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:
+// BLD.INF - Overall ICL UnitTest bld.inf file
+//
+//
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+
+
+#include "../testcodec/group/bld.inf"
+
+#include "../tsu_icl_frm_01/group/bld.inf"
+
+#include "../tsu_icl_cod_01/group/bld.inf"
+
+#include "../tsu_icl_cod_02/group/bld.inf"
+
+#include "../TSU_ICL_COD_03/group/bld.inf"
+
+#include "../TSU_ICL_COD_04/group/bld.inf"
+
+#include "../tsu_icl_mediasvr/group/bld.inf"
+
+#include "../tsu_icl_btrans_01/group/bld.inf"
+
+#include "../TSU_ICL_TMDAVID/group/bld.inf"
+
+#include "../tsu_icl_imgdisp/group/bld.inf"
+
+#include "../tsu_icl_GenIclImgDisp_01/group/bld.inf"
+
+#include "../tsu_icl_MngImgDisp_01/group/bld.inf"
+
+#include "../tsu_icl_imageframe/group/bld.inf"
+
+#include "../tsu_icl_pfm_02/group/bld.inf"
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/testcodec/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/testcodec/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/testcodec/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -20,14 +20,17 @@
PRJ_EXPORTS
+PRJ_MMPFILES
+
+PRJ_TESTEXPORTS
+
// IBY file
ExtendedTestCodec.iby /epoc32/rom/include/extendedtestcodec.iby
TestCodec.iby /epoc32/rom/include/testcodec.iby
fwexttestcodec.iby /epoc32/rom/include/fwexttestcodec.iby
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
../mmpfiles/ExtendedPlugin.mmp
../mmpfiles/ExtendedTestCodec.mmp
../mmpfiles/TestCodec.mmp
-../mmpfiles/fwexttestcodec.mmp
-
+../mmpfiles/fwexttestcodec.mmp
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -16,9 +16,13 @@
//
PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
../mmpfiles/tsu_icl_GenIclImgDisp_01.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_ICL_ExifImgDisp_01.script c:/tsu_icl_exifimgdisp_01.script
@@ -84,4 +88,3 @@
// .iby
../inc/tsu_icl_ExifImgDisp_01.iby /epoc32/rom/include/tsu_icl_exifimgdisp_01.iby
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -16,9 +16,14 @@
//
PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
../mmpfiles/tsu_icl_MngImgDisp_01.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_ICL_MngImgDisp_01.script c:/tsu_icl_mngimgdisp_01.script
@@ -98,4 +103,3 @@
// .iby
../inc/tsu_icl_MngImgDisp_01.iby /epoc32/rom/include/tsu_icl_mngimgdisp_01.iby
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,9 +17,13 @@
//
PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
../mmpfiles/TSU_ICL_BTRANS_01.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_ICL_BTRANS_01.script c:/tsu_icl_btrans_01.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/inc/TSU_ICL_BTRANS_01.iby
--- a/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/inc/TSU_ICL_BTRANS_01.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/inc/TSU_ICL_BTRANS_01.iby Fri Jul 09 12:23:13 2010 +0100
@@ -25,3 +25,5 @@
data=EPOCROOT##epoc32\data\c\TSU_ICL_BTRANS_01_Panic.script \TSU_ICL_BTRANS_01_Panic.script
#endif
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_cod_01/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-// DEFAULT MISA
-// WINS ARMI THUMB
-// MINT
-
-PRJ_MMPFILES
-
-// TSI_WP5 files
-../mmpfiles/TSU_ICL_COD_01.mmp
-
-PRJ_EXPORTS
-
-// scripts
-../scripts/TSU_ICL_COD_01.script c:/tsu_icl_cod_01.script
-../scripts/TSU_ICL_COD_01_alloc.script c:/tsu_icl_cod_01_alloc.script
-../scripts/TSU_ICL_COD_01b_alloc.script c:/tsu_icl_cod_01b_alloc.script
-../scripts/TSU_ICL_COD_01c_alloc.script c:/tsu_icl_cod_01c_alloc.script
-../scripts/TSU_ICL_COD_01_Panic.script c:/tsu_icl_cod_01_panic.script
-../scripts/TSU_ICL_COD_01.ini c:/tsu_icl_cod_01.ini
-
-// iby
-TSU_ICL_COD_01.iby /epoc32/rom/include/tsu_icl_cod_01.iby
-
-PRJ_EXPORTS
-#include "bld_TImageTestExports.inf"
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_cod_01/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,51 @@
+// Copyright (c) 2004-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:
+//
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+// DEFAULT MISA
+// WINS ARMI THUMB
+// MINT
+
+PRJ_MMPFILES
+
+// TSI_WP5 files
+../mmpfiles/TSU_ICL_COD_01.mmp
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+
+// TSI_WP5 files
+../mmpfiles/TSU_ICL_COD_01.mmp
+
+PRJ_TESTEXPORTS
+
+// scripts
+../scripts/TSU_ICL_COD_01.script c:/tsu_icl_cod_01.script
+../scripts/TSU_ICL_COD_01_alloc.script c:/tsu_icl_cod_01_alloc.script
+../scripts/TSU_ICL_COD_01b_alloc.script c:/tsu_icl_cod_01b_alloc.script
+../scripts/TSU_ICL_COD_01c_alloc.script c:/tsu_icl_cod_01c_alloc.script
+../scripts/TSU_ICL_COD_01_Panic.script c:/tsu_icl_cod_01_panic.script
+../scripts/TSU_ICL_COD_01.ini c:/tsu_icl_cod_01.ini
+
+// iby
+TSU_ICL_COD_01.iby /epoc32/rom/include/tsu_icl_cod_01.iby
+
+PRJ_TESTEXPORTS
+#include "bld_TImageTestExports.inf"
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-// DEFAULT MISA
-// WINS ARMI THUMB
-// MINT
-
-PRJ_MMPFILES
-
-// TSI_WP5 files
-../mmpfiles/TSU_ICL_COD_02.mmp
-../mmpfiles/TSU_ICL_COD_02_Recog.mmp
-
-PRJ_EXPORTS
-
-// scripts
-../scripts/TSU_ICL_COD_02.script c:/tsu_icl_cod_02.script
-../scripts/TSU_ICL_COD_02_Recog.script c:/tsu_icl_cod_02_recog.script
-../scripts/TSU_ICL_COD_02_Recog_ALLOC.script c:/tsu_icl_cod_02_recog_alloc.script
-
-// iby
-TSU_ICL_COD_02.iby /epoc32/rom/include/tsu_icl_cod_02.iby
-
-
-PRJ_EXPORTS
-
-// test files
-../TestFiles/wolf.mbm c:/tsu_icl_cod_02/wolf.mbm
-../TestFiles/A.txt c:/tsu_icl_cod_02/a.txt
-../TestFiles/B.txt c:/tsu_icl_cod_02/b.txt
-../TestFiles/G.txt c:/tsu_icl_cod_02/g.txt
-../TestFiles/Gif.txt c:/tsu_icl_cod_02/gif.txt
-../TestFiles/I.txt c:/tsu_icl_cod_02/i.txt
-../TestFiles/M.txt c:/tsu_icl_cod_02/m.txt
-../TestFiles/R.txt c:/tsu_icl_cod_02/r.txt
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group/TSU_ICL_COD_02.iby
--- a/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group/TSU_ICL_COD_02.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group/TSU_ICL_COD_02.iby Fri Jul 09 12:23:13 2010 +0100
@@ -26,6 +26,14 @@
data=EPOCROOT##epoc32\data\c\TSU_ICL_COD_02_Recog.script \TSU_ICL_COD_02_Recog.script
data=EPOCROOT##epoc32\data\c\TSU_ICL_COD_02_Recog_ALLOC.script \TSU_ICL_COD_02_Recog_ALLOC.script
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\wolf.mbm \tsu_icl_cod_02\wolf.mbm
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\a.txt \tsu_icl_cod_02\a.txt
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\b.txt \tsu_icl_cod_02\b.txt
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\g.txt \tsu_icl_cod_02\g.txt
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\gif.txt \tsu_icl_cod_02\gif.txt
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\i.txt \tsu_icl_cod_02\i.txt
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\m.txt \tsu_icl_cod_02\m.txt
+data=EPOCROOT##epoc32\data\c\tsu_icl_cod_02\r.txt \tsu_icl_cod_02\r.txt
#endif __TSU_ICL_COD_02_IBY__
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,57 @@
+// Copyright (c) 2004-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:
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+// DEFAULT MISA
+// WINS ARMI THUMB
+// MINT
+
+PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+
+// TSI_WP5 files
+../mmpfiles/TSU_ICL_COD_02.mmp
+../mmpfiles/TSU_ICL_COD_02_Recog.mmp
+
+PRJ_TESTEXPORTS
+
+// scripts
+../scripts/TSU_ICL_COD_02.script c:/tsu_icl_cod_02.script
+../scripts/TSU_ICL_COD_02_Recog.script c:/tsu_icl_cod_02_recog.script
+../scripts/TSU_ICL_COD_02_Recog_ALLOC.script c:/tsu_icl_cod_02_recog_alloc.script
+
+// iby
+TSU_ICL_COD_02.iby /epoc32/rom/include/tsu_icl_cod_02.iby
+
+
+PRJ_TESTEXPORTS
+
+// test files
+../TestFiles/wolf.mbm c:/tsu_icl_cod_02/wolf.mbm
+../TestFiles/A.txt c:/tsu_icl_cod_02/a.txt
+../TestFiles/B.txt c:/tsu_icl_cod_02/b.txt
+../TestFiles/G.txt c:/tsu_icl_cod_02/g.txt
+../TestFiles/Gif.txt c:/tsu_icl_cod_02/gif.txt
+../TestFiles/I.txt c:/tsu_icl_cod_02/i.txt
+../TestFiles/M.txt c:/tsu_icl_cod_02/m.txt
+../TestFiles/R.txt c:/tsu_icl_cod_02/r.txt
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_frm_01/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,9 +17,13 @@
//
PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
../mmpfiles/TSU_ICL_FRM_01.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// Test scripts
../scripts/TSU_ICL_FRM_01.script c:/tsu_icl_frm_01.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_frm_01/testfiles/fw_ext_not_supported_test1.ppm
Binary file imagingandcamerafws/imagingunittest/tsu_icl_frm_01/testfiles/fw_ext_not_supported_test1.ppm has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,9 +17,13 @@
//
PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
../mmpfiles/TSU_ICL_GSCAL_01.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_ICL_GSCAL_01.script c:/tsu_icl_gscal_01.script
@@ -60,4 +64,3 @@
../TestFiles/png2_2_8pmThrsh.mbm c:/tsu_icl_gscal_01/png2_2_8pmthrsh.mbm
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_imageframe/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,9 +17,14 @@
//
PRJ_MMPFILES
+
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
../mmpfiles/tsu_icl_imageframe.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_ICL_ImageFrame.script c:/tsu_icl_imageframe.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,10 +17,15 @@
//
PRJ_MMPFILES
+
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
../mmpfiles/TestImgDisplay.mmp
../mmpfiles/tsu_icl_ImgDisp_01.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_ICL_ImgDisp_01.script c:/tsu_icl_imgdisp_01.script
@@ -36,4 +41,3 @@
// .iby
../inc/tsu_icl_ImgDisp_01.iby /epoc32/rom/include/tsu_icl_imgdisp_01.iby
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,11 +17,16 @@
//
PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
../mmpfiles/TSU_ICL_itfm_01.mmp
../mmpfiles/TestTransformer.mmp
../mmpfiles/TestTransformerExt.mmp
-PRJ_EXPORTS
+
+PRJ_TESTEXPORTS
// test scripts
../scripts/tsu_icl_itfm_01_nocap.script c:/tsu_icl_itfm_01_nocap.script
@@ -43,4 +48,3 @@
// .iby
../inc/tsu_icl_itfm_01.iby /epoc32/rom/include/tsu_icl_itfm_01.iby
-
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/group/bld.inf
--- a/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,9 +17,15 @@
//
PRJ_MMPFILES
+
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
../mmpfiles/TSU_ICL_MediaSvr.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_ICL_MediaSvr.script c:/tsu_icl_mediasvr.script
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-// DEFAULT MISA
-// WINS ARMI THUMB
-// MINT
-
-PRJ_MMPFILES
-
-// TSI_WP5 files
-../mmpfiles/TSU_ICL_PFM_01.mmp
-
-PRJ_EXPORTS
-
-// scripts
-../scripts/TSU_ICL_PFM_01.script c:/tsu_icl_pfm_01.script
-
-// iby
-TSU_ICL_PFM_01.iby /epoc32/rom/include/tsu_icl_pfm_01.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,39 @@
+// Copyright (c) 2004-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:
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+// DEFAULT MISA
+// WINS ARMI THUMB
+// MINT
+
+PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+
+// TSI_WP5 files
+../mmpfiles/TSU_ICL_PFM_01.mmp
+
+PRJ_TESTEXPORTS
+
+// scripts
+../scripts/TSU_ICL_PFM_01.script c:/tsu_icl_pfm_01.script
+
+// iby
+TSU_ICL_PFM_01.iby /epoc32/rom/include/tsu_icl_pfm_01.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/group/BLD.INF
--- a/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-
-PRJ_MMPFILES
-
-../mmpfiles/TSU_ICL_PFM_02.mmp
-
-PRJ_EXPORTS
-
-// scripts
-../scripts/TSU_ICL_PFM_02.script c:/tsu_icl_pfm_02.script
-
-// iby
-TSU_ICL_PFM_02.iby /epoc32/rom/include/tsu_icl_pfm_02.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,35 @@
+// Copyright (c) 2004-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:
+//
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+
+PRJ_MMPFILES
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+
+../mmpfiles/TSU_ICL_PFM_02.mmp
+
+PRJ_TESTEXPORTS
+
+// scripts
+../scripts/TSU_ICL_PFM_02.script c:/tsu_icl_pfm_02.script
+
+// iby
+TSU_ICL_PFM_02.iby /epoc32/rom/include/tsu_icl_pfm_02.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/scripts/TSU_ICL_PFM_02.script
--- a/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/scripts/TSU_ICL_PFM_02.script Thu Jun 24 10:37:45 2010 +0100
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/scripts/TSU_ICL_PFM_02.script Fri Jul 09 12:23:13 2010 +0100
@@ -19,8 +19,7 @@
PRINT
//PAUSE_AT_END
-//
-MULTITHREAD
+// MULTITHREAD
//
diff -r c36d67f77f75 -r eb1e5d7cc688 layers.sysdef.xml
--- a/layers.sysdef.xml Thu Jun 24 10:37:45 2010 +0100
+++ b/layers.sysdef.xml Fri Jul 09 12:23:13 2010 +0100
@@ -115,6 +115,12 @@
-
+
+
+
+
+
+
+
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 mdfdevvideoextensions/nga_mdf_postprocessor/group/NGAPostProcHwDevice.mmp
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/group/NGAPostProcHwDevice.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/group/NGAPostProcHwDevice.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -39,7 +39,8 @@
SOURCEPATH ../src
-SOURCE Colorspace_conv_yuv.c
+SOURCE Colorspace_conv_yuv.c
+SOURCE colorconversion.c
SOURCE NGAPostProcHwDevice.cpp
SOURCE ImplementationProxy.cpp
SOURCE NGAPostProcSessionManager.cpp
diff -r c36d67f77f75 -r eb1e5d7cc688 mdfdevvideoextensions/nga_mdf_postprocessor/group/nga_mdf_postprocessor.pkg
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/group/nga_mdf_postprocessor.pkg Thu Jun 24 10:37:45 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/group/nga_mdf_postprocessor.pkg Fri Jul 09 12:23:13 2010 +0100
@@ -20,7 +20,7 @@
&EN
; Header
-#{"NGA MDF PostProcessor"},(0x0251318C), 1, 0, 0, TYPE=PU
+#{"NGA MDF PostProcessor"},(0x0251318C), 1, 0, 0, TYPE=SA,RU
; Localised Vendor name
%{"Nokia"}
diff -r c36d67f77f75 -r eb1e5d7cc688 mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h Fri Jul 09 12:23:13 2010 +0100
@@ -41,9 +41,11 @@
#include
#include
+#include "fetchframecustominterface.h"
#include "MdfRDebug.h"
#include "NGAPostProcHwDevice_UID.hrh"
#include "NGAPostProcSessionManagerObserver.h"
+#include "common.h"
class CNGAPostProcSessionManager;
class CNGAPostProcSurfaceHandler;
@@ -528,8 +530,8 @@
plug-in does not support snapshots."
@pre "This method can only be called after the hwdevice has been initialized with Initialize()."
*/
-// TBool GetSnapshotL(TPictureData& aPictureData, const TUncompressedVideoFormat& aFormat) {return EFalse;};
- TBool GetSnapshotL(TPictureData&, const TUncompressedVideoFormat& ) {return EFalse;};
+// TBool GetSnapshotL(TPictureData& aPictureData, const TUncompressedVideoFormat& aFormat) {return EFalse;};
+ TBool GetSnapshotL(TPictureData& aPictureData, const TUncompressedVideoFormat& aFormat);
/**
When the snapshot is available, it will be returned to the client using the TimedSnapshotComplete()
@@ -1008,6 +1010,10 @@
#ifdef _DUMP_YUV_FRAMES
void captureYuv(TVideoPicture* aPicture);
#endif
+
+ TInt SetSourceFormat();
+ TInt SetSourceRange();
+ TInt ColorConvert(tBaseVideoFrame* aInputFrame, TUint8* aDestPtr, tWndParam* aInputCropWindow, tWndParam* aOutputCropWindow);
private:
@@ -1063,7 +1069,10 @@
TInt iVideoFrameBufSize;
TBool iResourceLost;
TBool iRedrawDone;
-
+ // Flag to indicate that the redraw surface has been created, and
+ // can be used in a subsequent call ro Redraw()
+ TBool iRedrawSurfaceInUse;
+
//-- members for buffer management --
MMmfVideoBufferManagementObserver* iVBMObserver;
TBufferOptions iVBMBufferOptions;
@@ -1083,6 +1092,8 @@
MMmfVideoPropertiesObserver* iVPObserver;
RWsSession iWsSession;
TSize iPicSize;
+ TUint iAspectRatioNum;
+ TUint iAspectRatioDenom;
//-- members for Trickplay support --
TInt iStepFrameCount;
TInt iPlayRate;
@@ -1091,6 +1102,13 @@
TUint8 iSkippedFramesCountingBuffer[64];
TUint8 iSkippedFramesInLast64Frames;
TUint8 iCurrentPosInFramesCountingBuffer;
+ TUncompressedVideoFormat iVideoFormat;
+ //---------- utility variables -------
+ // Image source format
+ TUint8 iSourceFormat;
+
+ //Image range
+ TUint8 iSourceRange;
};
/**
diff -r c36d67f77f75 -r eb1e5d7cc688 mdfdevvideoextensions/nga_mdf_postprocessor/inc/common.h
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/inc/common.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/inc/common.h Fri Jul 09 12:23:13 2010 +0100
@@ -55,6 +55,31 @@
#define mIsSuccess(code) ((code)>=0)
#define mIsFailure(code) ((code)<0)
+/* These define the srcImageFormats */
+#define EYuv420Chroma1_Planar 0x01
+#define EYuv420Chroma2_Planar 0x02
+#define EYuv420Chroma3_Planar 0x03
+#define EYuv422Chroma1_LE 0x04
+#define EYuv422Chroma2_LE 0x05
+#define EYuv422Chroma1_BE 0x06
+#define EYuv422Chroma2_BE 0x07
+
+/* These define the dstImageFormats */
+#define EBitmapColor4k_DitherOrdered 0x01
+#define EBitmapColor4k_DitherErrDiff 0x02
+#define EBitmapColor64k_DitherOrdered 0x03
+#define EBitmapColor64k_DitherErrDiff 0x04
+#define EBitmapColor16M 0x05
+#define EBitmapColor16MU 0x06
+
+/* These define the various color conversion schemes */
+#define EITU601_5_FULLRANGE 0X01
+#define EITU601_5_REDUCEDRANGE 0X02
+#define EB709_FULLRANGE 0X03
+#define EB709_REDUCEDRANGE 0X04
+
+#define COLOR_CONV_PRECISION 14
+#define COLOR_CONV_ROUND 8192
/* This is the data structure for the output video frame buffer */
typedef struct BaseVideoFrame
{
@@ -69,4 +94,13 @@
typedef enum {YUV422INT_LE, YUV422INT_BE} EBufferLayout422;
+/* Crop window structure */
+typedef struct WndParam
+{
+ uint16 xOffset;
+ uint16 yOffset;
+ uint32 wndWidth;
+ uint32 wndHeight;
+}tWndParam;
+
#endif /* INCLUDE_COMMON */
diff -r c36d67f77f75 -r eb1e5d7cc688 mdfdevvideoextensions/nga_mdf_postprocessor/inc/surface_hints.h
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/inc/surface_hints.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/inc/surface_hints.h Fri Jul 09 12:23:13 2010 +0100
@@ -12,12 +12,17 @@
* Contributors:
*
* Description:
-*
+* Surface Manager API
*/
#ifndef __SURFACE_HINTS_LOCAL_H__
#define __SURFACE_HINTS_LOCAL_H__
+//- Include Files ----------------------------------------------------------
+
+#include
+
+
//- Namespace ---------------------------------------------------------------
namespace surfaceHints
@@ -25,7 +30,7 @@
//- Constants ---------------------------------------------------------------
-/** Hint of surface the content.
+/** Hint of the surface content.
@see TSurfaceContent for possible values
*/
const TInt KSurfaceContent = 0x1;
@@ -37,17 +42,37 @@
*/
const TInt KSurfaceUpdate = 0x2;
-/** Hint of the surface content copy protected and can it be
+/** Hint whether the surface content is copy protected and can it be
shown on external displays.
@see TSurfaceProtection for possible values.
*/
const TInt KSurfaceProtection = 0x3;
-/** Hint of the color space of the surface content.
- Value is a pointer to TColorspace stucture.
- @see TColorspace
-*/
-const TInt KSurfaceColorspace = 0x4;
+
+/** Values used for the KSurfaceContent key */
+enum TSurfaceContent
+ {
+ /** No specific use-case */
+ EGeneric,
+ /** Camera viewfinder frames */
+ EViewFinder,
+ /** Images captured by camera */
+ EStillImage,
+ /** Decoded video frames */
+ EVideoPlayback,
+ /** Video frames from video telephony */
+ EVideoTelephony,
+ /** EGL surface */
+ EGfx,
+ /** Main UI surface */
+ EUi,
+ /** Composition target surface */
+ ECompositionTarget,
+ /** Indicates that the surface has to accessible by ARM.
+ This can be orr'ed with other TSurfaceContent enumerations. */
+ EArmAccess = 0x80000000
+ };
+
/** Values used for the KSurfaceProtection key. The values are bitmasks and can be combined
* e.g. EAllowAnalogProtectionRequired | EAllowDigitalProtectionRequired.
@@ -95,6 +120,72 @@
EAllowDigitalProtectionRequired = 0x00000800,
};
+
+class TSurfaceUpdate
+ {
+ /** Constructor.
+ @param aUpdateRate How often the surface content is redrawn per second.
+ @param aTearingFree When ETrue surface updates should be synchronized
+ with display refresh rate, otherwise surface can
+ be updated as fast as possible.
+ */
+ inline TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree);
+
+ /** Converts a value to TSurfaceUpdate */
+ inline TSurfaceUpdate(TInt aValue);
+
+ /** Converts TSurfaceUpdate to a signed integer, so it can be used as
+ a value for KSurfaceUpdate key. */
+ inline operator TInt() const;
+
+ /** Getter for surface update rate.
+ @return updates per second
+ */
+ inline TUint UpdateRate() const;
+
+ /** Getter for surface update synchronization.
+ @return ETrue - updates should be synchronized with display refresh rate,
+ EFalse - surface can be updated as fast as possible.
+ */
+ inline TBool TearingFree() const;
+
+ private:
+ TUint iValue;
+ };
+
+
+//- Forward Declarations ----------------------------------------------------
+
+
+//- Class Definitions -------------------------------------------------------
+
+
+//- Inline Functions --------------------------------------------------------
+
+TSurfaceUpdate::TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree)
+ : iValue( ( aUpdateRate & 0xFFFF ) | ( aTearingFree ? 0x80000000 : 0x0 ) )
+ {
+ }
+TSurfaceUpdate::TSurfaceUpdate(TInt aValue)
+ : iValue( static_cast( aValue ) )
+ {
+ }
+
+TSurfaceUpdate::operator TInt() const
+ {
+ return static_cast( iValue );
+ }
+
+TUint TSurfaceUpdate::UpdateRate() const
+ {
+ return ( iValue & 0xFFFF );
+ }
+
+TBool TSurfaceUpdate::TearingFree() const
+ {
+ return ( iValue & 0x80000000 ) ? ETrue : EFalse;
+ }
+
}; //namespace surfaceHints
#endif //__SURFACE_HINTS_LOCAL_H__
diff -r c36d67f77f75 -r eb1e5d7cc688 mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -19,7 +19,6 @@
#include "NGAPostProcHwDevice.h"
#include "NGAPostProcSessionManager.h"
#include "NGAPostProcSurfaceHandler.h"
-#include "common.h"
// post-processor info
const TUid KUidVideoPostProcHwDevice = {KUidNGAPostProcHwDeviceImplUid};
@@ -47,6 +46,11 @@
int32 gColorConvYUVtoYUV422Int (tBaseVideoFrame *yuv420Frame, tBaseVideoFrame* yuv422Frame,
uint8 outClrFmt, int16 stride);
+int32 Emz_VDec_gColorConv_YUVtoRGB (
+ tBaseVideoFrame *srcImage, uint8 *dstImage, tWndParam *srcWindow,
+ tWndParam *dstWindow, uint8 srcImageFormat, uint8 dstImageFormat,
+ uint8 colorConvScheme);
+
#ifdef __cplusplus
}
#endif
@@ -95,6 +99,7 @@
iVideoFrameBufSize(0),
iResourceLost(EFalse),
iRedrawDone(EFalse),
+ iRedrawSurfaceInUse(EFalse),
iVBMObserver(NULL),
count(0),
iSurfaceMask(surfaceHints::EAllowAllExternals),
@@ -102,6 +107,8 @@
iVideoSurfaceObserver(NULL),
iVPObserver(NULL),
iPicSize(0,0),
+ iAspectRatioNum(1),
+ iAspectRatioDenom(1),
iStepFrameCount(0),
iPlayRate(KDefPlayRate),
iKeyFrameMode(EFalse),
@@ -142,6 +149,10 @@
{
TVideoPicture* pic = iVBMBufferReferenceQ[0];
iVBMBufferReferenceQ.Remove(0);
+ if (iColorConversionQ.Count()>0)
+ {
+ iColorConversionQ.Remove(0);
+ }
if (pic->iHeader) delete pic->iHeader;
delete pic->iData.iRawData;
@@ -154,6 +165,9 @@
iVBMBufferReferenceQ.Reset();
iVBMBufferReferenceQ.Close();
+ iColorConversionQ.Reset();
+ iColorConversionQ.Close();
+
iVBMBufferQ.Reset();
iVBMBufferQ.Close();
@@ -168,7 +182,12 @@
if(!iSurfaceId.IsNull())
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::UnregisterSurface"), this);
- iWsSession.UnregisterSurface(0, iSurfaceId);
+ TInt numScreens = iWsSession.NumberOfScreens();
+ for(TInt i=0;i < numScreens;i++)
+ {
+ iWsSession.UnregisterSurface(i, iSurfaceId);
+ }
+ iWsSession.Flush();
iSurfaceHandler->DestroySurface(iSurfaceId);
}
delete iSurfaceHandler;
@@ -196,11 +215,15 @@
User::Leave(KErrNotReady);
}
-
- if( ((aFormat.iYuvFormat.iPattern == EYuv420Chroma1) ||
- (aFormat.iYuvFormat.iPattern == EYuv420Chroma2) ||
- (aFormat.iYuvFormat.iPattern == EYuv420Chroma3) ))
+ iVideoFormat = aFormat;
+ if( ((iVideoFormat.iYuvFormat.iPattern == EYuv420Chroma1) ||
+ (iVideoFormat.iYuvFormat.iPattern == EYuv420Chroma2) ||
+ (iVideoFormat.iYuvFormat.iPattern == EYuv420Chroma3) ))
{
+ iVideoFormat.iYuvFormat.iCoefficients = EYuvBt709Range1;
+ iVideoFormat.iYuvFormat.iPattern = EYuv422Chroma1;
+ iVideoFormat.iYuvFormat.iDataLayout = EYuvDataInterleavedBE;
+
#if defined __WINSCW__
iIsColorConversionNeeded = ETrue;
#else
@@ -349,7 +372,7 @@
void CNGAPostProcHwDevice::WritePictureL(TVideoPicture* aPicture)
{
- PP_DEBUG(_L("CNGAPostProcHwDevice:WritePicture ++"));
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePicture bufId = %d"), this,GetID(aPicture));
TVideoPicture* pic;
if (iPPState==EInitializing || iPPState==EStopped || iIsInputEnded)
{
@@ -363,15 +386,18 @@
User::Leave(KErrArgument);
}
pic = aPicture;
- if (iInputQ.Count() > 0)
- {
- AddToQ(pic);
- AttemptToPost();
- }
- else
- {
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePicture bufId = %d"), this,GetID(pic));
- iPictureCounters.iTotalPictures++;
+ iPictureCounters.iTotalPictures++;
+ if((iPPState != EPlaying) && (iFirstPictureUpdated))
+ {
+ AddToQ(pic);
+ }
+ else if( iInputQ.Count() > 0 )
+ {
+ AddToQ(pic);
+ AttemptToPost();
+ }
+ else
+ {
TInt64 delta = 0;
TTimeToPost iTimeToPost = (TTimeToPost)IsTimeToPost(pic, delta);
if(!IsGceReady())
@@ -387,7 +413,13 @@
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:WritePictureL Too large delta .. skipping"), this );
iTimeToPost = ESkipIt;
}
-
+ if(!iFirstPictureUpdated)
+ {
+ if(iTimeToPost == EDelayIt)
+ {
+ iTimeToPost = EPostIt;
+ }
+ }
switch(iTimeToPost)
{
case EDelayIt:
@@ -420,7 +452,10 @@
if(!iFirstPictureUpdated)
{
iFirstPictureUpdated = ETrue;
- PublishSurfaceCreated();
+ if(!iSurfaceCreatedEventPublished)
+ {
+ PublishSurfaceCreated();
+ }
}
}
break;
@@ -827,12 +862,12 @@
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Redraw ++"), this);
TInt err = KErrNone;
- if(iResourceLost && !iRedrawDone)
+ if(iRedrawSurfaceInUse && !iRedrawDone)
{
err = AddHints();
if (err != KErrNone)
{
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvroResourcesLost -- failed to AddHints %d"),
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Redraw -- failed to AddHints %d"),
this, err);
iProxy->MdvppFatalError(this, err);
return;
@@ -841,7 +876,7 @@
err = RegisterSurface(iSurfaceId);
if (err != KErrNone)
{
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvroResourcesLost -- failed to Register Surface %d"),
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Redraw -- failed to Register Surface %d"),
this, err);
iSurfaceHandler->DestroySurface(iSurfaceId);
iSurfaceId = TSurfaceId::CreateNullId();
@@ -860,6 +895,7 @@
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Start ++"), this);
iPPState = EPlaying;
+ AttemptToPost();
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Start --"), this);
}
@@ -904,7 +940,10 @@
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetPosition FAILED: Unexpected state"), this);
return;
}
-
+ if (iPPState == EPaused)
+ {
+ iFirstPictureUpdated = EFalse;
+ }
iCurrentPlaybackPosition = aPlaybackPosition;
ReleaseInputQ();
@@ -971,6 +1010,107 @@
//not required for direct rendering
}
+TBool CNGAPostProcHwDevice::GetSnapshotL(TPictureData& aPictureData, const TUncompressedVideoFormat& /*aFormat*/)
+{
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:GetSnapshotL %d %d ++"), this, iVBMEnabled, iProcessQ.Count());
+ TVideoPicture* pic = NULL;
+ TInt err = KErrNone;
+ TBool frameAvailable =EFalse;
+ tWndParam inputCropWindow;
+ tWndParam outputCropWindow;
+ tBaseVideoFrame inputFrame;
+ inputFrame.lum = NULL;
+
+ if(aPictureData.iDataFormat == ERgbFbsBitmap)
+ {
+ if(iProcessQ.Count())
+ {
+ pic = iProcessQ[0]; //frame already submitted for display
+ }
+ else if(iInputQ.Count())
+ {
+ pic = iInputQ[0]; //frame yet to be displayed
+ }
+ if(pic)
+ {
+ if (iVBMEnabled)
+ {
+ inputFrame.lum = (TUint8*)pic->iData.iRawData->Ptr();
+ }
+ else
+ {
+ if (iInputDecoderDevice)
+ {
+ MMmfVideoFetchFrame* VFHandler = NULL;
+ VFHandler = (MMmfVideoFetchFrame*)iInputDecoderDevice->CustomInterface(KUidMMFVideoFetchFrame);
+ if (VFHandler)
+ {
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:GetSnapshotL() fetch frame"), this);
+ inputFrame.lum = (TUint8*)VFHandler->MmvffGetFrame(GetID(pic));
+ }
+ else
+ {
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:GetSnapshotL() decoder yet to implement MMmfVideoFetchFrame CI"), this);
+ }
+ }
+ }
+ }
+ if(inputFrame.lum)
+ {
+ inputFrame.cb = inputFrame.lum + iPicSize.iWidth * iPicSize.iHeight;
+
+ if( ((iVideoFormat.iYuvFormat.iPattern == EYuv420Chroma1) ||
+ (iVideoFormat.iYuvFormat.iPattern == EYuv420Chroma2) ||
+ (iVideoFormat.iYuvFormat.iPattern == EYuv420Chroma3) ))
+ {
+ inputFrame.cr = inputFrame.lum + (iPicSize.iWidth * iPicSize.iHeight*5)/4;
+ }
+ else
+ {
+ inputFrame.cr = inputFrame.lum + (iPicSize.iWidth * iPicSize.iHeight*3)/2;
+ }
+
+ inputFrame.width = (unsigned short)iPicSize.iWidth;
+ inputFrame.height = (unsigned short)iPicSize.iHeight;
+
+ outputCropWindow.wndHeight = iPicSize.iHeight;
+ outputCropWindow.wndWidth = iPicSize.iWidth;
+ outputCropWindow.xOffset = 0;
+ outputCropWindow.yOffset = 0;
+
+ inputCropWindow.wndHeight = iPicSize.iHeight;
+ inputCropWindow.wndWidth = iPicSize.iWidth;
+ inputCropWindow.xOffset = 0;
+ inputCropWindow.yOffset = 0;
+
+ RFbsSession fbs;
+ fbs.Connect();
+ CFbsBitmap* iOutBitmap = aPictureData.iRgbBitmap;
+ TInt status = iOutBitmap->Resize(iPicSize);
+ if (status == KErrNone)
+ {
+ // Lock the heap to prevent the FBS server from invalidating the address
+ iOutBitmap->LockHeap();
+ TUint8* dataAddress = (TUint8*)iOutBitmap->DataAddress();
+ err = ColorConvert(&inputFrame, dataAddress, &inputCropWindow, &outputCropWindow);
+ iOutBitmap->UnlockHeap();
+ frameAvailable = ETrue;
+ }
+ fbs.Disconnect();
+ }
+ }
+ else
+ {
+ err = KErrNotSupported;
+ }
+ if(err != KErrNone)
+ {
+ User::Leave(err);
+ }
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:GetSnapshotL --"), this);
+ return(frameAvailable);
+}
+
void CNGAPostProcHwDevice::InputEnd()
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:InputEnd ++"), this);
@@ -1208,12 +1348,13 @@
if(iVBMBufferReferenceQ.Count() == 0)
{
- err = SetupSurface(aSize);
- if(err)
- {
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvbmGetBufferL() Surface Setup Failed %d"), this, err);
- User::Leave(err);
- }
+ iPicSize = aSize;
+ err = SetupSurface(aSize);
+ if(err)
+ {
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvbmGetBufferL() Surface Setup Failed %d"), this, err);
+ User::Leave(err);
+ }
}
if(!iVBMBufferQ.Count())
@@ -1280,10 +1421,12 @@
{
aCropRect.Intersection( iPicSize);
}
- aPixelAspectRatio = TVideoAspectRatio(1,1);
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvssGetSurfaceParametersL()-- \
- cropRectWidth = %d cropRectHeight = %d --"), this, aCropRect.Width(), aCropRect.Height());
-
+ aPixelAspectRatio = TVideoAspectRatio(iAspectRatioNum,iAspectRatioDenom);
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvssGetSurfaceParametersL() \
+ cropRectWidth = %d cropRectHeight = %d"), this, aCropRect.Width(), aCropRect.Height());
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvssGetSurfaceParametersL() \
+ PAR Num = %d PAR Denom = %d"), this, aPixelAspectRatio.iNumerator, aPixelAspectRatio.iDenominator);
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvssGetSurfaceParametersL() --"), this);
}
void CNGAPostProcHwDevice::MmvssSurfaceRemovedL(const TSurfaceId& aSurfaceId)
@@ -1292,10 +1435,20 @@
if(!aSurfaceId.IsNull())
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvssSurfaceRemovedL(): UnregisterSurface ID = 0x%x"), this, aSurfaceId );
- iWsSession.UnregisterSurface(0, aSurfaceId);
+ TInt numScreens = iWsSession.NumberOfScreens();
+ for(TInt i=0;i < numScreens;i++)
+ {
+ iWsSession.UnregisterSurface(i, aSurfaceId);
+ }
+ iWsSession.Flush();
iSurfaceHandler->DestroySurface(aSurfaceId);
+ if(iSurfaceId == aSurfaceId)
+ {
+ iSurfaceCreatedEventPublished = EFalse;
+ iSurfaceId = TSurfaceId::CreateNullId();
+ iChunk.Close();
+ }
}
-
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvssSurfaceRemovedL() --"), this);
}
@@ -1307,7 +1460,9 @@
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvpoUpdateVideoProperties PAR \
iAspectRatioNum = %d, iAspectRatioDenom = %d"), this,
aYuvFormat.iAspectRatioNum,aYuvFormat.iAspectRatioDenom);
- iPicSize = aPictureSize;
+ iPicSize = aPictureSize;
+ iAspectRatioNum = aYuvFormat.iAspectRatioNum;
+ iAspectRatioDenom = aYuvFormat.iAspectRatioDenom;
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvpoUpdateVideoProperties Picture Size \
iWidth = %d, iHeight = %d, iSurfaceCreatedEventPublished = %d"),
this, iPicSize.iWidth,iPicSize.iHeight, iSurfaceCreatedEventPublished?1:0);
@@ -1336,7 +1491,12 @@
ReleaseInputQ();
iSessionManager->CancelUpdate();
ReleaseProcessQ();
- iVideoSurfaceObserver->MmvsoRemoveSurface();
+ if(iVideoSurfaceObserver && iSurfaceCreatedEventPublished)
+ {
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvroResourcesLost - Telling client to remove surface"), this);
+ iVideoSurfaceObserver->MmvsoRemoveSurface();
+ iSurfaceCreatedEventPublished = EFalse;
+ }
}
else if(iResourceLost && iRedrawDone)
{
@@ -1382,24 +1542,15 @@
void CNGAPostProcHwDevice::MmvshcRedrawBufferToSurface(TPtrC8& aRedrawBuffer)
{
- PP_DEBUG(_L("CNGAPostProcHwDevice::MmvshcRedrawBufferToSurface ++"), this);
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface ++"), this);
- TSize surfaceSize;
TUint8* lPtr;
TInt offset;
- if(iPicSize.iWidth > iPicSize.iHeight)
- {
- surfaceSize.iWidth = iPicSize.iWidth;
- surfaceSize.iHeight = iPicSize.iWidth;
- }
- else
- {
- surfaceSize.iWidth = iPicSize.iHeight;
- surfaceSize.iHeight = iPicSize.iHeight;
- }
+
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface -- Creating %d x %d surface"), this, iPicSize.iWidth, iPicSize.iHeight);
TInt err = KErrNone;
- SetSurfaceAttributes(surfaceSize, 1);
+ SetSurfaceAttributes(iPicSize, 1);
err = iSurfaceHandler->CreateSurface(iAttributes, iSurfaceId);
if (err != KErrNone)
@@ -1409,6 +1560,36 @@
iProxy->MdvppFatalError(this, err);
return;
}
+
+ err = iSurfaceHandler->SurfaceInfo(iSurfaceId, iInfo);
+ if (err != KErrNone)
+ {
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvshcRedrawBufferToSurface -- failed to get Surface info %d"),
+ this, err);
+ iSurfaceHandler->DestroySurface(iSurfaceId);
+ iSurfaceId = TSurfaceId::CreateNullId();
+ iProxy->MdvppFatalError(this, err);
+ return;
+ }
+
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvshcRedrawBufferToSurface() \
+ surfaceWidth = %d surfaceHeight = %d surfaceStride = %d"), this, iInfo().iSize.iWidth, iInfo().iSize.iHeight, iInfo().iStride);
+
+ TInt redrawBufferSize = aRedrawBuffer.Size();
+ TInt surfaceSize = iInfo().iStride * iInfo().iSize.iHeight;
+
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface RedrawBuffer size= %d Surface size = %d"), this, redrawBufferSize, surfaceSize);
+
+ // Check whether redraw buffer will fit onto the surface.
+ // If this check fails then we won't raise a fatal error - We just won't create the redraw surface
+ if (redrawBufferSize > surfaceSize)
+ {
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface Redraw buffer size larger than surface size"), this);
+ iSurfaceHandler->DestroySurface(iSurfaceId);
+ iSurfaceId = TSurfaceId::CreateNullId();
+ return;
+ }
+
err = iSurfaceHandler->MapSurface(iSurfaceId, iChunk);
if (err != KErrNone)
{
@@ -1419,49 +1600,63 @@
iProxy->MdvppFatalError(this, err);
return;
}
- err = iSurfaceHandler->SurfaceInfo(iSurfaceId, iInfo);
- if (err != KErrNone)
- {
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvshcRedrawBufferToSurface -- failed to get Surface info %d"),
- this, err);
- iSurfaceHandler->DestroySurface(iSurfaceId);
- iSurfaceId = TSurfaceId::CreateNullId();
- iProxy->MdvppFatalError(this, err);
- return;
- }
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvshcRedrawBufferToSurface() \
- surfaceWidth = %d surfaceHeight = %d --"), this, iInfo().iSize.iWidth, iInfo().iSize.iHeight);
if((err = iSurfaceHandler->GetBufferOffset(iSurfaceId, 0, offset)) != KErrNone)
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface offset query failed %d"), this, err);
iSurfaceHandler->DestroySurface(iSurfaceId);
iSurfaceId = TSurfaceId::CreateNullId();
+ iChunk.Close();
iProxy->MdvppFatalError(this, err);
return;
}
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface offset = %d aRedrawBuffer.Size()= %d --"), this, offset, aRedrawBuffer.Size());
-
+
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface offset = %d"), this, offset);
+
lPtr = reinterpret_cast(iChunk.Base() + offset);
- memcpy((TAny *)lPtr, (TAny *)aRedrawBuffer.Ptr(), aRedrawBuffer.Size());
-
+ memcpy((TAny *)lPtr, (TAny *)aRedrawBuffer.Ptr(), redrawBufferSize);
+
+ iRedrawSurfaceInUse = ETrue;
+
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface(): New surface = 0x%x"), this, iSurfaceId);
+
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface error = %d --"), this, err);
}
TInt CNGAPostProcHwDevice::SetupExternalSurface(const TSurfaceId &aSurfaceID)
{
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetupExternalSurface(): aSurfaceID = 0x%x"), this, aSurfaceID );
+
TInt err = KErrNone;
if(!iSurfaceId.IsNull())
{
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetupExternalSurface Cleaning ReDraw Surface"), this);
- iVideoSurfaceObserver->MmvsoRemoveSurface();
+ if (iVideoSurfaceObserver && iSurfaceCreatedEventPublished)
+ {
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetupExternalSurface - Telling client to remove old surface"), this);
+ iVideoSurfaceObserver->MmvsoRemoveSurface();
+ iSurfaceCreatedEventPublished = EFalse;
+ }
+ else
+ {
+ // We never told the client about the surface, so we must destroy it ourselves
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetupExternalSurface - Destroying old surface"), this);
+ TInt numScreens = iWsSession.NumberOfScreens();
+ for(TInt i=0;i < numScreens;i++)
+ {
+ iWsSession.UnregisterSurface(i, iSurfaceId);
+ }
+ iWsSession.Flush();
+ iSurfaceHandler->DestroySurface(iSurfaceId);
+ }
+
+ iChunk.Close();
}
iSurfaceId = aSurfaceID;
iUsingExternalSurface = ETrue;
-
-
+ iRedrawSurfaceInUse = EFalse;
+
// Create the surface handler if it doesn't exist.
if (!iSurfaceHandler)
{
@@ -1652,7 +1847,10 @@
if(!iFirstPictureUpdated)
{
iFirstPictureUpdated = ETrue;
- PublishSurfaceCreated();
+ if(!iSurfaceCreatedEventPublished)
+ {
+ PublishSurfaceCreated();
+ }
}
} // end of postit
break;
@@ -1688,12 +1886,12 @@
TInt64 uPresTime = frame->iTimestamp.Int64();
// Check if this is an out of order frame in case of forward playback
- if((iCurrentPlaybackPosition.Int64() >= uPresTime) && (iPlayRate > 0))
+ if((iCurrentPlaybackPosition.Int64() > uPresTime) && (iPlayRate > 0))
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:IsTimeToPost : Out of order frame (forward playback) Tfm=%d"), this,(TInt)uPresTime);
resp = ESkipIt; //drop
} // Check if this is an out of order frame in case of backward playback
- else if((iCurrentPlaybackPosition.Int64() <= uPresTime) && (iPlayRate < 0))
+ else if((iCurrentPlaybackPosition.Int64() < uPresTime) && (iPlayRate < 0))
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:IsTimeToPost : Out of order frame (backward playback) Tfm=%d"), this,(TInt)uPresTime);
resp = ESkipIt; //drop
@@ -1716,7 +1914,7 @@
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:IsTimeToPost .. Tfm=%d, Tcs=%d, delta=%d"), this, (TInt)uPresTime, (TInt)uSyncTime, (TInt)delta);
}
- PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:IsTimeToPost -- %d"), this, resp);
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:IsTimeToPost -- %d BufID = %d"), this, resp, GetID(frame));
return resp;
}
@@ -1901,7 +2099,13 @@
TInt CNGAPostProcHwDevice::RegisterSurface(const TSurfaceId& aSurfaceId)
{
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:RegisterSurface(): RegisterSurface ID = 0x%x"), this, aSurfaceId);
- return(iWsSession.RegisterSurface(0, aSurfaceId));
+ TInt err = KErrNone;
+ TInt numScreens = iWsSession.NumberOfScreens();
+ for(TInt i=0; (i < numScreens && err == KErrNone); i++)
+ {
+ err = iWsSession.RegisterSurface(i, aSurfaceId);
+ }
+ return(err);
}
TInt CNGAPostProcHwDevice::IsGceReady()
@@ -2047,6 +2251,7 @@
pOutPicture = iColorConversionQ[0];
iColorConversionQ.Remove(0);
ConvertPostProcBuffer(aPicture, pOutPicture);
+ pOutPicture->iTimestamp = aPicture->iTimestamp;
ReleasePicture(aPicture);
}
else
@@ -2131,9 +2336,123 @@
err = iSurfaceHandler->SetSurfaceHint(iSurfaceId,iHint);
}
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:AddHints. err = %d --"), this,err);
+ iHint.iKey.iUid = surfaceHints::KSurfaceContent;
+ iHint.iValue = surfaceHints::EVideoPlayback;
+ iHint.iMutable = ETrue;
+ err = iSurfaceHandler->AddSurfaceHint(iSurfaceId,iHint);
+ if(err == KErrAlreadyExists)
+ {
+ err = KErrNone;
+ err = iSurfaceHandler->SetSurfaceHint(iSurfaceId,iHint);
+ }
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:AddHints. err = %d --"), this,err);
return err;
}
+TInt CNGAPostProcHwDevice::ColorConvert(tBaseVideoFrame* aInputFrame, TUint8* aDestPtr, tWndParam* aInputCropWindow, tWndParam* aOutputCropWindow)
+{
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:ColorConvert ++"), this);
+ __ASSERT_ALWAYS(aDestPtr, User::Invariant());
+ TInt lError = E_SUCCESS;
+ TInt err = KErrNone;
+
+ err = SetSourceFormat();
+ if(err == KErrNone)
+ {
+ err = SetSourceRange();
+ if(err == KErrNone)
+ {
+
+ lError = Emz_VDec_gColorConv_YUVtoRGB(aInputFrame,aDestPtr,
+ aInputCropWindow, aOutputCropWindow, iSourceFormat,
+ EBitmapColor16MU, iSourceRange);
+
+ if(lError)
+ {
+ if(lError == E_OUT_OF_MEMORY)
+ {
+ err = KErrNoMemory;
+ }
+ else if(lError == E_FAILURE)
+ {
+ err = KErrNotSupported;
+ }
+ else
+ {
+ err = KErrGeneral;
+ }
+ }
+ }
+ }
+
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:ColorConvert --"), this);
+ return err;
+}
+
+TInt CNGAPostProcHwDevice::SetSourceFormat()
+{
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetSourceFormatL ++"), this);
+ TInt err = KErrNone;
+ switch (iVideoFormat.iYuvFormat.iPattern)
+ {
+ case EYuv420Chroma1:
+ iSourceFormat = EYuv420Chroma1_Planar;
+ break;
+ case EYuv420Chroma2:
+ iSourceFormat = EYuv420Chroma2_Planar;
+ break;
+ case EYuv420Chroma3:
+ iSourceFormat = EYuv420Chroma3_Planar;
+ break;
+ case EYuv422Chroma1:
+ if( iVideoFormat.iYuvFormat.iDataLayout == EYuvDataInterleavedLE)
+ iSourceFormat = EYuv422Chroma1_LE;
+ else if( iVideoFormat.iYuvFormat.iDataLayout == EYuvDataInterleavedBE )
+ iSourceFormat = EYuv422Chroma1_BE;
+ else
+ err = KErrArgument;
+ break;
+ case EYuv422Chroma2:
+ if( iVideoFormat.iYuvFormat.iDataLayout == EYuvDataInterleavedLE)
+ iSourceFormat = EYuv422Chroma2_LE;
+ else if( iVideoFormat.iYuvFormat.iDataLayout == EYuvDataInterleavedBE )
+ iSourceFormat = EYuv422Chroma2_BE;
+ else
+ err = KErrArgument;
+ break;
+ default:
+ err = KErrNotSupported;
+ }
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetSourceFormatL --"), this);
+ return err;
+}
+
+
+TInt CNGAPostProcHwDevice::SetSourceRange()
+{
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetSourceRangeL ++"), this);
+ TInt err = KErrNone;
+ switch (iVideoFormat.iYuvFormat.iCoefficients)
+ {
+ case EYuvBt601Range0:
+ iSourceRange = EITU601_5_REDUCEDRANGE;
+ break;
+ case EYuvBt601Range1:
+ iSourceRange = EITU601_5_FULLRANGE;
+ break;
+ case EYuvBt709Range0:
+ iSourceRange = EB709_REDUCEDRANGE;
+ break;
+ case EYuvBt709Range1:
+ iSourceRange = EB709_FULLRANGE;
+ break;
+ default:
+ err = KErrNotSupported;
+ }
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetSourceRangeL --"), this);
+ return err;
+}
+
CNGAPostProcTimer::CNGAPostProcTimer( CNGAPostProcHwDevice& aParent )
:CTimer(EPriorityHigh),iParent(aParent)
{
diff -r c36d67f77f75 -r eb1e5d7cc688 mf_developer_build.config.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mf_developer_build.config.xml Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,101 @@
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_info/mm_metadata/mm_metadata.mrp
--- a/mm_info/mm_metadata/mm_metadata.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_info/mm_metadata/mm_metadata.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,19 +1,3 @@
-#
-# 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:
-#
-
component mm_metadata
source \sf\os\mm\mm_info\mm_metadata
source \sf\os\mm\package_definition.xml
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/audio_routing_api/inc/AudioOutput.h
--- a/mm_plat/audio_routing_api/inc/AudioOutput.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/audio_routing_api/inc/AudioOutput.h Fri Jul 09 12:23:13 2010 +0100
@@ -25,7 +25,7 @@
#include
#include
#include
-#include
+#include
// FORWARD DECLARATIONS
class MAudioOutputObserver;
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/audio_routing_proxy_api/inc/AudioInputProxy.h
--- a/mm_plat/audio_routing_proxy_api/inc/AudioInputProxy.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/audio_routing_proxy_api/inc/AudioInputProxy.h Fri Jul 09 12:23:13 2010 +0100
@@ -22,7 +22,7 @@
// INCLUDES
#include "AudioInput.h"
#include
-#include
+#include
// FORWARD DECLARATIONS
class CCustomCommandUtility;
class CCustomInterfaceUtility;
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/audio_routing_proxy_api/inc/AudioOutputProxy.h
--- a/mm_plat/audio_routing_proxy_api/inc/AudioOutputProxy.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/audio_routing_proxy_api/inc/AudioOutputProxy.h Fri Jul 09 12:23:13 2010 +0100
@@ -22,7 +22,7 @@
// INCLUDES
#include "AudioOutput.h"
#include
-#include
+#include
// FORWARD DECLARATIONS
class CCustomCommandUtility;
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/custom_interface_proxy_factory_api/inc/CustomInterfaceProxyFactory.h
--- a/mm_plat/custom_interface_proxy_factory_api/inc/CustomInterfaceProxyFactory.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/custom_interface_proxy_factory_api/inc/CustomInterfaceProxyFactory.h Fri Jul 09 12:23:13 2010 +0100
@@ -19,7 +19,7 @@
#define __CUSTOMINTERFACEPROXYFACTORY_H
#include
-#include
+#include
#include
class CCustomInterfaceProxyFactory
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/custom_interface_utility_api/inc/CustomCommandUtility.h
--- a/mm_plat/custom_interface_utility_api/inc/CustomCommandUtility.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/custom_interface_utility_api/inc/CustomCommandUtility.h Fri Jul 09 12:23:13 2010 +0100
@@ -20,7 +20,7 @@
#define __CUSTOMCOMMANDUTILITY_H
#include
-#include
+#include
//#include "CustomCommandTypes.h"
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/custom_interface_utility_api/inc/CustomInterfaceUtility.h
--- a/mm_plat/custom_interface_utility_api/inc/CustomInterfaceUtility.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/custom_interface_utility_api/inc/CustomInterfaceUtility.h Fri Jul 09 12:23:13 2010 +0100
@@ -19,7 +19,7 @@
#define __CUSTOMINTERFACEUTILITY_H
#include
-#include
+#include
//#include "CustomCommandTypes.h"
#include
class CProxyCustomInterfaceUtility;
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/eaacplusutil_api/eaacplusutil_api.metaxml
--- a/mm_plat/eaacplusutil_api/eaacplusutil_api.metaxml Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/eaacplusutil_api/eaacplusutil_api.metaxml Fri Jul 09 12:23:13 2010 +0100
@@ -1,15 +1,15 @@
-
-
- EAacPlusUtil API
- This API is used by a media component to obtain information about the AAC content present in the buffer.
- c++
- codecs
-
-
-
-
-
- no
- no
-
-
+
+
+ EAacPlusUtil API
+ This API is used by a media component to obtain information about the AAC content present in the buffer.
+ c++
+ codecs
+
+
+
+
+
+ no
+ no
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_plat/frametable_api/frametable_api.metaxml
--- a/mm_plat/frametable_api/frametable_api.metaxml Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_plat/frametable_api/frametable_api.metaxml Fri Jul 09 12:23:13 2010 +0100
@@ -1,15 +1,15 @@
-
-
- Frametable API
- This API media frame position information within the media content to the controllers.
- c++
- codecs
-
-
-
-
-
- no
- no
-
-
+
+
+ Frametable API
+ This API media frame position information within the media content to the controllers.
+ c++
+ codecs
+
+
+
+
+
+ no
+ no
+
+
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/AudioEqualizerBase.h
--- a/mm_pub/audio_effects_api/inc/AudioEqualizerBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/AudioEqualizerBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -24,7 +24,7 @@
#include
#include
#include
-#include
+#include
const TUid KUidAudioEqualizerEffect = {0x1020382A};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/BassBoostBase.h
--- a/mm_pub/audio_effects_api/inc/BassBoostBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/BassBoostBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -24,7 +24,7 @@
#include
#include
#include
-#include
+#include
const TUid KUidBassBoostEffect = {0x10203827};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/DistanceAttenuationBase.h
--- a/mm_pub/audio_effects_api/inc/DistanceAttenuationBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/DistanceAttenuationBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -24,7 +24,7 @@
#include
#include
#include
-#include
+#include
const TUid KUidDistanceAttenuationEffect = {0x1020382C};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/DopplerBase.h
--- a/mm_pub/audio_effects_api/inc/DopplerBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/DopplerBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -25,7 +25,7 @@
#include
#include
#include
-#include
+#include
// CLASS DECLARATION
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/EnvironmentalReverbBase.h
--- a/mm_pub/audio_effects_api/inc/EnvironmentalReverbBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/EnvironmentalReverbBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -24,7 +24,7 @@
#include
#include
#include
-#include
+#include
const TUid KUidEnvironmentalReverbEffect = {0x10203837};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/ListenerDopplerBase.h
--- a/mm_pub/audio_effects_api/inc/ListenerDopplerBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/ListenerDopplerBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#include
#include
-#include
+#include
const TUid KUidListenerDopplerEffect = {0x10207B16};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/ListenerLocationBase.h
--- a/mm_pub/audio_effects_api/inc/ListenerLocationBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/ListenerLocationBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#include
#include
-#include
+#include
const TUid KUidListenerLocationEffect = {0x1020382D};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/ListenerOrientationBase.h
--- a/mm_pub/audio_effects_api/inc/ListenerOrientationBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/ListenerOrientationBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#include
#include
-#include
+#include
const TUid KUidListenerOrientationEffect = {0x1020382E};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/LoudnessBase.h
--- a/mm_pub/audio_effects_api/inc/LoudnessBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/LoudnessBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -24,7 +24,7 @@
#include
#include
#include
-#include
+#include
const TUid KUidLoudnessEffect = {0x10207AA8};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/OrientationBase.h
--- a/mm_pub/audio_effects_api/inc/OrientationBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/OrientationBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -25,7 +25,7 @@
#include
#include
#include
-#include
+#include
// CLASS DECLARATION
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/RoomLevelBase.h
--- a/mm_pub/audio_effects_api/inc/RoomLevelBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/RoomLevelBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -24,7 +24,7 @@
#include
#include
#include
-#include
+#include
const TUid KUidRoomLevelEffect = {0x10207B3C};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/SourceDopplerBase.h
--- a/mm_pub/audio_effects_api/inc/SourceDopplerBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/SourceDopplerBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#include
#include
-#include
+#include
const TUid KUidSourceDopplerEffect = {0x10207B15};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/SourceLocationBase.h
--- a/mm_pub/audio_effects_api/inc/SourceLocationBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/SourceLocationBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#include
#include
-#include
+#include
const TUid KUidSourceLocationEffect = {0x10203835};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/SourceOrientationBase.h
--- a/mm_pub/audio_effects_api/inc/SourceOrientationBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/SourceOrientationBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#include
#include
-#include
+#include
const TUid KUidSourceOrientationEffect = {0x10203834};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_api/inc/StereoWideningBase.h
--- a/mm_pub/audio_effects_api/inc/StereoWideningBase.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_api/inc/StereoWideningBase.h Fri Jul 09 12:23:13 2010 +0100
@@ -24,7 +24,7 @@
#include
#include
#include
-#include
+#include
const TUid KUidStereoWideningEffect = {0x10203836};
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/audio_effects_presets_api/tsrc/EffectPresetsTest/src/EffectPresetTestCore.cpp
--- a/mm_pub/audio_effects_presets_api/tsrc/EffectPresetsTest/src/EffectPresetTestCore.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/audio_effects_presets_api/tsrc/EffectPresetsTest/src/EffectPresetTestCore.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -353,7 +353,7 @@
TUint32 CTestAudioEqualizerUtility::NumberOfPreDefinePresets(TTestResult & aResult)
{
TInt err=KErrNone;
- TUint32 aPredefinedPreset;
+ TUint32 aPredefinedPreset = 0;
TRAP(err, aPredefinedPreset=iAudioEqualizerUtility->NumberOfPreDefinedPresets());
aResult.iResult = err;
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/DRMAudioPlay_core.cpp
--- a/mm_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/DRMAudioPlay_core.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/DRMAudioPlay_core.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -21,7 +21,7 @@
#include
#include
#include
-#include
+#include
#include
using namespace ContentAccess;
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/SimpleSoundPlayer.cpp
--- a/mm_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/SimpleSoundPlayer.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mm_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/SimpleSoundPlayer.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -249,7 +249,7 @@
if (iMetaInfoTest)
{ //No error yet
TInt currMetaDataIndex = 0;
- CMMFMetaDataEntry* currMetaData;
+ CMMFMetaDataEntry* currMetaData = NULL;
for ( currMetaDataIndex=0 ; currMetaDataIndex < NumMetaDatas ; currMetaDataIndex++)
{
currMetaData = iMdaPlayer->GetMetaDataEntryL(currMetaDataIndex);
@@ -783,9 +783,10 @@
return ETrue;
//break;
case KPlayerActionStopPlayUrl:
- CUrlParameters *p = static_cast(aParams);
- OpenUrlL(p->GetUrl() , p->GetIapId() , p->GetMimeType() );
- break;
+ CUrlParameters *p;
+ p = static_cast(aParams);
+ OpenUrlL(p->GetUrl() , p->GetIapId() , p->GetMimeType() );
+ break;
case KPlayerActionStopPlayFileHandler:
Stop();
// OpenFileHandlerL((static_cast(aParams) )->GetFileName() , ETrue);
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/test3gp.dcf
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testamr.dcf
Binary file mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testamr.dcf has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testamrnb.dcf
Binary file mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testamrnb.dcf has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testamrwb.dcf
Binary file mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testamrwb.dcf has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testawb.dcf
Binary file mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testawb.dcf has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testmp3.dcf
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdf/mmpfiles/audio/mdasoundadapter.mmp
--- a/mmdevicefw/mdf/mmpfiles/audio/mdasoundadapter.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdf/mmpfiles/audio/mdasoundadapter.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -19,9 +19,6 @@
UID 0x1000008d 0x102833D6
VENDORID 0x70000001
-//If this macro is enabled, BytesPlayed() uses iBytesPlayed instead of RSoundSc's BytesTransferred()
-MACRO SYMBIAN_SOUNDADAPTER_BYTESPLAYED
-
// Enable this for debug output
//MACRO SYMBIAN_SOUNDADAPTER_DEBUG
@@ -54,7 +51,7 @@
SOURCE mdasoundadapterconsts.cpp
LIBRARY euser.lib
-LIBRARY hal.lib //needed only when SYMBIAN_SOUNDADAPTER_BYTESPLAYED is enabled
+LIBRARY hal.lib
LIBRARY audioutils.lib // for rate converter
DEFFILE mdasoundadapter.def
NOSTRICTDEF
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapter.cpp
--- a/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapter.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapter.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -22,6 +22,17 @@
{
}
+/*
+ @capability MultimediaDD
+
+ This function creates the handle to the sound media driver.
+
+ @param aUnit A unit of the device.
+
+ @return KErrNone on success, otherwise system wide error code.
+
+ @capability MultimediaDD
+*/
EXPORT_C TInt RMdaDevSound::Open(TInt aUnit)
{
TInt err = KErrNone;
@@ -35,7 +46,13 @@
}
return err;
}
-
+
+/*
+ Gets the version object of sound media driver.
+
+@return version object.
+
+*/
EXPORT_C TVersion RMdaDevSound::VersionRequired() const
{
if(iBody)
@@ -45,101 +62,215 @@
return TVersion();
}
+/*
+ Indicates whether the driver is sound media driver.
+
+@return KErrNone on success, otherwise System wide error code.
+
+*/
EXPORT_C TInt RMdaDevSound::IsMdaSound()
{
return iBody->IsMdaSound();
}
+/*
+ This function gets the play volume.
+ The range of volume level supported depends on the physical audio device used.
+
+@return Volume level.
+
+*/
EXPORT_C TInt RMdaDevSound::PlayVolume()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
return iBody->PlayVolume();
}
+/*
+ This function sets the play volume.
+ The volume level depends on the physical audio device used.
+
+@param aVolume Play volume level in the range 0 to 255 inclusive
+@see TSoundFormatsSupported
+
+*/
EXPORT_C void RMdaDevSound::SetPlayVolume(TInt aVolume)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->SetPlayVolume(aVolume);
}
+
+/*
+ This function sets the play volume.
+ The volume level depends on the physical audio device used.
+@param aVolume Play volume level. Logarithmic value.
+@see TSoundFormatsSupported
+
+*/
EXPORT_C void RMdaDevSound::SetVolume(TInt aLogarithmicVolume)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->SetVolume(aLogarithmicVolume);
}
+/*
+ This function cancels the currently playing sound.
+ If paused, the pause will be cancelled.
+ Will panic if not open.
+ Will not cancel Notify*Error().
+*/
EXPORT_C void RMdaDevSound::CancelPlayData()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->CancelPlayData();
}
-
+
+/*
+ Gets the sound record volume.
+ This depends on the physical audio device used.
+@return Record volume level.
+
+*/
EXPORT_C TInt RMdaDevSound::RecordLevel()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
return iBody->RecordLevel();
}
-
+
+/*
+ This function sets the device record volume level.
+ This depends on the physical audio device used.
+@param aLevel Record volume level.
+@see TSoundFormatsSupported
+
+*/
EXPORT_C void RMdaDevSound::SetRecordLevel(TInt aLevel)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->SetRecordLevel(aLevel);
}
-
+
+/*
+ This function cancels the recording in progress.
+ If paused, the pause will be cancelled.
+ Any buffered data will be discarded.
+ Will panic if not open.
+ Will not cancel Notify*Error().
+*/
EXPORT_C void RMdaDevSound::CancelRecordData()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->CancelRecordData();
}
-
+
+/*
+ This function stops recording and completes the outstanding RecordData request immediately with any available data.
+ Any following RecordData calls will be completed immediately returning any buffered data, they will NOT restart recording.
+
+ It maybe called either when recording or stopped.
+
+ The flushing state should be exited by calling CancelRecordData.
+
+ The adaptor implements this functionality via Pause, which results in slightly different behaviour to the old RMdaDevSound driver.
+ In particular the flushing state can also be exited by calling ResumeRecording, do NOT do this... If you want this behaviour, use the
+ new PauseRecording/ResumeRecording functions.
+ */
EXPORT_C void RMdaDevSound::FlushRecordBuffer()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->FlushRecordBuffer();
}
-
+
+/*
+ This function returns the number of bytes played by the driver since calling Open or
+ calling ResetBytesPlayed().
+
+ It is not reset by PlayData or PausePlayBuffer/ResumePlayBuffer
+
+@see RMdaDevSound::ResetBytesPlayed()
+@return Number of bytes played.
+*/
EXPORT_C TInt RMdaDevSound::BytesPlayed()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
return iBody->BytesPlayed();
}
+/*
+ Resets the count of bytes played.
+
+ If called whilst playing, the counter might not reset to exactly zero, it will reset to the number of bytes played in the current
+ internal transfer.
+*/
EXPORT_C void RMdaDevSound::ResetBytesPlayed()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
return iBody->ResetBytesPlayed();
}
-
+
+/*
+ This function changes the audio play state to pause.
+ It is legal to pause whilst not playing, in which case a following (single) PlayData request will be queued until
+ ResumePlaying is called.
+*/
EXPORT_C void RMdaDevSound::PausePlayBuffer()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->PausePlayBuffer();
}
+
+/*
+ This function starts the audio play from pause state.
+ If a PlaData request was active when the Pause was requested it will continue.
+ If a PlayData request was not active when the Pause was requested, but a one was issued whilst paused,
+ it will start.
+ If there is nothing to resume, we will notify KErrUnderflow.
+*/
EXPORT_C void RMdaDevSound::ResumePlaying()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->ResumePlaying();
}
+/*
+ This function is identical to RMdaDevSound::ResumePlaying(), the parameter is ignored.
+*/
EXPORT_C void RMdaDevSound::ResumePlaying(TRequestStatus&)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->ResumePlaying();
}
+/*
+The current record request will be completed early with partial contents and further
+recording paused.
+
+Any following RecordData calls will be completed immediately using any buffered data, it will NOT restart recording.
+
+*/
EXPORT_C void RMdaDevSound::PauseRecordBuffer()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->PauseRecordBuffer();
}
+/*
+ Resume recording.
+ Recorded data will be buffered internally.
+ If an outstanding RecordData request was issued whilst paused it will be processed.
+*/
EXPORT_C void RMdaDevSound::ResumeRecording()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->ResumeRecording();
}
+/*
+ Return the duration of the audio data which has been played.
+ Note that this may be less than the amount of data/time queued.
+*/
EXPORT_C TInt RMdaDevSound::GetTimePlayed(TTimeIntervalMicroSeconds& aTimePlayed)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
@@ -147,37 +278,93 @@
}
-
+/*
+ Gets the play format(capability) supported by this device.
+ This record describes supported sample rate, encoding, volume level, channels, buffer size of the audio for playing.
+
+@param aFormatsSupported A reference to a client supplied TSoundFormatsSupported class to be filled by this function.
+@see TSoundFormatsSupported
+
+*/
EXPORT_C void RMdaDevSound::PlayFormatsSupported(TSoundFormatsSupportedBuf& aFormatsSupported)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->PlayFormatsSupported(aFormatsSupported);
}
-
+
+/*
+ This function gets the current play format.
+
+@param aFormat A reference to a client supplied TCurrentSoundFormat class to be filled by this function.
+@see TCurrentSoundFormat
+
+*/
EXPORT_C void RMdaDevSound::GetPlayFormat(TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->GetPlayFormat(aFormat);
}
-
+
+/*
+ This functions sets the play format.
+
+@param aFormat For the details refer to TCurrentSoundFormat.
+
+@see TCurrentSoundFormat
+
+@return KErrNone on success,
+ KErrInUse if playing,
+ KErrAccessDenied if play and recording sample rate is different,
+ KErrNotSupported if input sound format does not match with supported capability,
+ otherwise system wide error code.
+
+*/
EXPORT_C TInt RMdaDevSound::SetPlayFormat(const TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
return iBody->SetPlayFormat(aFormat);
}
+/*
+ Gets the sound record format.
+ This record describes supported sample rate, encoding, volume level, buffer size of the audio for recording.
+ This depends on the physical device used.
+
+@param aFormatsSupported A reference to a client supplied TSoundFormatsSupported class to be filled by this function.
+@see TSoundFormatsSupported
+
+*/
EXPORT_C void RMdaDevSound::RecordFormatsSupported(TSoundFormatsSupportedBuf& aFormatsSupported)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->RecordFormatsSupported(aFormatsSupported);
}
+/*
+ Gets a current sound format used for recording.
+
+@param aFormat A reference to a client supplied TCurrentSoundFormat class to be filled by this function.
+@see TCurrentSoundFormat
+
+*/
EXPORT_C void RMdaDevSound::GetRecordFormat(TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->GetRecordFormat(aFormat);
}
+/*
+ Call this function to change the sound format used for recording.
+
+@param aFormat For details refer to TCurrentSoundFormat.
+@see TCurrentSoundFormat
+
+@return KErrNone on sucess,
+ KErrInUse if recording already in progress,
+ KErrAccessDenied play and record sample rates are different,
+ otherwise system wide error code.
+
+*/
EXPORT_C TInt RMdaDevSound::SetRecordFormat(const TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
@@ -203,42 +390,94 @@
return 0;
}
+/*
+ Call this function to play the audio data in the supplied descriptor.
+
+Only a single request may be outstanding at any point in time.
+
+If paused, the request will be queued until ResumePlaying is called.
+
+@param aStatus For details refer to TRequestStatus.
+@see TRequestStatus
+
+@param aData Descriptor with play data
+
+*/
EXPORT_C void RMdaDevSound::PlayData(TRequestStatus& aStatus, const TDesC8& aData)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->PlayData(aStatus, aData);
}
+/*
+ Records audio data into the supplied descriptor.
+
+Only a single request may be outstanding at any point in time.
+
+If paused, the request will be queued until ResumeRecording is called.
+
+@param aStatus Request status
+@see TRequestStatus
+
+@param aData Record buffer descriptor.
+
+*/
EXPORT_C void RMdaDevSound::RecordData(TRequestStatus& aStatus, TDes8& aData)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->RecordData(aStatus, aData);
}
+/*
+ Call this function to notify any error encountered while recording audio.
+
+@param aStatus request object's completion code value
+@see TRequestStatus
+
+*/
EXPORT_C void RMdaDevSound::NotifyRecordError(TRequestStatus& aStatus)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->NotifyRecordError(aStatus);
}
+/*
+ Call this function to notify the play error encountered while playing the sound.
+
+@param aStatus Error code stating the cause for the play error.
+
+*/
EXPORT_C void RMdaDevSound::NotifyPlayError(TRequestStatus& aStatus)
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->NotifyPlayError(aStatus);
}
+/*
+ This function cancels the play notification error.
+
+*/
EXPORT_C void RMdaDevSound::CancelNotifyPlayError()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->CancelNotifyPlayError();
}
+/*
+ This function cancels the recording error notification.
+*/
EXPORT_C void RMdaDevSound::CancelNotifyRecordError()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
iBody->CancelNotifyRecordError();
}
+/*
+This function cancels the currently playing sound.
+If paused, the pause will be cancelled.
+
+ This function is identical to CancelPlayData
+*/
EXPORT_C void RMdaDevSound::FlushPlayBuffer()
{
__ASSERT_DEBUG(iBody != NULL, Panic(EDeviceNotOpened));
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapter.h
--- a/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapter.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapter.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,7 @@
#define MDADEVSOUNDNAME _L8("RMdaDevSound")
-/**
+/*
Adapter class which routes the calls on RMdaDevSound(old sound driver interface) to RSoundSc(new sound driver interface).
The purpose of this class is to use the new sound driver in MDF without changing the calling code. This class
does not support any new functionalities supported by the shared chunk sound driver but supports the functionality of the
@@ -33,165 +33,165 @@
{
class CBody;
public:
- /**
+ /*
enum for major, minor and build version of sound device driver.
*/
enum TVer {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=KE32BuildVersionNumber};
- /**
+ /*
enum for sound media device play/record request.
*/
enum TMdaRequest
{
- /** Play data request */
+ /* Play data request */
EMdaRequestPlayData,
- /** Play error notification */
+ /* Play error notification */
EMdaRequestPlayErrorNotification,
- /** Record data request */
+ /* Record data request */
EMdaRequestRecordData,
- /** Record error notification */
+ /* Record error notification */
EMdaRequestRecordErrorNotification
};
- /** enum for media device control request */
+ /* enum for media device control request */
enum TMdaControl
{
- /** play format (capability) supported request */
+ /* play format (capability) supported request */
EMdaControlPlayFormatsSupported,
- /** get the current play format request */
+ /* get the current play format request */
EMdaControlGetPlayFormat,
- /** set the play format request */
+ /* set the play format request */
EMdaControlSetPlayFormat,
- /** get play volume request */
+ /* get play volume request */
EMdaControlGetPlayVolume,
- /** set play volume request */
+ /* set play volume request */
EMdaControlSetPlayVolume,
- /** record format supported request */
+ /* record format supported request */
EMdaControlRecordFormatsSupported,
- /** get the current record format request */
+ /* get the current record format request */
EMdaControlGetRecordFormat,
- /** set record format request */
+ /* set record format request */
EMdaControlSetRecordFormat,
- /** get record volume request */
+ /* get record volume request */
EMdaControlGetRecordLevel,
- /** set record volume request */
+ /* set record volume request */
EMdaControlSetRecordLevel,
- /** stop play request */
+ /* stop play request */
EMdaControlFlushPlayBuffer,
- /** stop record request */
+ /* stop record request */
EMdaControlFlushRecordBuffer,
- /** bytes played request */
+ /* bytes played request */
EMdaControlBytesPlayed,
- /** set base value for the bytes played */
+ /* set base value for the bytes played */
EMdaControlResetBytesPlayed,
- /** Investigate for sound media driver request */
+ /* Investigate for sound media driver request */
EMdaControlIsMdaSound,
- /** pause play request */
+ /* pause play request */
EMdaControlPausePlayBuffer,
- /** resume play request */
+ /* resume play request */
EMdaControlResumePlaying
};
- /**
+ /*
This enum corresponds to supported sound encoding schemes
*/
enum TMdaSoundEncoding
{
- /** sound encoding(compression) using 8 bit PCM (pulse code modulation) */
+ /* sound encoding(compression) using 8 bit PCM (pulse code modulation) */
EMdaSoundEncoding8BitPCM = 0x00000001,
- /** sound encoding using 16 bit PCM */
+ /* sound encoding using 16 bit PCM */
EMdaSoundEncoding16BitPCM = 0x00000002,
- /** sound encoding using 8 bit A law */
+ /* sound encoding using 8 bit A law */
EMdaSoundEncoding8BitALaw = 0x00000004,
- /** sound encoding using 8 bit Mu law */
+ /* sound encoding using 8 bit Mu law */
EMdaSoundEncoding8BitMuLaw = 0x00000008,
};
- /**
+ /*
This class corresponds to a supported sound format.
The format describes the supported audio device's min/max sampling rate, encoding, channels and buffer size of play/record and volume.
*/
class TSoundFormatsSupported
{
public:
- /**
+ /*
This corresponds to minimum sample rate supported. This depends on the physical sound device used(example: 8000 hertz).
*/
TInt iMinRate;
- /**
+ /*
This corresponds to maximum sample rate supported. This depends on the physical sound device used(example: 48000 hertz).
*/
TInt iMaxRate;
- /**
+ /*
This corresponds to encoding format supported.
@see TMdaSoundEncoding
*/
TUint32 iEncodings;
- /**
+ /*
This corresponds to the number of sound channels supported. Possible values are EMono for a single channel and EStereo for two channel sound.
Also this depends on the physical device used.
*/
TInt iChannels;
- /**
+ /*
This corresponds to minimum buffer size. This depends on the physical device used and sampling rate adapted.
@see KSoundMinBufferSize
*/
TInt iMinBufferSize;
- /**
+ /*
This corresponds to maximum buffer size.This depends on the physical device used and sampling rate adapted.
@see KSoundPlayBufferSize
@see KSoundRecordBufferSize
*/
TInt iMaxBufferSize;
- /**
+ /*
This corresponds to minimum play/record volume.
*/
TInt iMinVolume;
- /**
+ /*
This corresponds to maximum play/record volume.
*/
TInt iMaxVolume;
};
- /** A typedef'd packaged RMdaDevSound::TSoundFormatsSupported for passing through a generic API method */
+ /* A typedef'd packaged RMdaDevSound::TSoundFormatsSupported for passing through a generic API method */
typedef TPckgBuf TSoundFormatsSupportedBuf;
- /**
+ /*
This class corresponds to current supported sound format.
The format describes the supported audio device's sampling rate, encoding, channels and buffer size of play/record.
*/
class TCurrentSoundFormat
{
public:
- /**
+ /*
This corresponds to sound sampling rate like (44000 Hertz, 8000 Hertz). The possible values depends on the physical device used.
*/
TInt iRate;
- /**
+ /*
@see TMdaSoundEncoding
*/
TMdaSoundEncoding iEncoding;
- /**
+ /*
This corresponds to the number of sound channels supported. Possible values are EMono for a single channel and EStereo for two channel sound.
Also this depends on the physical device used.
*/
TInt iChannels;
- /**
+ /*
Play or Record buffer size. The possible value depends on the physical device used.
*/
TInt iBufferSize;
};
- /** A typedef'd packaged RMdaDevSound::TCurrentSoundFormat for passing through a generic API method */
+ /* A typedef'd packaged RMdaDevSound::TCurrentSoundFormat for passing through a generic API method */
typedef TPckgBuf TCurrentSoundFormatBuf;
public:
IMPORT_C RMdaDevSound();
@@ -202,7 +202,9 @@
IMPORT_C void GetPlayFormat(TCurrentSoundFormatBuf& aFormat);
IMPORT_C TInt SetPlayFormat(const TCurrentSoundFormatBuf& aFormat);
IMPORT_C TInt PlayVolume();
- IMPORT_C void SetPlayVolume(TInt aVolume);
+ // This function mimics RMdaDevSound interface with linear volume semantics
+ IMPORT_C void SetPlayVolume(TInt aLinearVolume);
+ // This function supports volume change with logarithmic semantics
IMPORT_C void SetVolume(TInt aLogarithmicVolume);
IMPORT_C void PlayData(TRequestStatus& aStatus,const TDesC8& aData);
IMPORT_C void CancelPlayData();
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapterbody.cpp
--- a/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapterbody.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapterbody.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -18,9 +18,7 @@
#include "mmf/utils/rateconvert.h" // if we need to resample
-#ifdef SYMBIAN_SOUNDADAPTER_BYTESPLAYED
- #include
-#endif
+#include
_LIT(KPddFileName,"SOUNDSC.PDD");
_LIT(KLddFileName,"ESOUNDSC.LDD");
@@ -37,7 +35,43 @@
{
User::Panic(KSoundAdapterPanicCategory, aPanicCode);
}
+
+
+const TText8 *RMdaDevSound::CBody::TState::Name() const
+ {
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ switch(iState)
+ {
+ case ENotReady: return _S8("ENotReady");
+ case EStopped: return _S8("EStopped");
+ case ERecording: return _S8("ERecording");
+ case ERecordingPausedInHw: return _S8("ERecordingPausedInHw");
+ case ERecordingPausedInSw: return _S8("ERecordingPausedInSw");
+ case EPlaying: return _S8("EPlaying");
+ case EPlayingPausedInHw: return _S8("EPlayingPausedInHw");
+ case EPlayingPausedInSw: return _S8("EPlayingPausedInSw");
+ case EPlayingUnderrun: return _S8("EPlayingUnderrun");
+ }
+ return _S8("CorruptState");
+ #else
+ return _S8("");
+ #endif
+ }
+
+
+RMdaDevSound::CBody::TState &RMdaDevSound::CBody::TState::operator=(TStateEnum aNewState)
+ {
+ if(iState != aNewState)
+ {
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound state %s -> %s", Name(), TState(aNewState).Name());
+ #endif
+ iState = aNewState;
+ }
+ return *this;
+ }
+
RMdaDevSound::CBody* RMdaDevSound::CBody::NewL()
{
CBody* self = new(ELeave) CBody();
@@ -49,21 +83,26 @@
RMdaDevSound::CBody::~CBody()
{
- for(TInt i = 0; i < KNumPlayers; i++)
+ for(TInt i = 0; i < KPlaySharedChunkBuffers; i++)
{
delete iPlayers[i];
iPlayers[i] = NULL;
}
- iBufferRemaining.Close();
- delete iPlayData.iConverter;
- delete iRecordData.iConverter;
- iChunk.Close();
+ delete iRecorder;
+ iRecorder = NULL;
+ delete iPlayFormatData.iConverter;
+ delete iRecordFormatData.iConverter;
+ iPlayChunk.Close();
iPlaySoundDevice.Close();
+ iRecordChunk.Close();
iRecordSoundDevice.Close();
+ iConvertedPlayData.Close();
+ iSavedTrailingData.Close();
+ iBufferedRecordData.Close();
}
RMdaDevSound::CBody::CBody()
- :iState(ENotReady), iBufferIndex(-1), iBufferOffset(-1), iSecondPhaseData(0,0)
+ :iState(ENotReady), iBufferOffset(-1)
{
}
@@ -99,13 +138,17 @@
{
User::Leave(err);
}
- for(TInt i=0; iCancel();
+ }
+
+ iBufferOffset = -1;
+ iBufferLength = 0;
+
+ return;
}
TInt RMdaDevSound::CBody::RecordLevel()
@@ -184,64 +294,135 @@
{
__ASSERT_DEBUG(iRecordSoundDevice.Handle(), Panic(EDeviceNotOpened));
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CancelRecordData:"));
+ RDebug::Printf("RMdaDevSound::CBody::CancelRecordData: state %s", iState.Name());
#endif
- iRecordSoundDevice.CancelRecordData();
- SoundDeviceError(KErrNone);
+
+ // Stop recorder object (and its request)
+ iRecorder->Cancel();
+
+ // Stop driver from recording
+ iRecordSoundDevice.CancelRecordData();
+
+ // If there is a client request, cancel it
+ if(iClientRecordStatus)
+ {
+ User::RequestComplete(iClientRecordStatus, KErrNone); // Call also sets iClientPlayStatus to NULL
+ }
+
+ iState = EStopped;
+ return;
}
void RMdaDevSound::CBody::FlushRecordBuffer()
{
__ASSERT_DEBUG(iRecordSoundDevice.Handle(), Panic(EDeviceNotOpened));
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::FlushRecordBuffer"));
+ RDebug::Print(_L("RMdaDevSound::CBody::FlushRecordBuffer - implemented by calling PauseRecordBuffer"));
#endif
-
- if(iState == ERecording)
- {
- iRecordSoundDevice.Pause();//this is equivalent call in the new sound driver
- }
+
+ PauseRecordBuffer();
}
TInt RMdaDevSound::CBody::BytesPlayed()
{
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::BytesPlayed %s", iState.Name());
+ #endif
+
+ return I64LOW(BytesPlayed64());
+ }
+
+
+TUint64 RMdaDevSound::CBody::BytesPlayed64()
+ {
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- TInt currentBytesPlayed = 0;
-#ifdef SYMBIAN_SOUNDADAPTER_BYTESPLAYED
- if(iTimerActive)
+
+ TUint64 currentBytesPlayed = KMaxTUint64;
+
+ switch(iState)
+ {
+ case ENotReady:
+ Panic(EDeviceNotOpened);
+ break;
+
+ case EStopped:
+ currentBytesPlayed = iBytesPlayed;
+ break;
+
+ case ERecording:
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ Panic(EBadState);
+ break;
+
+ case EPlayingPausedInHw: // ie. Play request pending on h/w and paused
+ // Paused, so use pause time
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("EPlayingPausedInHw: iPausedBytes %x %x", I64HIGH(iPausedBytesPlayed), I64LOW(iPausedBytesPlayed));
+ #endif
+ currentBytesPlayed = iPausedBytesPlayed;
+ break;
+
+ case EPlayingPausedInSw: // ie. Driver not playing or paused
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("EPlayingPausedInSw: iPausedBytesPlayed %x %x", I64HIGH(iPausedBytesPlayed), I64LOW(iPausedBytesPlayed));
+ #endif
+ currentBytesPlayed = iPausedBytesPlayed;
+ break;
+ case EPlayingUnderrun:
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("EPlayingUnderrun: iBytesPlayed %x %x", I64HIGH(iBytesPlayed), I64LOW(iBytesPlayed));
+ #endif
+ currentBytesPlayed = iBytesPlayed;
+ break;
+
+ case EPlaying:
{
- TUint32 endTime = User::FastCounter();
- TUint timePlayed = 0;
- if(endTime= iStartTime) ? (curTime-iStartTime) : (KMaxTUint32 - (iStartTime-curTime));
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("iStartTime %d curTime %d extraPlayTime %d", iStartTime, curTime, extraPlayTime);
+
+ RDebug::Printf("iPlayFormatData.iSampleRate %d KBytesPerSample %d iNTickPeriodInUsec %d",
+ iPlayFormatData.iSampleRate, KBytesPerSample, iNTickPeriodInUsec);
+ #endif
+ TUint32 extraBytesPlayed = TUint32((TUint64(extraPlayTime) * iPlayFormatData.iSampleRate * iPlayFormatData.iRequestedChannels * KBytesPerSample)/1000);
+ if(extraBytesPlayed > curRequestSize)
{
- timePlayed = endTime-iStartTime;
- }
- TUint64 bytesPlayed = iPlayData.iSampleRate*KBytesPerSample; //A TUint64 is used because during the multiplying segment of the calculation we regularly overflow what a TUint32 can handle
- bytesPlayed = (bytesPlayed * timePlayed)/iFCFrequency; //The division brings it back into TUint32 territory, however. We cannot do this before the multiplication without risking significant loss of accuracy
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("caping extraBytes played from %d to %d", extraBytesPlayed, curRequestSize);
+ #endif
+ extraBytesPlayed = curRequestSize;
+ }
- currentBytesPlayed = iBytesPlayed+I64LOW(bytesPlayed);
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("EstimatedBytesPlayed[%d] Driver's bytesPlayed[%d]", currentBytesPlayed, iBytesPlayed);
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("iBytesPlayed %d extraBytesPlayed %d (curRequestSize %d) -> currentBytesPlayed %x %x",
+ iBytesPlayed, extraBytesPlayed, curRequestSize, I64HIGH(currentBytesPlayed), I64LOW(currentBytesPlayed));
#endif
+
+ currentBytesPlayed = iBytesPlayed + extraBytesPlayed;
+ break;
}
- else
- {
- currentBytesPlayed = iPlaySoundDevice.BytesTransferred();
- }
-#else
- currentBytesPlayed = iPlaySoundDevice.BytesTransferred();
-#endif
- if (iPlayData.iConverter)
+ default:
+ Panic(EBadState);
+ break;
+ }
+
+
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("iPlayFormatData.iConverter %x", iPlayFormatData.iConverter);
+ #endif
+
+ if (iPlayFormatData.iConverter)
{
// need to scale bytes played to fit with requested rate and channels, not actual
- if (iPlayData.iActualChannels != iPlayData.iRequestedChannels)
+ if (iPlayFormatData.iActualChannels != iPlayFormatData.iRequestedChannels)
{
- if (iPlayData.iActualChannels == 2)
+ if (iPlayFormatData.iActualChannels == 2)
{
// requested was mono, we have stereo
currentBytesPlayed /= 2;
@@ -252,99 +433,307 @@
currentBytesPlayed *= 2;
}
}
- if (iPlayData.iSampleRate != iPlayData.iActualRate)
+ if (iPlayFormatData.iSampleRate != iPlayFormatData.iActualRate)
{
- currentBytesPlayed = TInt(currentBytesPlayed*
- TReal(iPlayData.iSampleRate)/TReal(iPlayData.iActualRate)); // don't round
+ currentBytesPlayed = TUint64(currentBytesPlayed*
+ TReal(iPlayFormatData.iSampleRate)/TReal(iPlayFormatData.iActualRate)); // don't round
}
}
+
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("currentBytesPlayed %x %x", I64HIGH(currentBytesPlayed), I64LOW(currentBytesPlayed));
+ #endif
return currentBytesPlayed;
}
void RMdaDevSound::CBody::ResetBytesPlayed()
{
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::ResetBytesPlayed %s", iState.Name());
+ #endif
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- return iPlaySoundDevice.ResetBytesTransferred();
+ iBytesPlayed = 0;
+ iPlaySoundDevice.ResetBytesTransferred();
+ return;
}
void RMdaDevSound::CBody::PausePlayBuffer()
{
- if (iState == EPlaying)
+#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::PausePlayBuffer %s", iState.Name());
+#endif
+ switch(iState)
{
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::PausePlayBuffer() offset = %d length = %d"), iBufferOffset, iBufferLength);
- #endif
- __ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- // If iPlayerStatus is NULL, we're not playing currently any data, and the device driver won't pause properly. In this case,
- // we set a reminder to ourselves to pause the driver once we have data later
- if (iPlayerStatus == NULL)
+ case ENotReady:
+ Panic(EDeviceNotOpened);
+ break;
+
+ case EStopped:
+ // Driver is not playing so pause in s/w
+ break;
+
+ case ERecording:
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ Panic(EBadState);
+ break;
+
+ case EPlayingPausedInHw: // ie. Play request pending on h/w and paused
+ case EPlayingPausedInSw: // ie. Driver not playing or paused
+ // Already paused so nothing to do.
+ break;
+ case EPlayingUnderrun:
+ iState = EPlayingPausedInSw;
+ break;
+
+ case EPlaying:
{
- iPauseDeviceDriverOnNewData = ETrue;
- }
- else
- {
+ iPauseTime = CurrentTimeInMsec();
+ iPausedBytesPlayed = BytesPlayed64();
TInt res = iPlaySoundDevice.Pause();
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("iPlaySoundDevice.Pause res = %d", res);
+ RDebug::Printf("iPlaySoundDevice.Pause res = %d", res);
#endif
- (void)res;
+ if(res == KErrNone)
+ {
+ iState = EPlayingPausedInHw;
+ }
+ else
+ {
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("msp PausePlayBuffer hw pause unexpectedly failed, doing sw pause");
+ #endif
+ iState = EPlayingPausedInSw;
+ }
+ break;
}
- iState = EPaused;
- iTimerActive = EFalse;
- }
+
+ default:
+ Panic(EBadState);
+ break;
+ }
+
+ return;
}
void RMdaDevSound::CBody::ResumePlaying()
{
- __ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- iPauseDeviceDriverOnNewData = EFalse;
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("RMdaDevSound::CBody::ResumePlaying");
+ RDebug::Printf("RMdaDevSound::CBody::ResumePlaying %s", iState.Name());
#endif
- if (iFlushCalledDuringPause)
+ __ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
+
+ switch(iState)
{
- // if we resume having called flush, we can't just keep going as the driver does not work
- // that way. Instead we cancel so that buffer play completes and a new buffer will be passed
- iFlushCalledDuringPause = EFalse;
- PlayCancelled();
+ case ENotReady:
+ Panic(EDeviceNotOpened);
+ break;
+
+ case EStopped:
+ // No change
+ break;
+
+ case ERecording:
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ Panic(EBadState);
+ break;
+
+ case EPlaying:
+ // No change
+ break;
+
+ case EPlayingPausedInHw: // ie. Play request pending on h/w and paused
+ {
+ // Re-enable reporting of KErrUnderflow (will re-raise KErrUnderflow if nothing to start playing).
+ iUnderFlowReportedSinceLastPlayOrRecordRequest = EFalse;
+
+ TInt res = iPlaySoundDevice.Resume();
+#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("ResumePlayBuffer EPlayingPausedInHw res = %d", res);
+#endif
+ if(res == KErrNone)
+ {
+ // Resume ok so a pending request will complete
+ iState = EPlaying;
+ // Update iStartTime to allow for time spent paused
+ TUint32 curTime = CurrentTimeInMsec();
+ TUint32 timePaused = (curTime >= iPauseTime) ? (curTime-iPauseTime) : (KMaxTUint32 - (iPauseTime-curTime));
+ iStartTime += timePaused; // nb. It is harmless if this wraps.
+ }
+ else
+ {
+ // Resume failed, therefore driver is not playing
+ // No need to update iStartTime/iPauseTime because these are only used within a driver request
+ // Change state to Stopped
+ iState = EStopped;
+ // Attempt to start a new (pending) request.
+ StartPlayersAndUpdateState();
+ }
+ break;
+ }
+ case EPlayingPausedInSw: // ie. Driver not playing/paused
+ {
+ // Driver not playing
+ // Re-enable reporting of KErrUnderflow (will re-raise KErrUnderflow if nothing to start playing).
+ iUnderFlowReportedSinceLastPlayOrRecordRequest = EFalse;
+ // No need to update iStartTime/iPauseTime because these are only used within a driver request
+ // Change state to Stopped
+ iState = EStopped;
+ // Attempt to start a new (pending) request.
+ StartPlayersAndUpdateState();
+ break;
+ }
+ case EPlayingUnderrun:
+ break;
+
+ default:
+ Panic(EBadState);
+ break;
}
- else
- {
- iState = EPlaying;
- iPlaySoundDevice.Resume();
- }
+
+ return;
}
void RMdaDevSound::CBody::PauseRecordBuffer()
{
- if(iState == ERecording)
- {
- __ASSERT_DEBUG(iRecordSoundDevice.Handle(), Panic(EDeviceNotOpened));
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("RMdaDevSound::CBody::PauseRecordBuffer");
- #endif
- iRecordSoundDevice.Pause();
- }
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::PauseRecordBuffer %s", iState.Name());
+ #endif
+
+ switch(iState)
+ {
+ case ENotReady:
+ Panic(EDeviceNotOpened);
+ break;
+
+ case EStopped:
+ // Driver is not recording so pause in s/w
+ // Do not pause because that will cause problems when CAudioDevice::Pause calls
+ break;
+
+ case ERecording:
+ {
+ TInt res = iRecordSoundDevice.Pause();
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("PauseRecordBuffer EPlaying res = %d", res);
+ #endif
+ if(res == KErrNone)
+ {
+ iState = ERecordingPausedInHw;
+ }
+ else
+ {
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("PauseRecordBuffer hw pause unexpectedly failed, doing sw pause");
+ #endif
+ iState = ERecordingPausedInSw;
+ }
+ break;
+ }
+
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ // Already paused so nothing to do.
+ break;
+
+ case EPlaying:
+ case EPlayingPausedInHw: // ie. Play request pending on h/w and paused
+ Panic(EBadState);
+ break;
+
+ case EPlayingPausedInSw:
+ // This is an ugly hack to maintain compatibility with CAudioDevice::Pause which
+ // calls both PausePlayBuffer and PauseRecordBuffer whilst in stopped, then later calls ResumePlaying
+ break;
+ case EPlayingUnderrun: // ie. Play request pending on h/w and paused
+ Panic(EBadState);
+ break;
+
+ default:
+ Panic(EBadState);
+ break;
+ }
+
+ return;
}
void RMdaDevSound::CBody::ResumeRecording()
{
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::ResumeRecording %s", iState.Name());
+ #endif
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- iRecordSoundDevice.Resume();
+
+ switch(iState)
+ {
+ case ENotReady:
+ Panic(EDeviceNotOpened);
+ break;
+
+ case EStopped:
+ // No change
+ break;
+
+ case ERecording:
+ // No change
+ break;
+
+ case ERecordingPausedInHw:
+ {
+ TInt res = iRecordSoundDevice.Resume();
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("ResumeRecordBuffer ERecordingPausedInHw res = %d", res);
+ #endif
+ if(res == KErrNone)
+ {
+ // Resume ok so a pending request will complete
+ iState = ERecording;
+ }
+ else
+ {
+ iState = EStopped;
+ // Resume failed, so attempt to start a new (pending) request.
+ // If this works, it will update the state to ERecording.
+ StartRecordRequest();
+ }
+ break;
+ }
+ case ERecordingPausedInSw:
+ {
+ // Update state to stopped and attempt to start any pending request
+ iState = EStopped;
+ // If this works, it will update the state to ERecording.
+ StartRecordRequest();
+ break;
+ }
+
+ case EPlaying:
+ case EPlayingPausedInHw: // ie. Play request pending on h/w and paused
+ case EPlayingPausedInSw: // ie. Driver not playing/paused
+ case EPlayingUnderrun:
+ default:
+ Panic(EBadState);
+ break;
+ }
+
+ return;
+
+
}
TInt RMdaDevSound::CBody::GetTimePlayed(TTimeIntervalMicroSeconds& aTimePlayed)
{
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- TTimeIntervalMicroSecondsBuf aTimePlayedBuf;
- TInt err;
- err = iPlaySoundDevice.TimePlayed(aTimePlayedBuf);
- if (err == KErrNone)
- {
- aTimePlayed = aTimePlayedBuf();
- }
+
+
+ TUint64 bytesPlayed = BytesPlayed64();
- return err;
+ TUint64 timePlayed = 1000 * 1000 * bytesPlayed / (iPlayFormatData.iSampleRate * iPlayFormatData.iRequestedChannels * KBytesPerSample);
+
+ aTimePlayed = TTimeIntervalMicroSeconds(timePlayed);
+
+ return KErrNone;
}
@@ -405,6 +794,138 @@
aFormat().iRate = aFormatData.iSampleRate;
}
+void RMdaDevSound::CBody::StartPlayersAndUpdateState()
+ {
+ __ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
+
+ switch(iState)
+ {
+ case ENotReady:
+ Panic(EDeviceNotOpened);
+ break;
+
+ case EStopped:
+ // Allow following code to queue more driver play requests and check for stopped
+ break;
+
+ case ERecording:
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ Panic(EBadState);
+ break;
+
+ case EPlaying:
+ // Allow following code to queue more driver play requests and check for stopped
+ break;
+ case EPlayingPausedInHw: // ie. Play request pending on h/w and paused
+ // Allow following code to queue more driver play requests
+ break;
+
+ case EPlayingPausedInSw:
+ // Paused but driver not playing+paused, therefore do not queue new requests until ResumePlaying
+ return;
+ case EPlayingUnderrun:
+ break;
+
+ default:
+ Panic(EBadState);
+ break;
+ }
+
+ // iState is now either EStopped, EPlaying or EPlayingPausedInHw
+ __ASSERT_DEBUG(((iState == EStopped) || (iState == EPlaying) || (iState == EPlayingPausedInHw) || (iState == EPlayingUnderrun)), Panic(EBadState));
+
+ while( (iClientPlayData.Length() != 0) && (! iFreePlayers.IsEmpty()))
+ {
+ // More data to play and more players, so issue another request
+
+ bool wasIdle = iFreePlayers.IsFull();
+ // Get a free player
+ CPlayer *player = iFreePlayers.Pop();
+ // Calculate length of request
+ TUint32 lengthToPlay = iClientPlayData.Length();
+ if(lengthToPlay > iDeviceBufferLength)
+ {
+ lengthToPlay = iDeviceBufferLength;
+ }
+
+ // Remember request length, so we can update bytes played when it finishes
+ iActivePlayRequestSizes.Push(lengthToPlay);
+
+ // Find offset to copy data to
+ TUint playerIndex = player->GetPlayerIndex();
+ ASSERT(playerIndex < KPlaySharedChunkBuffers);
+ TUint chunkOffset = iPlayBufferConfig.iBufferOffsetList[playerIndex];
+
+ // Copy data
+ TPtr8 destPtr(iPlayChunk.Base()+ chunkOffset, 0, iDeviceBufferLength);
+ destPtr.Copy(iClientPlayData.Mid(0, lengthToPlay));
+
+ // Update iClientPlayData to remove the data just queued
+ iClientPlayData.Set(iClientPlayData.Right(iClientPlayData.Length()-lengthToPlay));
+
+ // Start the CPlayer
+ player->PlayData(chunkOffset, lengthToPlay);
+ if(wasIdle)
+ {
+ iState = EPlaying;
+ iStartTime = CurrentTimeInMsec();
+
+ }
+
+ }
+
+ // Check if the client request is now complete
+ if(iClientPlayData.Length() == 0 && iClientPlayStatus)
+ {
+ // We have queued all the client play data to the driver so we can now complete the client request.
+ // If actual playback fails, we will notify the client via the Play Error notification mechanism.
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::StartPlayersAndUpdateState completing client request");
+ #endif
+ User::RequestComplete(iClientPlayStatus, KErrNone); // This call also sets iClientPlayStatus to NULL
+ }
+
+ //nb. iState is now either EStopped, EPlaying or EPlayingPausedInHw (see previous switch and assert)
+ if(iState != EPlayingPausedInHw)
+ {
+ if(iFreePlayers.IsFull())
+ {
+ // Free fifo is full, therefore there are no active players
+ iState = EPlayingUnderrun;
+ if(! iUnderFlowReportedSinceLastPlayOrRecordRequest)
+ {
+ // We report KErrUnderflow if we have not already reported it since the last PlayData call.
+ // Note that
+ // i) We do NOT report driver underflows.
+ // ii) We report underflow when we run out of data to pass to the driver.
+ // iii) We throttle this reporting
+ // iv) We WILL report KErrUnderflow if already stopped and asked to play a zero length buffer
+ // The last point is required because the client maps a manual stop command into a devsound play with a
+ // zero length buffer and the last buffer flag set, this in turn is mapped to a Playdata calll with an empty buffer
+ // which is expected to complete ok and cause a KErrUnderflow error to be reported...
+ iUnderFlowReportedSinceLastPlayOrRecordRequest = ETrue;
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::StartPlayersAndUpdateState stopped and iUnderFlowReportedSinceLastPlayOrRecordRequest false so raising KErrUnderflow");
+ #endif
+
+ // Discard any saved trailing data (ie. data saved due driver requiring all requests to be a multiple of iRequestMinSize).
+ // This maybe because client is delibrately letting us underflow to play silence. In that case we do not want to
+ // play the trailing data at the beginning of the new data issued after the silence...
+ iSavedTrailingData.SetLength(0);
+
+ SoundDeviceError(KErrUnderflow);
+ }
+ }
+ else
+ {
+ // Free fifo not full, therefore there are active players
+ iState = EPlaying;
+ }
+ }
+ return;
+ }
+
TInt RMdaDevSound::CBody::SetFormat(const TCurrentSoundFormatBuf& aFormat,
RSoundSc& aSoundDevice,
TFormatData &aFormatData)
@@ -414,6 +935,7 @@
delete aFormatData.iConverter;
aFormatData.iConverter = NULL; // setting this to NULL indicates we are not using converter. No other flag
+ iConvertedPlayData.Close();
TInt wantedRate = aFormat().iRate;
for(TInt index = 0; index < KNumSampleRates; index++ )
@@ -429,6 +951,11 @@
if(err == KErrNone)
{
+ // Assume, for now, we support the requested channels and rate
+ aFormatData.iActualChannels = aFormatData.iRequestedChannels;
+ aFormatData.iActualRate = aFormatData.iSampleRate;
+
+ // Attempt to configure driver
formatBuf().iChannels = aFormat().iChannels;
formatBuf().iEncoding = ESoundEncoding16BitPCM;
formatBuf().iDataFormat = ESoundDataFormatInterleaved;
@@ -628,11 +1155,86 @@
aFormatData.iRequestedChannels));
}
}
+ if(err != KErrNone)
+ {
+ delete aFormatData.iConverter;
+ aFormatData.iConverter= NULL;
+ iConvertedPlayData.Close();
+ }
return err;
}
+void RMdaDevSound::CBody::StartRecordRequest()
+ {
+ __ASSERT_DEBUG(iRecordSoundDevice.Handle(), Panic(EDeviceNotOpened));
+ iRecorder->RecordData(iBufferLength);
+ }
+
+// Note both InRecordMode and InPlayMode return EFalse for ENotReady and EStopped
+TBool RMdaDevSound::CBody::InRecordMode()const
+ {
+ switch(iState)
+ {
+ case ENotReady:
+ case EStopped:
+ return EFalse;
+
+ case ERecording:
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ return ETrue;
+
+ case EPlaying:
+ case EPlayingPausedInHw:
+ case EPlayingPausedInSw:
+ case EPlayingUnderrun:
+ return EFalse;
+
+ default:
+ Panic(EBadState);
+ break;
+ }
+ return EFalse;
+ }
+
+TBool RMdaDevSound::CBody::InPlayMode() const
+ {
+ switch(iState)
+ {
+ case ENotReady:
+ case EStopped:
+ return EFalse;
+
+ case ERecording:
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ return EFalse;
+
+ case EPlaying:
+ case EPlayingPausedInHw:
+ case EPlayingPausedInSw:
+ case EPlayingUnderrun:
+ return ETrue;
+
+ default:
+ Panic(EBadState);
+ break;
+ }
+
+ return EFalse;
+ }
+
+
+TUint32 RMdaDevSound::CBody::CurrentTimeInMsec() const
+ {
+ TUint64 tmp = User::NTickCount();
+ tmp *= iNTickPeriodInUsec;
+ tmp /= 1000;
+ return TUint32(tmp);
+ }
+
void RMdaDevSound::CBody::PlayFormatsSupported(TSoundFormatsSupportedBuf& aFormatsSupported)
{
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
@@ -642,13 +1244,13 @@
void RMdaDevSound::CBody::GetPlayFormat(TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- GetFormat(aFormat, iPlaySoundDevice, iPlayData);
+ GetFormat(aFormat, iPlaySoundDevice, iPlayFormatData);
}
TInt RMdaDevSound::CBody::SetPlayFormat(const TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- return SetFormat(aFormat, iPlaySoundDevice, iPlayData);
+ return SetFormat(aFormat, iPlaySoundDevice, iPlayFormatData);
}
void RMdaDevSound::CBody::RecordFormatsSupported(TSoundFormatsSupportedBuf& aFormatsSupported)
@@ -660,13 +1262,13 @@
void RMdaDevSound::CBody::GetRecordFormat(TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iRecordSoundDevice.Handle(), Panic(EDeviceNotOpened));
- GetFormat(aFormat, iRecordSoundDevice, iRecordData);
+ GetFormat(aFormat, iRecordSoundDevice, iRecordFormatData);
}
TInt RMdaDevSound::CBody::SetRecordFormat(const TCurrentSoundFormatBuf& aFormat)
{
__ASSERT_DEBUG(iRecordSoundDevice.Handle(), Panic(EDeviceNotOpened));
- return SetFormat(aFormat, iRecordSoundDevice, iRecordData);
+ return SetFormat(aFormat, iRecordSoundDevice, iRecordFormatData);
}
void RMdaDevSound::CBody::Close()
@@ -674,80 +1276,169 @@
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
RDebug::Printf("void RMdaDevSound::CBody::Close() started");
#endif
- iBufferIndex = -1;
iBufferOffset = -1;
iBufferLength = 0;
- iCurrentPlayer = 0;
- iTimerActive = EFalse;
- iChunk.Close();
- iPlaySoundDevice.Close();
- iRecordSoundDevice.Close();
+
+ if(iPlaySoundDevice.Handle() != KNullHandle)
+ {
+ // Make sure all player objects are idle
+ CancelPlayData();
+ iPlayChunk.Close();
+ iPlaySoundDevice.Close();
+ }
+
+ if(iRecordSoundDevice.Handle() != KNullHandle)
+ {
+ CancelRecordData();
+ iRecordChunk.Close();
+ iRecordSoundDevice.Close();
+ }
+
iState = ENotReady;
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
RDebug::Printf("void RMdaDevSound::CBody::Close() ended");
#endif
}
-
+
TInt RMdaDevSound::CBody::Handle()
{//This method is actually used to check whether the device is opened. Below logic should work
if(iPlaySoundDevice.Handle())
{
return iPlaySoundDevice.Handle();
}
+ if(iRecordSoundDevice.Handle())
+ {
+ return iRecordSoundDevice.Handle();
+ }
return 0;
}
+
void RMdaDevSound::CBody::PlayData(TRequestStatus& aStatus, const TDesC8& aData)
{
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("RMdaDevSound::CBody::PlayData(0x%x,%d) State=%d Current=%d. Handle=%d.",&aStatus,
- aData.Length(), iState, iCurrentPlayer, iChunk.Handle());
- RDebug::Printf("KPlayMaxSharedChunkBuffersMask=0x%x KNumPlayersMask=0x%x",
- KPlayMaxSharedChunkBuffersMask, KNumPlayersMask);
+ RDebug::Printf("RMdaDevSound::CBody::PlayData(0x%x,%d) State=%s Handle=%d.",&aStatus,
+ aData.Length(), iState.Name(), iPlayChunk.Handle());
#endif
+
__ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
aStatus = KRequestPending;
- iPlayerStatus = &aStatus;//store the status of datapath player
- //No support for simultaneous play and record in RMdaDevSound
- if(iState == ERecording)
+
+ if((iClientPlayStatus != NULL) || InRecordMode())
{
- SoundDeviceError(KErrInUse);
+ // We only support one outstanding request
+ // No support for simultaneous play and record in RMdaDevSound
+ TRequestStatus *pRequest = &aStatus;
+ User::RequestComplete(pRequest, KErrInUse);
return;
}
- const TDes8* data = static_cast(&aData);
-
- if(!iChunk.Handle())
+ iClientPlayStatus = &aStatus;//store the status of datapath player
+
+ if(iPlayFormatData.iConverter || iSavedTrailingData.Length() != 0)
+ {
+ // Need a conversion buffer
+ // Needs to hold any trailing data truncated from the previous request (due
+ // to alignment requirements) and either the new data, or the new rate adapted data
+ TUint32 spaceRequired = iSavedTrailingData.Length();
+ if(iPlayFormatData.iConverter)
+ {
+ // Doing rate conversion so also need space for the converted data
+ spaceRequired += iPlayFormatData.iConverter->MaxConvertBufferSize(aData.Length());
+ }
+ else
+ {
+ // Not doing rate adaptation therefore only need to allow for the new incoming data
+ spaceRequired += aData.Length();
+ }
+ // Check if existing buffer exists and is big enough
+ if(iConvertedPlayData.MaxLength() < spaceRequired)
+ {
+ iConvertedPlayData.Close();
+ TInt err = iConvertedPlayData.Create(spaceRequired);
+ if(err)
+ {
+ User::RequestComplete(iClientPlayStatus, err);
+ return;
+ }
+ }
+
+ // Truncate iConvertedPlayData and copy in saved trailing data (if any)
+ iConvertedPlayData = iSavedTrailingData;
+ iSavedTrailingData.SetLength(0);
+
+ // Now append rate adapted data or incoming data
+ if (iPlayFormatData.iConverter)
+ {
+ // The convertor will panic if it fails to convert any data, therefore
+ // we avoid passing it an empty source buffer
+ if(aData.Length() != 0)
+ {
+ TPtr8 destPtr((TUint8 *)iConvertedPlayData.Ptr()+iConvertedPlayData.Length(), 0, iConvertedPlayData.MaxLength()-iConvertedPlayData.Length());
+ TInt len = iPlayFormatData.iConverter->Convert(aData, destPtr);
+ iConvertedPlayData.SetLength(iConvertedPlayData.Length() + destPtr.Length());
+ if(len != aData.Length())
+ {
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::PlayData converted %d but expected to convert %d", len, aData.Length());
+ #endif
+ }
+ }
+ }
+ else
+ {
+ iConvertedPlayData.Append(aData);
+ }
+ iClientPlayData.Set(iConvertedPlayData);
+ }
+ else
+ {
+ // Do not need a conversion buffer so just aim the descriptor at the data
+ iClientPlayData.Set(aData);
+ }
+ iUnderFlowReportedSinceLastPlayOrRecordRequest = EFalse;
+
+ // All driver requests must be an exact multiple of iRequestMinSize
+ TUint32 trailingDataLen = iClientPlayData.Length() % iRequestMinSize;
+ if(trailingDataLen)
+ {
+ // Not a multiple of iRequestMinSize, so need to truncate current request, and save trailing bytes for
+ // inclusion at the beginning of the next request
+ iSavedTrailingData = iClientPlayData.Right(trailingDataLen);
+ iClientPlayData.Set(iClientPlayData.Left(iClientPlayData.Length()-trailingDataLen));
+ }
+
+ #ifdef SYMBIAN_FORCE_32BIT_LENGTHS
+ if (iClientPlayData.Length()%4 != 0)
+ {
+ // simulate the limitation of some hardware, where -6 is generated if the
+ // buffer length is not divisible by 4.
+ TRequestStatus *pRequest = &aStatus;
+ User::RequestComplete(pRequest, KErrArgument);
+ }
+ #endif
+
+ iRecordChunk.Close();
+ if(!iPlayChunk.Handle())
{
//This is where we setup to play.
//Configure the shared chunk for two buffers with iBufferSize each
- iBufferConfig.iNumBuffers = KPlayMaxSharedChunkBuffers;
- iDeviceBufferLength = data->MaxLength();
- iBufferConfig.iFlags = 0;//data will be continuous
+ iPlayBufferConfig.iNumBuffers = KPlaySharedChunkBuffers;
+ iDeviceBufferLength = KPlaySharedChunkBufferSize;
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("iDeviceBufferLength %d", iDeviceBufferLength);
+ #endif
+ iPlayBufferConfig.iFlags = 0;//data will be continuous
// If required, use rate converter etc
- if (iPlayData.iConverter)
- {
- iDeviceBufferLength = iPlayData.iConverter->MaxConvertBufferSize(iDeviceBufferLength, ETrue);
- }
- iBufferConfig.iBufferSizeInBytes = iDeviceBufferLength;
+ iPlayBufferConfig.iBufferSizeInBytes = iDeviceBufferLength;
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("number of buffers: [%d]",iBufferConfig.iNumBuffers);
- RDebug::Printf("BufferSize in Bytes [%d]",iBufferConfig.iBufferSizeInBytes);
+ RDebug::Printf("number of buffers: [%d]",iPlayBufferConfig.iNumBuffers);
+ RDebug::Printf("BufferSize in Bytes [%d]",iPlayBufferConfig.iBufferSizeInBytes);
#endif
- TPckg bufferConfigBuf(iBufferConfig);
- TInt error = iPlaySoundDevice.SetBufferChunkCreate(bufferConfigBuf,iChunk);
+ TPckg bufferConfigBuf(iPlayBufferConfig);
+ TInt error = iPlaySoundDevice.SetBufferChunkCreate(bufferConfigBuf,iPlayChunk);
if(error == KErrNone)
{
iPlaySoundDevice.GetBufferConfig(bufferConfigBuf);
- TSoundFormatsSupportedV02Buf modnumber;
- iPlaySoundDevice.Caps(modnumber);
- TInt minBufferSize = KMinBufferSize;
- #ifdef SYMBIAN_FORCE_32BIT_LENGTHS
- minBufferSize = Max(minBufferSize, 4); // force to 32-bit buffer align
- #endif
- iRequestMinSize = Max(modnumber().iRequestMinSize, minBufferSize);
- error = iBufferRemaining.Create(iRequestMinSize);
- // work out mask so that x&iRequestMinMask is equiv to x/iRequestMinSize*iRequestMinSize
- iRequestMinMask = ~(iRequestMinSize-1); // assume iRequestMinSize is power of 2
}
if (error)
{
@@ -755,114 +1446,43 @@
return;
}
}
-
- iBufferIndex = (iBufferIndex+1) & KPlayMaxSharedChunkBuffersMask;
-
- TPtr8 dataPtr(iChunk.Base()+ iBufferConfig.iBufferOffsetList[iBufferIndex], 0, iDeviceBufferLength);
-
- __ASSERT_DEBUG(!(iBufferRemaining.Length()>0 && iPlayData.iConverter),
- Panic(EPanicPartialBufferConverterNotSupported)); // can't deal with conversion with restrictions on buffer size
-
- if (iBufferRemaining.Length() != 0)
- {
- // This checks if any data was left over from last times rounding and adds it to the dataPtr
- dataPtr.Copy(iBufferRemaining);
- iBufferRemaining.SetLength(0);
- }
-
- if (iPlayData.iConverter)
- {
- iPlayData.iConverter->Convert(aData, dataPtr);
- ASSERT(iSecondPhaseData.Length()==0); // assume this below, so check
- ASSERT(iBufferRemaining.Length()==0);
- }
- else
- {
- TInt dataLength = aData.Length();
-
- TInt lengthAlreadyInDeviceBuffer = dataPtr.Length();
- TInt desiredDeviceBufferLength = (lengthAlreadyInDeviceBuffer + dataLength) & iRequestMinMask;
- if (desiredDeviceBufferLength > dataPtr.MaxLength())
- {
- // the buffer would be two long to do in one go, so do as two phases
- desiredDeviceBufferLength = (lengthAlreadyInDeviceBuffer + (dataLength/2)) & iRequestMinMask;
- }
- TInt lengthToCopy = desiredDeviceBufferLength - lengthAlreadyInDeviceBuffer;
- lengthToCopy = Max(lengthToCopy, 0); // ensure lengthToCopy is not negative
-
- TInt remainingToBeCopied = dataLength - lengthToCopy;
- TInt secondPhaseLength = remainingToBeCopied & iRequestMinMask;
- TInt remainingForNextRun = remainingToBeCopied - secondPhaseLength;
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("dataLength: [%d]",dataLength);
- RDebug::Printf("lengthAlreadyInDeviceBuffer: [%d]",lengthAlreadyInDeviceBuffer);
- RDebug::Printf("desiredDeviceBufferLength: [%d]",desiredDeviceBufferLength);
- RDebug::Printf("lengthToCopy: [%d]",lengthToCopy);
- RDebug::Printf("remainingToBeCopied: [%d]",remainingToBeCopied);
- RDebug::Printf("secondPhaseLength: [%d]",secondPhaseLength);
- RDebug::Printf("remainingForNextRun: [%d]",remainingForNextRun);
- #endif
- dataPtr.Append(aData.Left(lengthToCopy));
- iSecondPhaseData.Set(aData.Mid(lengthToCopy, secondPhaseLength));
- iBufferRemaining.Copy(aData.Mid(lengthToCopy + secondPhaseLength, remainingForNextRun));
- iHaveSecondPhaseData = secondPhaseLength>0;
- }
-
- if(iState == EOpened || iState == EPlayBuffersFlushed)
- {
- if(dataPtr.Length() > 0 && iSecondPhaseData.Length()==0)
- {
- // Note: if we have identified second phase, don't call BufferEmptied() here as we can't cope with a new PlayData() call
- //Make sure that next player do not overtake the current player, especially when recovering from underflow
- TInt otherPlayer = (iCurrentPlayer+1) & KNumPlayersMask;
- iPlayers[otherPlayer]->Deque();
- CActiveScheduler::Add(iPlayers[otherPlayer]);
- //Beginning we need to give two play requests for an uninterrupted playback with the new driver
- BufferEmptied();
- }
- iState = EPlaying;
- }
- #ifdef _DEBUG
- TInt cachePlayer = iCurrentPlayer; // TODO: remove
- #endif
- iPlayers[iCurrentPlayer]->PlayData(iBufferConfig.iBufferOffsetList[iBufferIndex], dataPtr.Length());
- ASSERT(iCurrentPlayer==cachePlayer); // check have not changed since previous calc
- iCurrentPlayer = (iCurrentPlayer+1) & KNumPlayersMask;
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("RMdaDevSound::CBody::PlayData() Exit. Current=%d, Handle=%d.",
- iCurrentPlayer, iChunk.Handle());
- #endif
+ StartPlayersAndUpdateState();
+
+ return;
}
void RMdaDevSound::CBody::RecordData(TRequestStatus& aStatus, TDes8& aData)
{
__ASSERT_DEBUG(iRecordSoundDevice.Handle(), Panic(EDeviceNotOpened));
aStatus = KRequestPending;
- iRecorderStatus = &aStatus;
- //No support for simultaneous play and record in RMdaDevSound
- if(iState == EPlaying)
+ if((iClientPlayStatus != NULL) || InPlayMode())
{
- SoundDeviceError(KErrInUse);
+ // We only support one outstanding request
+ // No support for simultaneous play and record in RMdaDevSound
+ TRequestStatus *pRequest = &aStatus;
+ User::RequestComplete(pRequest, KErrInUse);
return;
}
+ iClientRecordStatus = &aStatus;
+ iClientRecordData = &aData;
+ iUnderFlowReportedSinceLastPlayOrRecordRequest = EFalse;
- iData = &aData;
-
- if(!iChunk.Handle())
+ iPlayChunk.Close();
+ if(!iRecordChunk.Handle())
{
//Configure the shared chunk for two buffers with iBufferSize each
iRecordBufferConfig.iNumBuffers = KRecordMaxSharedChunkBuffers;
- iDeviceBufferLength = iData->MaxLength(); // initial size - resize if needs be
- if (iRecordData.iConverter)
+ iDeviceBufferLength = KRecordSharedChunkBufferSize; // initial size - resize if needs be
+ if (iRecordFormatData.iConverter)
{
// if number of channels used differs from request, resize buffer
// assume we have nice rounded values for buffer.
- if (iRecordData.iActualChannels>iRecordData.iRequestedChannels)
+ if (iRecordFormatData.iActualChannels>iRecordFormatData.iRequestedChannels)
{
iDeviceBufferLength *= 2; // will record at stereo and convert to mono
}
- else if (iRecordData.iActualChannels bufferConfigBuf(iRecordBufferConfig);
- TInt error = iRecordSoundDevice.SetBufferChunkCreate(bufferConfigBuf,iChunk);
+ TInt error = iRecordSoundDevice.SetBufferChunkCreate(bufferConfigBuf,iRecordChunk);
if(error == KErrNone)
{
iRecordSoundDevice.GetBufferConfig(bufferConfigBuf);
@@ -885,151 +1505,130 @@
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
RDebug::Printf("RMdaDevSound::CBody::RecordData,iBufferOffset[%d]",iBufferOffset);
#endif
- iPlayers[iCurrentPlayer]->RecordData(iBufferLength);
+
+ switch(iState)
+ {
+ case ENotReady:
+ Panic(EBadState);
+ break;
+
+ case EStopped:
+ case ERecording:
+ // Either idle or recording is in progress, therefore we can issue another request
+ StartRecordRequest();
+ break;
+
+ case ERecordingPausedInHw:
+ // Driver is paused, therefore we can issue a request which will immediately return buffered data
+ // or be aborted (in the driver) with KErrCancelled if there is no more data). nb. That KErrCancelled should not be
+ // returned to the client because the old RMdaDevSound driver would have completed with KErrNone and zero data length.
+ StartRecordRequest();
+ break;
+
+ case ERecordingPausedInSw:
+ // Paused in s/w but driver is not paused, therefore can not issue a new request to driver because
+ // it would re-start recording.
+ // This implies we were paused whilst the h/w was not recording, so there is no buffered data.
+
+ // Complete the request with KErrNone and no data.
+ iClientRecordData->SetLength(0);
+ User::RequestComplete(iClientRecordStatus, KErrNone);
+ break;
+
+ case EPlaying:
+ case EPlayingPausedInHw:
+ case EPlayingPausedInSw:
+ case EPlayingUnderrun:
+ Panic(EBadState);
+ break;
+
+ default:
+ Panic(EBadState);
+ break;
+ }
}
-void RMdaDevSound::CBody::SoundDeviceError(TInt aError, TInt /*aPlayerIndex*/)
-// This is called by CPlayer objects when there is an error in RunL
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::SoundDeviceError: aError[%d]"), aError);
- #endif
-
- //When we get an underflow from one of the players and the other player is active, we are
- //bound to get an underflow from the other player too. So we ignore the first and process
- //the second
- TInt otherPlayerIndex = (iCurrentPlayer+1) & KNumPlayersMask;
- if (iPlayers[otherPlayerIndex]->IsActive() && aError==KErrUnderflow)
- {
- return;
- }
- SoundDeviceError(aError);
- }
/**
- Note for maintainers: Please note that this method is called from
- CancelPlayData and CancelRecordData with KErrNone as a parameter in order to
- cancel the players and reset the internal state.
+ Notify client of error.
+
+ Note that we continue playing/recording if possible.
+
+ We do not maintain information which could map the error back to a particular client play/record request
+ and therefore we have to notify the client of error every time it happens.
+
+ nb. A client play/record request is completed with KErrNone if it queues ok - All errors are reported via the Notify*Error
+ mechanism.
*/
void RMdaDevSound::CBody::SoundDeviceError(TInt aError)
{
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::SoundDeviceError: Error[%d] CurrentPlayer[%d]"), aError, iCurrentPlayer);
+ RDebug::Printf("RMdaDevSound::CBody::SoundDeviceError: Error[%d] state %s", aError, iState.Name());
#endif
- for (TInt i=0; iStop();
- }
- else
- {
- if (!iPlayers[i]->IsActive())
- {
- iPlayers[i]->ResetPlayer();
- }
- }
- }
-
- iBufferRemaining.SetLength(0);
- if(iPlayErrorStatus && aError!=KErrNone)//error receiver is only for errors
+ ASSERT(aError != KErrNone);
+
+ if(iClientPlayErrorStatus)
{
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
RDebug::Printf("RMdaDevSound::CBody::SoundDeviceError Completing iPlayerErrorStatus");
#endif
- User::RequestComplete(iPlayErrorStatus, aError);
- iPlayErrorStatus = NULL;
+
+ User::RequestComplete(iClientPlayErrorStatus, aError); // nb call also sets iClientPlayErrorStatus to NULL
}
- if(iPlayerStatus)
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("RMdaDevSound::CBody::SoundDeviceError Completing iPlayerStatus");
- #endif
- User::RequestComplete(iPlayerStatus, KErrNone); // effectively buffer emptied
- iPlayerStatus = NULL;
- }
- if(iRecordErrorStatus && aError!=KErrNone)
+
+ if(iClientRecordErrorStatus)
{
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("RMdaDevSound::CBody::SoundDeviceError Completing iRecordErrorStatus");
- #endif
- User::RequestComplete(iRecordErrorStatus, aError);
- iRecordErrorStatus = NULL;
- }
- else if(iRecorderStatus)
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("RMdaDevSound::CBody::SoundDeviceError Completing iRecorderStatus");
+ RDebug::Printf("RMdaDevSound::CBody::SoundDeviceError Completing iClientRecordErrorStatus");
#endif
- User::RequestComplete(iRecorderStatus, aError);
- iRecorderStatus = NULL;
+ User::RequestComplete(iClientRecordErrorStatus, aError); // nb call also sets iClientRecordErrorStatus to NULL
}
- iBufferIndex = -1;
- iCurrentPlayer = 0;
- iBufferOffset = -1;
- iBufferLength = 0;
- iTimerActive = EFalse;
- iState = EOpened;
+
+ return;
}
void RMdaDevSound::CBody::NotifyRecordError(TRequestStatus& aStatus)
{
aStatus = KRequestPending;
- iRecordErrorStatus = &aStatus;
+ iClientRecordErrorStatus = &aStatus;
}
void RMdaDevSound::CBody::NotifyPlayError(TRequestStatus& aStatus)
{
aStatus = KRequestPending;
- iPlayErrorStatus = &aStatus;
+ iClientPlayErrorStatus = &aStatus;
}
void RMdaDevSound::CBody::CancelNotifyPlayError()
{
- if(iPlayErrorStatus)
+ if(iClientPlayErrorStatus)
{
- User::RequestComplete(iPlayErrorStatus, KErrCancel);
+ User::RequestComplete(iClientPlayErrorStatus, KErrCancel);
}
}
void RMdaDevSound::CBody::CancelNotifyRecordError()
{
- if(iRecordErrorStatus)
+ if(iClientRecordErrorStatus)
{
- User::RequestComplete(iRecordErrorStatus, KErrCancel);
+ User::RequestComplete(iClientRecordErrorStatus, KErrCancel);
}
+ else
+ {
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("msp BufferEmptied but iClientPlayStatus==NULL");
+ #endif
+ }
}
void RMdaDevSound::CBody::FlushPlayBuffer()
{
- __ASSERT_DEBUG(iPlaySoundDevice.Handle(), Panic(EDeviceNotOpened));
- //There is no equivalent of FlushPlaybuffer in the new sound driver. So use CancelPlayData
- //to simulate the original behavior
- if ((iState == EPlaying) || (iState == EPaused))
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::FlushPlayBuffers in Playing or Paused state"));
- #endif
-
- if (iState == EPaused)
- {
- iFlushCalledDuringPause = ETrue;
- }
-
-
- iPlaySoundDevice.CancelPlayData();
- iBufferRemaining.SetLength(0);
- iState = EPlayBuffersFlushed;
- }
-
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::FlushPlayBuffer calling CancelPlayData");
+ #endif
+ CancelPlayData();
}
-
-
-
RSoundSc& RMdaDevSound::CBody::PlaySoundDevice()
{
return iPlaySoundDevice;
@@ -1040,22 +1639,11 @@
return iRecordSoundDevice;
}
-RMdaDevSound::CBody::TState RMdaDevSound::CBody::State()
+const RMdaDevSound::CBody::TState &RMdaDevSound::CBody::State() const
{
return iState;
}
-void RMdaDevSound::CBody::BufferEmptied()
- {
- if(iPlayerStatus)
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("***Buffer Emptied***"));
- #endif
- User::RequestComplete(iPlayerStatus, KErrNone);
- iPlayerStatus = NULL;
- }
- }
void RMdaDevSound::CBody::BufferFilled(TInt aBufferOffset)
{
@@ -1064,15 +1652,15 @@
#endif
ASSERT(aBufferOffset>=0 || aBufferOffset==KErrCancel);
- ASSERT(iData); // request should not get this without
+ ASSERT(iClientRecordData); // request should not get this without
if(aBufferOffset==KErrCancel)
{
//we can get KErrCancel when we call pause and there is no more data left with the driver
//we send the empty buffer to the HwDevice, where this should trigger the shutdown mechanism
- iData->SetLength(0);
- User::RequestComplete(iRecorderStatus, KErrNone);
- iRecorderStatus = NULL;
+ iClientRecordData->SetLength(0);
+ User::RequestComplete(iClientRecordStatus, KErrNone);
+ iClientRecordStatus = NULL;
return;
}
@@ -1081,14 +1669,14 @@
//expects that the buffer size should always be even. Base suggested that we fix in multimedia
//as it is quite complicated to fix in overthere.
iBufferLength = iBufferLength & 0xfffffffe;
- TPtr8 dataPtr(iChunk.Base()+ iBufferOffset, iBufferLength, iData->MaxLength());
- if (iRecordData.iConverter)
+ TPtr8 dataPtr(iRecordChunk.Base()+ iBufferOffset, iBufferLength, iClientRecordData->MaxLength());
+ if (iRecordFormatData.iConverter)
{
- iRecordData.iConverter->Convert(dataPtr, *iData);
+ iRecordFormatData.iConverter->Convert(dataPtr, *iClientRecordData);
}
else
{
- iData->Copy(dataPtr);
+ iClientRecordData->Copy(dataPtr);
}
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
RDebug::Print(_L("RMdaDevSound::CBody::BufferFilled: BufferOffset[%d] BufferLen[%d]"), iBufferOffset, iBufferLength);
@@ -1097,52 +1685,124 @@
{
iRecordSoundDevice.ReleaseBuffer(iBufferOffset);
}
- if(iRecorderStatus)
+ if(iClientRecordStatus)
{
- User::RequestComplete(iRecorderStatus, KErrNone);
- iRecorderStatus = NULL;
- }
- }
-
-void RMdaDevSound::CBody::PlayCancelled()
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::PlayCancelled:"));
- #endif
-
- for (TInt index=0; indexCancel();
+ User::RequestComplete(iClientRecordStatus, KErrNone);
+ iClientRecordStatus = NULL;
}
- iBufferIndex = -1;
- iCurrentPlayer = 0;
- iBufferOffset = -1;
- iBufferLength = 0;
- iTimerActive = EFalse;
- if(iPlayerStatus)
- {
- User::RequestComplete(iPlayerStatus, KErrNone);
- iPlayerStatus = NULL;
- }
+ else
+ {
+ RDebug::Printf("msp PlayCancelled but iClientPlayStatus==NULL");
+ }
}
-
-void RMdaDevSound::CBody::UpdateTimeAndBytesPlayed()
+
+/*
+ This function is called to notify us that a CPlayer's request has completed and what its status was.
+
+ It is important to note that:-
+ 1) RSoundSc driver PlayData requests are guaranteed to complete in order, oldest first
+ 2) If we are overloaded, it is possible for more than one request to complete before any CPlayer::RunL is ran. In
+ this situation the CPlayer::RunL functions, and hence this callback, maybe invoked in non-oldest first order
+
+ but
+
+ a) It is impossible for callback for the second oldest CPlayer to occur before the driver request for the oldest has
+ been complete (because of 1)
+ b) We will always get exactly one callback for every complete request.
+
+ Therefore this callback notifies us of two subtly separate things:-
+
+ i) The oldest request has been completed (so we can reduce can increase the bytes played counter by its length
+ ii) CPlayer aPlayerIndex is free for re-use
+
+ but we can not assume that aPlayerIndex is the oldest request, therefore we save the play request lengths outside of
+ the CPlayer object.
+*/
+void RMdaDevSound::CBody::PlayRequestHasCompleted(CPlayer *aPlayer, TInt aStatus, TBool aDueToCancelCommand)
{
- iBytesPlayed = iPlaySoundDevice.BytesTransferred();
- iStartTime = User::FastCounter();
- iTimerActive=ETrue;
- }
+ // CPlayer is done so put it on the free queue
+ iFreePlayers.Push(aPlayer);
+
+ TUint32 bytesPlayed = iActivePlayRequestSizes.Pop();
+ // Request has finished therefore now timing the following request to simulate bytes played
+ iStartTime = CurrentTimeInMsec();
+ if(aDueToCancelCommand)
+ {
+ // Callback due to CPlayer::Cancel/DoCancel being called, therefore we
+ // do not want to update bytes played, process state, report a error or start new players
+ return;
+ }
+
+ // Update iBytesPlayed by the length of the oldest request (which might not be the one that CPlayer was
+ // handling).
+ iBytesPlayed += bytesPlayed;
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("PlayRequestHasCompleted increasing iBytesPlayed by %d to %d", bytesPlayed, iBytesPlayed);
+ #endif
-TBool RMdaDevSound::CBody::TimerActive()
- {
- return iTimerActive;
+ // Process state
+ switch(iState)
+ {
+ case ENotReady:
+ Panic(EDeviceNotOpened);
+ break;
+
+ case EStopped:
+ // Will happen if we are doing CancelPlayData processing with active players
+ break;
+
+ case ERecording:
+ case ERecordingPausedInHw:
+ case ERecordingPausedInSw:
+ Panic(EBadState);
+ break;
+
+ case EPlaying:
+ // Normal situation
+ break;
+
+ case EPlayingPausedInHw:
+ // H/W was/is paused, but there must have been an already complete request that we had not
+ // processed yet.
+ // There must be at least one more pending request on h/w, otherwise the h/w would have refused to pause
+ // I would expect this be rare, but it happens quite often...
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ ASSERT(iActivePlayRequestSizes.Length() != 0);
+ #endif
+ // Need to update the start and pause time to now because we have just updated the actual iBytesPlayed
+ // and logically the h/w is paused at the beginning of the next request
+ iStartTime = CurrentTimeInMsec();
+ iPauseTime = iStartTime;
+ break;
+
+ case EPlayingPausedInSw:
+ // This will happen if there is only a single hw request outstanding, and the hardware has finished it, but the
+ // corresponding RunL has not run yet (in which case PausePlayBuffer will have attempted to use h/w pause,
+ // but the driver call would have failed, and the state changed to EPlayingPausedInSw).
+ iStartTime = CurrentTimeInMsec();
+ iPauseTime = iStartTime;
+ return;
+ case EPlayingUnderrun:
+ break;
+
+ default:
+ Panic(EBadState);
+ break;
+ }
+
+
+ // If we have an error, report it to the client
+ // We NEVER report driver underflow, instead we report KErrUnderflow if we run out of data to pass to driver.
+ if( (aStatus != KErrNone) && (aStatus != KErrUnderflow) )
+ {
+ SoundDeviceError(aStatus);
+ }
+
+ // If appropriate start more players
+ StartPlayersAndUpdateState();
+ return;
}
-TBool RMdaDevSound::CBody::FlushCalledDuringPause()
- {
- return iFlushCalledDuringPause;
- }
-
RMdaDevSound::CBody::CPlayer::CPlayer(TInt aPriority, RMdaDevSound::CBody& aParent, TInt aIndex):
CActive(aPriority), iParent(aParent), iIndex(aIndex), iBufferOffset(-1), iBufferLength(0)
{
@@ -1154,135 +1814,82 @@
Cancel();
}
+
void RMdaDevSound::CBody::CPlayer::RunL()
{
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("****RMdaDevSound::CBody::CPlayer(%d)::RunL: Error[%d] ParentState[%d] Outstanding[%d], pending[%d]"),
- iIndex, iStatus.Int(), iParent.State(), iParent.iHaveSecondPhaseData, iRequestPending);
+ RDebug::Printf("****RMdaDevSound::CBody::CPlayer(%d)::RunL: Error[%d] ParentState[%s]",
+ iIndex, iStatus.Int(), iParent.State().Name());
+ RDebug::Printf("iActivePlayRequestSizes.Length() = %d iFreePlayers.Length() = %d (including this one as active)",
+ iParent.iActivePlayRequestSizes.Length(),
+ iParent.iFreePlayers.Length());
#endif
-
- //this is required to avoid receiving the request completions in the order diff. from the
- //issued order
- Deque();
- CActiveScheduler::Add(this);
-
- TInt error = iStatus.Int();
-
- // It's fine to schedule buffers to the driver in the paused state (i.e. iRequestPending == EFalse)
- if(!iRequestPending && (iParent.State() == EPlaying || iParent.State() == EPaused) && error == KErrNone)
- {
- //this is from playdata
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::RunL: Playing BufferOffset[%d] BufferLength[%d]"), iIndex, iBufferOffset, iBufferLength);
- #endif
- //Make sure the length is even. We may get odd for the last partial buffer.
- iBufferLength = iBufferLength & 0xfffffffe;
-
- PlaySoundDevice();
- //Need this for the first time only
- if(!iParent.TimerActive())
- {
- iParent.UpdateTimeAndBytesPlayed();
- }
- iRequestPending = ETrue;
- }
- // TODO: The case below shouldn't be valid under EPaused state, i.e. the driver shouldn't complete playback if it was paused. However due to a current problem in the driver we have to handle this case
- else if (iRequestPending && (iParent.State() == EPlaying || iParent.State() == EPaused) && error == KErrNone) //this is from driver
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::RunL: Buffer emptied successfully"), iIndex);
- #endif
- if (iParent.iHaveSecondPhaseData)
- {
- TPtr8 dataPtr(iParent.iChunk.Base()+ iParent.iBufferConfig.iBufferOffsetList[iParent.iBufferIndex], 0, iParent.iDeviceBufferLength);
- dataPtr.Copy(iParent.iSecondPhaseData);
-
- PlaySoundDevice();
- iParent.iCurrentPlayer = (iParent.iCurrentPlayer+1) & KNumPlayersMask;
- iParent.UpdateTimeAndBytesPlayed();
- iParent.iHaveSecondPhaseData = EFalse;
- }
- else
- {
- iRequestPending = EFalse;
- iParent.UpdateTimeAndBytesPlayed();
- iParent.BufferEmptied();
- }
- }
- else if(iParent.State() == EPlayBuffersFlushed && error == KErrCancel)
- {
- iRequestPending = EFalse;
- if (!iParent.FlushCalledDuringPause())
- {
- iParent.PlayCancelled();
- }
- }
- else if(iParent.State() == ERecording && (error >= 0 || error == KErrCancel))
- {//we can get KErrCancel when we call pause and there is no more data left with the driver
- iParent.BufferFilled(error);
- }
- else
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::RunL: Error[%d] Outstanding[%d], pending[%d]"),
- iIndex, error, iParent.iHaveSecondPhaseData,iRequestPending);
- #endif
- iParent.SoundDeviceError(error, iIndex);
- }
+ iParent.PlayRequestHasCompleted(this, iStatus.Int(), EFalse);
+ return;
}
TInt RMdaDevSound::CBody::CPlayer::RunError(TInt aError)
{
- iParent.SoundDeviceError(aError, iIndex);
+ iParent.PlayRequestHasCompleted(this, aError, EFalse);
return KErrNone;
}
-
+
void RMdaDevSound::CBody::CPlayer::DoCancel()
{
- //nothing to do
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
RDebug::Printf("RMdaDevSound::CBody::CPlayer(%d)::DoCancel", iIndex);
#endif
+ if(iStatus == KRequestPending)
+ {
+ // Avoid cancelling requests which have already completed.
+ // It wastes time, and might provoke a sound driver problem
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::CPlayer::DoCancel - would have cancelled driver request");
+ #endif
+ iParent.PlaySoundDevice().Cancel(iStatus);
+ }
+ iParent.PlayRequestHasCompleted(this, KErrCancel, ETrue);
}
-void RMdaDevSound::CBody::CPlayer::ResetPlayer()
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::ResetPlayer: IsActive[%d] pending[%d] iBufferOffset[%d] iBufferLength[%d]"), iIndex, IsActive(), iRequestPending, iBufferOffset, iBufferLength);
- #endif
-
- iRequestPending = EFalse;
- iBufferOffset = -1;
- iBufferLength = 0;
- }
-
-void RMdaDevSound::CBody::CPlayer::Stop()
+void RMdaDevSound::CBody::CPlayer::PlayData(TUint aChunkOffset, TInt aLength)
{
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::Stop: IsActive[%d] pending[%d] iBufferOffset[%d] iBufferLength[%d]"), iIndex, IsActive(), iRequestPending, iBufferOffset, iBufferLength);
- #endif
+ RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::PlayData : IsActive[%d]"),
+ iIndex, IsActive());
+ RDebug::Printf("iActivePlayRequestSizes.Length() = %d iFreePlayers.Length() = %d (inc this player)",
+ iParent.iActivePlayRequestSizes.Length(),
+ iParent.iFreePlayers.Length());
+ #endif
+
+ iBufferOffset = aChunkOffset;
+ iBufferLength = aLength;
- ResetPlayer();
- Cancel();
+ //Make sure the length is a multiple of 4 to work around an h6 limitation.
+ iBufferLength = iBufferLength & 0xfffffffc;
+
+ // Issue the RSoundSc request
+ iParent.PlaySoundDevice().PlayData(iStatus, iBufferOffset, iBufferLength, EFalse);
+ SetActive();
+ return;
}
-void RMdaDevSound::CBody::CPlayer::PlayData(TInt aBufferOffset, TInt aLength)
+TUint RMdaDevSound::CBody::CPlayer::GetPlayerIndex() const
{
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::PlayData : IsActive[%d]"), iIndex, IsActive());
- #endif
+ return iIndex;
+ }
- ASSERT(!IsActive()); // TODO: remove or replace redundant test
- iBufferOffset = aBufferOffset;
- iBufferLength = aLength;
+RMdaDevSound::CBody::CRecorder::CRecorder(TInt aPriority, RMdaDevSound::CBody& aParent):
+ CActive(aPriority), iParent(aParent), iBufferOffset(-1), iBufferLength(0)
+ {
+ CActiveScheduler::Add(this);
+ }
- iStatus = KRequestPending;
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- }
-
-void RMdaDevSound::CBody::CPlayer::RecordData(TInt& aBufferLength)
+RMdaDevSound::CBody::CRecorder::~CRecorder()
+ {
+ Cancel();
+ }
+
+void RMdaDevSound::CBody::CRecorder::RecordData(TInt& aBufferLength)
{
if (!IsActive())
{
@@ -1295,34 +1902,43 @@
}
}
-void RMdaDevSound::CBody::CPlayer::PlaySoundDevice()
+void RMdaDevSound::CBody::CRecorder::RunL()
{
#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Print(_L("RMdaDevSound::CBody::CPlayer(%d)::PlaySoundDevice : IsActive[%d]"), iIndex, IsActive());
- #endif
+ RDebug::Printf("****RMdaDevSound::CBody::CRecorder()::RunL: Error[%d] ParentState[%s]",
+ iStatus.Int(), iParent.State().Name());
+ #endif
-#ifdef SYMBIAN_FORCE_32BIT_LENGTHS
- if (iBufferLength%4 != 0)
- {
- // simulate the limitation of some hardware, where -6 is generated if the
- // buffer length is not divisible by 4.
- TRequestStatus*status = &iStatus;
- User::RequestComplete(status, KErrArgument);
+
+ TInt error = iStatus.Int();
+
+ if((error >= 0) || (error == KErrCancel))
+ {//we can get KErrCancel when we call pause and there is no more data left with the driver
+ iParent.BufferFilled(error);
}
- else
-#endif
+ else
{
- iParent.PlaySoundDevice().PlayData(iStatus, iBufferOffset, iBufferLength, EFalse);
- // Pause was called when there was no data available. Now that we have data available, we should pause the driver
- if (iParent.iPauseDeviceDriverOnNewData)
- {
- #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
- RDebug::Printf("Pausing the driver after receiving data to play");
- #endif
- iParent.PlaySoundDevice().Pause();
- iParent.iPauseDeviceDriverOnNewData = EFalse;
- }
+ #ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Print(_L("RMdaDevSound::CBody::CPlayer()::RunL: Error[%d]"), error);
+ #endif
+ iParent.SoundDeviceError(error);
}
- SetActive();
+ }
+
+
+TInt RMdaDevSound::CBody::CRecorder::RunError(TInt aError)
+ {
+ iParent.SoundDeviceError(aError);
+ return KErrNone;
+ }
- }
+void RMdaDevSound::CBody::CRecorder::DoCancel()
+ {
+#ifdef SYMBIAN_SOUNDADAPTER_DEBUG
+ RDebug::Printf("RMdaDevSound::CBody::CRecorder()::DoCancel");
+#endif
+ iParent.RecordSoundDevice().Cancel(iStatus);
+ }
+
+
+// End of file
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapterbody.h
--- a/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapterbody.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdf/src/audio/mdasoundadapter/mdasoundadapterbody.h Fri Jul 09 12:23:13 2010 +0100
@@ -29,6 +29,10 @@
{
EDeviceNotOpened,
EPanicPartialBufferConverterNotSupported,
+ EBadState,
+ ENoClientPlayRequest,
+ EFifoEmpty,
+ EFifoFull
};
//Structure used to map samples per second to the corresponding enums in RSoundSc
@@ -321,23 +325,28 @@
{255,254}
};
-//Total Number of sample rates
-const TInt KNumSampleRates = 9;
-//Number of shared chunk buffers used for playing
-const TInt KPlayMaxSharedChunkBuffers = 2;
-const TInt KPlayMaxSharedChunkBuffersMask = KPlayMaxSharedChunkBuffers-1; // use for % KPlayMaxSharedChunkBuffers
+// Total Number of sample rates
+const TUint KNumSampleRates = 9;
+// Number of shared chunk buffers used for playing
+// Each buffer is permanently mapped, via an index number, to a particular buffer in the chunk
+// The esoundsc.ldd can only handle a max of 8 pending play requests, therefore no point in having
+// more than 8 play buffers...
+const TUint KPlaySharedChunkBuffers = 8;
+// Size of RSoundSc play buffers
+const TUint KPlaySharedChunkBufferSize = 4096;
+
//Number of shared chunk buffers used for recording
-const TInt KRecordMaxSharedChunkBuffers = 3;
-//we need to two players for playing and one is sufficient for recording
-const TInt KNumPlayers = 2;
-const TInt KNumPlayersMask = KNumPlayers-1; // & KNumPlayersMask is equiv to % KNumPlayers
+const TUint KRecordMaxSharedChunkBuffers = 8;
+// Size of RSoundSc record buffers
+const TUint KRecordSharedChunkBufferSize = 4096;
+
//Shared chunk driver does not support max. buffer size. 16K is given in order to simulate the old driver behavior.
-const TInt KMaxBufferSize = 0x4000;
+const TUint KMaxBufferSize = 0x4000;
class TPlaySharedChunkBufConfig : public TSharedChunkBufConfigBase
{
public:
- TInt iBufferOffsetList[KPlayMaxSharedChunkBuffers];
+ TInt iBufferOffsetList[KPlaySharedChunkBuffers];
};
class TRecordSharedChunkBufConfig : public TSharedChunkBufConfigBase
@@ -348,6 +357,83 @@
class CChannelAndSampleRateConverter; // forward dec
+GLDEF_C void Panic(TSoundAdapterPanicCodes aPanicCode);//forward declaration
+
+// RFifo class which manages a fifo of up to COUNT items of type T
+template class RFifo
+ {
+public:
+ RFifo()
+ : iWriteIndex(0), iReadIndex(0)
+ {}
+ TBool IsEmpty() const
+ {
+ return iWriteIndex == iReadIndex;
+ }
+ TBool IsFull() const
+ {
+ // Full if writing one more item would make iWriteIndex equal to iReadIndex
+ TUint32 next = NextIndex(iWriteIndex);
+ return next == iReadIndex;
+ }
+ /// Push item into FIFO. Does not take ownership. Will PANIC with EFifoFull if full.
+ void Push(const T &aItem)
+ {
+ if(IsFull())
+ {
+ Panic(EFifoFull);
+ }
+ iFifo[iWriteIndex] = aItem;
+ iWriteIndex = NextIndex(iWriteIndex);
+ }
+ /// Pop item from FIFO. Will PANIC with EFifoEmpty if empty
+ T Pop()
+ {
+ if(IsEmpty())
+ {
+ Panic(EFifoEmpty);
+ }
+ TUint32 tmp = iReadIndex;
+ iReadIndex = NextIndex(iReadIndex);
+ return iFifo[tmp];
+ }
+
+ /// Peek first item from FIFO. Will PANIC with EFifoEmpty if empty
+ T Peek()
+ {
+ if(IsEmpty())
+ {
+ Panic(EFifoEmpty);
+ }
+ return iFifo[iReadIndex];
+ }
+ TUint Length() const
+ {
+ TUint len;
+ if(iWriteIndex >= iReadIndex)
+ {
+ len = iWriteIndex - iReadIndex;
+ }
+ else
+ {
+ len = COUNT+1 - (iReadIndex - iWriteIndex);
+ }
+ return len;
+ }
+private:
+ TUint32 NextIndex(TUint32 aIndex) const
+ {
+ ++aIndex;
+ aIndex %= (COUNT+1);
+ return aIndex;
+ }
+ T iFifo[COUNT+1];
+ TUint32 iWriteIndex;
+ TUint32 iReadIndex;
+ };
+
+
+
//Body class for the adapter
NONSHARABLE_CLASS( RMdaDevSound::CBody ): public CBase
{
@@ -361,27 +447,58 @@
void RunL();
TInt RunError(TInt aError);
void DoCancel();
+ void PlayData(TUint aChunkOffset, TInt aLength);
+
+ TUint GetPlayerIndex() const;
+
+ private:
+ RMdaDevSound::CBody& iParent;
+ const TUint iIndex; // index of this object in parent
+
+ TInt iBufferOffset;
+ TInt iBufferLength;
+ };
+
+
+ NONSHARABLE_CLASS( CRecorder ) : public CActive
+ {
+ public:
+ explicit CRecorder(TInt aPriority, RMdaDevSound::CBody& aParent);
+ ~CRecorder();
+ void RunL();
+ TInt RunError(TInt aError);
+ void DoCancel();
void RecordData(TInt& aLength);
- void PlayData(TInt aBufferOffset, TInt aBufferLength);
- void Stop();
- void ResetPlayer();
- void PlaySoundDevice();
- private:
+
+ private:
RMdaDevSound::CBody& iParent;
- const TInt iIndex; // index of this object in parent
- TBool iRequestPending;
+
TInt iBufferOffset;
TInt iBufferLength;
};
- enum TState
+ enum TStateEnum
{
ENotReady,
- EOpened,
- EPlaying,
+ EStopped,
ERecording,
- EPlayBuffersFlushed,
- EPaused
+ ERecordingPausedInHw,
+ ERecordingPausedInSw,
+ EPlaying,
+ EPlayingPausedInHw, // ie. Play request pending on h/w and paused
+ EPlayingPausedInSw, // ie. Driver not playing or paused
+ EPlayingUnderrun
+ };
+
+ NONSHARABLE_CLASS( TState )
+ {
+ public:
+ TState(TStateEnum aState) : iState(aState) {}
+ const TText8 *Name() const;
+ TState &operator=(TStateEnum aNewState);
+ operator TStateEnum() const { return iState; }
+ private:
+ TStateEnum iState;
};
class TFormatData
@@ -442,40 +559,55 @@
//for players
void SoundDeviceError(TInt aError);
- void SoundDeviceError(TInt aError, TInt aPlayerIndex);
RSoundSc& PlaySoundDevice();
RSoundSc& RecordSoundDevice();
- TState State();
+ const TState &State() const;
void BufferFilled(TInt aError);
- void BufferEmptied();
- void PlayCancelled();
- void UpdateTimeAndBytesPlayed();
- TBool TimerActive();
- TBool FlushCalledDuringPause();
+
+ // Called whenever a player becomes inactive.
+ // This includes driver request ok, driver request failed, CPlayer:::RunError invoked.
+ void PlayRequestHasCompleted(CPlayer *aPlayer, TInt aStatus, TBool aDueToCancelCommand);
private:
CBody();
void ConstructL();
TInt NegotiateFormat(const TCurrentSoundFormatBuf& aFormat, RSoundSc& aDevice, TFormatData &aFormatData);
+
+ void StartPlayersAndUpdateState();
+ void StartRecordRequest();
+
+ const char *StateName() const;
+
+ TBool InRecordMode() const;
+ TBool InPlayMode() const;
+
+ TUint32 CurrentTimeInMsec() const;
+ TUint64 BytesPlayed64();
+
private:
RSoundSc iPlaySoundDevice;
+ RChunk iPlayChunk;//handle to the shared chunk
RSoundSc iRecordSoundDevice;
- RChunk iChunk;//handle to the shared chunk
+ RChunk iRecordChunk;//handle to the shared chunk
TState iState;
- CPlayer* iPlayers[KNumPlayers];//we need atleast two players for playing and one for recording
-
+
//Playing Properties
- TPlaySharedChunkBufConfig iBufferConfig;
- TInt iBufferIndex;
- TInt iCurrentPlayer;
+ TPlaySharedChunkBufConfig iPlayBufferConfig;
TInt iDeviceBufferLength;
+
//Stores the status of CDataPathPlayer
- TRequestStatus* iPlayerStatus;
+ TRequestStatus* iClientPlayStatus;
+ TPtrC8 iClientPlayData;
//Stores the status of CSoundDevPlayErrorReceiver
- TRequestStatus* iPlayErrorStatus;
- RBuf8 iBufferRemaining;
- TBool iHaveSecondPhaseData;
+ TRequestStatus* iClientPlayErrorStatus;
+ RBuf8 iConvertedPlayData;
+ RBuf8 iSavedTrailingData;
+
+ CPlayer* iPlayers[KPlaySharedChunkBuffers];
+ RFifo iFreePlayers;
+ RFifo iActivePlayRequestSizes;
+
TInt iRequestMinSize;
TUint iRequestMinMask;
@@ -483,23 +615,25 @@
TRecordSharedChunkBufConfig iRecordBufferConfig;
TInt iBufferOffset;
TInt iBufferLength;
- TPtrC8 iSecondPhaseData;
+
//Stores the status of CDataPathRecorder
- TRequestStatus* iRecorderStatus;
+ TRequestStatus* iClientRecordStatus;
//Stores the status of CSoundDevRecordErrorReceiver
- TRequestStatus* iRecordErrorStatus;
- TDes8* iData;//stores the data pointer from datapath recorder
- TInt iBytesPlayed;
-#ifdef SYMBIAN_SOUNDADAPTER_BYTESPLAYED
- TInt iFCFrequency;
+ TRequestStatus* iClientRecordErrorStatus;
+ TDes8* iClientRecordData;//stores the data pointer from datapath recorder
+ RBuf8 iBufferedRecordData; // Used if RSoundSc returns more data than current client request requires.
+
+ CRecorder* iRecorder; // We only need one recorder. The driver will buffer data for us.
+
+ TBool iUnderFlowReportedSinceLastPlayOrRecordRequest;
+
+ TUint64 iBytesPlayed;
+ TUint32 iNTickPeriodInUsec;
+ TUint32 iStartTime; // Time when previous driver PlayData completed (or first was issued) in msec
+ TUint32 iPauseTime; // Time when pause started in msec
+ TUint64 iPausedBytesPlayed;
+
+ TFormatData iPlayFormatData;
+ TFormatData iRecordFormatData;
+ };
#endif
- TUint32 iStartTime;
- TBool iTimerActive;
- TBool iFlushCalledDuringPause;
- TBool iPauseDeviceDriverOnNewData;
-
- TFormatData iPlayData;
- TFormatData iRecordData;
- };
-GLDEF_C void Panic(TSoundAdapterPanicCodes aPanicCode);//forward declaration
-#endif
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/group/BLD.INF
--- a/mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// Copyright (c) 2005-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:
-//
-
-
-
-PRJ_EXPORTS
-../inc/pcmprocessingunit.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mdf/pcmprocessingunit.h)
-
-// .iby
-TSU_MDF_PCMPROCESSINGUNIT.iby /epoc32/rom/include/tsu_mdf_pcmprocessingunit.iby
-
-PRJ_MMPFILES
-../MMPFiles/pcmprocessingunit.mmp
-
-PRJ_TESTMMPFILES
-PRJ_TESTEXPORTS
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,29 @@
+// Copyright (c) 2005-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:
+//
+
+
+
+PRJ_EXPORTS
+../inc/pcmprocessingunit.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mdf/pcmprocessingunit.h)
+
+// .iby
+TSU_MDF_PCMPROCESSINGUNIT.iby /epoc32/rom/include/tsu_mdf_pcmprocessingunit.iby
+
+PRJ_MMPFILES
+../MMPFiles/pcmprocessingunit.mmp
+
+PRJ_TESTMMPFILES
+PRJ_TESTEXPORTS
+
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/PU/video/group/bld.inf
--- a/mmdevicefw/mdfunittest/codecapi/PU/video/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdfunittest/codecapi/PU/video/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -16,13 +16,12 @@
PRJ_PLATFORMS
DEFAULT
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
../mmpfiles/VideoTestEncoderPU.mmp
../mmpfiles/VideoTestDecoderPU.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// .iby
TSU_MDF_VIDEOTESTPROCESSINGUNITS.iby /epoc32/rom/include/tsu_mdf_videotestprocessingunits.iby
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/audio/group/bld.inf
--- a/mmdevicefw/mdfunittest/codecapi/audio/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdfunittest/codecapi/audio/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -13,7 +13,7 @@
// Description:
//
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
../scripts/tsu_mdf_audiocodecs_01.script c:/tsu_mdf_audiocodecs_01.script
// Export test file
@@ -22,5 +22,5 @@
// .iby
TSU_MDF_AUDIOCODECS.iby /epoc32/rom/include/tsu_mdf_audiocodecs.iby
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
../mmpfiles/tsu_mdf_audiocodecs.mmp
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/codecapi/group/bld.inf
--- a/mmdevicefw/mdfunittest/codecapi/codecapi/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdfunittest/codecapi/codecapi/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -13,7 +13,7 @@
// Description:
//
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
../scripts/tsu_mdf_codecapi_01.script c:/tsu_mdf_codecapi_01.script
// Export test file
@@ -22,5 +22,5 @@
// .iby
TSU_MDF_CODECAPI.iby /epoc32/rom/include/tsu_mdf_codecapi.iby
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
../mmpfiles/tsu_mdf_codecapi.mmp
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/omxvorbis/group/bld.inf
--- a/mmdevicefw/mdfunittest/codecapi/omxvorbis/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdfunittest/codecapi/omxvorbis/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -13,7 +13,7 @@
// Description:
//
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
../scripts/tsu_mdf_omxvorbiscodecs_01.script c:/tsu_mdf_omxvorbiscodecs_01.script
// Export test file
@@ -23,6 +23,6 @@
// .iby
TSU_MDF_OMXVORBISCODECS.iby /epoc32/rom/include/tsu_mdf_omxvorbiscodecs.iby
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
../mmpfiles/tsu_mdf_omxvorbiscodecs.mmp
../mmpfiles/audiocodectestadapter.mmp
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/video/group/TSU_MDF_VIDEOCODECS.iby
--- a/mmdevicefw/mdfunittest/codecapi/video/group/TSU_MDF_VIDEOCODECS.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdfunittest/codecapi/video/group/TSU_MDF_VIDEOCODECS.iby Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// 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"
@@ -18,10 +18,14 @@
// debug build
-file=ABI_DIR\DEBUG_DIR\tsu_mdf_videocodecs.dll System\Libs\tsu_mdf_videocodecs.dll
+#include
data=EPOCROOT##epoc32\data\c\tsu_mdf_videocodecs_01.script tsu_mdf_videocodecs_01.script
data=EPOCROOT##epoc32\data\c\tsu_mdf_videocodecs_cov.script tsu_mdf_videocodecs_cov.script
data=EPOCROOT##epoc32\data\c\tsu_mdf_videocodecs_cov_panic.script tsu_mdf_videocodecs_cov_panic.script
+// Test files
+data=EPOCROOT##epoc32\data\c\mm\mmf\testfiles\mdf\clock.gif \mm\mmf\testfiles\mdf\clock.gif
+data=EPOCROOT##epoc32\data\c\mm\mmf\testfiles\mdf\decodervideotest.in \mm\mmf\testfiles\mdf\decodervideotest.in
+
#endif // TSU_MDF_VIDEOCODECS_IBY
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/codecapi/video/group/bld.inf
--- a/mmdevicefw/mdfunittest/codecapi/video/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/mdfunittest/codecapi/video/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// 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"
@@ -13,7 +13,7 @@
// Description:
//
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
../scripts/tsu_mdf_videocodecs_01.script c:/tsu_mdf_videocodecs_01.script
../scripts/tsu_mdf_videocodecs_cov.script c:/tsu_mdf_videocodecs_cov.script
../scripts/tsu_mdf_videocodecs_cov_panic.script c:/tsu_mdf_videocodecs_cov_panic.script
@@ -22,6 +22,7 @@
// .iby
TSU_MDF_VIDEOCODECS.iby /epoc32/rom/include/tsu_mdf_videocodecs.iby
+TSU_MDF_VIDEOCODECS_excl_test.iby /epoc32/rom/include/tsu_mdf_videocodecs_excl_test.iby
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
../mmpfiles/tsu_mdf_videocodecs.mmp
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/group/BLD.INF
--- a/mmdevicefw/mdfunittest/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-// Copyright (c) 2005-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:
-// bld.inf - Overall mdf UnitTest bld.inf file
-//
-//
-
-
-PRJ_PLATFORMS
-
-DEFAULT
-#ifdef SYMBIAN_MULTIMEDIA_CODEC_API
-#include "../codecapi/audio/group/bld.inf"
-#include "../codecapi/video/group/bld.inf"
-#include "../codecapi/omx/pcmcodec/group/bld.inf"
-#include "../codecapi/PU/pcmcodec/group/BLD.INF"
-#include "../codecapi/PU/video/group/bld.inf"
-#include "../codecapi/codecapi/group/bld.inf"
-#include "../codecapi/omxvorbis/group/bld.inf"
-#endif // SYMBIAN_MULTIMEDIA_CODEC_API
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/mdfunittest/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmdevicefw/mdfunittest/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,30 @@
+// Copyright (c) 2005-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:
+// bld.inf - Overall mdf UnitTest bld.inf file
+//
+//
+
+
+PRJ_PLATFORMS
+
+DEFAULT
+#ifdef SYMBIAN_MULTIMEDIA_CODEC_API
+#include "../codecapi/audio/group/bld.inf"
+#include "../codecapi/video/group/bld.inf"
+#include "../codecapi/omx/pcmcodec/group/bld.inf"
+#include "../codecapi/PU/pcmcodec/group/bld.inf"
+#include "../codecapi/PU/video/group/bld.inf"
+#include "../codecapi/codecapi/group/bld.inf"
+#include "../codecapi/omxvorbis/group/bld.inf"
+#endif // SYMBIAN_MULTIMEDIA_CODEC_API
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/speechrecogsupport/tsrc/ASR/group/bld.inf
--- a/mmdevicefw/speechrecogsupport/tsrc/ASR/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/speechrecogsupport/tsrc/ASR/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -17,14 +17,14 @@
PRJ_PLATFORMS
DEFAULT
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
// ASR TEst
../MmpFiles/TSU_MMF_ASRCL.mmp
../MmpFiles/CustomMmfASRController.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/TSU_MMF_ASRCL.script c:/tsu_mmf_asrcl.script
diff -r c36d67f77f75 -r eb1e5d7cc688 mmdevicefw/speechrecogsupport/tsrc/ASR/src/TSU_MMF_ASRCL.cpp
--- a/mmdevicefw/speechrecogsupport/tsrc/ASR/src/TSU_MMF_ASRCL.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmdevicefw/speechrecogsupport/tsrc/ASR/src/TSU_MMF_ASRCL.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -38,7 +38,7 @@
TRAPD(err, speechClient = CSpeechRecognitionUtility::NewL(*this, uid));
if (err != KErrNone)
{
- INFO_PRINTF1(_L("Failure Creating Speech Recognition Utility"));
+ INFO_PRINTF2(_L("Failure Creating Speech Recognition Utility and error is %d"), err);
return EFail;
}
delete speechClient;
@@ -78,7 +78,7 @@
CleanupStack::PopAndDestroy(speechClient));
if (err != KErrNone)
{
- INFO_PRINTF1(_L("Failure Creating Speech Recognition Utility"));
+ INFO_PRINTF2(_L("Failure Creating Speech Recognition Utility and the error is %d"), err);
return EFail;
}
return EPass;
diff -r c36d67f77f75 -r eb1e5d7cc688 mmhais/a3facl/group/multimedia_a3f_acl.mrp
--- a/mmhais/a3facl/group/multimedia_a3f_acl.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmhais/a3facl/group/multimedia_a3f_acl.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_a3f_acl.mrp
#
-# Copyright (c) 2007 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:
+#Copyright (c) Symbian Software Ltd 2007. All rights reserved.
#
component multimedia_a3f_acl
diff -r c36d67f77f75 -r eb1e5d7cc688 mmhais/a3fdevsoundcustomisation/group/multimedia_a3f_devsoundadaptationinfo.mrp
--- a/mmhais/a3fdevsoundcustomisation/group/multimedia_a3f_devsoundadaptationinfo.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmhais/a3fdevsoundcustomisation/group/multimedia_a3f_devsoundadaptationinfo.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_a3f_devsound.mrp
#
-# Copyright (c) 2007 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:
+#Copyright (c) Symbian Software Ltd 2007. All rights reserved.
#
component multimedia_a3f_devsoundadaptationinfo
diff -r c36d67f77f75 -r eb1e5d7cc688 mmhais/dvbhunittest/hai/dvbh/group/bld.inf
--- a/mmhais/dvbhunittest/hai/dvbh/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmhais/dvbhunittest/hai/dvbh/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -14,15 +14,16 @@
//
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
../group/tsu_dvbh_hai.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
../scripts/tsu_dvbh_hai.script c:/tsu_dvbh_hai.script
../scripts/tsu_dvbh_hai_panic_debug.script c:/tsu_dvbh_hai_panic_debug.script
// .iby
../group/tsu_dvbh_hai.iby /epoc32/rom/include/tsu_dvbh_hai.iby
+../group/tsu_dvbh_hai_excl_test.iby /epoc32/rom/include/tsu_dvbh_hai_excl_test.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 mmhais/dvbhunittest/hai/dvbh/group/tsu_dvbh_hai.iby
--- a/mmhais/dvbhunittest/hai/dvbh/group/tsu_dvbh_hai.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/mmhais/dvbhunittest/hai/dvbh/group/tsu_dvbh_hai.iby Fri Jul 09 12:23:13 2010 +0100
@@ -16,11 +16,8 @@
#ifndef TSU_DVBH_HAI_IBY
#define TSU_DVBH_HAI_IBY
-// debug build
-
-#include
-
-file=ABI_DIR\DEBUG_DIR\TSU_DVBH_HAI.dll Sys\bin\TSU_DVBH_HAI.dll
+//Testscripts & other ibys
+#include
data=EPOCROOT##epoc32\data\c\tsu_dvbh_hai.script tsu_dvbh_hai.script
data=EPOCROOT##epoc32\data\c\tsu_dvbh_hai_panic_debug.script tsu_dvbh_hai_panic_debug.script
diff -r c36d67f77f75 -r eb1e5d7cc688 mmhais/refacladapt/group/multimedia_a3f_refacladaptation.mrp
--- a/mmhais/refacladapt/group/multimedia_a3f_refacladaptation.mrp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmhais/refacladapt/group/multimedia_a3f_refacladaptation.mrp Fri Jul 09 12:23:13 2010 +0100
@@ -1,17 +1,6 @@
+#multimedia_a3f_refacladaptation.mrp
#
-# Copyright (c) 2007 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:
+#Copyright (c) Symbian Software Ltd 2007. All rights reserved.
#
component multimedia_a3f_refacladaptation
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/group/BLD.INF
--- a/mmlibs/mmfw/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-// Copyright (c) 2002-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:
-// Multimedia framework
-//
-//
-
-/**
-@file
-*/
-
-#ifdef SYMBIAN_VARIABLE_BITRATE_CODEC // use system wide flag to trigger model controller build
-#define SYMBIAN_MMF_MODEL_CONTROLLERS
-#endif
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// may add platform for OMAP, Helen etc
-DEFAULT
-
-PRJ_EXPORTS
-// Client utility Class API headers
-../inc/MdaAudioSamplePlayer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiosampleplayer.h)
-../inc/MdaAudioSampleEditor.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiosampleeditor.h)
-../inc/MdaAudioTonePlayer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiotoneplayer.h)
-../inc/MdaAudioOutputStream.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiooutputstream.h)
-../inc/MdaAudioInputStream.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudioinputstream.h)
-../inc/VideoPlayer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(videoplayer.h)
-../inc/VideoRecorder.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(videorecorder.h)
-../inc/MmfClntUtility.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmfclntutility.h)
-
-// Shared client/server headers
-../inc/mmf/common/MmfBase.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfbase.h)
-../inc/mmf/common/MmfAudio.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfaudio.h)
-../inc/mmf/common/MmfVideo.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfvideo.h)
-../inc/mmf/common/mmfvideoenums.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfvideoenums.h)
-../inc/mmf/common/MmfUtilities.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfutilities.h)
-../inc/mmf/common/MmfUtilities.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfutilities.inl)
-../inc/mmf/common/mmfhelper.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfhelper.h)
-../inc/mmf/common/mmcaf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmcaf.h)
-../inc/mmf/common/MmfFourCC.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmffourcc.h)
-../inc/mmf/common/MmfPanicCodes.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfpaniccodes.h)
-../inc/mmf/common/mmferrors.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmferrors.h)
-../inc/mmf/common/MmfMeta.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfmeta.h)
-../inc/mmf/common/MmfIpc.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipc.h)
-../inc/mmf/common/MmfIpc.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipc.inl)
-../inc/mmf/common/mmfipcserver.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipcserver.h)
-../inc/mmf/common/mmfipcserver.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipcserver.inl)
-../inc/mmf/common/mmfbase.hrh /epoc32/include/mmf/common/mmfbase.hrh
-
-// Shared headers for 3rd party controller & format
-../inc/mmf/server/mmfformat.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfformat.h)
-../inc/mmf/server/mmfformat.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfformat.inl)
-../inc/mmf/server/Mmfclip.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfclip.h)
-../inc/mmf/server/mmfdatabuffer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatabuffer.h)
-../inc/mmf/server/MmfFile.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmffile.h)
-../inc/mmf/server/MmfDes.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdes.h)
-../inc/mmf/server/mmfurl.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfurl.h)
-../inc/mmf/server/mmfbuffer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfbuffer.h)
-../inc/mmf/server/mmfdatasink.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatasink.h)
-../inc/mmf/server/mmfdatasource.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatasource.h)
-../inc/mmf/server/mmfdatasourcesink.hrh /epoc32/include/mmf/server/mmfdatasourcesink.hrh
-../inc/mmf/server/mmfbuffer.hrh SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfbuffer.hrh)
-../inc/mmf/server/mmfdatapath.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatapath.h)
-../inc/mmf/server/mmfdatapath2.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatapath2.h)
-../inc/mmf/server/mmfsubthreadbase.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfsubthreadbase.h)
-../inc/mmf/server/mmfsubthreadbaseimpl.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfsubthreadbaseimpl.h)
-../inc/mmf/server/MmfAudioOutput.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfaudiooutput.h)
-../inc/mmf/server/MmfAudioInput.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfaudioinput.h)
-../inc/mmf/server/mmfvideoframebuffer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfvideoframebuffer.h)
-../inc/mmf/server/mmfdatapathproxy.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatapathproxy.h)
-../inc/mmf/server/mmfdatapathproxyserver.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdatapathproxyserver.h)
-../inc/mmf/server/MmfCodec.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfcodec.h)
-../inc/mmf/server/mmfformatstandardcustominterfaces.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfformatstandardcustominterfaces.h)
-
-../inc/mmf/ControllerFramework/mmfcontroller.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontroller.h)
-../inc/mmf/ControllerFramework/mmfcontrollerextendeddata.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfcontrollerextendeddata.h)
-../inc/mmf/ControllerFramework/mmfcustomcommandparsermanager.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfcustomcommandparsermanager.h)
-../inc/mmf/ControllerFramework/mmfcontrollerpluginresolver.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerpluginresolver.h)
-../inc/mmf/ControllerFramework/taggeddataparser.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/taggeddataparser.h)
-../inc/mmf/ControllerFramework/mmfcontrollerframework.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerframework.h)
-../inc/mmf/ControllerFramework/mmfcontrollerframeworkclasses.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerframeworkclasses.h)
-../inc/mmf/ControllerFramework/mmfcontrollerframeworkbase.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerframeworkbase.h)
-../inc/mmf/ControllerFramework/mmfstandardcustomcommands.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfstandardcustomcommands.h)
-../inc/mmf/ControllerFramework/mmfstandardcustomcommandsimpl.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfstandardcustomcommandsimpl.h)
-../inc/mmf/ControllerFramework/mmfstandardcustomcommandsenums.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfstandardcustomcommandsenums.h)
-../inc/mmf/ControllerFramework/mmfdrmcustomcommands.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdrmcustomcommands.h)
-../inc/mmf/ControllerFramework/mmfdrmcustomcommandsenum.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdrmcustomcommandsenum.h)
-../inc/mmf/ControllerFramework/mmfdurationinfocustomcommands.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfdurationinfocustomcommands.h)
-../inc/mmf/ControllerFramework/mmfdurationinfocustomcommandsimpl.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdurationinfocustomcommandsimpl.h)
-../inc/mmf/ControllerFramework/mmfdurationinfocustomcommandsenums.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdurationinfocustomcommandsenums.h)
-../inc/mmf/mcustominterface.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mcustominterface.h)
-../inc/mmf/mcustomcommand.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mcustomcommand.h)
-
-// SecureDRM header
-../SecureDRM/inc/Client/MmfDrmPluginServerProxy.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdrmpluginserverproxy.h)
-
-#ifdef SYMBIAN_BUILD_GCE
-../inc/mmf/ControllerFramework/mmfvideosurfacecustomcommands.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfvideosurfacecustomcommands.h)
-../inc/videoplayer2.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(videoplayer2.h)
-../inc/surfaceeventhandler.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(surfaceeventhandler.h)
-../inc/mediaclientvideodisplay.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mediaclientvideodisplay.h)
-../inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/plugin/mmfmediaclientextdisplayinterface.h)
-../inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.hrh SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/plugin/mmfmediaclientextdisplayinterface.hrh)
-#endif
-
-#ifdef SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT
-../inc/mmf/ControllerFramework/mmfvideosubtitlecustomcommands.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfvideosubtitlecustomcommands.h)
-#endif
-
-// Plug-in ECom headers
-../inc/mmf/PLUGIN/mmfPluginInterfaceUIDs.hrh /epoc32/include/mmf/plugin/mmfplugininterfaceuids.hrh
-../inc/mmf/PLUGIN/mmfCodecImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfcodecimplementationuids.hrh
-../inc/mmf/PLUGIN/mmfFormatImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfformatimplementationuids.hrh
-../inc/mmf/PLUGIN/mmfControllerImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfcontrollerimplementationuids.hrh
-../inc/mmf/PLUGIN/mmfAudioIOInterfaceUIDs.hrh /epoc32/include/mmf/plugin/mmfaudioiointerfaceuids.hrh
-//Plug-in ECom headers located in same location as 7.0s
-//these headers were incorrectly located in 7.0s but to prevent build problems they are also
-//copied to the 7.0s location. Future releases cannot be guaranteed to use epoc32/include
-//for these files - it is recommended to use "\epoc32\include\mmf\plugin\"
-../inc/mmf/PLUGIN/mmfPluginInterfaceUIDs.hrh /epoc32/include/mmfplugininterfaceuids.hrh
-../inc/mmf/PLUGIN/mmfFormatImplementationUIDs.hrh /epoc32/include/mmfformatimplementationuids.hrh
-../inc/mmf/PLUGIN/mmfControllerImplementationUIDs.hrh /epoc32/include/mmfcontrollerimplementationuids.hrh
-../inc/mmf/PLUGIN/mmfAudioIOInterfaceUIDs.hrh /epoc32/include/mmfaudioiointerfaceuids.hrh
-
-//
-// export enough of the original MDA headers to support include of MdaImageConverter.h and MMF (no more)
-
-// Client low level API headers
-../inc/Mda/Client/Base.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/base.h)
-../inc/Mda/Client/Controller.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/controller.h)
-../inc/Mda/Client/Port.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/port.h)
-../inc/Mda/Client/Resource.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/resource.h)
-../inc/Mda/Client/Utility.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/client/utility.h)
-../inc/Mda/Client/Video.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/video.h)
-../inc/Mda/Client/Video.inl SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/video.inl)
-
-// Shared client/server headers
-../inc/Mda/Common/Base.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/base.h)
-../inc/Mda/Common/Base.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/base.inl)
-../inc/Mda/Common/Base.hrh SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/base.hrh)
-../inc/Mda/Common/Controller.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/common/controller.h)
-../inc/Mda/Common/Port.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/common/port.h)
-../inc/Mda/Common/Port.hrh /epoc32/include/mda/common/port.hrh
-../inc/Mda/Common/Resource.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/resource.h)
-../inc/Mda/Common/Resource.hrh /epoc32/include/mda/common/resource.hrh
-../inc/Mda/Common/Video.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/video.h)
-../inc/Mda/Common/Video.hrh /epoc32/include/mda/common/video.hrh
-../inc/Mda/Common/Video.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/video.inl)
-../inc/Mda/Common/Audio.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/audio.h)
-../inc/Mda/Common/Audio.hrh /epoc32/include/mda/common/audio.hrh
-../inc/Mda/Common/AudioStream.hrh /epoc32/include/mda/common/audiostream.hrh
-../inc/Mda/Common/GsmAudio.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/gsmaudio.h)
-../inc/Mda/Common/mdagsmwavcodec.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/common/mdagsmwavcodec.h)
-../inc/Mda/Common/GsmAudio.hrh /epoc32/include/mda/common/gsmaudio.hrh
-
-// end of old media server exports
-
-
-// Headers for reference components, will be added later
-// Headers for reference components
-
-// Documentation, will be added later
-
-// Romkit include files
-../inc/mmf.iby /epoc32/rom/include/mmf.iby
-../SecureDRM/inc/MmfDrmPlugin.iby /epoc32/rom/include/mmfdrmplugin.iby
-
-PRJ_MMPFILES
-
-// server base classes
-../MMPFiles/server/mmfserverbaseclasses.mmp
-
-// Secure DRM server proxy in which MmfControllerFramework depends on
-../SecureDRM/MMPFiles/Client/MmfDrmPluginServerProxy.mmp
-
-//Controller Framework
-../MMPFiles/ControllerFramework/MmfControllerFramework.mmp
-../MMPFiles/ControllerFramework/MmfStandardCustomCommands.mmp
-
-//utils
-../MMPFiles/utils/audioutils.mmp
-
-// Secure DRM server which depends on MmfControllerFramework
-../SecureDRM/MMPFiles/Server/MmfDrmPluginServer.mmp
-
-// Add codecs common code on which the codec plugins depend
-#include "../Codecs/Group/bld_include.inf"
-
-
-// Add ../Midi build instructions - NOTE - Must be inserted here in MMP list
-#include "../MIDI/group/bld_include.inf"
-
-PRJ_MMPFILES
-
-// Client shared dlls
-../MMPFiles/client/MediaClient.mmp
-../MMPFiles/client/MediaClientUtility.mmp
-../MMPFiles/client/MediaClientAudio.mmp
-../MMPFiles/client/MediaClientAudioStream.mmp
-../MMPFiles/client/MediaClientAudioInputStream.mmp
-#ifdef SYMBIAN_BUILD_GCE
-../MMPFiles/client/mediaclientvideodisplay.mmp
-#endif
-../MMPFiles/client/MediaClientVideo.mmp
-
-//plugin
-../MMPFiles/plugin_common/MmfStdSourceAndSinkPlugin.mmp
-../MMPFiles/plugin_common/MmfAudioController.mmp //replaces wav controller
-../MMPFiles/plugin_common/MMFLinearAudioCodecs.mmp
-../MMPFiles/plugin_common/Gsm610.mmp
-../MMPFiles/plugin_common/mmfaudiooutput.mmp
-../MMPFiles/plugin_common/mmfaudioinput.mmp
-../MMPFiles/plugin_common/MMFFormatBaseClasses.mmp
-
-#ifdef SYMBIAN_USE_MMF_RUF_RECOGNIZER
-../Recogniser/mmpfiles/mmruf.mmp
-#else
-// Now build the MMF recogniser
-../MMPFiles/Recognizer/RecMmf.mmp
-#endif
-
-// Effects
-#include "../Effect/group/Effect.inf"
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,236 @@
+// Copyright (c) 2002-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:
+// Multimedia framework
+//
+//
+
+/**
+@file
+*/
+
+#ifdef SYMBIAN_VARIABLE_BITRATE_CODEC // use system wide flag to trigger model controller build
+#define SYMBIAN_MMF_MODEL_CONTROLLERS
+#endif
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// may add platform for OMAP, Helen etc
+DEFAULT
+
+PRJ_EXPORTS
+// Client utility Class API headers
+../inc/MdaAudioSamplePlayer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiosampleplayer.h)
+../inc/MdaAudioSampleEditor.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiosampleeditor.h)
+../inc/MdaAudioTonePlayer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiotoneplayer.h)
+../inc/MdaAudioOutputStream.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudiooutputstream.h)
+../inc/MdaAudioInputStream.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mdaaudioinputstream.h)
+../inc/VideoPlayer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(videoplayer.h)
+../inc/VideoRecorder.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(videorecorder.h)
+../inc/MmfClntUtility.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmfclntutility.h)
+
+// Shared client/server headers
+../inc/mmf/common/MmfBase.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfbase.h)
+../inc/mmf/common/MmfAudio.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfaudio.h)
+../inc/mmf/common/MmfVideo.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfvideo.h)
+../inc/mmf/common/mmfvideoenums.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfvideoenums.h)
+../inc/mmf/common/MmfUtilities.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfutilities.h)
+../inc/mmf/common/MmfUtilities.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfutilities.inl)
+../inc/mmf/common/mmfhelper.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfhelper.h)
+../inc/mmf/common/mmcaf.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmcaf.h)
+../inc/mmf/common/MmfFourCC.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmffourcc.h)
+../inc/mmf/common/MmfPanicCodes.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfpaniccodes.h)
+../inc/mmf/common/mmferrors.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmferrors.h)
+../inc/mmf/common/MmfMeta.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfmeta.h)
+../inc/mmf/common/MmfIpc.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipc.h)
+../inc/mmf/common/MmfIpc.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipc.inl)
+../inc/mmf/common/mmfipcserver.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipcserver.h)
+../inc/mmf/common/mmfipcserver.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfipcserver.inl)
+../inc/mmf/common/mmfbase.hrh /epoc32/include/mmf/common/mmfbase.hrh
+
+// Shared headers for 3rd party controller & format
+../inc/mmf/server/mmfformat.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfformat.h)
+../inc/mmf/server/mmfformat.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfformat.inl)
+../inc/mmf/server/Mmfclip.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfclip.h)
+../inc/mmf/server/mmfdatabuffer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatabuffer.h)
+../inc/mmf/server/MmfFile.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmffile.h)
+../inc/mmf/server/MmfDes.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdes.h)
+../inc/mmf/server/mmfurl.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfurl.h)
+../inc/mmf/server/mmfbuffer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfbuffer.h)
+../inc/mmf/server/mmfdatasink.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatasink.h)
+../inc/mmf/server/mmfdatasource.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatasource.h)
+../inc/mmf/server/mmfdatasourcesink.hrh /epoc32/include/mmf/server/mmfdatasourcesink.hrh
+../inc/mmf/server/mmfbuffer.hrh SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfbuffer.hrh)
+../inc/mmf/server/mmfdatapath.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatapath.h)
+../inc/mmf/server/mmfdatapath2.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatapath2.h)
+../inc/mmf/server/mmfsubthreadbase.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfsubthreadbase.h)
+../inc/mmf/server/mmfsubthreadbaseimpl.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfsubthreadbaseimpl.h)
+../inc/mmf/server/MmfAudioOutput.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfaudiooutput.h)
+../inc/mmf/server/MmfAudioInput.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfaudioinput.h)
+../inc/mmf/server/mmfvideoframebuffer.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfvideoframebuffer.h)
+../inc/mmf/server/mmfdatapathproxy.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdatapathproxy.h)
+../inc/mmf/server/mmfdatapathproxyserver.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdatapathproxyserver.h)
+../inc/mmf/server/MmfCodec.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfcodec.h)
+../inc/mmf/server/mmfformatstandardcustominterfaces.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfformatstandardcustominterfaces.h)
+
+../inc/mmf/ControllerFramework/mmfcontroller.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontroller.h)
+../inc/mmf/ControllerFramework/mmfcontrollerextendeddata.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfcontrollerextendeddata.h)
+../inc/mmf/ControllerFramework/mmfcustomcommandparsermanager.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfcustomcommandparsermanager.h)
+../inc/mmf/ControllerFramework/mmfcontrollerpluginresolver.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerpluginresolver.h)
+../inc/mmf/ControllerFramework/taggeddataparser.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/taggeddataparser.h)
+../inc/mmf/ControllerFramework/mmfcontrollerframework.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerframework.h)
+../inc/mmf/ControllerFramework/mmfcontrollerframeworkclasses.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerframeworkclasses.h)
+../inc/mmf/ControllerFramework/mmfcontrollerframeworkbase.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfcontrollerframeworkbase.h)
+../inc/mmf/ControllerFramework/mmfstandardcustomcommands.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfstandardcustomcommands.h)
+../inc/mmf/ControllerFramework/mmfstandardcustomcommandsimpl.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfstandardcustomcommandsimpl.h)
+../inc/mmf/ControllerFramework/mmfstandardcustomcommandsenums.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfstandardcustomcommandsenums.h)
+../inc/mmf/ControllerFramework/mmfdrmcustomcommands.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdrmcustomcommands.h)
+../inc/mmf/ControllerFramework/mmfdrmcustomcommandsenum.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdrmcustomcommandsenum.h)
+../inc/mmf/ControllerFramework/mmfdurationinfocustomcommands.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/common/mmfdurationinfocustomcommands.h)
+../inc/mmf/ControllerFramework/mmfdurationinfocustomcommandsimpl.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdurationinfocustomcommandsimpl.h)
+../inc/mmf/ControllerFramework/mmfdurationinfocustomcommandsenums.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfdurationinfocustomcommandsenums.h)
+../inc/mmf/mcustominterface.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mcustominterface.h)
+../inc/mmf/mcustomcommand.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mcustomcommand.h)
+
+// SecureDRM header
+../SecureDRM/inc/Client/MmfDrmPluginServerProxy.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdrmpluginserverproxy.h)
+
+#ifdef SYMBIAN_BUILD_GCE
+../inc/mmf/ControllerFramework/mmfvideosurfacecustomcommands.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfvideosurfacecustomcommands.h)
+../inc/videoplayer2.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(videoplayer2.h)
+../inc/surfaceeventhandler.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(surfaceeventhandler.h)
+../inc/mediaclientvideodisplay.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mediaclientvideodisplay.h)
+../inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/plugin/mmfmediaclientextdisplayinterface.h)
+../inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.hrh SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/plugin/mmfmediaclientextdisplayinterface.hrh)
+#endif
+
+#ifdef SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT
+../inc/mmf/ControllerFramework/mmfvideosubtitlecustomcommands.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/common/mmfvideosubtitlecustomcommands.h)
+#endif
+
+// Plug-in ECom headers
+../inc/mmf/PLUGIN/mmfPluginInterfaceUIDs.hrh /epoc32/include/mmf/plugin/mmfplugininterfaceuids.hrh
+../inc/mmf/PLUGIN/mmfCodecImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfcodecimplementationuids.hrh
+../inc/mmf/PLUGIN/mmfFormatImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfformatimplementationuids.hrh
+../inc/mmf/PLUGIN/mmfControllerImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfcontrollerimplementationuids.hrh
+../inc/mmf/PLUGIN/mmfAudioIOInterfaceUIDs.hrh /epoc32/include/mmf/plugin/mmfaudioiointerfaceuids.hrh
+//Plug-in ECom headers located in same location as 7.0s
+//these headers were incorrectly located in 7.0s but to prevent build problems they are also
+//copied to the 7.0s location. Future releases cannot be guaranteed to use epoc32/include
+//for these files - it is recommended to use "\epoc32\include\mmf\plugin\"
+../inc/mmf/PLUGIN/mmfPluginInterfaceUIDs.hrh /epoc32/include/mmfplugininterfaceuids.hrh
+../inc/mmf/PLUGIN/mmfFormatImplementationUIDs.hrh /epoc32/include/mmfformatimplementationuids.hrh
+../inc/mmf/PLUGIN/mmfControllerImplementationUIDs.hrh /epoc32/include/mmfcontrollerimplementationuids.hrh
+../inc/mmf/PLUGIN/mmfAudioIOInterfaceUIDs.hrh /epoc32/include/mmfaudioiointerfaceuids.hrh
+
+//
+// export enough of the original MDA headers to support include of MdaImageConverter.h and MMF (no more)
+
+// Client low level API headers
+../inc/Mda/Client/Base.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/base.h)
+../inc/Mda/Client/Controller.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/controller.h)
+../inc/Mda/Client/Port.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/port.h)
+../inc/Mda/Client/Resource.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/resource.h)
+../inc/Mda/Client/Utility.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/client/utility.h)
+../inc/Mda/Client/Video.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/video.h)
+../inc/Mda/Client/Video.inl SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/client/video.inl)
+
+// Shared client/server headers
+../inc/Mda/Common/Base.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/base.h)
+../inc/Mda/Common/Base.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/base.inl)
+../inc/Mda/Common/Base.hrh SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/base.hrh)
+../inc/Mda/Common/Controller.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/common/controller.h)
+../inc/Mda/Common/Port.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/common/port.h)
+../inc/Mda/Common/Port.hrh /epoc32/include/mda/common/port.hrh
+../inc/Mda/Common/Resource.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/resource.h)
+../inc/Mda/Common/Resource.hrh /epoc32/include/mda/common/resource.hrh
+../inc/Mda/Common/Video.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/video.h)
+../inc/Mda/Common/Video.hrh /epoc32/include/mda/common/video.hrh
+../inc/Mda/Common/Video.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/video.inl)
+../inc/Mda/Common/Audio.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/audio.h)
+../inc/Mda/Common/Audio.hrh /epoc32/include/mda/common/audio.hrh
+../inc/Mda/Common/AudioStream.hrh /epoc32/include/mda/common/audiostream.hrh
+../inc/Mda/Common/GsmAudio.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mda/common/gsmaudio.h)
+../inc/Mda/Common/mdagsmwavcodec.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mda/common/mdagsmwavcodec.h)
+../inc/Mda/Common/GsmAudio.hrh /epoc32/include/mda/common/gsmaudio.hrh
+
+// end of old media server exports
+
+
+// Headers for reference components, will be added later
+// Headers for reference components
+
+// Documentation, will be added later
+
+// Romkit include files
+../inc/mmf.iby /epoc32/rom/include/mmf.iby
+../SecureDRM/inc/MmfDrmPlugin.iby /epoc32/rom/include/mmfdrmplugin.iby
+
+PRJ_MMPFILES
+
+// server base classes
+../MMPFiles/server/mmfserverbaseclasses.mmp
+
+// Secure DRM server proxy in which MmfControllerFramework depends on
+../SecureDRM/MMPFiles/Client/MmfDrmPluginServerProxy.mmp
+
+//Controller Framework
+../MMPFiles/ControllerFramework/MmfControllerFramework.mmp
+../MMPFiles/ControllerFramework/MmfStandardCustomCommands.mmp
+
+//utils
+../MMPFiles/utils/audioutils.mmp
+
+// Secure DRM server which depends on MmfControllerFramework
+../SecureDRM/MMPFiles/Server/MmfDrmPluginServer.mmp
+
+// Add codecs common code on which the codec plugins depend
+#include "../Codecs/Group/bld_include.inf"
+
+
+// Add ../Midi build instructions - NOTE - Must be inserted here in MMP list
+#include "../MIDI/group/bld_include.inf"
+
+PRJ_MMPFILES
+
+// Client shared dlls
+../MMPFiles/client/MediaClient.mmp
+../MMPFiles/client/MediaClientUtility.mmp
+../MMPFiles/client/MediaClientAudio.mmp
+../MMPFiles/client/MediaClientAudioStream.mmp
+../MMPFiles/client/MediaClientAudioInputStream.mmp
+#ifdef SYMBIAN_BUILD_GCE
+../MMPFiles/client/mediaclientvideodisplay.mmp
+#endif
+../MMPFiles/client/MediaClientVideo.mmp
+
+//plugin
+../MMPFiles/plugin_common/MmfStdSourceAndSinkPlugin.mmp
+../MMPFiles/plugin_common/MmfAudioController.mmp //replaces wav controller
+../MMPFiles/plugin_common/MMFLinearAudioCodecs.mmp
+../MMPFiles/plugin_common/Gsm610.mmp
+../MMPFiles/plugin_common/mmfaudiooutput.mmp
+../MMPFiles/plugin_common/mmfaudioinput.mmp
+../MMPFiles/plugin_common/MMFFormatBaseClasses.mmp
+
+#ifdef SYMBIAN_USE_MMF_RUF_RECOGNIZER
+../Recogniser/mmpfiles/mmruf.mmp
+#else
+// Now build the MMF recogniser
+../MMPFiles/Recognizer/RecMmf.mmp
+#endif
+
+// Effects
+#include "../Effect/group/Effect.inf"
+
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h
--- a/mmlibs/mmfw/inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h Fri Jul 09 12:23:13 2010 +0100
@@ -23,7 +23,19 @@
#include
-#define MMF_MEDIA_CLIENT_EXT_DISPLAY_INTERFACE_V2
+#define MMF_MEDIA_CLIENT_EXT_DISPLAY_INTERFACE_V3
+
+/**
+
+Enumeration used to indicate external display current connection status
+
+**/
+enum TExtDisplayConnectionProviderConnType
+ {
+ EExtDisplayConnectionProviderConnTypeDisconnected,
+ EExtDisplayConnectionProviderConnTypeHdmi,
+ EExtDisplayConnectionProviderConnTypeAnalog
+ };
/**
@@ -33,7 +45,7 @@
class MExtDisplayConnectionProviderCallback
{
public:
- virtual void MedcpcExtDisplayNotifyConnected(TBool aExtDisplayConnected) = 0;
+ virtual void MedcpcExtDisplayNotifyConnected(TExtDisplayConnectionProviderConnType aExtDisplayConnType) = 0;
};
/**
@@ -63,15 +75,14 @@
A reference to an object that can be used by the provider to send events back to the client.
*/
virtual void SetExtDisplayConnectionProviderCallback(MExtDisplayConnectionProviderCallback& aCallback) = 0;
-
+
/**
- Function to be implemented by connection provider that indicates whether an external display is
- connected.
+ Function to be implemented by connection provider that indicates the external display connection type
- @return ETrue if external display is connected otherwise EFalse.
+ @return One of values defined in TExtDisplayConnectionProviderConnType
*/
- virtual TBool ExtDisplayConnected() = 0;
-
+ virtual TExtDisplayConnectionProviderConnType ExtDisplayConnType() = 0;
+
/**
Function to be implemented by connection provider that indicates the display id that should
be used for the external display port.
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.cpp
--- a/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -96,3 +96,10 @@
DEBUG_PRINTF("CMediaClientExtDisplayHandler::DisplaySizeInPixels ---");
return iScreen->SizeInPixels();
}
+
+void CMediaClientExtDisplayHandler::UpdateWindow()
+ {
+ DEBUG_PRINTF("CMediaClientExtDisplayHandler::UpdateWindow +++");
+ iExternalDisplayWindow.SetExtent(TPoint(0,0), iScreen->SizeInPixels());
+ DEBUG_PRINTF("CMediaClientExtDisplayHandler::UpdateWindow ---");
+ }
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.h
--- a/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.h Fri Jul 09 12:23:13 2010 +0100
@@ -31,6 +31,7 @@
RWindowBase* Window();
TSize DisplaySizeInPixels();
+ void UpdateWindow();
~CMediaClientExtDisplayHandler();
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/src/Plugin/Codec/audio/MMFImaAdPcmToPcm16Codec.h
--- a/mmlibs/mmfw/src/Plugin/Codec/audio/MMFImaAdPcmToPcm16Codec.h Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/src/Plugin/Codec/audio/MMFImaAdPcmToPcm16Codec.h Fri Jul 09 12:23:13 2010 +0100
@@ -22,6 +22,7 @@
#include
const TUint KMaxImaAdpcmBlockAlign = 2048;
+const TUint KImaAdpcmBitsPerSample = 4;
//mono so iImaAdpcmTo16Pcm constructed with 1 (mono)
class CMMFImaAdPcmPcm16Codec : public CMMFCodec, public MMMFDevSoundCustomInterfaceFileBlockLength
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/src/Plugin/Codec/audio/MmfimaadpcmTopcm16codec.cpp
--- a/mmlibs/mmfw/src/Plugin/Codec/audio/MmfimaadpcmTopcm16codec.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/src/Plugin/Codec/audio/MmfimaadpcmTopcm16codec.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -233,7 +233,7 @@
User::Leave(KErrArgument);
}
- const TUint KImaAdpcmBitsPerSample = 4;
+
// SamplesPerBlock = [(BlockAlign - 4 * Channels) * 8] / (BitsPerSample * Channels) + 1
iSamplesPerBlock = (iBlockAlign - 4 * iChannels) * 8 / (KImaAdpcmBitsPerSample * iChannels) + 1;
}
@@ -252,7 +252,9 @@
}
void CMMFImaAdPcmPcm16Codec::SetFileBlockLength(TUint aBlockAlign)
- {
- iBlockAlign = aBlockAlign;
+ {
+ iBlockAlign = aBlockAlign;
+ iSamplesPerBlock = (iBlockAlign - 4 * iChannels) * 8 / (KImaAdpcmBitsPerSample * iChannels) + 1;
+
}
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfcharacterisationvalidation/clientutils/video/play/group/bld.inf
--- a/mmlibs/mmfw/tsrc/mmfcharacterisationvalidation/clientutils/video/play/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/tsrc/mmfcharacterisationvalidation/clientutils/video/play/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// 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"
@@ -22,4 +22,6 @@
../scripts/char_mmf_videoplay.script c:/char/mmf/char_mmf_videoplay.script
../scripts/char_mmf_videoplay_notification.script c:/char/mmf/char_mmf_videoplay_notification.script
../scripts/char_mmf_videoplay.ini c:/char/mmf/char_mmf_videoplay.ini
+
../group/char_mmf_videoplay.iby /epoc32/rom/include/char_mmf_videoplay.iby
+../group/char_mmf_videoplay_excl_test.iby /epoc32/rom/include/char_mmf_videoplay_excl_test.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfcharacterisationvalidation/clientutils/video/play/group/char_mmf_videoplay.iby
--- a/mmlibs/mmfw/tsrc/mmfcharacterisationvalidation/clientutils/video/play/group/char_mmf_videoplay.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/tsrc/mmfcharacterisationvalidation/clientutils/video/play/group/char_mmf_videoplay.iby Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// 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"
@@ -16,8 +16,7 @@
#ifndef CHAR_MMF_VIDEOPLAY_IBY
#define CHAR_MMF_VIDEOPLAY_IBY
-// debug build
-file=ABI_DIR\DEBUG_DIR\char_mmf_videoplay.dll System\Libs\char_mmf_videoplay.dll
+#include
// ini
data=EPOCROOT##epoc32\data\c\char\mmf\char_mmf_videoplay.ini \char\mmf\char_mmf_videoplay.ini
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TestConverter.cpp
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TestConverter.cpp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TestConverter.cpp Fri Jul 09 12:23:13 2010 +0100
@@ -1653,9 +1653,8 @@
INFO_PRINTF1( _L("TestConverter : Config"));
TVerdict ret = EFail;
- TPtrC fromFilename, fromFilename2;
- if ((!GetStringFromConfig(_L("SectionOne"), _L("cropAudioFile"), fromFilename))
- || (!GetStringFromConfig(_L("SectionOne"), _L("PCM16"), fromFilename2))
+ TPtrC fromFilename;
+ if ((!GetStringFromConfig(_L("SectionOne"), _L("PCM16"), fromFilename))
|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), iToFilename))
|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio11"), iToFilename2)))
return EInconclusive;
@@ -1671,7 +1670,7 @@
iAudioSettings.iSampleRate = KInvalidNumber;
iAudioSettings.iChannels = KInvalidNumber;
//to keep CCover happy
- converter->OpenL(fromFilename2, iToFilename2) ;
+ converter->OpenL(fromFilename, iToFilename2) ;
//&location, iFormat, iCodec, &iAudioSettings);
}
else
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/SDevSound/group/BLD.INF
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/SDevSound/group/BLD.INF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-PRJ_TESTMMPFILES
-
-// Secure DEVSOUND
-../mmpfiles/TSI_MMF_SDEVSOUND.mmp
-
-PRJ_TESTEXPORTS
-// Secure DevSound scripts
-../scriptFiles/TSI_MMF_SDEVSOUND_01.script c:/tsi_mmf_sdevsound_01.script
-../scriptFiles/TSI_MMF_SDEVSOUND_01_Panic.script c:/tsi_mmf_sdevsound_01_panic.script
-../scriptFiles/TSI_MMF_SDEVSOUND_NOCAP.script c:/tsi_mmf_sdevsound_nocap.script
-../scriptFiles/TSI_MMF_SDEVSOUND_MMDDCAP.script c:/tsi_mmf_sdevsound_mmddcap.script
-../scriptFiles/TSI_MMF_SDEVSOUND_UECAP.script c:/tsi_mmf_sdevsound_uecap.script
-../scriptFiles/TSI_MMF_SDEVSOUND_01_PREEMPTION.script c:/tsi_mmf_sdevsound_01_preemption.script
-
-// Secure DEVSOUND data files
-../data/PCM_08_16_m.raw c:/sdevsoundinttestdata/pcm_08_16_m.raw
-../data/8bitmPcm.wav c:/sdevsoundinttestdata/8bitmpcm.wav
-../data/mainTst.wav c:/sdevsoundinttestdata/maintst.wav
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/SDevSound/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/SDevSound/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -0,0 +1,33 @@
+// Copyright (c) 2004-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:
+//
+
+PRJ_TESTMMPFILES
+
+// Secure DEVSOUND
+../mmpfiles/TSI_MMF_SDEVSOUND.mmp
+
+PRJ_TESTEXPORTS
+// Secure DevSound scripts
+../scriptFiles/TSI_MMF_SDEVSOUND_01.script c:/tsi_mmf_sdevsound_01.script
+../scriptFiles/TSI_MMF_SDEVSOUND_01_Panic.script c:/tsi_mmf_sdevsound_01_panic.script
+../scriptFiles/TSI_MMF_SDEVSOUND_NOCAP.script c:/tsi_mmf_sdevsound_nocap.script
+../scriptFiles/TSI_MMF_SDEVSOUND_MMDDCAP.script c:/tsi_mmf_sdevsound_mmddcap.script
+../scriptFiles/TSI_MMF_SDEVSOUND_UECAP.script c:/tsi_mmf_sdevsound_uecap.script
+../scriptFiles/TSI_MMF_SDEVSOUND_01_PREEMPTION.script c:/tsi_mmf_sdevsound_01_preemption.script
+
+// Secure DEVSOUND data files
+../data/PCM_08_16_m.raw c:/sdevsoundinttestdata/pcm_08_16_m.raw
+../data/8bitmPcm.wav c:/sdevsoundinttestdata/8bitmpcm.wav
+../data/mainTst.wav c:/sdevsoundinttestdata/maintst.wav
\ No newline at end of file
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/SecureDRM/data/videocontent2.xml
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/SecureDRM/data/videocontent2.xml Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-
-
-
-
- c:\securedrm\xvidonly.avi
-
-
- audvid
-
-
- audvidId
-
-
- video/x-msvideo
-
-
-
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/SecureDRM/data/videorights2.xml
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/SecureDRM/data/videorights2.xml Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-
-
-
-
-
- 1000
-
-
-
- 1
-
-
- 1
-
-
- 2999
-
-
-
-
-
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/SecureDRM/data/xvidonly.avi
Binary file mmlibs/mmfw/tsrc/mmfintegrationtest/SecureDRM/data/xvidonly.avi has changed
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFACLNTU.DEF
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFACLNTU.DEF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
- ?NewTestSuiteL@@YAPAVCTestSuite@@XZ @ 1 NONAME ; class CTestSuite * __cdecl NewTestSuiteL(void)
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFCTLFRMU.DEF
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFCTLFRMU.DEF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?NewTestSuiteL@@YAPAVCTestSuite@@XZ @ 1 NONAME ; class CTestSuite * __cdecl NewTestSuiteL(void)
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFCUSTOMCOMMANDSU.DEF
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFCUSTOMCOMMANDSU.DEF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
- ?GetAudioQuality@RTSIMmfCustomCommands@@QAEHAAVTDes8@@@Z @ 1 NONAME ; public: int __thiscall RTSIMmfCustomCommands::GetAudioQuality(class TDes8 &)
- ?HandleRequest@CTSIMmfCustomCommandParser@@UAEXAAVTMMFMessage@@@Z @ 2 NONAME ; public: virtual void __thiscall CTSIMmfCustomCommandParser::HandleRequest(class TMMFMessage &)
- ?NewL@CTSIMmfCustomCommandParser@@SAPAV1@VTUid@@@Z @ 3 NONAME ; public: static class CTSIMmfCustomCommandParser * __cdecl CTSIMmfCustomCommandParser::NewL(class TUid)
- ?NewL@RTSIMmfCustomCommands@@SAPAV1@AAVRMMFController@@VTUid@@@Z @ 4 NONAME ; public: static class RTSIMmfCustomCommands * __cdecl RTSIMmfCustomCommands::NewL(class RMMFController &,class TUid)
- ?NewLC@CTSIMmfCustomCommandParser@@SAPAV1@VTUid@@@Z @ 5 NONAME ; public: static class CTSIMmfCustomCommandParser * __cdecl CTSIMmfCustomCommandParser::NewLC(class TUid)
- ?NewLC@RTSIMmfCustomCommands@@SAPAV1@AAVRMMFController@@VTUid@@@Z @ 6 NONAME ; public: static class RTSIMmfCustomCommands * __cdecl RTSIMmfCustomCommands::NewLC(class RMMFController &,class TUid)
- ?SetAudioQuality@RTSIMmfCustomCommands@@QAEHABVTDesC8@@@Z @ 7 NONAME ; public: int __thiscall RTSIMmfCustomCommands::SetAudioQuality(class TDesC8 const &)
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFVCLNTU.DEF
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/bwins/TSI_MMFVCLNTU.DEF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?NewTestSuiteL@@YAPAVCTestSuite@@XZ @ 1 NONAME ; class CTestSuite * __cdecl NewTestSuiteL(void)
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devsound/group/bld.inf
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devsound/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/devsound/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -16,12 +16,12 @@
PRJ_PLATFORMS
DEFAULT
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
// DEVSOUND
../mmpfiles/tsi_mmf_devsound.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/tsi_mmf_devsound_debug.script c:/mm/tsi_mmf_devsound_debug.script
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/group/bld.inf
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/group/bld.inf Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/group/bld.inf Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// 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"
@@ -16,12 +16,12 @@
PRJ_PLATFORMS
DEFAULT
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
// DEVVIDEO
../mmpfiles/tsi_mmf_devvideo.mmp
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
// test scripts
../scripts/tsi_mmf_devvideo_00.script c:/mm/tsi_mmf_devvideo_00.script
@@ -40,3 +40,4 @@
// iby files
../group/tsi_mmf_devvideo.iby /epoc32/rom/include/tsi_mmf_devvideo.iby
+../group/tsi_mmf_devvideo_excl_test.iby /epoc32/rom/include/tsi_mmf_devvideo_excl_test.iby
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/group/tsi_mmf_devvideo.iby
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/group/tsi_mmf_devvideo.iby Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/group/tsi_mmf_devvideo.iby Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// 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"
@@ -16,16 +16,14 @@
#ifndef TSI_MMF_DEVVIDEO_IBY
#define TSI_MMF_DEVVIDEO_IBY
-#include
-
-file=ABI_DIR\DEBUG_DIR\tsi_mmf_devvideo.dll System\Libs\tsi_mmf_devvideo.dll
+#include
// DevVideo script files
data=epocroot##epoc32\data\c\mm\tsi_mmf_devvideo_00.script \tsi_mmf_devvideo_00.script
data=epocroot##epoc32\data\c\mm\tsi_mmf_devvideo_01.script \tsi_mmf_devvideo_01.script
data=epocroot##epoc32\data\c\mm\tsi_mmf_devvideo_02.script \tsi_mmf_devvideo_02.script
data=epocroot##epoc32\data\c\mm\tsi_mmf_devvideo_alloc.script \tsi_mmf_devvideo_alloc.script
-data=epocroot##epoc32\data\c\mm\tsi_mmf_devvideo.ini \tsi_mmf_devvideo.ini
+data=epocroot##epoc32\data\c\mm\tsi_mmf_devvideo.ini \mm\tsi_mmf_devvideo.ini
// DevVideo data files
data=EPOCROOT##epoc32\data\c\tsi_mmf_devvideo\xvid_decframe.mp4v \tsi_mmf_devvideo\xvid_decframe.mp4v
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/mmpfiles/tsi_mmf_devvideo.mmp
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/mmpfiles/tsi_mmf_devvideo.mmp Thu Jun 24 10:37:45 2010 +0100
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/mmpfiles/tsi_mmf_devvideo.mmp Fri Jul 09 12:23:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-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"
@@ -33,7 +33,7 @@
SOURCE tsi_mmf_devvideo_play.cpp
SOURCE tsi_mmf_devvideo_record.cpp
-USERINCLUDE ../src
+USERINCLUDE ../inc
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
@@ -49,4 +49,3 @@
SMPSAFE
-SMPSAFE
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_play.h
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_play.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-// Copyright (c) 2005-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:
-// Declaration of test step classes for DevVideoPlay.
-//
-//
-
-
-#ifndef TSI_MMF_DEVVIDEOPLAY_H
-#define TSI_MMF_DEVVIDEOPLAY_H
-
-#include
-#include
-
-#include "tsi_mmf_devvideo_stepbase.h"
-
-/**
- *
- * RTestStepDevVideoPlayBase
- * - base class for all DevVideoPlay test steps.
- *
- */
-class RTestStepDevVideoPlayBase : public RTestStepDevVideoBase, public MMMFDevVideoPlayObserver
- {
-public:
- RTestStepDevVideoPlayBase(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // Executes events of DevVideoPlay
- void Fsm(TMmfDevVideoPlayEvents aDevVideoPlayEvent);
- // from RTestStep, implementation to be used by all tests
- virtual TVerdict DoTestStepPreambleL();
- virtual TVerdict DoTestStepPostambleL();
- // Set the Input and output video formats for Decode
- TInt SetInputOutputFormatsL();
- // check the file header information
- void CheckHeaderInfoL();
-
- // from MMMFDevVideoPlayObserver
- virtual void MdvpoNewBuffers();
- virtual void MdvpoReturnPicture(TVideoPicture* aPicture);
- virtual void MdvpoSupplementalInformation(const TDesC8& aData,
- const TTimeIntervalMicroSeconds& aTimestamp,
- const TPictureId& aPictureId);
- virtual void MdvpoPictureLoss();
- virtual void MdvpoPictureLoss(const TArray& aPictures);
- virtual void MdvpoSliceLoss(TUint aFirstMacroblock, TUint aNumMacroblocks, const TPictureId& aPicture);
- virtual void MdvpoReferencePictureSelection(const TDesC8& aSelectionData);
- virtual void MdvpoTimedSnapshotComplete(TInt aError,
- TPictureData* aPictureData,
- const TTimeIntervalMicroSeconds& aPresentationTimestamp,
- const TPictureId& aPictureId);
- virtual void MdvpoNewPictures();
- virtual void MdvpoFatalError(TInt aError);
- virtual void MdvpoInitComplete(TInt aError);
- virtual void MdvpoStreamEnd();
-
-protected:
- CMMFDevVideoPlay* iMMFDevVideoPlay;
- THwDeviceId iDecoderHwDeviceId;
- TUid iDecoderUid;
- TInt iTotalBytesRead;
- TBool iNewPictures;
- TBool iInputEnd;
- TBool iStreamEnd;
- };
-
-
-// Positive Tests
-
-/**
- *
- * RTestDevVideoPlaySimple
- * - Play a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoPlaySimple : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlaySimple* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoPlaySimple(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- };
-
-/**
- *
- * RTestDevVideoListVideoDecoders
- * - Get a list of available video decoders.
- *
- */
-class RTestDevVideoListVideoDecoders : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoListVideoDecoders* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoListVideoDecoders(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- };
-
-/**
- *
- * RTestDevVideoListVideoPostProcessors
- * - Get a list of available video post-processors.
- *
- */
-class RTestDevVideoListVideoPostProcessors : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoListVideoPostProcessors* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoListVideoPostProcessors(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- };
-
-/**
- *
- * RTestDevVideoPlayConfHwDev
- * - Configure and reconfigure the video HwDevice and play a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoPlayConfHwDev : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayConfHwDev* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // Executes events of DevVideoPlay
- void Fsm(TMmfDevVideoPlayEvents aDevVideoPlayEvent);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
- // from MMMFDevVideoPlayObserver
- virtual void MdvpoFatalError(TInt aError);
- virtual void MdvpoInitComplete(TInt aError);
- virtual void MdvpoStreamEnd();
-
-private:
- RTestDevVideoPlayConfHwDev(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- };
-
-/**
- *
- * RTestDevVideoPlayAlloc
- * - Alloc test to load a video HwDevice to play a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoPlayAlloc : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayAlloc* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- void VideoPlayAllocL();
- void DoTestL();
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
- // from MMMFDevVideoPlayObserver
- virtual void MdvpoNewBuffers();
- virtual void MdvpoNewPictures();
- virtual void MdvpoFatalError(TInt aError);
- virtual void MdvpoInitComplete(TInt aError);
- virtual void MdvpoStreamEnd();
-
-private:
- RTestDevVideoPlayAlloc(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- TBool iSchedulerStarted;
- };
-
-/**
- *
- * RTestDevVideoPlayStop
- * - Play/stop playing a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoPlayStop : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayStop* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // Executes events of DevVideoPlay
- void Fsm(TMmfDevVideoPlayEvents aDevVideoPlayEvent);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
- // from MMMFDevVideoPlayObserver
- virtual void MdvpoNewBuffers();
- virtual void MdvpoNewPictures();
-
- // timer handling
- static TInt Check(TAny* aObject);
- void DoCheck();
-private:
- RTestDevVideoPlayStop(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
-protected:
- CPeriodic* iTimer;
- TInt iCheckCounter;
- TBool iNewBuffers;
- TBool iIsActive;
- };
-
-/**
- *
- * RTestDevVideoPlayPause
- * - Play/pause the play of a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoPlayPause : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayPause* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // Executes events of DevVideoPlay
- void Fsm(TMmfDevVideoPlayEvents aDevVideoPlayEvent);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
- // from MMMFDevVideoPlayObserver
- virtual void MdvpoNewBuffers();
- virtual void MdvpoNewPictures();
-
- // timer handling
- static TInt Check(TAny* aObject);
- void DoCheck();
-private:
- RTestDevVideoPlayPause(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
-protected:
- CPeriodic* iTimer;
- TInt iCheckCounter;
- TBool iNewBuffers;
- TBool iIsActive;
- };
-
-/**
- *
- * RTestDevVideoPlayDecodePlaybackPos
- * - Set and get the decoding and playback position and play the video file.
- *
- */
-class RTestDevVideoPlayDecodePlaybackPos : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayDecodePlaybackPos* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
- // to handle the callback and get the positions
- virtual void MdvpoNewPictures();
- virtual void MdvpoStreamEnd();
-private:
- RTestDevVideoPlayDecodePlaybackPos(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- TTimeIntervalMicroSeconds iInitDecodingPos;
- TTimeIntervalMicroSeconds iInitPlaybackPos;
- TTimeIntervalMicroSeconds iFinalDecodingPos;
- TTimeIntervalMicroSeconds iFinalPlaybackPos;
- };
-
-/**
- *
- * RTestDevVideoPlayDecoderInfo
- * - Get information about a specified decoder.
- *
- */
-class RTestDevVideoPlayDecoderInfo : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayDecoderInfo* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoPlayDecoderInfo(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- TBool ValidDecoderInfo(CVideoDecoderInfo* aInfo);
- };
-
-// Negative Tests
-
-/**
- *
- * RTestDevVideoPlayUidHwDev
- * - Play a video file, encoded using XviD codec, specifying invalid Uid of video HwDevice.
- *
- */
-class RTestDevVideoPlayUidHwDev : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayUidHwDev* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoPlayUidHwDev(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- };
-
-/**
- *
- * RTestDevVideoPlayCorruptFile
- * - Play a corrupted video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoPlayCorruptFile : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayCorruptFile* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoPlayCorruptFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- };
-
-/**
- *
- * RTestDevVideoPlayWithoutVideoType
- * - Open and play video file without specifying input / output video types.
- *
- */
-class RTestDevVideoPlayWithoutVideoType : public RTestStepDevVideoPlayBase
- {
-public:
- static RTestDevVideoPlayWithoutVideoType* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoPlayWithoutVideoType(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aDecoderUid);
- };
-
-#endif // TSI_MMF_DEVVIDEOPLAY_H
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_record.h
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_record.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
-// Copyright (c) 2005-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:
-// Declaration of test step classes for DevVideoRecord.
-//
-//
-
-
-#ifndef TSI_MMF_DEVVIDEORECORD_H
-#define TSI_MMF_DEVVIDEORECORD_H
-
-#include
-
-#include "tsi_mmf_devvideo_stepbase.h"
-
-
-/**
- *
- * RTestStepDevVideoRecordBase
- * - base class for all DevVideoRecord test steps.
- *
- */
-class RTestStepDevVideoRecordBase : public RTestStepDevVideoBase, public MMMFDevVideoRecordObserver
- {
-public:
- RTestStepDevVideoRecordBase(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // Executes events of DevSound
- void Fsm(TMmfDevVideoRecordEvents aDevVideoRecordEvent);
- // from RTestStep, implementation to be used by all tests
- virtual TVerdict DoTestStepPreambleL();
- virtual TVerdict DoTestStepPostambleL();
- // Set the Input and output video formats for Encode
- TInt SetInputOutputFormatsL();
- // from MMMFDevVideoRecordObserver
- virtual void MdvroReturnPicture(TVideoPicture* aPicture);
- virtual void MdvroSupplementalInfoSent();
- virtual void MdvroNewBuffers();
- virtual void MdvroFatalError(TInt aError);
- virtual void MdvroInitializeComplete(TInt aError);
- virtual void MdvroStreamEnd();
-
-protected:
- CMMFDevVideoRecord* iMMFDevVideoRecord;
- THwDeviceId iEncoderHwDeviceId;
- TUid iEncoderUid;
- CFbsBitmap* iBitmap;
- HBufC8* iDataBuf;
- TVideoOutputBuffer* iOutputBuf;
- TInt iCallback1;
- TInt iCallback2;
- };
-
-// Positive Tests
-
-/**
- *
- * RTestDevVideoRecordSimple
- * - Record a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoRecordSimple : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordSimple* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
- // from MMMFDevVideoRecordObserver
- virtual void MdvroNewBuffers();
-
-private:
- RTestDevVideoRecordSimple(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoRecordUidHwDev
- * - Record a video file, encoded using XviD codec, specifying Uid of video HwDevice.
- * - Record a video file, encoded using XviD codec, specifying invalid Uid of video HwDevice.
- *
- */
-class RTestDevVideoRecordUidHwDev : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordUidHwDev* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TTestType aTestType, const TUid& aEncoderUid);
- void Fsm(TMmfDevVideoRecordEvents aDevVideoRecordEvent);
- // from RTestStep
- virtual TVerdict DoTestStepL();
- // from MMMFDevVideoRecordObserver
- virtual void MdvroNewBuffers();
-
-private:
- RTestDevVideoRecordUidHwDev(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TTestType aTestType, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoListVideoEncoders
- * - Get a list of available video encoders.
- *
- */
-class RTestDevVideoListVideoEncoders : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoListVideoEncoders* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoListVideoEncoders(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoListVideoPreProcessors
- * - Get a list of available video pre-processors.
- *
- */
-class RTestDevVideoListVideoPreProcessors : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoListVideoPreProcessors* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoListVideoPreProcessors(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoRecordConfHwDev
- * - Configure and reconfigure the video HwDevice and record a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoRecordConfHwDev : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordConfHwDev* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
- // from MMMFDevVideoRecordObserver
- virtual void MdvroNewBuffers();
-
-private:
- RTestDevVideoRecordConfHwDev(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoRecordAlloc
- * - Alloc test to load a video HwDevice to record a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoRecordAlloc : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordAlloc* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- void VideoRecordAllocL();
- void DoTestL();
-
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
- // from MMMFDevVideoRecordObserver
- virtual void MdvroNewBuffers();
- virtual void MdvroFatalError(TInt aError);
-
-private:
- RTestDevVideoRecordAlloc(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- TBool iSchedulerStarted;
- };
-
-/**
- *
- * RTestDevVideoRecordWithAudioVideoTypes
- * - Open and record video file specifying video and audio types.
- *
- */
-class RTestDevVideoRecordWithAudioVideoTypes : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordWithAudioVideoTypes* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoRecordWithAudioVideoTypes(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoRecordWithoutVideoType
- * - Open and record video file without specifying video type.
- *
- */
-class RTestDevVideoRecordWithoutVideoType : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordWithoutVideoType* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- void Fsm(TMmfDevVideoRecordEvents aDevVideoRecordEvent);
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoRecordWithoutVideoType(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-
-/**
- *
- * RTestDevVideoRecordStop
- * - Record/stop recording a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoRecordStop : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordStop* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // Executes events of DevSound
- void Fsm(TMmfDevVideoRecordEvents aDevVideoRecordEvent);
- // from RTestStep
- virtual TVerdict DoTestStepL();
- // from MMMFDevVideoRecordObserver
- virtual void MdvroFatalError(TInt aError);
- virtual void MdvroInitializeComplete(TInt aError);
- virtual void MdvroStreamEnd();
-
-private:
- RTestDevVideoRecordStop(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoRecordPause
- * - Record/pause recording of a video file, encoded using XviD codec.
- *
- */
-class RTestDevVideoRecordPause : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordPause* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // Executes events of DevSound
- void Fsm(TMmfDevVideoRecordEvents aDevVideoRecordEvent);
- // from RTestStep
- virtual TVerdict DoTestStepL();
- // from MMMFDevVideoRecordObserver
- virtual void MdvroFatalError(TInt aError);
- virtual void MdvroInitializeComplete(TInt aError);
- virtual void MdvroStreamEnd();
-
-private:
- RTestDevVideoRecordPause(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoRecordRecordingPos
- * - Get current recording position of the video file.
- *
- */
-class RTestDevVideoRecordRecordingPos : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordRecordingPos* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
- // from MMMFDevVideoRecordObserver
- virtual void MdvroNewBuffers();
-
-private:
- RTestDevVideoRecordRecordingPos(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- };
-
-/**
- *
- * RTestDevVideoRecordEncoderInfo
- * - Get information about a specified encoder.
- *
- */
-class RTestDevVideoRecordEncoderInfo : public RTestStepDevVideoRecordBase
- {
-public:
- static RTestDevVideoRecordEncoderInfo* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- // from RTestStep
- virtual TVerdict DoTestStepL();
-
-private:
- RTestDevVideoRecordEncoderInfo(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, const TUid& aEncoderUid);
- TBool ValidEncoderInfoL(CVideoEncoderInfo* aInfo);
- };
-
-#endif // TSI_MMF_DEVVIDEORECORD_H
-
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_stepbase.h
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_stepbase.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-// Copyright (c) 2005-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:
-// This file contains step class declaration for DevVideo integration tests.
-//
-//
-
-
-#ifndef TSI_MMF_DEVVIDEO_STEP_H
-#define TSI_MMF_DEVVIDEO_STEP_H
-
-// system includes
-#include
-#include
-
-// forward declaration
-class CTestSuiteDevVideo;
-
-// size constant declarations
-const TInt KNameBufSize = 25;
-const TInt KSizeBuf = 256;
-const TInt KHeaderBytesSize = 1024;
-const TInt KInputBufferSize = 8192;
-
-// Test compressed video format utility function
-static inline CCompressedVideoFormat* GetTestCVFormatL( const TDesC8& aMimeType )
- {
- CCompressedVideoFormat* temp = CCompressedVideoFormat::NewL( aMimeType, KNullDesC8);
- return temp;
- }
-
-// Position constants
-const TInt KTestPosition = 12345;
-const TInt KTestDecodePosition = 256;
-const TInt KTestPlayPosition = 512;
-const TInt KTestRecordPosition = 100000;
-
-// Video header information
-const TVideoDataUnitType KTestDataUnitType = EDuCodedPicture;
-const TVideoDataUnitEncapsulation KTestDataUnitEncap = EDuElementaryStream;
-const TVideoPictureHeader::THeaderOptions KTestPictureHeaderOptions = TVideoPictureHeader::EPresentationTimestamp;
-const TVideoInputBuffer::TVideoBufferOptions KTestInputBufferOptions = TVideoInputBuffer::EPresentationTimestamp;
-const TInt KTestInputBufferTimestamp = 1000000;
-_LIT8(KTestInputBufferData, "I'm a lumber jack and I'm OK!");
-
-// Invalid video HwDevice UIDs
-const TUid KInvalidUidDevVideoTestDecodeHwDevice = {0x1001F7D3};
-const TUid KInvalidUidDevVideoTestEncodeHwDevice = {0x1001F7D3};
-
-// unsupported Video formats
-const TUncompressedVideoFormat KTestPostProcInfoNegativeFormat = {EYuvRawData};
-
-// Conversion matrices
-const TYuvConversionMatrix KTestYuvMatrix1 = {{1, 2, 3}, {4, 5, 6, 7, 8, 9, 10, 11, 12}, {13, 14, 15}};
-const TYuvConversionMatrix KTestYuvMatrix2 = {{-1, -2, -3}, {-4, -5, -6, -7, -8, -9, -10, -11, -12}, {-13, -14, -15}};
-const TYuvFormat KTestYuvFormat1 = {EYuvRange0, EYuv420Chroma1, EYuvDataPlanar, const_cast (&KTestYuvMatrix1), const_cast (&KTestYuvMatrix2), 10, 20};
-
-// XviD Devices stuff //
-// XviD HwDevice UIDs
-const TUid KUidDevVideoXvidDecodeHwDeviceUid = {0x10273775};
-const TUid KUidDevVideoXvidEncodeHwDeviceUid = {0x10273777};
-// XviD HwDevice PUs
-const TUid KUidTestVideoPuXvidDecoderDevice = {0x102737C4};
-const TUid KUidTestVideoPuXvidEncoderDevice = {0x102737C2};
-//const TUid KUidTestVideoPuXvidDecoderDevice = {0x10273775};
-//const TUid KUidTestVideoPuXvidEncoderDevice = {0x10273777};
-
-//
-// DevVideo test Devices stuff //
-// DevVideo Test HwDevice UIDs
-const TUid KUidTestVideoDecodeHwDeviceAdapter = {0x102737ED};
-const TUid KUidTestVideoEncodeHwDeviceAdapter = {0x102737EB};
-const TUid KUidDevVideoTestDecodeHwDevice1 = {0x101F7D93};
-const TUid KUidDevVideoTestEncodeHwDevice1 = {0x101FFA02};
-// DevVideo Test HwDevice PUs
-const TUid KUidTestVideoDecodeStubPU = {0x102737E6};
-const TUid KUidTestVideoEncodeStubPU = {0x102737E4};
-//
-
-// -- Decoder Info
-const TUint32 KXvidDecoderInfoCount = 1;
-_LIT8(KXvidDecoderMimeType, "video/mp4v-es2");
-_LIT8(KTestDecoderMimeType, "video/x-symbiantest");
-_LIT(KXvidDecoderInfoManufacturer, "Symbian Ltd.");
-_LIT8(KXvidDecoderInfoCSInfo, "Coded by Symbian");
-_LIT8(KXvidDecoderInfoISInfo, "Implemented by Symbian");
-const TInt KXvidDecoderInfoVersionMaj = 0;
-const TInt KXvidDecoderInfoVersionMin = 1;
-const TInt KXvidDecoderInfoVersionBuild = 1;
-const TInt KXvidDecoderInfoMaxPicSizeX = 640;
-const TInt KXvidDecoderInfoMaxPicSizeY = 480;
-const TInt KXvidDecoderInfoMaxPicRate = 30;
-
-// -- Encoder Info
-const TUint32 KXvidEncoderInfoCount = 1;
-_LIT8(KXvidEncoderMimeType, "video/mp4v-es2");
-_LIT8(KTestEncoderMimeType, "video/x-symbiantest");
-_LIT(KXvidEncoderInfoManufacturer, "Symbian Ltd.");
-_LIT8(KXvidEncoderInfoCSInfo, "Coded by Symbian");
-_LIT8(KXvidEncoderInfoISInfo, "Implemented by Symbian");
-const TInt KXvidEncoderInfoVersionMaj = 0;
-const TInt KXvidEncoderInfoVersionMin = 1;
-const TInt KXvidEncoderInfoVersionBuild = 1;
-const TInt KXvidEncoderInfoMaxSizeX = 640;
-const TInt KXvidEncoderInfoMaxSizeY = 480;
-const TReal KXvidEncoderInfoMaxRate = 30.0;
-const TUint KXvidEncoderInfoMaxUEPLevels = 1;
-const TUint KXvidEncoderInfoMaxBitrate = KMaxTUint32;
-const TUint KXvidEncoderInfoMaxILSSteps = 1;
-const TUint32 KXvidEncoderInfoPictureOptions = 0;
-const TUint KXvidNumBitrateLayers = 1;
-const TVideoDataUnitType KXvidUnitType1 = EDuCodedPicture;
-const TVideoDataUnitEncapsulation KXvidEncapType1 = EDuElementaryStream;
-const TInt KXvidEncoderInfoMaxPicSizeX = 640;
-const TInt KXvidEncoderInfoMaxPicSizeY = 480;
-const TReal KXvidEncoderInfoMaxPicRate = 30.0;
-
-// Test compressed XviD video format utility function
-static inline CCompressedVideoFormat* GetXvidCVFormatL()
- {
- CCompressedVideoFormat* temp = CCompressedVideoFormat::NewL( KXvidDecoderMimeType, KNullDesC8 );
- return temp;
- }
-
-// local function to get the drive name
-TAny GetDriveName(TDes& aFilename);
-
-// DevVideoPlay events
-enum TMmfDevVideoPlayEvents
- {
- EDevVideoPlayInit = 0,
- EDevVideoPlayStart
- };
-
-// DevVideoRecord events
-enum TMmfDevVideoRecordEvents
- {
- EDevVideoRecordInit = 0,
- EDevVideoRecordStart
- };
-
-// Type of test whether it is normal test or considers Uid, for example
-enum TTestType
- {
- ENormalTest = 0,
- EUidTest, // Specifies whether a test uses Uid or not, during initialization.
- EInvalidUidTest, // Specifies whether a test uses invalid Uid for initialization.
- ENoVideoTypeTest // Specifies a test with no video type set.
- };
-
-/**
- *
- * RTestStepDevVideoBase
- * - base class for all test steps.
- *
- */
-class RTestStepDevVideoBase : public RTestStep
- {
-public:
- RTestStepDevVideoBase();
-
- // Set the suite name
- void SetTestSuite(const CTestSuiteDevVideo* aTestSuite);
-
-protected:
- // Stores error values for testing
- TInt iError;
-
- // Section name for retrieving filename
- TBuf iSectName;
-
- // Key name for retrieving filename
- TBuf iKeyName;
-
- // Active Scheduler
- CActiveScheduler* iActiveScheduler;
-
- // Pointer to suite which owns this test
- const CTestSuiteDevVideo* iTestSuiteDevVideo;
-
- // Filename of video file
- TBuf iFilename;
-
- // Creating and opening the video file for playing and recording
- RFile iFile;
-
- // Handle to a file server session
- RFs iFs;
-
- // Whether video HwDevice is reconfigured or not
- TBool iReConfigure;
-
- // Keep track on number of times MdvroStreamEnd/MdvroStreamEnd callback is called
- TUint iEndCount;
-
- TTestType iTestType;
- };
-
-#endif // TSI_MMF_DEVVIDEO_STEP_H
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_suite.h
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/devvideo/src/tsi_mmf_devvideo_suite.h Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-// Copyright (c) 2005-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:
-// This file contains suite class declaration for DevVideo integration tests.
-//
-//
-
-
-#ifndef TSI_MMF_DEVVIDEO_SUITE_H
-#define TSI_MMF_DEVVIDEO_SUITE_H
-
-// forward declaration
-class CTestSuite;
-
-/**
- *
- * CTestSuiteDevVideo
- * - Test suite class
- *
- */
-class CTestSuiteDevVideo : public CTestSuite
- {
-public:
- virtual ~CTestSuiteDevVideo();
-
- // from CTestSuite
- // Creates all the test steps and stores them inside CTestSuiteDevVideo
- void InitialiseL();
-
- // from CTestSuite, gets test suite version
- TPtrC GetVersion() const;
-
- // from CTestSuite, adds a test step into the suite
- void AddTestStepL(RTestStepDevVideoBase* ptrTestStep);
- };
-
-#endif // TSI_MMF_DEVVIDEO_SUITE_H
diff -r c36d67f77f75 -r eb1e5d7cc688 mmlibs/mmfw/tsrc/mmfintegrationtest/eabi/TSI_MMFACLNTU.DEF
--- a/mmlibs/mmfw/tsrc/mmfintegrationtest/eabi/TSI_MMFACLNTU.DEF Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,567 +0,0 @@
-EXPORTS
- _Z13NewTestSuiteLv @ 1 NONAME
- _ZTI14CCallBackTimer @ 2 NONAME ; ##
- _ZTI15CRightsDatabase @ 3 NONAME ; ##
- _ZTI16CTestMmfAclntUrl @ 4 NONAME ; ##
- _ZTI17CTestMmfAclntCrop @ 5 NONAME ; ##
- _ZTI17CTestMmfAclntDesc @ 6 NONAME ; ##
- _ZTI17CTestMmfAclntFile @ 7 NONAME ; ##
- _ZTI17CTestMmfAclntStep @ 8 NONAME ; ##
- _ZTI17CTestMmfAclntTone @ 9 NONAME ; ##
- _ZTI17CWavDecodeUtility @ 10 NONAME ; ##
- _ZTI18CDelayedMethodCall @ 11 NONAME ; ##
- _ZTI18CTestMmfAclntSuite @ 12 NONAME ; ##
- _ZTI18CTestMmfFormatRead @ 13 NONAME ; ##
- _ZTI19CTestMmfAclntDelete @ 14 NONAME ; ##
- _ZTI19CTestMmfAclntDoConv @ 15 NONAME ; ##
- _ZTI19CTestMmfAclntNoLoad @ 16 NONAME ; ##
- _ZTI19CTestMmfAclntRecDes @ 17 NONAME ; ##
- _ZTI19CTestMmfAclntRecUrl @ 18 NONAME ; ##
- _ZTI19CTestMmfAclntRecord @ 19 NONAME ; ##
- _ZTI20CTestMmfAclntARN1301 @ 20 NONAME ; ##
- _ZTI20CTestMmfAclntARN1302 @ 21 NONAME ; ##
- _ZTI20CTestMmfAclntARN1303 @ 22 NONAME ; ##
- _ZTI20CTestMmfAclntARN1304 @ 23 NONAME ; ##
- _ZTI20CTestMmfAclntARN1311 @ 24 NONAME ; ##
- _ZTI20CTestMmfAclntARN1312 @ 25 NONAME ; ##
- _ZTI20CTestMmfAclntARN1313 @ 26 NONAME ; ##
- _ZTI20CTestMmfAclntARN1314 @ 27 NONAME ; ##
- _ZTI20CTestMmfAclntARN1321 @ 28 NONAME ; ##
- _ZTI20CTestMmfAclntARN1322 @ 29 NONAME ; ##
- _ZTI20CTestMmfAclntARN1323 @ 30 NONAME ; ##
- _ZTI20CTestMmfAclntARN1324 @ 31 NONAME ; ##
- _ZTI20CTestMmfAclntARN8011 @ 32 NONAME ; ##
- _ZTI20CTestMmfAclntARN8012 @ 33 NONAME ; ##
- _ZTI20CTestMmfAclntARN8013 @ 34 NONAME ; ##
- _ZTI20CTestMmfAclntARN8014 @ 35 NONAME ; ##
- _ZTI20CTestMmfAclntARN8015 @ 36 NONAME ; ##
- _ZTI20CTestMmfAclntARN8016 @ 37 NONAME ; ##
- _ZTI20CTestMmfAclntARN8021 @ 38 NONAME ; ##
- _ZTI20CTestMmfAclntARN8022 @ 39 NONAME ; ##
- _ZTI20CTestMmfAclntARN8023 @ 40 NONAME ; ##
- _ZTI20CTestMmfAclntARN8024 @ 41 NONAME ; ##
- _ZTI20CTestMmfAclntARN8025 @ 42 NONAME ; ##
- _ZTI20CTestMmfAclntARN8026 @ 43 NONAME ; ##
- _ZTI20CTestMmfAclntARN8101 @ 44 NONAME ; ##
- _ZTI20CTestMmfAclntARN8102 @ 45 NONAME ; ##
- _ZTI20CTestMmfAclntARN8103 @ 46 NONAME ; ##
- _ZTI20CTestMmfAclntARN8104 @ 47 NONAME ; ##
- _ZTI20CTestMmfAclntARN8105 @ 48 NONAME ; ##
- _ZTI20CTestMmfAclntARN8106 @ 49 NONAME ; ##
- _ZTI20CTestMmfAclntARN8107 @ 50 NONAME ; ##
- _ZTI20CTestMmfAclntARN8108 @ 51 NONAME ; ##
- _ZTI20CTestMmfAclntARN9001 @ 52 NONAME ; ##
- _ZTI20CTestMmfAclntARN9002 @ 53 NONAME ; ##
- _ZTI20CTestMmfAclntARN9003 @ 54 NONAME ; ##
- _ZTI20CTestMmfAclntARN9004 @ 55 NONAME ; ##
- _ZTI20CTestMmfAclntARN9005 @ 56 NONAME ; ##
- _ZTI20CTestMmfAclntARN9006 @ 57 NONAME ; ##
- _ZTI20CTestMmfAclntARN9007 @ 58 NONAME ; ##
- _ZTI20CTestMmfAclntARN9008 @ 59 NONAME ; #