mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/recorder/openmaxalaudioencoderitftests.cpp
--- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/recorder/openmaxalaudioencoderitftests.cpp Fri Sep 17 08:33:15 2010 +0300
+++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/recorder/openmaxalaudioencoderitftests.cpp Mon Oct 04 00:51:56 2010 +0300
@@ -19,6 +19,7 @@
#include <e32svr.h>
#include <StifParser.h>
#include <StifTestInterface.h>
+#include <strings.h>
#include "openmaxaltestmodule.h"
// EXTERNAL DATA STRUCTURES
@@ -77,7 +78,15 @@
XAAudioEncoderSettings setting;
TUint value(0);
TInt i(0);
- TInt numItems;
+ TInt numItems = -1;
+ void* param = (void*)&setting;
+ void* itfPtr = (void*) m_AudEncItf;
+
+ status = CheckForNull(aItem, itfPtr);
+ RET_ERR_IF_ERR(status);
+
+ status = CheckForNull(aItem, param);
+ RET_ERR_IF_ERR(status);
status = aItem.GetNextInt(numItems);
@@ -138,7 +147,7 @@
if(m_AudEncItf)
{
res = (*m_AudEncItf)->SetEncoderSettings(
- m_AudEncItf, &setting);
+ XAAudioEncoderItf(itfPtr), (XAAudioEncoderSettings*)param);
status = res;
}
else
@@ -148,15 +157,30 @@
return status;
}
-TInt COpenMAXALTestModule::al_audioencoderitf_GetEncoderSettings( CStifItemParser& /*aItem*/ )
+TInt COpenMAXALTestModule::al_audioencoderitf_GetEncoderSettings( CStifItemParser& aItem )
{
TInt status(KErrNone);
+ TInt status_check(KErrNone);
XAresult res;
XAAudioEncoderSettings setting;
+ TUint value(0);
+ TInt i(0);
+ TInt numItems;
+ TPtrC check;
+
+ void* param = (void*)&setting;
+ void* itfPtr = (void*) m_AudEncItf;
+
+ status = CheckForNull(aItem, itfPtr);
+ RET_ERR_IF_ERR(status);
+
+ status = CheckForNull(aItem, param);
+ RET_ERR_IF_ERR(status);
+
if(m_AudEncItf)
{
res = (*m_AudEncItf)->GetEncoderSettings(
- m_AudEncItf, &setting);
+ XAAudioEncoderItf(itfPtr), (XAAudioEncoderSettings*)param);
iLog->Log(_L("GetEncoderSettings"));
iLog->Log(_L("GetEncoderSettings value[%d]"),setting.encoderId);
iLog->Log(_L("GetEncoderSettings value[%d]"),setting.channelsIn);
@@ -177,5 +201,90 @@
{
status = KErrNotFound;
}
- return status;
+ status_check = aItem.GetNextString(check);
+
+ if(status_check == KErrNone)
+ {
+ HBufC8* buf = HBufC8::NewL(check.Length()+1);
+ CleanupStack::PushL(buf);
+ TPtr8 des = buf->Des();
+ des.Copy(check);
+ if(strcasecmp((const char*)des.PtrZ(),"check") == NULL)
+ {
+ status = aItem.GetNextInt(numItems);
+ while((numItems != 0) && (status == KErrNone))
+ {
+ status = aItem.GetNextInt(value);
+ if(!status)
+ {
+ switch(i)
+ {
+ case 0:
+ if(!(setting.encoderId == value))
+ status_check = KErrGeneral;
+ break;
+
+ case 1:
+ if(!(setting.channelsIn == value))
+ status_check = KErrGeneral;
+ break;
+ case 2:
+ if(!(setting.channelsOut == value))
+ status_check = KErrGeneral;
+ break;
+ case 3:
+ if(!(setting.sampleRate == value))
+ status_check = KErrGeneral;
+ break;
+ case 4:
+ if(!(setting.bitRate == value))
+ status_check = KErrGeneral;
+ break;
+ case 5:
+ if(!(setting.bitsPerSample == value))
+ status_check = KErrGeneral;
+ break;
+ case 6:
+ if(!(setting.rateControl == value))
+ status_check = KErrGeneral;
+ break;
+ case 7:
+ if(!(setting.profileSetting == value))
+ status_check = KErrGeneral;
+ break;
+ case 8:
+ if(!(setting.levelSetting == value))
+ status_check = KErrGeneral;
+ break;
+ case 9:
+ if(!(setting.channelMode == value))
+ status_check = KErrGeneral;
+ break;
+ case 10:
+ if(!(setting.streamFormat == value))
+ status_check = KErrGeneral;
+ break;
+ case 11:
+ if(!(setting.encodeOptions == value))
+ status_check = KErrGeneral;
+ break;
+ case 12:
+ if(!(setting.blockAlignment == value))
+ status_check = KErrGeneral;
+ break;
+ default:
+ break;
+ }
+ }
+ i++;
+ numItems--;
+ }
+
+ }
+ CleanupStack::PopAndDestroy(buf);
+ }
+ if(status_check == KErrNotFound)
+ status_check = KErrNone;
+
+ return status | status_check;
}