# HG changeset patch # User hgs # Date 1275092788 18000 # Node ID 2ed61feeead60bdb457624a6af0b720fa91f7509 # Parent b67dd1fc57c57a82627babff080f86c33b9cf464 201021 diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/group/openmaxal.mmp --- a/khronosfws/openmax_al/group/openmaxal.mmp Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/group/openmaxal.mmp Fri May 28 19:26:28 2010 -0500 @@ -41,15 +41,10 @@ SOURCE xaadaptationgst.c SOURCE xagstcapabilitiesmgr.c SOURCE xaaudioencoderitfadaptation.c -SOURCE xacameraadaptctx.c -SOURCE xacameraitfadaptation.c SOURCE xadevicevolumeitfadaptation.c SOURCE xadynamicsourceitfadaptation.c SOURCE xaengineadaptctx.c SOURCE xaequalizeritfadaptation.c -SOURCE xaimagecontrolsitfadaptation.c -SOURCE xaimageeffectsitfadaptation.c -SOURCE xaimageencoderitfadaptation.c SOURCE xaledarrayadaptctx.c SOURCE xaledarrayitfadaptation.c SOURCE xamediaplayeradaptctx.c @@ -60,28 +55,36 @@ SOURCE xaoutputmixitfadaptation.c SOURCE xaplaybackrateitfadaptation.c SOURCE xaplayitfadaptation.c -SOURCE xaradioadaptctx.c -SOURCE xaradioitfadaptation.c + SOURCE xardsitfadaptation.c SOURCE xarecorditfadaptation.c SOURCE xaseekitfadaptation.c -SOURCE xasnapshotitfadaptation.c -SOURCE xastaticcameracapsadaptation.c SOURCE xavibraadaptctx.c SOURCE xavibraitfadaptation.c +SOURCE xavolumeitfadaptation.c +SOURCE xastreaminformationitfadaptation.c +#ifdef OMAX_CAMERABIN +SOURCE xacameraadaptctx.c +SOURCE xacameraitfadaptation.c +SOURCE xaimagecontrolsitfadaptation.c +SOURCE xaimageeffectsitfadaptation.c +SOURCE xaimageencoderitfadaptation.c +SOURCE xasnapshotitfadaptation.c +SOURCE xastaticcameracapsadaptation.c SOURCE xavideoencoderitfadaptation.c SOURCE xavideopostprosessingitfadaptation.c -SOURCE xavolumeitfadaptation.c -SOURCE xastreaminformationitfadaptation.c +#endif SOURCEPATH ../src/adptcommon SOURCE xaframeworkmgr.c SOURCE xacapabilitiesmgr.c SOURCE xaadptbasectx.c +#ifdef OMAX_CAMERABIN SOURCEPATH ../src/camera SOURCE xacameradevice.c SOURCE xacameraitf.c +#endif SOURCEPATH ../src/common SOURCE openmaxal.c @@ -90,35 +93,38 @@ SOURCE xadynamicsourceitf.c SOURCE xadynintmgmtitf.c SOURCE xaequalizeritf.c -SOURCE xaimagecontrolsitf.c -SOURCE xaimageeffectsitf.c SOURCE xametadataextractionitf.c SOURCE xametadatatraversalitf.c SOURCE xaobjectitf.c SOURCE xaplatform.c SOURCE xathreadsafety.c -SOURCE xavideopostprocessingitf.c SOURCE xavolumeitf.c SOURCE xastreaminformationitf.c SOURCE xanokialinearvolume_iid.c SOURCE xanokiavolumeext_iid.c SOURCE xanokialinearvolumeitf.c SOURCE xanokiavolumeextitf.c +#ifdef OMAX_CAMERABIN +SOURCE xaimagecontrolsitf.c +SOURCE xaimageeffectsitf.c +SOURCE xavideopostprocessingitf.c +#endif SOURCEPATH ../src/engine SOURCE xaaudiodecodercapabilitiesitf.c SOURCE xaaudioencodercapabilitiesitf.c SOURCE xaaudioiodevicecapabilitiesitf.c -SOURCE xacameracapabilitiesitf.c SOURCE xadevicevolumeitf.c SOURCE xaengine.c SOURCE xaengineitf.c +SOURCE xathreadsyncitf.c +#ifdef OMAX_CAMERABIN +SOURCE xacameracapabilitiesitf.c SOURCE xaimagedecodercapabilitiesitf.c SOURCE xaimageencodercapabilitiesitf.c -SOURCE xathreadsyncitf.c SOURCE xavideodecodercapabilitiesitf.c SOURCE xavideoencodercapabilitiesitf.c - +#endif SOURCEPATH ../src/ledarray SOURCE xaledarraydevice.c SOURCE xaledarrayitf.c @@ -132,12 +138,14 @@ SOURCEPATH ../src/mediarecorder SOURCE xaaudioencoderitf.c -SOURCE xaimageencoderitf.c SOURCE xamediarecorder.c SOURCE xametadatainsertionitf.c SOURCE xarecorditf.c +#ifdef OMAX_CAMERABIN +SOURCE xaimageencoderitf.c SOURCE xasnapshotitf.c SOURCE xavideoencoderitf.c +#endif SOURCEPATH ../src/metadataextractor SOURCE xametadataextractor.c @@ -166,6 +174,9 @@ SOURCE xamediarecorderadaptctxmmf.c SOURCE xarecorditfadaptationmmf.c SOURCE sfmrlocaltimer.cpp +SOURCE xaradioitfadaptation.c +SOURCE xaradioadaptctx.c +SOURCE cmmfradiobackendengine.cpp SOURCE xanokialinearvolumeitfadaptationmmf.c SOURCE xanokiavolumeextitfadaptationmmf.c SOURCE xammfcapabilitiesmgr.c @@ -212,16 +223,20 @@ LIBRARY MMFControllerFramework.lib LIBRARY mediaclientvideo.lib LIBRARY AudioInputRouting.lib +LIBRARY Radio_Utility.lib + LIBRARY libgmodule.lib LIBRARY libgobject.lib LIBRARY libgstreamer.lib LIBRARY libgstapp.lib -LIBRARY libgstphotography.lib LIBRARY libgstinterfaces.lib -LIBRARY libgstvideo.lib LIBRARY libgstbase.lib LIBRARY libgstcoreelements.lib LIBRARY libgstcoreindexers.lib LIBRARY MetaDataUtility.lib +#ifdef OMAX_CAMERABIN +LIBRARY libgstphotography.lib +LIBRARY libgstvideo.lib +#endif STATICLIBRARY hxmetadatautil.lib diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/adptcommon/xaadptbasectx.h --- a/khronosfws/openmax_al/src/adptcommon/xaadptbasectx.h Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/adptcommon/xaadptbasectx.h Fri May 28 19:26:28 2010 -0500 @@ -109,9 +109,15 @@ #define XA_ADAPTID_UNINITED 0 -#define XA_ADAPT_VOLUME_VOLUME_CHANGED 0xfb /* volume changed */ -#define XA_ADAPT_VOLUME_MUTE_CHANGED 0xfc /* mute changed */ -#define XA_ADAPT_VULOME_STEREOPOSITION_CHANGED 0xfd +#define XA_ADAPT_PLAY_STATE_CHANGED 0xf5 +#define XA_ADAPT_RADIO_FREQUENCY_CHANGED 0xf6 /* Radio frequency changed event */ +#define XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED 0xf7 /* Radio frequency range changed event */ +#define XA_ADAPT_RADIO_SEEK_COMPLETE 0xf8 /* Radio seek complete changed event */ +#define XA_ADAPT_RADIO_STEREO_STATUS_CHANGED 0xf9 /* Radio stereo status changed */ +#define XA_ADAPT_RADIO_SIGNAL_STRENGTH_CHANGED 0xfa /* Radio signal status changed */ +#define XA_ADAPT_VOLUME_VOLUME_CHANGED 0xfb /* volume changed */ +#define XA_ADAPT_VOLUME_MUTE_CHANGED 0xfc /* mute changed */ +#define XA_ADAPT_VULOME_STEREOPOSITION_CHANGED 0xfd /* stereo position changed */ /* Adaptation event structure */ typedef struct XAAdaptEvent_ diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/adptcommon/xaframeworkmgr.c --- a/khronosfws/openmax_al/src/adptcommon/xaframeworkmgr.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/adptcommon/xaframeworkmgr.c Fri May 28 19:26:28 2010 -0500 @@ -31,7 +31,8 @@ /* Config file location */ -const char configFileLocation[] = "z:/openmaxal/openmaxal.cfg"; +const char configFileLocationZ[] = "z:/openmaxal/openmaxal.cfg"; +const char configFileLocationC[] = "c:/openmaxal/openmaxal.cfg"; /* Tags used for parsing */ const char mediaPlayerBeginTag[] = ""; @@ -87,13 +88,13 @@ FrameworkMap *curNode = NULL; FWMgrBool newNode; FrameworkMap *frameworkMap = NULL; - FILE* fp = fopen(configFileLocation, "r"); + FILE* fp = fopen(configFileLocationZ, "r"); if (fp == NULL) { - createDefaultRules(configFileLocation); + createDefaultRules(configFileLocationC); - fp = fopen(configFileLocation, "r"); + fp = fopen(configFileLocationC, "r"); } if (fp != NULL) @@ -557,7 +558,7 @@ fputs("\r\n", fp); fputs("\r\n", fp); fputs("# Num of entries followed by actual entries all ending with a comma\r\n", fp); - fputs("3,file,http,rtsp,\r\n", fp); + fputs("6,file,http,rtsp,rtspu,rtspt,mms,\r\n", fp); fputs("\r\n", fp); fputs("\r\n", fp); fputs("15,3gp,wma,wmv,wav,amr,mp3,mp4,rm,ra,avi,mkv,aac,mid,awb,3g2,\r\n", fp); diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/common/xacommon.c --- a/khronosfws/openmax_al/src/common/xacommon.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/common/xacommon.c Fri May 28 19:26:28 2010 -0500 @@ -78,7 +78,7 @@ { fname = (XAchar*)((XADataLocator_URI*)(source->pLocator))->URI; /* check protocol prefix */ - if(strstr((char*)fname,":///")) + if(strstr((char*)fname,"://")) { if(strncmp((char*)fname, "file:///", 8) == 0) { diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/engine/xaengineitf.c --- a/khronosfws/openmax_al/src/engine/xaengineitf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/engine/xaengineitf.c Fri May 28 19:26:28 2010 -0500 @@ -52,9 +52,13 @@ const XAboolean *pInterfaceRequired) { XAEngineItfImpl* impl = GetImpl(self); +#ifdef OMAX_CAMERABIN return XACameraDeviceImpl_CreateCameraDevice( impl->mapper,impl->capabilities, pDevice, deviceID,numInterfaces, pInterfaceIds, pInterfaceRequired ); +#else + return XA_RESULT_FEATURE_UNSUPPORTED; +#endif } XAresult XAEngineItfImpl_CreateRadioDevice(XAEngineItf self, @@ -249,10 +253,12 @@ res = XAOMixImpl_QueryNumSupportedInterfaces( pNumSupportedInterfaces); break; +#ifdef OMAX_CAMERABIN case XA_OBJECTID_CAMERADEVICE: res = XACameraDeviceImpl_QueryNumSupportedInterfaces( pNumSupportedInterfaces); break; +#endif case XA_OBJECTID_RADIODEVICE: res = XARadioDeviceImpl_QueryNumSupportedInterfaces( pNumSupportedInterfaces); @@ -311,10 +317,12 @@ res = XAOMixImpl_QuerySupportedInterfaces( index, pInterfaceId); break; +#ifdef OMAX_CAMERABIN case XA_OBJECTID_CAMERADEVICE: res = XACameraDeviceImpl_QuerySupportedInterfaces( index, pInterfaceId ); break; +#endif case XA_OBJECTID_RADIODEVICE: res = XARadioDeviceImpl_QuerySupportedInterfaces( index, pInterfaceId ); diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/gst_adaptation/xaadaptationgst.c --- a/khronosfws/openmax_al/src/gst_adaptation/xaadaptationgst.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/gst_adaptation/xaadaptationgst.c Fri May 28 19:26:28 2010 -0500 @@ -27,8 +27,15 @@ #include "xamediaplayeradaptctx.h" #include "xacameraadaptctx.h" #include + +#ifdef OMAX_CAMERABIN extern XAboolean cameraRealized; + extern XACameraAdaptationCtx_* cameraCtx; +#else +XAboolean cameraRealized = XA_BOOLEAN_FALSE; +XACameraAdaptationCtx_* cameraCtx = NULL; +#endif /* * XAAdaptationGstCtx* XAAdaptationGst_Create() * 1st phase initialization function for Adaptation Base context structure. @@ -409,9 +416,11 @@ char* fname=NULL; XADataLocator_URI* uri = NULL; XADataLocator_IODevice* ioDevice = NULL; +#ifdef OMAX_CAMERABIN XACameraDeviceImpl* cameraDevice = NULL; + XAObjectItfImpl* pObj = NULL; +#endif XARadioDeviceImpl* radioDevice = NULL; - XAObjectItfImpl* pObj = NULL; DEBUG_API("->XAAdaptationGst_CreateGstSource"); if( !xaSrc || !xaSrc->pLocator || !isobj ) @@ -489,6 +498,8 @@ } break; } +#ifdef OMAX_CAMERABIN + case XA_IODEVICE_CAMERA: { DEBUG_INFO("XA_IODEVICE_CAMERA"); @@ -539,6 +550,7 @@ } break; } +#endif case XA_IODEVICE_RADIO: DEBUG_INFO("XA_IODEVICE_RADIO"); if ( ioDevice->device ) diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/gst_adaptation/xacameraadaptctx.h --- a/khronosfws/openmax_al/src/gst_adaptation/xacameraadaptctx.h Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/gst_adaptation/xacameraadaptctx.h Fri May 28 19:26:28 2010 -0500 @@ -19,7 +19,9 @@ #define XACAMERAADAPTCTX_H #include "xaadaptationgst.h" +#ifdef OMAX_CAMERABIN #include +#endif /* TYPEDEFS */ typedef struct XACameraAdaptationCtx_ XACameraAdaptationCtx; @@ -39,8 +41,9 @@ XAuint32 curMirror; /* GST Variables */ +#ifdef OMAX_CAMERABIN GstFocusStatus focusStatus; - +#endif /* Internals */ XAboolean recording; XAboolean playing; diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/gst_adaptation/xardsitfadaptation.c --- a/khronosfws/openmax_al/src/gst_adaptation/xardsitfadaptation.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/gst_adaptation/xardsitfadaptation.c Fri May 28 19:26:28 2010 -0500 @@ -65,14 +65,14 @@ static XAint16 subscribedODAGroups[MAX_ODA_GROUP_SUBSCRIPTIONS]; static XAuint16 subscribedODAGroupCount = 0; -static XAuint32 freqSetAfterSeek; +//static XAuint32 freqSetAfterSeek; const RDSData* GetCurrentRdsData( XAAdaptationGstCtx *bCtx ); void * XARDSItfAdapt_AsyncSeek(void* args); void * XARDSItfAdapt_AsyncGetODAGroup(void* args); /* exposing radio itf adaptation internal function here */ -XAresult XARadioItfAdapt_SyncSetFrequency(XAAdaptationGstCtx *bCtx, XAuint32 freq); +//XAresult XARadioItfAdapt_SyncSetFrequency(XAAdaptationGstCtx *bCtx, XAuint32 freq); /* @@ -429,11 +429,11 @@ if (pty == XA_RDSPROGRAMMETYPE_RDSPTY_POPMUSIC) { - freqSetAfterSeek = rdsData[POPMUSIC_CHANNEL].frequency; + //freqSetAfterSeek = rdsData[POPMUSIC_CHANNEL].frequency; } else { - freqSetAfterSeek = mCtx->frequency; + //freqSetAfterSeek = mCtx->frequency; } mCtx->state = XA_RADIO_SEEKING; @@ -475,7 +475,7 @@ mCtx->state = XA_RADIO_IDLE; } - freqSetAfterSeek = rdsData[TRAFFIC_ANNOUNCEMENT_CHANNEL].frequency; + //freqSetAfterSeek = rdsData[TRAFFIC_ANNOUNCEMENT_CHANNEL].frequency; mCtx->state = XA_RADIO_SEEKING; pt_ret = pthread_create(&(mCtx->emulationThread), NULL, (XARDSItfAdapt_AsyncSeek),(void*)bCtx); @@ -516,7 +516,7 @@ mCtx->state = XA_RADIO_IDLE; } - freqSetAfterSeek = rdsData[TRAFFIC_PROGRAMME_CHANNEL].frequency; + //freqSetAfterSeek = rdsData[TRAFFIC_PROGRAMME_CHANNEL].frequency; mCtx->state = XA_RADIO_SEEKING; pt_ret = pthread_create(&(mCtx->emulationThread), NULL, (XARDSItfAdapt_AsyncSeek),(void*)bCtx); @@ -548,7 +548,7 @@ DEBUG_INFO("Seek done!"); - ret = XARadioItfAdapt_SyncSetFrequency( bCtx, freqSetAfterSeek ); + //ret = XARadioItfAdapt_SyncSetFrequency( bCtx, freqSetAfterSeek ); if (ret != XA_RESULT_SUCCESS) { DEBUG_ERR("XARadioItfAdapt_SyncSetFrequency FAILED"); diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/gst_adaptation/xastreaminformationitfadaptation.c --- a/khronosfws/openmax_al/src/gst_adaptation/xastreaminformationitfadaptation.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/gst_adaptation/xastreaminformationitfadaptation.c Fri May 28 19:26:28 2010 -0500 @@ -68,9 +68,8 @@ } /* Get media container type */ - DEBUG_INFO_A2("Adaptation Context- ID is [%u] Extended ID[%u]", - (unsigned int)adaptCtx->ctxId, - (unsigned int)((XAMediaPlayerAdaptationCtx*) adaptCtx)->extendedCtxId); + DEBUG_INFO_A1("Adaptation Context- ID is [%u] ", + (unsigned int)adaptCtx->ctxId ); /* Initialize to unspecified */ *containerType = XA_CONTAINERTYPE_UNSPECIFIED; diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mediaplayer/xamediaplayer.c --- a/khronosfws/openmax_al/src/mediaplayer/xamediaplayer.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mediaplayer/xamediaplayer.c Fri May 28 19:26:28 2010 -0500 @@ -91,7 +91,9 @@ XAObjectItfImpl* pBaseObj = NULL; const char *uri = NULL; XAresult ret = XA_RESULT_SUCCESS; - + XADataLocator_IODevice* tmpIODevice; + XADataLocator_IODevice locatorIODevice; + DEBUG_API("->XAMediaPlayerImpl_CreateMediaPlayer"); XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaPlayer); @@ -219,19 +221,28 @@ pPlayerImpl->imageVideoSnk = pImageVideoSnk; pPlayerImpl->vibra = pVibra; pPlayerImpl->LEDArray = pLEDArray; - - /* Determine framework type that can handle recording */ - fwType = (FWMgrFwType)FWMgrMOUnknown; - /**/ - if (pDataSrc->pLocator) - { - XADataLocator_URI* dataLoc = (XADataLocator_URI*)pDataSrc->pLocator; - if (dataLoc->locatorType == XA_DATALOCATOR_URI) - { - uri = (char*)dataLoc->URI; - } - } - fwType = XAFrameworkMgr_GetFramework( + + // Handle possible radio: + tmpIODevice = (XADataLocator_IODevice*)(pPlayerImpl->dataSrc->pLocator); + locatorIODevice = *tmpIODevice; + if (locatorIODevice.deviceType == XA_IODEVICE_RADIO) + { + fwType = (FWMgrFwType)FWMgrFWMMF; + } + else + { + /* Determine framework type that can handle recording */ + fwType = (FWMgrFwType)FWMgrMOUnknown; + /**/ + if (pDataSrc->pLocator) + { + XADataLocator_URI* dataLoc = (XADataLocator_URI*)pDataSrc->pLocator; + if (dataLoc->locatorType == XA_DATALOCATOR_URI) + { + uri = (char*)dataLoc->URI; + } + } + fwType = XAFrameworkMgr_GetFramework( mapper, uri, FWMgrMOPlayer); @@ -244,6 +255,7 @@ DEBUG_API("<-XAMediaPlayerImpl_CreateMediaPlayer"); return ret; } + } // end else if(fwType == FWMgrFWMMF) { @@ -412,6 +424,7 @@ case MP_EQUALIZERITF: pItf = XAEqualizerItfImpl_Create(pImpl->curAdaptCtx); break; +#ifdef OMAX_CAMERABIN case MP_IMAGECONTROLSITF: pItf = XAImageControlsItfImpl_Create(pImpl->curAdaptCtx); break; @@ -421,6 +434,7 @@ case MP_VIDEOPOSTPROCESSINGITF: pItf = XAVideoPostProcessingItfImpl_Create(pImpl->curAdaptCtx); break; +#endif case MP_NOKIAVOLUMEEXT: pItf = XANokiaVolumeExtItfImpl_Create(pImpl->curAdaptCtx); break; @@ -535,6 +549,7 @@ case MP_EQUALIZERITF: XAEqualizerItfImpl_Free(pItf); break; +#ifdef OMAX_CAMERABIN case MP_IMAGECONTROLSITF: XAImageControlsItfImpl_Free(pItf); break; @@ -544,6 +559,7 @@ case MP_VIDEOPOSTPROCESSINGITF: XAVideoPostProcessingItfImpl_Free(pItf); break; +#endif case MP_NOKIAVOLUMEEXT: XANokiaVolumeExtItfImpl_Free(pItf); break; @@ -605,10 +621,11 @@ case MP_EQUALIZERITF: mapEntry->pItf = XAEqualizerItfImpl_Create( pImpl->curAdaptCtx ); break; +#ifdef OMAX_CAMERABIN case MP_IMAGEEFFECTSITF: mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->curAdaptCtx ); break; - +#endif default: DEBUG_ERR("XAMediaPlayerImpl_DoAddItf unknown id"); ret = XA_RESULT_FEATURE_UNSUPPORTED; @@ -667,9 +684,11 @@ case MP_EQUALIZERITF: XAEqualizerItfImpl_Free(mapEntry->pItf); break; +#ifdef OMAX_CAMERABIN case MP_IMAGEEFFECTSITF: XAImageEffectsItfImpl_Free(mapEntry->pItf); break; +#endif default: DEBUG_ERR("XAMediaPlayerImpl_DoRemoveItf unknown id"); ret = XA_RESULT_FEATURE_UNSUPPORTED; diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mediaplayer/xaplayitf.c --- a/khronosfws/openmax_al/src/mediaplayer/xaplayitf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mediaplayer/xaplayitf.c Fri May 28 19:26:28 2010 -0500 @@ -241,6 +241,13 @@ impl->callback = callback; impl->cbcontext = pContext; impl->cbPtrToSelf = self; + + // No need to do anything else if radio: + if ( ((XAMediaPlayerAdaptationMMFCtx*)impl->pObjImpl->curAdaptCtx)->isForRadio == XA_BOOLEAN_TRUE) + { + DEBUG_API("<-XAPlayItfImpl_RegisterCallback"); + return ret; + } XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaPlayer ); diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mediarecorder/xaimageencoderitf.c --- a/khronosfws/openmax_al/src/mediarecorder/xaimageencoderitf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mediarecorder/xaimageencoderitf.c Fri May 28 19:26:28 2010 -0500 @@ -74,7 +74,9 @@ res = XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_IMAGE), pSettings->encoderId, &temp); if( res == XA_RESULT_SUCCESS ) { +#ifdef OMAX_CAMERABIN res = XAImageEncoderItfAdapt_SetImageSettings((XAAdaptationGstCtx*)impl->adaptCtx, pSettings); +#endif } else { @@ -108,7 +110,9 @@ } if(impl->adaptCtx->fwtype == FWMgrFWGST) { +#ifdef OMAX_CAMERABIN res = XAImageEncoderItfAdapt_GetImageSettings((XAAdaptationGstCtx*)impl->adaptCtx, pSettings); +#endif } else { @@ -144,7 +148,9 @@ if(impl->adaptCtx->fwtype == FWMgrFWGST) { +#ifdef OMAX_CAMERABIN XAImageEncoderItfAdapt_GetImageSettings((XAAdaptationGstCtx*)impl->adaptCtx, &curSettings); +#endif } else { diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c --- a/khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c Fri May 28 19:26:28 2010 -0500 @@ -418,6 +418,7 @@ case MR_AUDIOENCODERITF: pItf = XAAudioEncoderItfImpl_Create(pObjImpl); break; +#ifdef OMAX_CAMERABIN case MR_SNAPSHOTITF: pItf = XASnapshotItfImpl_Create(pObjImpl); break; @@ -427,6 +428,7 @@ case MR_IMAGEENCODERITF: pItf = XAImageEncoderItfImpl_Create(pObjImpl); break; +#endif case MR_METADATAINSERTIONITF: pItf = XAMetadataInsertionItfImpl_Create(pObjImpl); break; @@ -438,6 +440,7 @@ case MR_EQUALIZERITF: pItf = XAEqualizerItfImpl_Create( pObjImpl->adaptationCtx ); break; +#ifdef OMAX_CAMERABIN case MR_IMAGECONTROLSITF: pItf = XAImageControlsItfImpl_Create( pObjImpl->adaptationCtx ); break; @@ -447,6 +450,7 @@ case MR_VIDEOPOSTPROCESSINGITF: pItf = XAVideoPostProcessingItfImpl_Create( pObjImpl->adaptationCtx ); break; +#endif case MR_VOLUMEITF: pItf = XAVolumeItfImpl_Create( pObjImpl->adaptationCtx ); break; @@ -524,6 +528,7 @@ case MR_EQUALIZERITF: XAEqualizerItfImpl_Free(pItf); break; +#ifdef OMAX_CAMERABIN case MR_IMAGECONTROLSITF: XAImageControlsItfImpl_Free(pItf); break; @@ -533,12 +538,14 @@ case MR_IMAGEENCODERITF: XAImageEncoderItfImpl_Free(pItf); break; +#endif case MR_METADATAINSERTIONITF: XAMetadataInsertionItfImpl_Free(pItf); break; case MR_RECORDITF: XARecordItfImpl_Free(pItf); break; +#ifdef OMAX_CAMERABIN case MR_SNAPSHOTITF: XASnapshotItfImpl_Free(pItf); break; @@ -548,6 +555,7 @@ case MR_VIDEOPOSTPROCESSINGITF: XAVideoPostProcessingItfImpl_Free(pItf); break; +#endif case MR_VOLUMEITF: XAVolumeItfImpl_Free(pItf); break; @@ -613,10 +621,11 @@ case MR_EQUALIZERITF: mapEntry->pItf = XAEqualizerItfImpl_Create( pImpl->adaptationCtx ); break; +#ifdef OMAX_CAMERABIN case MR_IMAGEEFFECTSITF: mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->adaptationCtx ); break; - +#endif default: DEBUG_ERR("XAMediaRecorderImpl_DoAddItf unknown id"); ret = XA_RESULT_FEATURE_UNSUPPORTED; @@ -672,9 +681,11 @@ case MR_EQUALIZERITF: XAEqualizerItfImpl_Free( mapEntry->pItf ); break; +#ifdef OMAX_CAMERABIN case MR_IMAGEEFFECTSITF: XAImageEffectsItfImpl_Free( mapEntry->pItf ); break; +#endif default: DEBUG_ERR("XAMediaRecorderImpl_DoRemoveItf unknown id"); ret = XA_RESULT_FEATURE_UNSUPPORTED; diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/cmetadatautilityitf.cpp --- a/khronosfws/openmax_al/src/mmf_adaptation/cmetadatautilityitf.cpp Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/cmetadatautilityitf.cpp Fri May 28 19:26:28 2010 -0500 @@ -27,15 +27,9 @@ { CMetadataUtilityItf* p_mdutilitf = new CMetadataUtilityItf; - TInt ret = p_mdutilitf->ParseSource(uri); + p_mdutilitf->ParseSource(uri); //ignore error - if(ret == KErrNone) - { - return p_mdutilitf; - } - - delete p_mdutilitf; - return NULL; + return p_mdutilitf; } TInt CMetadataUtilityItf::OpenSource(char* pOrigUri) @@ -95,7 +89,24 @@ { delete []uri; } - + + if(ret != KErrNone) + { + //delete the utilities + if(m_pS60Util) + { + delete m_pS60Util; + m_pS60Util = NULL; + } + + if(m_pHXUtil) + { + delete m_pHXUtil; + m_pHXUtil = NULL; + } + + + } return ret; } @@ -113,14 +124,18 @@ TInt CMetadataUtilityItf::CalculateNumMetadataItems(TUint*numItems) { + *numItems = 0; + if(m_pS60Util) { return m_pS60Util->CalculateNumMetadataItems(numItems); } - else + else if(m_pHXUtil) { return m_pHXUtil->CalculateNumMetadataItems(numItems); } + + return KErrNone; } char* CMetadataUtilityItf::GetKey(TInt index) @@ -129,10 +144,12 @@ { return m_pS60Util->GetKey(index); } - else + else if(m_pHXUtil) { return m_pHXUtil->GetKey(index); } + + return NULL; } TInt CMetadataUtilityItf::GetValueSize(TInt index) @@ -141,10 +158,12 @@ { return m_pS60Util->GetValueSize(index); } - else + else if(m_pHXUtil) { return m_pHXUtil->GetValueSize(index); } + + return 0; } TInt CMetadataUtilityItf::GetValue(TInt index, char* data, TInt maxLength, TInt* outSize, TInt* encodingType) @@ -153,10 +172,12 @@ { return m_pS60Util->GetValue(index, data, maxLength, outSize, encodingType); } - else + else if(m_pHXUtil) { return m_pHXUtil->GetValue(index, data, maxLength, outSize, encodingType); } + + return 0; } TInt CMetadataUtilityItf::ParseSource(char* uri) diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp --- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp Fri May 28 19:26:28 2010 -0500 @@ -120,7 +120,7 @@ if (iRecordState == ERecorderNotReady) { iFileFormat = format; - iAPIBeingUsed = DetermineAPIToUse(uri, EPlay); + iAPIBeingUsed = DetermineAPIToUse(uri, ERecord); err = XA_RESULT_INTERNAL_ERROR; if (iAPIBeingUsed == EAudioRecorderUtility) { @@ -131,7 +131,7 @@ TRAP(err, InitAudioRecorderUtilityL()); RET_IF_ERR(err, XA_RESULT_INTERNAL_ERROR); - TRAP(err, iAudioRecorder->OpenFileL(iFileName)); + TRAP(err, iAudioRecorder->OpenFileL(iUriPtr)); RET_IF_ERR(err, XA_RESULT_INTERNAL_ERROR); /* Wait until we receive moscostatechanged callback */ if(!iActiveSchedulerWait->IsStarted()) @@ -183,13 +183,24 @@ TRAP(err, InitVideoPlayerUtilityL()); RET_IF_ERR(err, XA_RESULT_INTERNAL_ERROR); - /* Open file */ - TAG_TIME_PROFILING_BEGIN; - TRAP(err, iVideoPlayer->OpenFileL(iUriPtr)); - RET_IF_ERR(err, XA_RESULT_INTERNAL_ERROR); - TAG_TIME_PROFILING_END; - PRINT_TO_CONSOLE_TIME_DIFF; - + if(iUriType == ELocal) + { + /* Open file */ + TAG_TIME_PROFILING_BEGIN; + TRAP(err, iVideoPlayer->OpenFileL(iUriPtr)); + RET_IF_ERR(err, XA_RESULT_INTERNAL_ERROR); + TAG_TIME_PROFILING_END; + PRINT_TO_CONSOLE_TIME_DIFF; + } + else + { + /* Open URL */ + TAG_TIME_PROFILING_BEGIN; + TRAP(err, iVideoPlayer->OpenUrlL(iUriPtr)); + RET_IF_ERR(err, XA_RESULT_INTERNAL_ERROR); + TAG_TIME_PROFILING_END; + PRINT_TO_CONSOLE_TIME_DIFF; + } /* Wait until we receive MvpuoOpenComplete */ PRINT_TO_CONSOLE_HOME_TIME; if (!iActiveSchedulerWait->IsStarted()) @@ -227,6 +238,10 @@ char ext[MAX_EXTENSION_SIZE] = { 0 }; int extLen; + int colpos; + char urischeme[MAX_EXTENSION_SIZE] = { 0 }; + int urischemeLen; + dotPtr = strrchr(uri, (int)'.'); if (!dotPtr) { @@ -242,22 +257,42 @@ ext[i] = tolower(ext[i]); } + colpos = strcspn(uri,":"); + + strncpy(urischeme, uri, colpos+1); + /*Null terminate the string*/ + urischeme[colpos+1] = '\0'; + urischemeLen = sizeof(urischeme); + for(unsigned int i=0; i < urischemeLen; i++) + { + urischeme[i] = tolower(urischeme[i]); + } + + + if (aFunc == ERecord) { return EAudioRecorderUtility; } else { - if (!strcasecmp(ext, ".mp3") || - !strcasecmp(ext, ".amr") || - !strcasecmp(ext, ".aac") || - !strcasecmp(ext, ".mid") || - !strcasecmp(ext, ".wav") || - !strcasecmp(ext, ".awb")) + if(!strcasecmp(urischeme, "file:")) { - return EAudioPlayerUtility; + if (!strcasecmp(ext, ".mp3") || + !strcasecmp(ext, ".amr") || + !strcasecmp(ext, ".aac") || + !strcasecmp(ext, ".mid") || + !strcasecmp(ext, ".wav") || + !strcasecmp(ext, ".awb")) + { + return EAudioPlayerUtility; + } + else + { + return EVideoPlayerUtility; + } } - else + else { return EVideoPlayerUtility; } @@ -463,12 +498,15 @@ if (iPreviousRecordState == CMdaAudioClipUtility::ENotReady) { //RDebug::Print(_L("CMMFBackendEngine::MoscoStateChangeEvent 2")); - TRAP(err,iaudioInputRecord = CAudioInput::NewL( *iAudioRecorder )); - RArray inputArray; - inputArray.Append( CAudioInput::EDefaultMic ); - // Set Audio Input - iaudioInputRecord->SetAudioInputL( inputArray.Array( ) ); - inputArray.Close(); + TRAP(err,iAudioInputRecord = CAudioInput::NewL( *iAudioRecorder )); + if(err == KErrNone) + { + RArray inputArray; + inputArray.Append( CAudioInput::EDefaultMic ); + // Set Audio Input + TRAP(err, iAudioInputRecord->SetAudioInputL( inputArray.Array( ) )); + inputArray.Close(); + } TMMFMessageDestination destination(KUidMetaDataWriteCustomCommand); TMMFMessageDestinationPckg pckg = TMMFMessageDestinationPckg(destination); TInt ret = iAudioRecorder->RecordControllerCustomCommandSync(pckg, 0, KNullDesC8, KNullDesC8); @@ -565,7 +603,14 @@ break; }; } - + + // deleting the AudioInput object + if(iAudioInputRecord) + { + delete iAudioInputRecord; + iAudioInputRecord = NULL; + } + if (iBaseAudioPlayer && iAudioPlayer) { iAudioPlayer->Close(); @@ -600,8 +645,6 @@ delete iBaseVideoPlayer; iBaseVideoPlayer = NULL; iVideoPlayer = NULL; - delete iaudioInputRecord; - iaudioInputRecord = NULL; delete iBaseAudioPlayer; iBaseAudioPlayer = NULL; iAudioPlayer = NULL; @@ -713,7 +756,7 @@ TRAP(err, sr = iAudioRecorder->DestinationSampleRateL()); if(err == KErrNone) { - *samplerate = sr; + *samplerate = sr*1000; } } } @@ -730,7 +773,7 @@ configPackage); if(err == KErrNone) { - *samplerate = configPackage().iSampleRate; + *samplerate = configPackage().iSampleRate*1000; } } } @@ -791,7 +834,7 @@ TInt err(KErrNone); if(iRecordState == CMMFBackendEngine::ERecorderOpen) { - TRAP(err, iAudioRecorder->SetDestinationSampleRateL(*samplerate)); + TRAP(err, iAudioRecorder->SetDestinationSampleRateL(*samplerate/1000)); if(err != KErrNone) { return XA_RESULT_PARAMETER_INVALID; @@ -1442,13 +1485,14 @@ iUriPtr.Set(iUri->Des()); iUriPtr.Copy(uriParam); /* Copy data*/ - iUriPtr.LowerCase(); + //iUriPtr.LowerCase(); /* For file scheme convert from file:///c:/folder/file.ext * format to c:\\folder\\file.ext using TUriParser. */ _LIT(KFileScheme,"file:///"); if (iUriPtr.Find(KFileScheme) >= 0) { + iUriType = ELocal; TPtr tmp(const_cast(iUriPtr.Ptr()) + KFileScheme().Length(), iUriPtr.Length(), iUriPtr.Length()); @@ -1477,6 +1521,10 @@ file = NULL; } + else + { + iUriType = EStreaming; + } return err; } diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h --- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h Fri May 28 19:26:28 2010 -0500 @@ -64,7 +64,13 @@ ERecord }; - enum TMMFUtiltyInUse + enum TUriType + { + ELocal = 0, + EStreaming + }; + + enum TMMFUtiltyInUse { ENoUtility, EVideoPlayerUtility, @@ -194,7 +200,7 @@ XAuint32 iFileFormat; TInt iPauseSupportMP4; CActiveSchedulerWait* iActiveSchedulerWait; - CAudioInput* iaudioInputRecord; + CAudioInput* iAudioInputRecord; #ifdef USE_LOCAL_WINDOW_RESOURCES CMediaClientVideoDisplay* iMediaClientVideoDisplay; TRect m_clipRect; @@ -239,6 +245,7 @@ /* Property set by client (for file without file:///) */ HBufC* iUri; /* owns */ TPtr iUriPtr; + TUriType iUriType; /* Property set by client */ RWsSession* m_pWs; /* Property set by client */ diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.cpp Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,616 @@ +/* +* 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: +* +*/ + +#include "cmmfradiobackendengine.h" + +extern "C" { +#include "xaradioitfadaptation.h" +#include "xanokiavolumeextitfadaptationmmf.h" +#include "xanokialinearvolumeitfadaptationmmf.h" +#include "xaplayitfadaptationmmf.h" +} + +CMMFRadioBackendEngine *CMMFRadioBackendEngine::s_instance = 0; + +CMMFRadioBackendEngine* CMMFRadioBackendEngine::Instance() +{ + if (!s_instance) + { + s_instance = new CMMFRadioBackendEngine(); + s_instance->ConstructL(); + } + return s_instance; +} + +void CMMFRadioBackendEngine::DeleteInstance() +{ + if (iFmTunerUtility) + { + iFmTunerUtility->Close(); + iFmTunerUtility = NULL; + } + if (iPlayerUtility) + { + iPlayerUtility->Close(); + iPlayerUtility = NULL; + } + + if (iRadioUtility) + { + delete iRadioUtility; + iRadioUtility = NULL; + } + +} + +CMMFRadioBackendEngine::~CMMFRadioBackendEngine() +{ +} + +CMMFRadioBackendEngine::CMMFRadioBackendEngine() +{ + +} + +void CMMFRadioBackendEngine::ConstructL() +{ + iAutoFlag = ETrue; + + iRadioUtility = CRadioUtility::NewL( ETrue ); + iFmTunerUtility = &iRadioUtility->RadioFmTunerUtilityL( *this ); + iFmTunerUtility->EnableTunerInOfflineMode( ETrue ); + iFmTunerUtility->RequestTunerControl(); + + iPlayerUtility = &iRadioUtility->RadioPlayerUtilityL( *this ); + +} +void CMMFRadioBackendEngine::StationSeek(XAboolean aUpwards) +{ + if (iFmTunerUtility) + { + iFmTunerUtility->StationSeek(aUpwards); + } +} + +void CMMFRadioBackendEngine::SetFrequency(TInt aFreq) +{ + DEBUG_API_A1("CMMFRadioBackendEngine::SetFrequency: %d", aFreq); + if (iFmTunerUtility) + { + iFmTunerUtility->SetFrequency(aFreq); + } +} + +TInt CMMFRadioBackendEngine::GetFrequency(TInt& aFreq) +{ + DEBUG_API("CMMFRadioBackendEngine::GetFrequency"); + TInt ret = KErrNotFound; + if (iFmTunerUtility) + { + ret = iFmTunerUtility->GetFrequency(aFreq); + } + DEBUG_API_A1("CMMFRadioBackendEngine::GetFrequency RET: %d", ret); +// RDebug::Print(_L("CMMFRadioBackendEngine::GetFrequency RET: %d"), ret); + return ret; +} + +TInt CMMFRadioBackendEngine::GetSignalStrength(TInt& aSignalStrength) +{ + TInt ret = KErrNotFound; + if (iFmTunerUtility) + { + ret = iFmTunerUtility->GetSignalStrength(aSignalStrength); + } + DEBUG_API_A1("CMMFRadioBackendEngine::GetSignalStrength RET: %d", ret); +// RDebug::Print(_L("CMMFRadioBackendEngine::GetSignalStrength RET: %d"), ret); + return ret; +} + +void CMMFRadioBackendEngine::CancelSetFrequency() +{ + if (iFmTunerUtility) + { + iFmTunerUtility->CancelSetFrequency(); + } +} + +void CMMFRadioBackendEngine::CancelStationSeek() +{ + if (iFmTunerUtility) + { + iFmTunerUtility->CancelStationSeek(); + } +} + +void CMMFRadioBackendEngine::SetFreqRange(TFmRadioFrequencyRange aRange) +{ + if (iFmTunerUtility) + { + iFmTunerUtility->SetFrequencyRange(aRange); + } +} + +TInt CMMFRadioBackendEngine::GetFreqRange(TFmRadioFrequencyRange& aRange) +{ + TInt ret = KErrNotFound; + TInt minFreq = 0; + TInt maxFreq = 0; + + if (iFmTunerUtility) + { + ret = iFmTunerUtility->GetFrequencyRange((TFmRadioFrequencyRange&)aRange, (TInt&)minFreq, (TInt&)maxFreq); + } + DEBUG_API_A1("CMMFRadioBackendEngine::GetFreqRange RET: %d", ret); +// RDebug::Print(_L("CMMFRadioBackendEngine::GetFreqRange RET: %d"), ret); + return ret; +} + +TInt CMMFRadioBackendEngine::GetFreqRangeProperties(TFmRadioFrequencyRange& aRange, TInt& aMinFreq, TInt& aMaxFreq) +{ + TInt ret = KErrNotFound; + + if (iFmTunerUtility) + { + ret = iFmTunerUtility->GetFrequencyRange((TFmRadioFrequencyRange&)aRange, (TInt&)aMinFreq, (TInt&)aMaxFreq); + } + DEBUG_API_A1("CMMFRadioBackendEngine::GetFreqRangeProperties RET: %d", ret); +// RDebug::Print(_L("CMMFRadioBackendEngine::GetFreqRangeProperties RET: %d"), ret); + return ret; +} +TInt CMMFRadioBackendEngine::GetMaxVolume(TInt& aMaxVol) +{ + TInt ret = KErrNotFound; + + if (iPlayerUtility) + { + ret = iPlayerUtility->GetMaxVolume(aMaxVol); + } + return ret; +} + +TInt CMMFRadioBackendEngine::SetVolume(TInt aVol) +{ + TInt ret = KErrNotFound; + + if (iPlayerUtility) + { + ret = iPlayerUtility->SetVolume(aVol); + } + return ret; +} + +TInt CMMFRadioBackendEngine::SetMute(XAboolean aMute) +{ + TInt ret = KErrNotFound; + + if (iPlayerUtility) + { + ret = iPlayerUtility->Mute(aMute); + } + return ret; +} + +TInt CMMFRadioBackendEngine::GetVolume(TInt& aVol) +{ + TInt ret = KErrNotFound; + + if (iPlayerUtility) + { + ret = iPlayerUtility->GetVolume(aVol); + } + return ret; +} + +TInt CMMFRadioBackendEngine::GetForcedMonoReception(XAuint32& aForcedMono) +{ + TInt ret = KErrNotFound; + TBool forceMono = EFalse; + + if (iFmTunerUtility) + { + ret = iFmTunerUtility->GetForcedMonoReception(forceMono); + if (ret != KErrNone) + return ret; + } + +// RDebug::Print(_L("CMMFRadioBackendEngine::GetForcedMonoReception RET: %d, aForcedMono = %d"), ret, aForcedMono); + if (forceMono) + { + aForcedMono = XA_STEREOMODE_MONO; + } + else + { + if (iAutoFlag) + aForcedMono = XA_STEREOMODE_AUTO; + else + aForcedMono = XA_STEREOMODE_STEREO; + } + return ret; +} + +void CMMFRadioBackendEngine::PlayRadio() +{ + if (iPlayerUtility) + { + iPlayerUtility->Play(); + } +} + +void CMMFRadioBackendEngine::StopRadio() +{ + if (iPlayerUtility) + { + iPlayerUtility->Stop(); + } +} + +TInt CMMFRadioBackendEngine::ForceMonoReception(XAuint32 aForcedMono) +{ + TInt ret = KErrNotFound; + + if (iFmTunerUtility) + { + if (aForcedMono == XA_STEREOMODE_MONO) + { + iAutoFlag = EFalse; + ret = iFmTunerUtility->ForceMonoReception(ETrue); + } + else if (aForcedMono == XA_STEREOMODE_STEREO) + { + iAutoFlag = EFalse; + ret = iFmTunerUtility->ForceMonoReception(EFalse); + } + else // (aForcedMono == XA_STEREOMODE_AUTO) + { + iAutoFlag = ETrue; + ret = iFmTunerUtility->ForceMonoReception(EFalse); + } + } + DEBUG_API_A1("CMMFRadioBackendEngine::ForceMonoReception RET: %d", ret); + // RDebug::Print(_L("CMMFRadioBackendEngine::ForceMonoReception RET: %d"), ret); + return ret; +} + +XAresult CMMFRadioBackendEngine::SetRadioAdaptContext(void * adaptcontext) +{ + iRadioAdaptContext = adaptcontext; + return XA_RESULT_SUCCESS; +} + +XAresult CMMFRadioBackendEngine::SetPlayerAdaptContext(void * adaptcontext) +{ + iPlayerAdaptContext = adaptcontext; + return XA_RESULT_SUCCESS; +} + +// ----------------------------------------------------------------------------- +// CMMFRadioBackendEngine::MrpeoPresetChanged +// Observer for Presets +// ----------------------------------------------------------------------------- +void CMMFRadioBackendEngine::MrpeoPresetChanged( + TPresetChangeEvent /*aChange*/, + TInt /*aIndex*/ ) +{ + +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoSquelchChange +// +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoSquelchChange( + TBool /*aSquelch*/ ) +{ + +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MTsoForcedMonoChanged +// Called when a client enables/disabled forced mono reception +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoForcedMonoChange( + TBool aForcedMono ) +{ + DEBUG_API_A1("CMMFRadioBackendEngine::MrftoForcedMonoChange: aForcedMono = %d", aForcedMono); +// RDebug::Print(_L("CMMFRadioBackendEngine::MrftoForcedMonoChange: aForcedMono = %d"), aForcedMono); + XARadioItfAdapt_StereoStatusChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aForcedMono); +} + + // ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoFrequencyChange +// Called when the tuned frequency changes +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoFrequencyChange( + TInt aNewFrequency) +{ + DEBUG_API_A1("CMMFRadioBackendEngine::MrftoFrequencyChange: aNewFrequency = %d", aNewFrequency); + // RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrequencyChange aNewFrequency = %d"), aNewFrequency); + XARadioItfAdapt_FrequencyChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aNewFrequency); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoFrequencyRangeChange +// +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoFrequencyRangeChange( + TFmRadioFrequencyRange aNewRange ) +{ + DEBUG_API_A1("CMMFRadioBackendEngine::MrftoFrequencyRangeChange: aNewRange = %d", aNewRange); +// RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrequencyRangeChange: aNewRange = %d"), aNewRange); + XARadioItfAdapt_FrequencyRangeChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aNewRange); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoOfflineModeStatusChange +// Called when offline mode status changes +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoOfflineModeStatusChange( + TBool /*aOfflineMode*/ ) +{ + +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoAntennaStatusChange +// Called when antenna status changes. +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoAntennaStatusChange( + TBool /*aAttached*/ ) +{ + +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoFmTransmitterStatusChange +// The FM tuner is turned off when FM transmitter is on. +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoFmTransmitterStatusChange( + TBool /*aActive*/ ) +{ + +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoStationSeekComplete +// +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoStationSeekComplete( + TInt aError, + TInt aFrequency ) +{ + XARadioItfAdapt_SeekComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError, aFrequency); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoSetFrequencyComplete +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoSetFrequencyComplete( + TInt aError ) +{ + DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: aError = %d", aError); +// RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrrequencyComplete: aError = %d"), aError); + TInt freq = 0; + if (!aError) + { + iFmTunerUtility->GetFrequency(freq); + } + DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: new freq is: %d", freq); +// RDebug::Print(_L("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: new freq is: %d"), freq); + XARadioItfAdapt_SetFrequencyComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError, freq); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete +// +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete( + TInt aError ) +{ + DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete: aError = %d", aError); +// RDebug::Print(_L("CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete: aError = %d"), aError); + XARadioItfAdapt_SetFrequencyRangeComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrftoRequestTunerControlComplete +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrftoRequestTunerControlComplete( + TInt aError) +{ +// RDebug::Print(_L("CMMFRadioBackendEngine::MrftoRequestTunerControlComplete: aError = %d"), aError); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrpoBalanceChange +// +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrpoBalanceChange( + TInt /*aLeftPercentage*/, + TInt /*aRightPercentage*/ ) +{ + +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrpoMuteChange +// +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrpoMuteChange( + TBool aMute ) +{ + XANokiaVolumeExtItfAdapt_MuteChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, aMute); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrpoVolumeChange +// +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrpoVolumeChange( + TInt aVolume ) +{ + XANokiaLinearVolumeItfAdapt_VolumeChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, aVolume); +} + +// ---------------------------------------------------- +// CMMFRadioBackendEngine::MrpoStateChange This is Tuner State +// Called when the state of the tuner changes +// ---------------------------------------------------- +// +void CMMFRadioBackendEngine::MrpoStateChange( + TPlayerState aState, + TInt aError ) +{ + if ( aError ) + { + DEBUG_API_A1("CMMFRadioBackendEngine::MrpoStateChange: aError = %d", aError); + // RDebug::Print(_L("CMMFRadioBackendEngine::MrpoStateChange: aError = %d"), aError); + } + + DEBUG_API_A1("CMMFRadioBackendEngine::MrpoStateChange: new state = %d", aState); +// RDebug::Print(_L("CMMFRadioBackendEngine::MrpoStateChange: new state = %d"), aState); + + if ( aState == ERadioPlayerPlaying ) + { + XAPlayItfAdaptMMF_StateChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, ETrue); + } + else // ERadioPlayerIdle + { + XAPlayItfAdaptMMF_StateChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, EFalse); + } +} + +extern "C" { + + void* cmmfradiobackendengine_init() + { + return CMMFRadioBackendEngine::Instance(); + } + + void cmmfradiobackendengine_delete(void* context) + { + ((CMMFRadioBackendEngine*)(context))->DeleteInstance(); + } + + void set_frequency(void* context, XAuint32 freq) + { + ((CMMFRadioBackendEngine*)(context))->SetFrequency((TInt)freq); + } + + XAresult get_frequency(void* context, XAuint32* freq) + { + return ((CMMFRadioBackendEngine*)(context))->GetFrequency((TInt&)*freq); + } + + XAresult get_signal_strength(void* context, XAuint32* signalStrength) + { + return ((CMMFRadioBackendEngine*)(context))->GetSignalStrength((TInt&)*signalStrength); + } + + void station_seek(void* context, XAboolean upwards) + { + ((CMMFRadioBackendEngine*)(context))->StationSeek(upwards); + } + + void cancel_set_frequency(void* context) + { + ((CMMFRadioBackendEngine*)(context))->CancelSetFrequency(); + } + + void cancel_station_seek(void* context) + { + ((CMMFRadioBackendEngine*)(context))->CancelStationSeek(); + } + + void set_freq_range(void* context, XAuint8 range) + { + ((CMMFRadioBackendEngine*)(context))->SetFreqRange((TFmRadioFrequencyRange)range); + } + + XAresult get_freq_range(void* context, XAuint8* range) + { + return ((CMMFRadioBackendEngine*)(context))->GetFreqRange((TFmRadioFrequencyRange&)*range); + } + + XAresult get_freq_range_properties(void* context, XAuint8 range, XAuint32* aMinFreq, XAuint32* aMaxFreq) + { + return ((CMMFRadioBackendEngine*)(context))->GetFreqRangeProperties((TFmRadioFrequencyRange&)range, (TInt&) *aMinFreq, (TInt&) *aMaxFreq); + } + + XAresult get_max_volume(void* context, XAmillibel* maxVol) + { + return ((CMMFRadioBackendEngine*)(context))->GetMaxVolume((TInt&)*maxVol); + } + + XAresult set_volume(void* context, XAuint32 vol) + { + return ((CMMFRadioBackendEngine*)(context))->SetVolume((TInt)vol); + } + + XAresult get_volume(void* context, XAuint32* vol) + { + return ((CMMFRadioBackendEngine*)(context))->GetVolume((TInt&)*vol); + } + + XAresult set_mute(void* context, XAboolean mute) + { + return ((CMMFRadioBackendEngine*)(context))->SetMute(mute); + } + + XAresult get_stereo_mode(void* context, XAuint32* mode) + { + return ((CMMFRadioBackendEngine*)(context))->GetForcedMonoReception(*mode); + } + + XAresult set_stereo_mode(void* context, XAuint32 mode) + { + return ((CMMFRadioBackendEngine*)(context))->ForceMonoReception(mode); + } + + void play_radio(void* context) + { + ((CMMFRadioBackendEngine*)(context))->PlayRadio(); + } + + void stop_radio(void* context) + { + ((CMMFRadioBackendEngine*)(context))->StopRadio(); + } + + XAresult mmf_set_radio_adapt_context(void * context, void * adaptcontext) + { + return ((CMMFRadioBackendEngine*)(context))->SetRadioAdaptContext(adaptcontext); + } + + XAresult mmf_set_player_adapt_context(void * context, void * adaptcontext) + { + return ((CMMFRadioBackendEngine*)(context))->SetPlayerAdaptContext(adaptcontext); + } +} diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.h Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,264 @@ +/* +* 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: +* +*/ + +#ifndef CMMFRADIOBACKENDENGINE_H +#define CMMFRADIOBACKENDENGINE_H + +#ifdef __cplusplus + +#include +#include +#include +#include +#include +#include +#include +#include "xaadaptationmmf.h" + +NONSHARABLE_CLASS(CMMFRadioBackendEngine) : public CBase, + public MRadioPlayerObserver, + public MRadioFmTunerObserver, + public MRadioPresetObserver + { +public: + + static CMMFRadioBackendEngine* Instance(); + void DeleteInstance(); + ~CMMFRadioBackendEngine(); + + void SetFrequency(TInt aFreq); + TInt GetFrequency(TInt& aFreq); + TInt GetSignalStrength(TInt& aFreq); + void StationSeek(XAboolean aUpwards); + void CancelSetFrequency(); + void CancelStationSeek(); + void SetFreqRange(TFmRadioFrequencyRange aRange); + TInt GetFreqRange(TFmRadioFrequencyRange& aRange); + TInt GetFreqRangeProperties(TFmRadioFrequencyRange& aRange, TInt& aMinFreq, TInt& aMaxFreq); + TInt GetMaxVolume(TInt& aMaxVol); + TInt SetVolume(TInt aVol); + TInt GetVolume(TInt& aVol); + TInt SetMute(XAboolean aMute); + TInt GetForcedMonoReception(XAuint32& aForcedMono); + TInt ForceMonoReception(XAuint32 aForcedMono); + void PlayRadio(); + void StopRadio(); + XAresult SetRadioAdaptContext(void * adaptcontext); + XAresult SetPlayerAdaptContext(void * adaptcontext); + + /** + * From MRadioPlayerObserver. + * Called when Radio state changed. + * + * @since S60 3.2 + * @param aState Radio player state + * @param aError A standard system error code, only used when aState is ERadioPlayerIdle + */ + void MrpoStateChange( TPlayerState aState, TInt aError ); + + /** + * From MRadioPlayerObserver. + * Called when volume changes. This may be caused by other applications. + * + * @since S60 3.2 + * @param aVolume Current volume. + */ + void MrpoVolumeChange( TInt aVolume ); + + /** + * From MRadioPlayerObserver. + * Called when mute setting changes. This may be caused by other applications. + * + * @since S60 3.2 + * @param aMute ETrue indicates audio is muted. + */ + void MrpoMuteChange( TBool aMute ); + + /** + * From MRadioPlayerObserver. + * Called when mute setting changes. This may be caused by other applications. + * + * Called when balance setting changes. This may be caused by other applications. + * + * @since S60 3.2 + * @param aLeftPercentage + * Left speaker volume percentage. This can be any value from zero to 100. + * Zero value means left speaker is muted. + * @param aRightPercentage + * Right speaker volume percentage. This can be any value from zero to 100. + * Zero value means right speaker is muted. + */ + void MrpoBalanceChange( TInt aLeftPercentage, TInt aRightPercentage ); + + /** + * From MRadioFmTunerObserver. + * Called when Request for tuner control completes. + * + * @since S60 3.2 + * @param aError A standard system error code or FM tuner error (TFmRadioTunerError). + */ + void MrftoRequestTunerControlComplete( TInt aError ); + + /** + * From MRadioFmTunerObserver. + * Set frequency range complete event. This event is asynchronous and is received after + * a call to CRadioFmTunerUtility::SetFrequencyRange. + * + * @since S60 3.2 + * @param aError A standard system error code or FM tuner error (TFmRadioTunerError). + */ + void MrftoSetFrequencyRangeComplete( TInt aError ); + + /** + * From MRadioFmTunerObserver. + * Set frequency complete event. This event is asynchronous and is received after a call to + * CRadioFmTunerUtility::SetFrequency. + * + * @since S60 3.2 + * @param aError A standard system error code or FM tuner error (TFmRadioTunerError). + */ + void MrftoSetFrequencyComplete( TInt aError ); + + /** + * From MRadioFmTunerObserver. + * Station seek complete event. This event is asynchronous and is received after a call to + * CRadioFmTunerUtility::StationSeek. + * + * @since S60 3.2 + * @param aError A standard system error code or FM tuner error (TFmRadioTunerError). + * @param aFrequency The frequency(Hz) of the radio station that was found. + */ + void MrftoStationSeekComplete( TInt aError, TInt aFrequency ); + + /** + * From MRadioFmTunerObserver. + * Called when FM Transmitter status changes (if one is present in the device). Tuner receiver + * is forced to be turned off due to hardware conflicts when FM transmitter is activated. + * + * @since S60 3.2 + * @param aActive ETrue if FM transmitter is active; EFalse otherwise. + */ + void MrftoFmTransmitterStatusChange( TBool aActive ); + + /** + * From MRadioFmTunerObserver. + * Called when antenna status changes. + * + * @since S60 3.2 + * @param aAttached ETrue if antenna is attached; EFalse otherwise. + */ + void MrftoAntennaStatusChange(TBool aAttached ); + + /** + * From MRadioFmTunerObserver. + * Called when offline mode status changes. + * @since S60 3.2 + * + * @param aOfflineMode ETrue if offline mode is enabled; EFalse otherwise. + */ + void MrftoOfflineModeStatusChange(TBool aOfflineMode ); + + /** + * From MRadioFmTunerObserver. + * Called when the frequency range changes. This may be caused by other applications. + * + * @since S60 3.2 + * @param aBand New frequency range. + */ + void MrftoFrequencyRangeChange(TFmRadioFrequencyRange aBand ); + + /** + * From MRadioFmTunerObserver. + * Called when the tuned frequency changes. This may be caused by other + * applications or RDS if AF/TA is enabled. + * + * @since S60 3.2 + * @param aNewFrequency The new tuned frequency(Hz). + */ + void MrftoFrequencyChange( TInt aNewFrequency ); + + /** + * From MRadioFmTunerObserver. + * Called when the forced mono status change. This may be caused by other applications. + * + * @since S60 3.2 + * @param aForcedMono ETrue if forced mono mode is enabled; EFalse otherwise. + */ + void MrftoForcedMonoChange( TBool aForcedMono ); + + /** + * From MRadioFmTunerObserver. + * Called when the squelch (muting the frequencies without broadcast) status change. + * This may be caused by other applications. + * + * @since S60 3.2 + * @param aSquelch ETrue if squelch is enabled; EFalse otherwise. + */ + void MrftoSquelchChange( TBool aSquelch ); + + /** + * From MRadioPresetObserver. + * Called when a preset changes. + * + * NOTE: EPresetDeleted with aIndex == 0, indicates that all presets have been deleted. + * + * @since S60 3.2 + * @param aChange Change event type + * @param aIndex Index to the preset that has changed. Zero means all presets. + */ + void MrpeoPresetChanged( TPresetChangeEvent aChange, TInt aIndex ); + +private: + static CMMFRadioBackendEngine* s_instance; + CMMFRadioBackendEngine(); + void ConstructL(); + +private: + CRadioUtility* iRadioUtility; + CRadioFmTunerUtility* iFmTunerUtility; + CRadioPlayerUtility* iPlayerUtility; + TBool iAutoFlag; + void* iRadioAdaptContext; + void* iPlayerAdaptContext; + + }; + +#else /* __cplusplus */ + +extern void* cmmfradiobackendengine_init(void); +extern void cmmfradiobackendengine_delete(void* context); +extern void set_frequency(void* context, XAuint32 freq); +extern void cancel_set_frequency(void* context); +extern void station_seek(void* context, XAboolean upwards); +extern void cancel_station_seek(void* context); +extern XAresult get_frequency(void* context, XAuint32* freq); +extern XAresult get_signal_strength(void* context, XAuint32* signalStrength); +extern void set_freq_range(void* context, XAuint8 range); +extern XAresult get_freq_range(void* context, XAuint8* range); +extern XAresult get_freq_range_properties(void* context, XAuint8 range, XAuint32* aMinFreq, XAuint32* aMaxFreq); +extern XAresult set_stereo_mode(void* context, XAuint32 mode); +extern XAresult get_stereo_mode(void* context, XAuint32* mode); +extern XAresult mmf_set_radio_adapt_context(void * context, void * adaptcontext); +extern XAresult mmf_set_player_adapt_context(void * context, void * adaptcontext); +extern void stop_radio(void * context); +extern void play_radio(void* context); +extern XAresult set_volume(void* context, XAuint32 vol); +extern XAresult mmf_set_player_adapt_context(void * context, void * adaptcontext); +extern XAresult set_mute(void* context, XAboolean mute); +#endif /* __cplusplus */ + +#endif /* CMMFRADIOBACKENDENGINE_H */ diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xaadaptationmmf.h --- a/khronosfws/openmax_al/src/mmf_adaptation/xaadaptationmmf.h Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xaadaptationmmf.h Fri May 28 19:26:28 2010 -0500 @@ -122,21 +122,25 @@ XAboolean isStereoPosition; XAmillidegree curRotation; XAuint32 curMirror; + XAint32 buffering; /* internals */ XAboolean trackpositionenabled; + + XAboolean loopingenabled; - XAboolean cameraSinkSynced; + + XAboolean cameraSinkSynced; void* mmfContext; - void* mmfMetadataContext; + void* mmfMetadataContext; + XAboolean isForRadio; /* XAuint32 playerState; */ } XAMediaPlayerAdaptationMMFCtx_; - typedef struct XAMetadataAdaptationMMFCtx_ { /* Parent*/ @@ -148,6 +152,22 @@ void* mmfContext; } XAMetadataAdaptationMMFCtx_; + + +/* + * Structure for Radio specific variables + */ +typedef struct XARadioAdaptationCtx_ { + + /* Parent*/ + XAAdaptationMMFCtx_ baseObj; + XAuint32 frequency; + XAuint8 range; + + pthread_t emulationThread; + pthread_t rdsEmulationThread; + +} XARadioAdaptationCtx_; /* FUNCTIONS */ /* * gboolean XAAdaptationBase_GstBusCb( GstBus *bus, GstMessage *message, gpointer data ); diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xadynamicsourceitfadaptationmmf.c --- a/khronosfws/openmax_al/src/mmf_adaptation/xadynamicsourceitfadaptationmmf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xadynamicsourceitfadaptationmmf.c Fri May 28 19:26:28 2010 -0500 @@ -69,19 +69,19 @@ } if((ret == XA_RESULT_SUCCESS) && (mCtx->mmfMetadataContext)) { - ret = mmf_metadata_utility_parse_source(mCtx->mmfMetadataContext, (char *)(tempUri->URI)); + mmf_metadata_utility_parse_source(mCtx->mmfMetadataContext, (char *)(tempUri->URI)); } } else if(bCtx->baseObj.ctxId == XAMDAdaptation) { XAMetadataAdaptationMMFCtx* mCtx = (XAMetadataAdaptationMMFCtx*) bCtx; - if(mCtx->mmfContext) - { - mCtx->xaSource = pDataSource; - ret = mmf_metadata_utility_parse_source(mCtx->mmfContext, (char *)(( (XADataLocator_URI*)(pDataSource->pLocator))->URI)); - } - } + if(mCtx->mmfContext) + { + mCtx->xaSource = pDataSource; + mmf_metadata_utility_parse_source(mCtx->mmfContext, (char *)(( (XADataLocator_URI*)(pDataSource->pLocator))->URI)); + } + } DEBUG_API("<-XADynamicSourceItfAdaptMMF_SetSource"); return ret; } diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xamediaplayeradaptctxmmf.c --- a/khronosfws/openmax_al/src/mmf_adaptation/xamediaplayeradaptctxmmf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xamediaplayeradaptctxmmf.c Fri May 28 19:26:28 2010 -0500 @@ -41,64 +41,64 @@ { XAMediaPlayerAdaptationMMFCtx *pSelf = NULL; XAuint32 locType = 0; + XADataLocator_IODevice *ioDevice; XAresult res; DEBUG_API("->XAMediaPlayerAdaptMMF_Create"); pSelf = calloc(1, sizeof(XAMediaPlayerAdaptationMMFCtx)); if ( pSelf) { - - if( XAAdaptationBaseMMF_Init(&(pSelf->baseObj),XAMediaPlayerAdaptation) - != XA_RESULT_SUCCESS ) - { - DEBUG_ERR("Failed to init base context!!!"); - free(pSelf); - pSelf = NULL; - } - else - - { - pSelf->baseObj.baseObj.fwtype = FWMgrFWMMF; - pSelf->xaSource = pDataSrc; - pSelf->xaBankSrc = pBankSrc; - pSelf->xaAudioSink = pAudioSnk; - pSelf->xaVideoSink = pImageVideoSnk; - pSelf->xaLEDArray = pLEDArray; - pSelf->xaVibra = pVibra; - pSelf->curMirror = XA_VIDEOMIRROR_NONE; - pSelf->curRotation = 0; - pSelf->isobjsrc = XA_BOOLEAN_FALSE; - pSelf->cameraSinkSynced = XA_BOOLEAN_FALSE; - /*pSelf->waitData = XA_BOOLEAN_FALSE;*/ - } - - - if ( pDataSrc ) - { - locType = *((XAuint32*)(pDataSrc->pLocator)); - if ( locType == XA_DATALOCATOR_IODEVICE ) + if ( pDataSrc ) { - //XADataLocator_IODevice *ioDevice = (XADataLocator_IODevice*)(pDataSrc->pLocator); - } + locType = *((XAuint32*)(pDataSrc->pLocator)); + if ( locType == XA_DATALOCATOR_IODEVICE ) + { + ioDevice = (XADataLocator_IODevice*)(pDataSrc->pLocator); + if ( ioDevice->deviceType == XA_IODEVICE_RADIO ) + { + return XAMediaPlayerAdaptMMF_CreateRadio(pSelf, pDataSrc, pBankSrc, pAudioSnk, pImageVideoSnk, pVibra, pLEDArray); + } + } } + if( XAAdaptationBaseMMF_Init(&(pSelf->baseObj),XAMediaPlayerAdaptation) != XA_RESULT_SUCCESS ) + { + DEBUG_ERR("Failed to init base context!!!"); + free(pSelf); + pSelf = NULL; } - - else - { - DEBUG_ERR("Failed to create XAMediaPlayerAdaptationMMFCtx !!!"); - return NULL; - } - if(pSelf) + else { - res = mmf_backend_engine_init(&(pSelf->mmfContext)); - if(!(pSelf->mmfContext) || (res != XA_RESULT_SUCCESS)) - { - /* TODO Check to make sure there is no undeleted MMF objects here*/ - DEBUG_ERR("Failed to init mmf context!!!"); - free(pSelf); - pSelf = NULL; - return NULL; - } + pSelf->isForRadio = XA_BOOLEAN_FALSE; + pSelf->baseObj.baseObj.fwtype = FWMgrFWMMF; + pSelf->xaSource = pDataSrc; + pSelf->xaBankSrc = pBankSrc; + pSelf->xaAudioSink = pAudioSnk; + pSelf->xaVideoSink = pImageVideoSnk; + pSelf->xaLEDArray = pLEDArray; + pSelf->xaVibra = pVibra; + pSelf->curMirror = XA_VIDEOMIRROR_NONE; + pSelf->curRotation = 0; + pSelf->isobjsrc = XA_BOOLEAN_FALSE; + pSelf->cameraSinkSynced = XA_BOOLEAN_FALSE; + /*pSelf->waitData = XA_BOOLEAN_FALSE;*/ + } + } + else + { + DEBUG_ERR("Failed to create XAMediaPlayerAdaptationMMFCtx !!!"); + return NULL; + } + if(pSelf) + { + res = mmf_backend_engine_init(&(pSelf->mmfContext)); + if(!(pSelf->mmfContext) || (res != XA_RESULT_SUCCESS)) + { + /* TODO Check to make sure there is no undeleted MMF objects here*/ + DEBUG_ERR("Failed to init mmf context!!!"); + free(pSelf); + pSelf = NULL; + return NULL; + } res = mmf_set_play_adapt_context(pSelf->mmfContext, &(pSelf->baseObj)); if(pDataSrc) { @@ -120,7 +120,53 @@ return (XAAdaptationBaseCtx*)(&pSelf->baseObj.baseObj); } +/* + * XAMediaPlayerAdaptationMMFCtx* XAMediaPlayerAdapt_CreateRadio() + * @returns XAMediaPlayerAdaptationMMFCtx* - Pointer to created context, NULL if error occurs. + */ +XAAdaptationBaseCtx* XAMediaPlayerAdaptMMF_CreateRadio(XAMediaPlayerAdaptationMMFCtx *pSelf, XADataSource *pDataSrc, XADataSource *pBankSrc, + XADataSink *pAudioSnk, XADataSink *pImageVideoSnk, + XADataSink *pVibra, XADataSink *pLEDArray) +{ + XAresult res; + DEBUG_API("->XAMediaPlayerAdaptMMF_CreateRadio"); + + res = XAAdaptationBaseMMF_Init(&(pSelf->baseObj), XARadioAdaptation); + if (res != XA_RESULT_SUCCESS) + { + DEBUG_ERR("Failed to init base context!!!"); + free(pSelf); + pSelf = NULL; + return NULL; + } + + pSelf->isForRadio = XA_BOOLEAN_TRUE; + pSelf->baseObj.baseObj.fwtype = FWMgrFWMMF; + pSelf->xaSource = pDataSrc; + pSelf->xaBankSrc = pBankSrc; + pSelf->xaAudioSink = pAudioSnk; + pSelf->xaVideoSink = pImageVideoSnk; + pSelf->xaLEDArray = pLEDArray; + pSelf->xaVibra = pVibra; + pSelf->curMirror = XA_VIDEOMIRROR_NONE; + pSelf->curRotation = 0; + pSelf->isobjsrc = XA_BOOLEAN_FALSE; + pSelf->cameraSinkSynced = XA_BOOLEAN_FALSE; + /*pSelf->waitData = XA_BOOLEAN_FALSE;*/ + + res = mmf_backend_engine_init(&(pSelf->mmfContext)); + if(!(pSelf->mmfContext) || (res != XA_RESULT_SUCCESS)) + { + /* TODO Check to make sure there is no undeleted MMF objects here*/ + DEBUG_ERR("Failed to init mmf context!!!"); + free(pSelf); + pSelf = NULL; + return NULL; + } + DEBUG_API("<-XAMediaPlayerAdaptMMF_Create"); + return (XAAdaptationBaseCtx*)(&pSelf->baseObj.baseObj); +} /* * XAresult XAMediaPlayerAdaptMMF_PostInit() @@ -137,6 +183,12 @@ XAAdaptationBaseMMF_PostInit(bCtx); + if (pSelf->isForRadio) + { + DEBUG_API("<-XAMediaPlayerAdaptMMF_PostInit"); + return XA_RESULT_SUCCESS; + } + if(pSelf->mmfContext) { XADataLocator_URI* tempUri = (XADataLocator_URI*)(pSelf->xaSource->pLocator); diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xamediaplayeradaptctxmmf.h --- a/khronosfws/openmax_al/src/mmf_adaptation/xamediaplayeradaptctxmmf.h Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xamediaplayeradaptctxmmf.h Fri May 28 19:26:28 2010 -0500 @@ -28,6 +28,9 @@ XAAdaptationBaseCtx* XAMediaPlayerAdaptMMF_Create( XADataSource *pDataSrc, XADataSource *pBankSrc, XADataSink *pAudioSnk, XADataSink *pImageVideoSnk, XADataSink *pVibra, XADataSink *pLEDArray); +XAAdaptationBaseCtx* XAMediaPlayerAdaptMMF_CreateRadio(XAMediaPlayerAdaptationMMFCtx *pSelf, XADataSource *pDataSrc, XADataSource *pBankSrc, + XADataSink *pAudioSnk, XADataSink *pImageVideoSnk, + XADataSink *pVibra, XADataSink *pLEDArray); XAresult XAMediaPlayerAdaptMMF_PostInit( XAAdaptationMMFCtx* bCtx ); void XAMediaPlayerAdaptMMF_Destroy( XAAdaptationMMFCtx* bCtx ); diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xanokialinearvolumeitfadaptationmmf.c --- a/khronosfws/openmax_al/src/mmf_adaptation/xanokialinearvolumeitfadaptationmmf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xanokialinearvolumeitfadaptationmmf.c Fri May 28 19:26:28 2010 -0500 @@ -21,6 +21,8 @@ #include "xanokialinearvolumeitfadaptationmmf.h" #include "xamediaplayeradaptctxmmf.h" #include "cmmfbackendengine.h" +#include "cmmfradiobackendengine.h" + /* * XAresult XANokiaLinearVolumeItfAdapt_SetVolumeLevel(void *ctx, AdaptationContextIDS ctx->baseObj.ctxId, * XAuint32 percentage) @@ -54,6 +56,11 @@ mmf_volumeitf_set_volume(((XAMediaPlayerAdaptationMMFCtx*)ctx)->mmfContext, vol); } + else if (ctx->baseObj.ctxId == XARadioAdaptation) + { + mmf_set_player_adapt_context(cmmfradiobackendengine_init(), ctx); + res = set_volume(cmmfradiobackendengine_init(), percentage); + } DEBUG_API("<-XANokiaLinearVolumeItfAdapt_SetVolumeLevel"); return res; } @@ -62,8 +69,7 @@ XAuint32* stepcount) { XAresult res = XA_RESULT_SUCCESS; - DEBUG_API_A1("->XANokiaLinearVolumeItfAdapt_SetVolumeLevel to: %d", - percentage); + DEBUG_API("->XANokiaLinearVolumeItfAdapt_GetStepCount "); if(!ctx || ( ctx->baseObj.ctxId != XAMediaPlayerAdaptation && ctx->baseObj.ctxId != XAMediaRecorderAdaptation && ctx->baseObj.ctxId != XARadioAdaptation) ) @@ -80,7 +86,7 @@ stepcount); } - DEBUG_API("<-XANokiaLinearVolumeItfAdapt_SetVolumeLevel"); + DEBUG_API("<-XANokiaLinearVolumeItfAdapt_GetStepCount"); return res; } diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xanokiavolumeextitfadaptationmmf.c --- a/khronosfws/openmax_al/src/mmf_adaptation/xanokiavolumeextitfadaptationmmf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xanokiavolumeextitfadaptationmmf.c Fri May 28 19:26:28 2010 -0500 @@ -19,6 +19,7 @@ #include "xamediaplayeradaptctxmmf.h" #include "xamediarecorderadaptctxmmf.h" #include "cmmfbackendengine.h" +#include "cmmfradiobackendengine.h" /* * XAresult XANokiaVolumeExtItfAdapt_SetMute(void *ctx, AdaptationContextIDS ctx->ctxId, XAboolean mute) @@ -30,6 +31,8 @@ XAresult XANokiaVolumeExtItfAdapt_SetMute(XAAdaptationMMFCtx *ctx, XAboolean mute) { XAuint32 volume; + XAresult res = XA_RESULT_SUCCESS; + DEBUG_API("->XANokiaVolumeExtItfAdapt_SetMute"); if(!ctx || ( ctx->baseObj.ctxId != XAMediaPlayerAdaptation && ctx->baseObj.ctxId != XAMediaRecorderAdaptation && @@ -77,11 +80,12 @@ } else if ( ctx->baseObj.ctxId == XARadioAdaptation ) { - + mmf_set_player_adapt_context(cmmfradiobackendengine_init(), ctx); + res = set_mute(cmmfradiobackendengine_init(), mute); } DEBUG_API("<-XANokiaVolumeExtItfAdapt_SetMute"); - return XA_RESULT_SUCCESS; + return res; } /* @@ -111,7 +115,11 @@ { } - + else if ( ctx->baseObj.ctxId == XARadioAdaptation ) + { + return XA_RESULT_FEATURE_UNSUPPORTED; + } + DEBUG_API("<-XANokiaVolumeExtItfAdapt_EnableStereoPosition"); return XA_RESULT_SUCCESS; } @@ -143,6 +151,10 @@ { } + else if ( ctx->baseObj.ctxId == XARadioAdaptation ) + { + return XA_RESULT_FEATURE_UNSUPPORTED; + } DEBUG_API("<-XANokiaVolumeExtItfAdapt_SetStereoPosition"); return XA_RESULT_SUCCESS; diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.c --- a/khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.c Fri May 28 19:26:28 2010 -0500 @@ -20,6 +20,7 @@ #include "xaplayitfadaptationmmf.h" #include "xaadaptationmmf.h" #include "cmmfbackendengine.h" +#include "cmmfradiobackendengine.h" #include extern XAboolean cameraRealized; @@ -47,16 +48,32 @@ { case XA_PLAYSTATE_STOPPED: { - ret = mmf_playitf_stop_playback(mCtx->mmfContext); - break; + if ( bCtx->ctxId == XARadioAdaptation ) + { + mmf_set_player_adapt_context(cmmfradiobackendengine_init(), bCtx); + stop_radio(cmmfradiobackendengine_init()); + } + else + { + ret = mmf_playitf_stop_playback(mCtx->mmfContext); + } + break; } case XA_PLAYSTATE_PAUSED: ret = mmf_playitf_pause_playback(mCtx->mmfContext); break; case XA_PLAYSTATE_PLAYING: { - ret = mmf_playitf_resume_playback(mCtx->mmfContext); - break; + if ( bCtx->ctxId == XARadioAdaptation ) + { + mmf_set_player_adapt_context(cmmfradiobackendengine_init(), bCtx); + play_radio(cmmfradiobackendengine_init()); + } + else + { + ret = mmf_playitf_resume_playback(mCtx->mmfContext); + } + break; } default: ret = XA_RESULT_PARAMETER_INVALID; @@ -211,3 +228,21 @@ DEBUG_API("<-XAPlayItfAdaptMMF_SetPositionUpdatePeriod"); return ret; } +/* + * XAresult XAPlayItfAdapt_StateChange + * Handle callback from Radio utility + */ +void XAPlayItfAdaptMMF_StateChange(XAAdaptationBaseCtx *bCtx, XAboolean playing) +{ + if (playing) + { + XAAdaptEvent event = {XA_PLAYITFEVENTS, XA_PLAYEVENT_HEADMOVING,1,0}; + XAAdaptationBase_SendAdaptEvents(bCtx, &event ); + } + else + { + XAAdaptEvent event = {XA_PLAYITFEVENTS, XA_PLAYEVENT_HEADSTALLED,1,0}; + XAAdaptationBase_SendAdaptEvents(bCtx, &event ); + } + +} diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.h --- a/khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.h Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.h Fri May 28 19:26:28 2010 -0500 @@ -29,7 +29,7 @@ "XA_PLAYSTATE_PAUSED", "XA_PLAYSTATE_PLAYING" }; -#define PLAYSTATENAME(i) (const char*)((i>0&&i<4)?playstatenamesmmf[i-1]:"INVALID") +#define PLAYSTATENAME(i) (const char*)((i>0&&i<4)?playstatenamemmf[i-1]:"INVALID") #endif /*_DEBUG*/ @@ -44,5 +44,5 @@ XAresult XAPlayItfAdaptMMF_SetMarkerPosition(XAAdaptationBaseCtx *bCtx, XAmillisecond mSec); XAresult XAPlayItfAdaptMMF_ClearMarkerPosition(XAAdaptationBaseCtx *bCtx); XAresult XAPlayItfAdaptMMF_SetPositionUpdatePeriod(XAAdaptationBaseCtx *bCtx, XAmillisecond mSec); - +void XAPlayItfAdaptMMF_StateChange(XAAdaptationBaseCtx *bCtx, XAboolean playing); #endif /* XAPLAYITFADAPTATIONMMF_H */ diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xaradioadaptctx.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xaradioadaptctx.c Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,111 @@ +/* +* 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: +* +*/ + +#include "xaradioadaptctx.h" +#include "xaadaptationmmf.h" +#include "cmmfradiobackendengine.h" +#include "assert.h" + +/* + * XAAdaptationMMFCtx* XARadioAdapt_Create() + * Allocates memory for Radio Adaptation Context and makes 1st phase initialization + * @returns XARadioAdaptationCtx* - Pointer to created context + */ +XAAdaptationBaseCtx* XARadioAdapt_Create() +{ + XARadioAdaptationCtx *pSelf = (XARadioAdaptationCtx*)calloc(1, sizeof(XARadioAdaptationCtx)); + DEBUG_API("->XARadioAdapt_Create"); + + if ( pSelf) + { + if( XAAdaptationBase_Init(&(pSelf->baseObj.baseObj),XARadioAdaptation) + != XA_RESULT_SUCCESS ) + { + DEBUG_ERR("Failed to init base context!!!"); + free(pSelf); + pSelf = NULL; + } + else + { + pSelf->range = RADIO_DEFAULT_FREQ_RANGE; + pSelf->frequency = RADIO_DEFAULT_FREQ; + pSelf->rdsEmulationThread = 0; + pSelf->emulationThread = 0; + } + } + + DEBUG_API("<-XARadioAdapt_Create"); + return (XAAdaptationBaseCtx*)&pSelf->baseObj; +} + +/* + * XAresult XARadioAdapt_PostInit() + * 2nd phase initialization of Radio Adaptation Context + */ +XAresult XARadioAdapt_PostInit(XAAdaptationBaseCtx* bCtx) +{ + XAresult ret = XA_RESULT_SUCCESS; + XARadioAdaptationCtx* ctx = NULL; + DEBUG_API("->XARadioAdapt_PostInit"); + if(bCtx == NULL || bCtx->ctxId != XARadioAdaptation ) + { + DEBUG_ERR("Invalid parameter!!"); + DEBUG_API("<-XARadioAdapt_PostInit"); + return XA_RESULT_PARAMETER_INVALID; + } + ctx = (XARadioAdaptationCtx*)bCtx; + assert(ctx); + + ret = XAAdaptationBase_PostInit( &ctx->baseObj.baseObj ); + if( ret!=XA_RESULT_SUCCESS ) + { + DEBUG_ERR("Base context postinit failed!!"); + DEBUG_API("<-XARadioAdapt_PostInit"); + return ret; + } + + cmmfradiobackendengine_init(); + + DEBUG_API("<-XARadioAdapt_PostInit"); + return ret; +} + +/* + * void XARadioAdapt_Destroy(XAAdaptationMMFCtx* bCtx) + * Destroys Radio Adaptation Context + * @param ctx - Radio Adaptation context to be destroyed + */ +void XARadioAdapt_Destroy(XAAdaptationBaseCtx* bCtx) +{ + XARadioAdaptationCtx* ctx = NULL; + DEBUG_API("->XARadioAdapt_Destroy"); + + cmmfradiobackendengine_delete(cmmfradiobackendengine_init()); + + if(bCtx == NULL || bCtx->ctxId != XARadioAdaptation ) + { + DEBUG_ERR("Invalid parameter!!"); + DEBUG_API("<-XARadioAdapt_Destroy"); + return; + } + ctx = (XARadioAdaptationCtx*)bCtx; + XAAdaptationBase_Free(&(ctx->baseObj.baseObj)); + + free(ctx); + + DEBUG_API("<-XARadioAdapt_Destroy"); +} diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xaradioadaptctx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xaradioadaptctx.h Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,35 @@ +/* +* 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: +* +*/ + +#ifndef XARADIOADAPTCTX_H +#define XARADIOADAPTCTX_H + +#include "xaadaptationmmf.h" + + +#define RADIO_DEFAULT_FREQ_RANGE XA_FREQRANGE_FMEUROAMERICA +#define RADIO_DEFAULT_FREQ 88000000 + +/* TYPEDEFS */ +typedef struct XARadioAdaptationCtx_ XARadioAdaptationCtx; + +/* FUNCTIONS */ +XAAdaptationBaseCtx* XARadioAdapt_Create(void); +XAresult XARadioAdapt_PostInit(XAAdaptationBaseCtx* bCtx); +void XARadioAdapt_Destroy(XAAdaptationBaseCtx* bCtx); + +#endif /* XARADIOADAPTCTX_H */ diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,324 @@ +/* +* 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: +* +*/ + +#include +#include "XADebug.h" +#include "XAAdaptationMMF.h" +#include "XARadioItfAdaptation.h" +#include "XARadioAdaptCtx.h" +#include "cmmfradiobackendengine.h" + +/* + * XAresult XARadioItfAdapt_SetFreqRange(XAAdaptationMMFCtx *bCtx, XAuint8 range) + */ +XAresult XARadioItfAdapt_SetFreqRange(XAAdaptationMMFCtx *bCtx, XAuint8 range) +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_SetFreqRange"); + mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx); + set_freq_range(cmmfradiobackendengine_init(), range); + DEBUG_API("<-XARadioItfAdapt_SetFreqRange"); + return ret; +} + +/* + * XAresult XARadioItfAdapt_GetFreqRange(XAuint8 * pFreqRange) + * + */ +XAresult XARadioItfAdapt_GetFreqRange(XAuint8 * pFreqRange) +{ + XAresult res = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_GetFreqRange"); + res = get_freq_range(cmmfradiobackendengine_init(), pFreqRange); + DEBUG_API("<-XARadioItfAdapt_GetFreqRange"); + return res; +} + +/* + * XAresult XARadioItfAdapt_IsFreqRangeSupported(XAuint8 range, + * XAboolean * pSupported) + */ +XAresult XARadioItfAdapt_IsFreqRangeSupported(XAuint8 range, + XAboolean * pSupported) +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_IsFreqRangeSupported"); + *pSupported = XA_BOOLEAN_TRUE; // No radio utility API for this, set to true automatically. + DEBUG_API("<-XARadioItfAdapt_IsFreqRangeSupported"); + return ret; +} + +/* + * XAresult XARadioItfAdapt_GetFreqRangeProperties(XAAdaptationMMFCtx *bCtx, + * XAuint8 * pRange, + * XAuint32 * pMinFreq, + * XAuint32 * pMaxFreq) + */ +XAresult XARadioItfAdapt_GetFreqRangeProperties(XAAdaptationMMFCtx *bCtx, + XAuint8 range, + XAuint32 * pMinFreq, + XAuint32 * pMaxFreq) +{ + XAresult res = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_GetFreqRangeProperties"); + mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx); + res = get_freq_range_properties(cmmfradiobackendengine_init(), range, pMinFreq, pMaxFreq); + DEBUG_API("<-XARadioItfAdapt_GetFreqRangeProperties"); + return res; +} + +/* + * XAresult XARadioItfAdapt_SetFrequency(XAAdaptationMMFCtx *bCtx, XAuint32 freq) + */ +XAresult XARadioItfAdapt_SetFrequency(XAAdaptationMMFCtx *bCtx, XAuint32 freq) +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_SetFrequency"); + mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx); + set_frequency(cmmfradiobackendengine_init(), freq); + DEBUG_API("<-XARadioItfAdapt_SetFrequency"); + return ret; +} + + +/* + * XAresult XARadioItfAdapt_GetFrequency(XAAdaptationMMFCtx *bCtx, + * XAuint32* pFrequency) + */ +XAresult XARadioItfAdapt_GetFrequency(XAuint32* pFrequency) +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_GetFrequency"); + ret = get_frequency(cmmfradiobackendengine_init(), pFrequency); + DEBUG_API("<-XARadioItfAdapt_GetFrequency"); + return ret; +} + + +/* + * XAresult XARadioItfAdapt_CancelSetFrequency() + */ +XAresult XARadioItfAdapt_CancelSetFrequency() +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_CancelSetFrequency"); + cancel_set_frequency(cmmfradiobackendengine_init()); + DEBUG_API("<-XARadioItfAdapt_CancelSetFrequency"); + return ret; +} + +/* + * XAresult XARadioItfAdapt_CancelStationSeek() + */ +XAresult XARadioItfAdapt_CancelStationSeek() +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_CancelStationSeek"); + cancel_station_seek(cmmfradiobackendengine_init()); + DEBUG_API("<-XARadioItfAdapt_CancelStationSeek"); + return ret; +} + +/* + * XAresult XARadioItfAdapt_SetSquelch(XAboolean squelch) + */ +XAresult XARadioItfAdapt_SetSquelch(XAboolean squelch) +{ + XAresult ret = XA_RESULT_FEATURE_UNSUPPORTED; + DEBUG_API("->XARadioItfAdapt_SetSquelch"); + return ret; +} + +/* + * XAresult XARadioItfAdapt_GetSquelch(XAboolean *squelch) + */ +XAresult XARadioItfAdapt_GetSquelch(XAboolean* squelch) +{ + XAresult ret = XA_RESULT_FEATURE_UNSUPPORTED; + DEBUG_API("->XARadioItfAdapt_GetSquelch"); + return ret; +} + +/* + * XAresult XARadioItfAdapt_SetStereoMode(XAAdaptationMMFCtx *bCtx, XAuint32 mode) + */ +XAresult XARadioItfAdapt_SetStereoMode(XAAdaptationMMFCtx *bCtx, XAuint32 mode) +{ + XAresult res = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_SetStereoMode"); + mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx); + res = set_stereo_mode(cmmfradiobackendengine_init(), mode); + DEBUG_API("<-XARadioItfAdapt_SetStereoMode"); + return res; +} + +/* + * XAresult XARadioItfAdapt_GetSignalStrength(XAuint32 * pStrength) + */ +XAresult XARadioItfAdapt_GetSignalStrength(XAuint32 * pStrength) +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_GetSignalStrength"); + ret = get_signal_strength(cmmfradiobackendengine_init(), pStrength); + DEBUG_API("<-XARadioItfAdapt_GetSignalStrength"); + return ret; +} + +/* + * XAresult XARadioItfAdapt_Seek(XAAdaptationMMFCtx *bCtx, XAboolean upwards) + */ +XAresult XARadioItfAdapt_Seek(XAAdaptationMMFCtx *bCtx, XAboolean upwards) +{ + XAboolean direction; + XAresult ret = XA_RESULT_SUCCESS; + if (!upwards) + direction = XA_BOOLEAN_FALSE; + else + direction = XA_BOOLEAN_TRUE; + DEBUG_API("->XARadioItfAdapt_Seek"); + mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx); + station_seek(cmmfradiobackendengine_init(), direction); + DEBUG_API("<-XARadioItfAdapt_Seek"); + return ret; +} + +/* + * void XARadioItfAdapt_StopSeeking(XAAdaptationMMFCtx *bCtx) + */ +void XARadioItfAdapt_StopSeeking(XAAdaptationMMFCtx *bCtx) +{ + DEBUG_API("->XARadioItfAdapt_StopSeeking"); + mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx); + cancel_station_seek(cmmfradiobackendengine_init()); + DEBUG_API("<-XARadioItfAdapt_StopSeeking"); +} + +/* + * XAresult XARadioItfAdapt_GetStereoMode(XAuint32 * pMode) + */ +XAresult XARadioItfAdapt_GetStereoMode(XAuint32 * pMode) +{ + XAresult ret = XA_RESULT_SUCCESS; + DEBUG_API("->XARadioItfAdapt_GetStereoMode"); + ret = get_stereo_mode(cmmfradiobackendengine_init(), pMode); + DEBUG_API("<-XARadioItfAdapt_GetStereoMode"); + return ret; +} + +/* + * void XARadioItfAdapt_Free() + */ +void XARadioItfAdapt_Free() +{ + DEBUG_API("->XARadioItfAdapt_Free"); + +} + +void XARadioItfAdapt_SeekComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency) +{ + XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SEEK_COMPLETE,1,0}; + if (ctx) + { + if (aError) + { + event.data = &aError; + } + else + { + event.data = &aFrequency; + } + + XAAdaptationBase_SendAdaptEvents(ctx, &event ); + } +} + +void XARadioItfAdapt_FrequencyChange(XAAdaptationBaseCtx *ctx, TInt aFrequency) +{ + // Currently: Bug in FM Radio Utility: SetFrequency calls this callback as well as SetFrequencyComplete + // (So client will end up getting 2 events on a SetFrequency call) + XAuint32 freq = aFrequency; + XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0}; + if (ctx) + { + event.data = &freq; + XAAdaptationBase_SendAdaptEvents(ctx, &event ); + } +} + +void XARadioItfAdapt_FrequencyRangeChange(XAAdaptationBaseCtx* ctx, TInt aFreqRangeChange) +{ + // Currently: Bug in FM Radio Utility: SetFrequencyRange triggers this callback as well as SetFrequencyRangeComplete + + /* XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED,1,0}; + if (baseCtx) + { + event.data = &aFreqRangeChange; + XAAdaptationBase_SendAdaptEvents(&baseCtx->baseObj, &event ); + } + */ +} + +void XARadioItfAdapt_SetFrequencyComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency) +{ + // Currently: Qt API has no event for SetFrequencyComplete, so must use this one: + XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0}; + XAuint32 freq = aFrequency; + if (ctx) + { + if (!aError) + { + event.data = &freq; + } + else + { + event.data = &aError; + } + XAAdaptationBase_SendAdaptEvents(ctx, &event ); + } +} + +void XARadioItfAdapt_SetFrequencyRangeComplete(XAAdaptationBaseCtx *ctx, TInt aError) +{ + XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED,1,0}; + if (ctx) + { + event.data = &aError; + XAAdaptationBase_SendAdaptEvents(ctx, &event ); + } +} + +void XARadioItfAdapt_StereoStatusChange(XAAdaptationBaseCtx *ctx, XAboolean aStereoStatus) +{ + XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_STEREO_STATUS_CHANGED,1,0}; + DEBUG_INFO_A1("XARadioItfAdapt_StereoStatusChange to: %s", aStereoStatus); + if (ctx) + { + event.data = &aStereoStatus; + XAAdaptationBase_SendAdaptEvents(ctx, &event ); + } +} + +void XARadioItfAdapt_SignalStrengthChange(XAAdaptationBaseCtx *ctx, TInt aSignalStrength) +{ + XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SIGNAL_STRENGTH_CHANGED,1,0}; + DEBUG_INFO_A1("XARadioItfAdapt_SignalStrengthChange to: %s", aSignalStrength); + if (ctx) + { + event.data = &aSignalStrength; + XAAdaptationBase_SendAdaptEvents(ctx, &event ); + } +} diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.h Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,75 @@ +/* +* 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: +* +*/ +#ifndef XARADIOITFFADAPTATION_H +#define XARADIOITFFADAPTATION_H + +#include "xaadaptationmmf.h" +#include "XADebug.h" + +/* FUNCTIONS */ + +XAresult XARadioItfAdapt_SetFreqRange(XAAdaptationMMFCtx *bCtx, XAuint8 range); + +XAresult XARadioItfAdapt_GetFreqRange(XAuint8 * pFreqRange); + +XAresult XARadioItfAdapt_IsFreqRangeSupported(XAuint8 range, + XAboolean * pSupported); + +XAresult XARadioItfAdapt_GetFreqRangeProperties(XAAdaptationMMFCtx *bCtx, + XAuint8 range, + XAuint32 * pMinFreq, + XAuint32 * pMaxFreq); + +XAresult XARadioItfAdapt_SetFrequency(XAAdaptationMMFCtx *bCtx, XAuint32 freq); + +XAresult XARadioItfAdapt_GetFrequency(XAuint32 * pFrequency); + +XAresult XARadioItfAdapt_CancelSetFrequency(void); + +XAresult XARadioItfAdapt_CancelStationSeek(void); + +XAresult XARadioItfAdapt_SetSquelch(XAboolean squelch); + +XAresult XARadioItfAdapt_GetSquelch(XAboolean* squelch); + +XAresult XARadioItfAdapt_SetStereoMode(XAAdaptationMMFCtx *bCtx, XAuint32 mode); + +XAresult XARadioItfAdapt_GetSignalStrength(XAuint32 * pStrength); + +XAresult XARadioItfAdapt_Seek(XAAdaptationMMFCtx *bCtx, XAboolean upwards); + +void XARadioItfAdapt_StopSeeking(XAAdaptationMMFCtx *bCtx); + +void XARadioItfAdapt_Free(void); + +void XARadioItfAdapt_SeekComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency); + +void XARadioItfAdapt_FrequencyChange(XAAdaptationBaseCtx *ctx, TInt aError); + +void XARadioItfAdapt_FrequencyRangeChange(XAAdaptationBaseCtx *ctx, TInt aFreqRangeChange); + +void XARadioItfAdapt_SetFrequencyComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency); + +void XARadioItfAdapt_SetFrequencyRangeComplete(XAAdaptationBaseCtx *ctx, TInt aError); + +XAresult XARadioItfAdapt_GetStereoMode(XAuint32 * pMode); + +void XARadioItfAdapt_StereoStatusChange(XAAdaptationBaseCtx *ctx, XAboolean aStereoStatus); + +void XARadioItfAdapt_SignalStrengthChange(XAAdaptationBaseCtx *ctx, TInt aSignalStrength); + +#endif /* XARADIOITFADAPTATION_H */ diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/radio/xaradiodevice.c --- a/khronosfws/openmax_al/src/radio/xaradiodevice.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/radio/xaradiodevice.c Fri May 28 19:26:28 2010 -0500 @@ -42,8 +42,7 @@ /* XAResult XARadioDeviceImpl_Create * Description: Create object */ -XAresult XARadioDeviceImpl_CreateRadioDevice(FrameworkMap* mapper, - XAObjectItf* pDevice, +XAresult XARadioDeviceImpl_CreateRadioDevice(XAObjectItf* pDevice, XAuint32 numInterfaces, const XAInterfaceID * pInterfaceIds, const XAboolean * pInterfaceRequired) @@ -120,25 +119,14 @@ } } } - - /* This code is put here to return Feature Not Supported since adaptation is not present*/ - /*************************************************/ - DEBUG_ERR("Required interface not found - abort creation!"); - XAObjectItfImpl_Destroy((XAObjectItf)&(pBaseObj)); - XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); - DEBUG_API("<-XARadioDeviceImpl_CreateRadioDevice"); - return XA_RESULT_FEATURE_UNSUPPORTED; - /*************************************************/ - -/* // Initialize XARadioDeviceImpl variables - pImpl->adaptationCtx = XARadioAdapt_Create(); - //Set ObjectItf to point to newly created object *pDevice = (XAObjectItf)&(pBaseObj->self); + pImpl->adaptationCtx = XARadioAdapt_Create(); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); + DEBUG_API("<-XARadioDeviceImpl_Create"); - return XA_RESULT_SUCCESS;*/ + return XA_RESULT_SUCCESS; } /* XAResult XARadioDeviceImpl_QueryNumSupportedInterfaces diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/radio/xaradioitf.c --- a/khronosfws/openmax_al/src/radio/xaradioitf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/radio/xaradioitf.c Fri May 28 19:26:28 2010 -0500 @@ -19,11 +19,12 @@ #include #include #include +#include #include "xaradioitf.h" - #include "xaradioitfadaptation.h" +#include "xathreadsafety.h" -#include "xathreadsafety.h" +#define FREQINTERVAL 20 /** * XARadioItfImpl* GetImpl(XARadioItf self) @@ -54,9 +55,7 @@ XAresult XARadioItfImpl_SetFreqRange(XARadioItf self, XAuint8 range) { XAresult ret = XA_RESULT_SUCCESS; - XAboolean isSupported = XA_BOOLEAN_FALSE; - XARadioItfImpl* impl = GetImpl(self); DEBUG_API("->XARadioItfImpl_SetFreqRange"); @@ -72,15 +71,13 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_IsFreqRangeSupported((XAAdaptationGstCtx*)impl->adapCtx, range, &isSupported); + ret = XARadioItfAdapt_IsFreqRangeSupported(range, &isSupported); if ( ret == XA_RESULT_SUCCESS && isSupported == XA_BOOLEAN_TRUE ) { - ret = XARadioItfAdapt_SetFreqRange((XAAdaptationGstCtx*)impl->adapCtx, range); + ret = XARadioItfAdapt_SetFreqRange((XAAdaptationMMFCtx*)impl->adapCtx, range); } - XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_SetFreqRange"); return ret; @@ -106,8 +103,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_GetFreqRange( (XAAdaptationGstCtx*)impl->adapCtx, pRange); + ret = XARadioItfAdapt_GetFreqRange(pRange); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_GetFreqRange"); @@ -138,8 +134,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_IsFreqRangeSupported( (XAAdaptationGstCtx*)impl->adapCtx, range, pSupported ); + ret = XARadioItfAdapt_IsFreqRangeSupported( range, pSupported ); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_IsFreqRangeSupported"); @@ -165,6 +160,9 @@ XAresult ret = XA_RESULT_SUCCESS; XAboolean isSupported = XA_BOOLEAN_FALSE; XARadioItfImpl* impl = GetImpl(self); + + *pFreqInterval = FREQINTERVAL; + DEBUG_API("->XARadioItfImpl_GetFreqRangeProperties"); XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio); @@ -176,8 +174,7 @@ DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties"); return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_IsFreqRangeSupported( (XAAdaptationGstCtx*)impl->adapCtx, range, &isSupported ); + ret = XARadioItfAdapt_IsFreqRangeSupported( range, &isSupported ); if (isSupported != XA_BOOLEAN_TRUE || ret != XA_RESULT_SUCCESS) { @@ -187,10 +184,9 @@ DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties"); return XA_RESULT_PARAMETER_INVALID; } - - - ret = XARadioItfAdapt_GetFreqRangeProperties( (XAAdaptationGstCtx*)impl->adapCtx, - range, pMinFreq, pMaxFreq, pFreqInterval ); + + ret = XARadioItfAdapt_GetFreqRangeProperties( (XAAdaptationMMFCtx*)impl->adapCtx, + range, pMinFreq, pMaxFreq ); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties"); @@ -220,8 +216,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_SetFrequency( (XAAdaptationGstCtx*)impl->adapCtx, freq ); + ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq ); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_SetFrequency"); @@ -251,8 +246,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_CancelSetFrequency( (XAAdaptationGstCtx*)impl->adapCtx ); + ret = XARadioItfAdapt_CancelSetFrequency(); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_CancelSetFrequency"); @@ -279,8 +273,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_GetFrequency( (XAAdaptationGstCtx*)impl->adapCtx, pFreq); + ret = XARadioItfAdapt_GetFrequency(pFreq); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_GetFrequency"); @@ -309,9 +302,7 @@ if (impl->squelch != squelch) { - - ret = XARadioItfAdapt_SetSquelch( (XAAdaptationGstCtx*)impl->adapCtx, squelch ); - + ret = XARadioItfAdapt_SetSquelch( squelch ); if ( ret == XA_RESULT_SUCCESS ) { impl->squelch = squelch; @@ -340,7 +331,7 @@ return XA_RESULT_PARAMETER_INVALID; } - *pSquelch = impl->squelch; + ret = XARadioItfAdapt_GetSquelch( pSquelch ); DEBUG_API("<-XARadioItfImpl_GetSquelch"); return ret; @@ -357,7 +348,7 @@ DEBUG_API("->XARadioItfImpl_SetStereoMode"); XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio); - if(!impl || mode > XA_STEREOMODE_AUTO ) + if( !impl || mode > XA_STEREOMODE_AUTO ) { XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); /* invalid parameter */ @@ -365,18 +356,14 @@ DEBUG_API("<-XARadioItfImpl_SetStereoMode"); return XA_RESULT_PARAMETER_INVALID; } - if ( impl->stereoMode != mode) { - - ret = XARadioItfAdapt_SetStereoMode( (XAAdaptationGstCtx*)impl->adapCtx, mode ); - - if ( ret == XA_RESULT_SUCCESS ) + ret = XARadioItfAdapt_SetStereoMode( (XAAdaptationMMFCtx*)impl->adapCtx, mode ); + if ( ret == XA_RESULT_SUCCESS ) { - impl->stereoMode = mode; + impl->stereoMode = mode; } - } - + } XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_SetStereoMode"); return ret; @@ -400,7 +387,7 @@ return XA_RESULT_PARAMETER_INVALID; } - *pMode = impl->stereoMode; + ret = XARadioItfAdapt_GetStereoMode( pMode ); DEBUG_API("<-XARadioItfImpl_GetStereoMode"); return ret; @@ -426,8 +413,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_GetSignalStrength( (XAAdaptationGstCtx*)impl->adapCtx, pStrength ); + ret = XARadioItfAdapt_GetSignalStrength( pStrength ); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_GetSignalStrength"); @@ -458,8 +444,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_Seek( (XAAdaptationGstCtx*)impl->adapCtx, upwards ); + ret = XARadioItfAdapt_Seek( (XAAdaptationMMFCtx*)impl->adapCtx, upwards ); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_Seek"); @@ -488,8 +473,7 @@ return XA_RESULT_PARAMETER_INVALID; } - - ret = XARadioItfAdapt_StopSeeking( (XAAdaptationGstCtx*)impl->adapCtx ); + XARadioItfAdapt_StopSeeking( (XAAdaptationMMFCtx*)impl->adapCtx ); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARadioItfImpl_StopSeeking"); @@ -497,165 +481,6 @@ } /** - * XAresult XARadioItfImpl_GetNumberOfPresets(XARadioItf self, XAuint32 * pNumPresets) - * Description: Returns the number of preset slots the device has for storing the presets. - **/ -XAresult XARadioItfImpl_GetNumberOfPresets(XARadioItf self, XAuint32 * pNumPresets) -{ - XAresult ret = XA_RESULT_SUCCESS; - XARadioItfImpl* impl = GetImpl(self); - DEBUG_API("->XARadioItfImpl_GetNumberOfPresets"); - - if(!impl || !pNumPresets) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - /* invalid parameter */ - DEBUG_API("<-XARadioItfImpl_GetNumberOfPresets"); - return XA_RESULT_PARAMETER_INVALID; - } - - *pNumPresets = impl->numOfPresets; - - DEBUG_API("<-XARadioItfImpl_GetNumberOfPresets"); - return ret; -} - -/** - * XAresult XARadioItfImpl_SetPreset(XARadioItf self, - * XAuint32 preset, - * XAuint32 freq, - * XAuint8 range, - * XAuint32 mode, - * const XAchar * name) - * Description: Sets the preset. - **/ -XAresult XARadioItfImpl_SetPreset(XARadioItf self, - XAuint32 preset, - XAuint32 freq, - XAuint8 range, - XAuint32 mode, - const XAchar * name) -{ - XAresult ret = XA_RESULT_SUCCESS; - XAboolean supported = XA_BOOLEAN_FALSE; - XAuint32 minFreq = 0; - XAuint32 maxFreq = 0; - XAuint32 freqInterval = 0; - - XARadioItfImpl* impl = GetImpl(self); - DEBUG_API("->XARadioItfImpl_SetPreset"); - - if(!impl || !name) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - /* invalid parameter */ - DEBUG_API("<-XARadioItfImpl_SetPreset"); - return XA_RESULT_PARAMETER_INVALID; - } - ret = (*self)->IsFreqRangeSupported(self, range, &supported); - if(supported != XA_BOOLEAN_TRUE || ret != XA_RESULT_SUCCESS) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - /* invalid range */ - DEBUG_API("<-XARadioItfImpl_SetPreset"); - return XA_RESULT_PARAMETER_INVALID; - } - ret = (*self)->GetFreqRangeProperties(self, range, &minFreq, &maxFreq, &freqInterval); - if (freq < minFreq || freq > maxFreq || ((freq-minFreq)%freqInterval != 0) || - ret != XA_RESULT_SUCCESS) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - /* invalid freq */ - DEBUG_API("<-XARadioItfImpl_SetPreset"); - return XA_RESULT_PARAMETER_INVALID; - } - if (preset < 1 || preset >= impl->numOfPresets || - mode > XA_STEREOMODE_AUTO || - strlen((char*)name) > RADIO_PRESET_NAME_MAX_LENGTH) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - /* invalid preset, name or mode*/ - DEBUG_API("<-XARadioItfImpl_SetPreset"); - return XA_RESULT_PARAMETER_INVALID; - } - - - - free(impl->presets[preset].name); - - impl->presets[preset].freq = freq; - impl->presets[preset].range = range; - impl->presets[preset].stereoMode = mode; - impl->presets[preset].name = calloc(1, RADIO_PRESET_NAME_MAX_LENGTH+1); - strncpy( impl->presets[preset].name, (char*)name, RADIO_PRESET_NAME_MAX_LENGTH ); - - DEBUG_API("<-XARadioItfImpl_SetPreset"); - return ret; -} - -/** - * XAresult XARadioItfImpl_GetPreset(XARadioItf self, - * XAuint32 preset, - * XAuint32 * pFreq, - * XAuint8 * pRange, - * XAuint32 * pMode, - * XAchar * pName, - * XAuint16 * pNameLength) - * Description: Gets the settings stored into a preset. - **/ -XAresult XARadioItfImpl_GetPreset(XARadioItf self, - XAuint32 preset, - XAuint32 * pFreq, - XAuint8 * pRange, - XAuint32 * pMode, - XAchar * pName, - XAuint16 * pNameLength) -{ - /* Supporting CT tester the API signature is newer, but API functionality reflects required spec version. - Implement newer specification in terms of handling pName and pNameLength*/ - XAresult ret = XA_RESULT_SUCCESS; - XARadioItfImpl* impl = GetImpl(self); - DEBUG_API("->XARadioItfImpl_GetPreset"); - - if(!impl || !pFreq || !pRange || !pMode || !pNameLength) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - /* invalid parameter */ - DEBUG_API("<-XARadioItfImpl_GetPreset"); - return XA_RESULT_PARAMETER_INVALID; - } - if (pName) - { - if(preset < 1 || preset > impl->numOfPresets) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - /* invalid parameter */ - DEBUG_API("<-XARadioItfImpl_GetPreset"); - return XA_RESULT_PARAMETER_INVALID; - } - - *pFreq = impl->presets[preset].freq; - *pRange = impl->presets[preset].range; - *pMode = impl->presets[preset].stereoMode; - if(*pNameLengthpresets[preset].name, *pNameLength ); - ret = XA_RESULT_BUFFER_INSUFFICIENT; - } - else - { - strncpy( (char*)pName, impl->presets[preset].name, RADIO_PRESET_NAME_MAX_LENGTH ); - } - - } - /*Just adding some meaninful value, when supporting new spec this must be fetch the system*/ - *pNameLength = RADIO_PRESET_NAME_MAX_LENGTH; - - DEBUG_API("<-XARadioItfImpl_GetPreset"); - return ret; -} - -/** * XAresult XARadioItfImpl_RegisterRadioCallback(XARadioItf self, * xaRadioCallback callback, * void * pContext) @@ -695,7 +520,6 @@ **/ XARadioItfImpl* XARadioItfImpl_Create(XAAdaptationBaseCtx *adapCtx) { - XAuint16 index = 0; XARadioItfImpl *self = (XARadioItfImpl*) calloc(1,sizeof(XARadioItfImpl)); @@ -719,32 +543,15 @@ self->itf.GetSignalStrength = XARadioItfImpl_GetSignalStrength; self->itf.Seek = XARadioItfImpl_Seek; self->itf.StopSeeking = XARadioItfImpl_StopSeeking; - self->itf.GetNumberOfPresets = XARadioItfImpl_GetNumberOfPresets; - self->itf.SetPreset = XARadioItfImpl_SetPreset; - self->itf.GetPreset = XARadioItfImpl_GetPreset; self->itf.RegisterRadioCallback = XARadioItfImpl_RegisterRadioCallback; /* init variables */ self->squelch = XA_BOOLEAN_FALSE; self->stereoMode = RADIO_DEFAULT_STEREO_MODE; - - self->preset = 0; - self->numOfPresets = RADIO_NUM_OF_PRESETS; - - for (index = 0; index < self->numOfPresets; index++) - { - self->presets[index].freq = RADIO_DEFAULT_FREQ; - self->presets[index].range = RADIO_DEFAULT_FREQ_RANGE; - self->presets[index].stereoMode = RADIO_DEFAULT_STEREO_MODE; - self->presets[index].name = calloc(1, RADIO_PRESET_NAME_MAX_LENGTH+1); - strncpy( self->presets[index].name, RadioPresetDefaultName, RADIO_PRESET_NAME_MAX_LENGTH ); - } - self->callback = NULL; self->context = NULL; self->cbPtrToSelf = NULL; - self->adapCtx = adapCtx; XAAdaptationBase_AddEventHandler( adapCtx, &XARadioItfImpl_AdaptCb, XA_RADIOITFEVENTS, self ); @@ -762,20 +569,11 @@ **/ void XARadioItfImpl_Free(XARadioItfImpl* self) { - XAuint16 index = 0; DEBUG_API("->XARadioItfImpl_Free"); XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS(XATSRadio); - - XAAdaptationBase_RemoveEventHandler( self->adapCtx, &XARadioItfImpl_AdaptCb ); - XARadioItfAdapt_Free(self->adapCtx); - - for (index = 0; index < self->numOfPresets; index++) - { - free(self->presets[index].name); - } - + XARadioItfAdapt_Free(); assert(self==self->self); free(self); @@ -789,6 +587,9 @@ void XARadioItfImpl_AdaptCb( void *pHandlerCtx, XAAdaptEvent *event ) { XARadioItfImpl* impl =(XARadioItfImpl*)pHandlerCtx; + XAuint32 eventData = 0; + XAboolean eventBoolean = XA_BOOLEAN_FALSE; + DEBUG_API("->XARadioItfimpl_AdaptCb"); if(!impl) @@ -801,19 +602,37 @@ if( event->eventid == XA_ADAPT_RADIO_FREQUENCY_CHANGED && impl->callback ) { - DEBUG_API("Frequency changed in adaptation"); - impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_FREQUENCY_CHANGED, 0, XA_BOOLEAN_FALSE ); + DEBUG_API("Frequency changed in adaptation"); + eventData = *(XAuint32*)event->data; + impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_FREQUENCY_CHANGED, eventData, eventBoolean ); } + else if( event->eventid == XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED && impl->callback ) { DEBUG_API("Frequency range changed in adaptation"); - impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED, 0, XA_BOOLEAN_FALSE ); + + impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED, eventData, eventBoolean ); } + else if( event->eventid == XA_ADAPT_RADIO_SEEK_COMPLETE && impl->callback ) { DEBUG_API("Seek complete in adaptation"); - impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_SEEK_COMPLETED, 0, XA_BOOLEAN_FALSE ); + eventBoolean = *(XAboolean*)event->data; + impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_SEEK_COMPLETED, eventData, eventBoolean ); } + + else if( event->eventid == XA_ADAPT_RADIO_STEREO_STATUS_CHANGED && impl->callback ) + { + DEBUG_API("Stereo status change in adaptation"); + eventBoolean = *(XAboolean*)event->data; + impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_STEREO_STATUS_CHANGED, eventData, eventBoolean ); + } + + else if( event->eventid == XA_ADAPT_RADIO_SIGNAL_STRENGTH_CHANGED && impl->callback ) + { + DEBUG_API("Signal Strength Change in adaptation"); + impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_SIGNAL_STRENGTH_CHANGED, eventData, eventBoolean ); + } else { /* do nothing */ @@ -821,4 +640,3 @@ DEBUG_API("<-XARadioItfimpl_AdaptCb"); } - diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/radio/xaradioitf.h --- a/khronosfws/openmax_al/src/radio/xaradioitf.h Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/radio/xaradioitf.h Fri May 28 19:26:28 2010 -0500 @@ -22,23 +22,13 @@ #include "xaradioitfadaptation.h" /** MACROS **/ -#define RADIO_PRESET_NAME_MAX_LENGTH 20 - +#define RADIO_DEFAULT_STEREO_MODE 2 /** TYPES **/ /** ENUMERATIONS **/ /** STRUCTURES **/ -/* Definition of radio preset */ -typedef struct RadioPreset_ -{ - XAuint32 freq; - XAuint8 range; - XAuint32 stereoMode; - char* name; -} RadioPreset; - /* Definition of XAEqualizerItf implementation */ typedef struct XARadioItfImpl_ { @@ -51,11 +41,6 @@ XAboolean squelch; XAuint32 stereoMode; - XAuint32 preset; - XAuint32 numOfPresets; - - RadioPreset presets[RADIO_NUM_OF_PRESETS]; - XARadioItf cbPtrToSelf; xaRadioCallback callback; void *context; @@ -101,23 +86,6 @@ XAresult XARadioItfImpl_StopSeeking(XARadioItf self); -XAresult XARadioItfImpl_GetNumberOfPresets(XARadioItf self, XAuint32 * pNumPresets); - -XAresult XARadioItfImpl_SetPreset(XARadioItf self, - XAuint32 preset, - XAuint32 freq, - XAuint8 range, - XAuint32 mode, - const XAchar * name); - -XAresult XARadioItfImpl_GetPreset(XARadioItf self, - XAuint32 preset, - XAuint32 * pFreq, - XAuint8 * pRange, - XAuint32 * pMode, - XAchar * pName, - XAuint16 * pNameLength); - XAresult XARadioItfImpl_RegisterRadioCallback(XARadioItf self, xaRadioCallback callback, void * pContext); @@ -128,4 +96,5 @@ void XARadioItfImpl_Free(XARadioItfImpl* self); + #endif /* XARADIOITF_H */ diff -r b67dd1fc57c5 -r 2ed61feeead6 khronosfws/openmax_al/src/radio/xardsitf.c --- a/khronosfws/openmax_al/src/radio/xardsitf.c Fri May 14 18:19:45 2010 -0500 +++ b/khronosfws/openmax_al/src/radio/xardsitf.c Fri May 28 19:26:28 2010 -0500 @@ -63,7 +63,7 @@ } - ret = XARDSItfAdapt_QueryRDSSignal((XAAdaptationGstCtx*)impl->adapCtx, isSignal); +// ret = XARDSItfAdapt_QueryRDSSignal((XAAdaptationGstCtx*)impl->adapCtx, isSignal); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_QueryRDSSignal"); @@ -88,7 +88,7 @@ } - ret = XARDSItfAdapt_GetProgrammeServiceName((XAAdaptationGstCtx*)impl->adapCtx, ps); +// ret = XARDSItfAdapt_GetProgrammeServiceName((XAAdaptationGstCtx*)impl->adapCtx, ps); DEBUG_API("<-XARDSItfImpl_GetProgrammeServiceName"); return ret; @@ -115,7 +115,7 @@ } - ret = XARDSItfAdapt_GetRadioText((XAAdaptationGstCtx*)impl->adapCtx, rt); +// ret = XARDSItfAdapt_GetRadioText((XAAdaptationGstCtx*)impl->adapCtx, rt); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetRadioText"); @@ -153,8 +153,8 @@ } - ret = XARDSItfAdapt_GetRadioTextPlus((XAAdaptationGstCtx*)impl->adapCtx, contentType, informationElement, - descriptor, descriptorContentType); + // ret = XARDSItfAdapt_GetRadioTextPlus((XAAdaptationGstCtx*)impl->adapCtx, contentType, informationElement, + // descriptor, descriptorContentType); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetRadioTextPlus"); @@ -183,7 +183,7 @@ } - ret = XARDSItfAdapt_GetProgrammeType((XAAdaptationGstCtx*)impl->adapCtx, pty); +// ret = XARDSItfAdapt_GetProgrammeType((XAAdaptationGstCtx*)impl->adapCtx, pty); DEBUG_API("<-XARDSItfImpl_GetProgrammeType"); return ret; @@ -217,7 +217,7 @@ } - ret = XARDSItfAdapt_GetProgrammeTypeString((XAAdaptationGstCtx*)impl->adapCtx, isLengthMax16, pty); +// ret = XARDSItfAdapt_GetProgrammeTypeString((XAAdaptationGstCtx*)impl->adapCtx, isLengthMax16, pty); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetProgrammeTypeString"); @@ -248,7 +248,7 @@ } - ret = XARDSItfAdapt_GetProgrammeIdentificationCode((XAAdaptationGstCtx*)impl->adapCtx, pi); +// ret = XARDSItfAdapt_GetProgrammeIdentificationCode((XAAdaptationGstCtx*)impl->adapCtx, pi); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetProgrammeIdentificationCode"); @@ -276,7 +276,7 @@ } - ret = XARDSItfAdapt_GetClockTime((XAAdaptationGstCtx*)impl->adapCtx, dateAndTime); + // ret = XARDSItfAdapt_GetClockTime((XAAdaptationGstCtx*)impl->adapCtx, dateAndTime); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetClockTime"); @@ -304,7 +304,7 @@ } - ret = XARDSItfAdapt_GetTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, ta); +// ret = XARDSItfAdapt_GetTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, ta); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetTrafficAnnouncement"); @@ -332,7 +332,7 @@ } - ret = XARDSItfAdapt_GetTrafficProgramme((XAAdaptationGstCtx*)impl->adapCtx, tp); +// ret = XARDSItfAdapt_GetTrafficProgramme((XAAdaptationGstCtx*)impl->adapCtx, tp); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetTrafficProgramme"); @@ -369,7 +369,7 @@ } - ret = XARDSItfAdapt_SeekByProgrammeType((XAAdaptationGstCtx*)impl->adapCtx, pty, upwards); + // ret = XARDSItfAdapt_SeekByProgrammeType((XAAdaptationGstCtx*)impl->adapCtx, pty, upwards); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_SeekByProgrammeType"); @@ -402,7 +402,7 @@ } - ret = XARDSItfAdapt_SeekTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, upwards); + // ret = XARDSItfAdapt_SeekTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, upwards); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_SeekTrafficAnnouncement"); @@ -435,7 +435,7 @@ } - ret = XARDSItfAdapt_SeekTrafficProgramme((XAAdaptationGstCtx*)impl->adapCtx, upwards); + // ret = XARDSItfAdapt_SeekTrafficProgramme((XAAdaptationGstCtx*)impl->adapCtx, upwards); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_SeekTrafficProgramme"); @@ -465,7 +465,7 @@ } - ret = XARDSItfAdapt_SetAutomaticSwitching((XAAdaptationGstCtx*)impl->adapCtx, automatic); + // ret = XARDSItfAdapt_SetAutomaticSwitching((XAAdaptationGstCtx*)impl->adapCtx, automatic); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_SetAutomaticSwitching"); @@ -493,7 +493,7 @@ } - ret = XARDSItfAdapt_GetAutomaticSwitching((XAAdaptationGstCtx*)impl->adapCtx, automatic); +// ret = XARDSItfAdapt_GetAutomaticSwitching((XAAdaptationGstCtx*)impl->adapCtx, automatic); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetAutomaticSwitching"); @@ -522,7 +522,7 @@ } - ret = XARDSItfAdapt_SetAutomaticTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, automatic); +// ret = XARDSItfAdapt_SetAutomaticTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, automatic); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_SetAutomaticTrafficAnnouncement"); @@ -552,7 +552,7 @@ } - ret = XARDSItfAdapt_GetAutomaticTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, automatic); + // ret = XARDSItfAdapt_GetAutomaticTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, automatic); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_GetAutomaticTrafficAnnouncement"); @@ -597,7 +597,7 @@ if (callback) { - ret = XARDSItfAdapt_GetODAGroup((XAAdaptationGstCtx*)impl->adapCtx, AID); + // ret = XARDSItfAdapt_GetODAGroup((XAAdaptationGstCtx*)impl->adapCtx, AID); } @@ -635,7 +635,7 @@ } - ret = XARDSItfAdapt_SubscribeODAGroup((XAAdaptationGstCtx*)impl->adapCtx, group, useErrorCorrection); +// ret = XARDSItfAdapt_SubscribeODAGroup((XAAdaptationGstCtx*)impl->adapCtx, group, useErrorCorrection); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_SubscribeODAGroup"); @@ -667,7 +667,7 @@ } - ret = XARDSItfAdapt_UnsubscribeODAGroup((XAAdaptationGstCtx*)impl->adapCtx, group); + // ret = XARDSItfAdapt_UnsubscribeODAGroup((XAAdaptationGstCtx*)impl->adapCtx, group); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_UnsubscribeODAGroup"); @@ -699,7 +699,7 @@ } - XARDSItfAdapt_ListODAGroupSubscriptions((XAAdaptationGstCtx*)impl->adapCtx, pGroups, pLength); +// XARDSItfAdapt_ListODAGroupSubscriptions((XAAdaptationGstCtx*)impl->adapCtx, pGroups, pLength); XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio); DEBUG_API("<-XARDSItfImpl_ListODAGroupSubscriptions"); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Inc/AdvancedAudioPlayController.h --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Inc/AdvancedAudioPlayController.h Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Inc/AdvancedAudioPlayController.h Fri May 28 19:26:28 2010 -0500 @@ -832,7 +832,7 @@ // sets the repeat count and trailing silence timer value supplied by the client TInt DoSetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds& aTrailingSilence); // handles the loop play of seekable and non-seekable sources - void DoRepeat(); + void DoRepeatL(); TBool IsLoopPlayEnabled() const; public: // Functions from base classes (MTrailingSilenceObserver) diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Fri May 28 19:26:28 2010 -0500 @@ -986,11 +986,6 @@ { DP0(_L("CAdvancedAudioPlayController::RemoveDataSinkL")); - if (!iDataSink) - { - User::Leave(KErrNotReady); - } - if (iDataSink != &aDataSink) { User::Leave(KErrArgument); @@ -1000,9 +995,12 @@ { User::Leave(KErrNotReady); } - - iDataSink->SinkStopL(); // should always stop source before logoff - iDataSink->SinkThreadLogoff(); + + if (iDataSink) + { + iDataSink->SinkStopL(); // should always stop source before logoff + iDataSink->SinkThreadLogoff(); + } // dereference Decoder from Utility before deleting AudioOutput (which took ownership of decoder) if (iAudioUtility) @@ -1010,8 +1008,8 @@ iAudioUtility->DeReferenceDecoder(); } - delete iAudioOutput; - iAudioOutput = NULL; + delete iAudioOutput; + iAudioOutput = NULL; iDataSink = NULL; iDecoderExists = EFalse; } @@ -1025,7 +1023,12 @@ DP0(_L("CAdvancedAudioPlayController::ResetL")); RemoveDataSourceL(*iDataSource); - RemoveDataSinkL(*iDataSink); + + if (iDataSink) + { + DP0(_L("CAdvancedAudioPlayController::ResetL, calling RemoveDataSinkL")); + RemoveDataSinkL(*iDataSink); + } } // ----------------------------------------------------------------------------- @@ -1349,6 +1352,21 @@ {// we got preempted during a seek // we're already seeking to a position. When we get there we'll come here again, but handle it below DP0(_L("CAdvancedAudioPlayController::DoPauseL got a preemption during seek")); + + // if we are seeking, we need to flush the devsound buffers regardless of loop play + DP0(_L("CAdvancedAudioPlayController::DoPauseL AudioOutput->StopL()")); + iAudioOutput->StopL(); + + if (iPlayingForInitPos) + { + iState = EInitialized; + } + else + { + iState = EPaused; + } + iPlayingForPauseSeek = EFalse; + iPlayingForInitPos = EFalse; return; } @@ -1907,7 +1925,7 @@ } else { - // This is needed for non-seekable sources as DoRepeat() calls DoInitialize in this case + // This is needed for non-seekable sources as DoRepeatL() calls DoInitialize in this case // this resets the source to read from 0 and sets the iState to EInitializing. // BufferFilled will not read the header again, change state to EInitialized and seek to the iInitPosition. // The next BufferFilled will come here, where we will continue playback from byte position 0 @@ -2409,20 +2427,20 @@ DP0(_L("CAdvancedAudioPlayController::LastBufferSent End")); } -void CAdvancedAudioPlayController::DoRepeat() +void CAdvancedAudioPlayController::DoRepeatL() { - DP0(_L("CAdvancedAudioPlayController::DoRepeat Begin")); + DP0(_L("CAdvancedAudioPlayController::DoRepeatL Begin")); // save the current position, this will be used to calculate the position in loop play when // client calls for PositionL() or Pause() operations // TODO: need to check this position when loop play is going on in a play window iSavedTimePositionInMicroSecs = iAudioOutput->CalculateAudioOutputPositionL(); - DP1(_L("CAdvancedAudioPlayController::DoRepeat iSavedTimePositionInMicroSecs[%u]"), iSavedTimePositionInMicroSecs); + DP1(_L("CAdvancedAudioPlayController::DoRepeatL iSavedTimePositionInMicroSecs[%u]"), iSavedTimePositionInMicroSecs); if ((!iRepeatForever) && (iCurrentRepeatCount < iRepeatCount)) { iCurrentRepeatCount++; } - DP1(_L("CAdvancedAudioPlayController::DoRepeat Number of times played till now = %d"), iCurrentRepeatCount); + DP1(_L("CAdvancedAudioPlayController::DoRepeatL Number of times played till now = %d"), iCurrentRepeatCount); if (iSourceIsTimeSeekable || iSourceIsPosSeekable) { // For seekable source @@ -2431,25 +2449,25 @@ // SetPlayWindow(iPlayWindowStartPosition, iPlayWindowEndPosition); if (iPlayWindowStartPosition > 0) { - DP1(_L("CAdvancedAudioPlayController::DoRepeat SetPositionL[%d]ms"), I64LOW(iPlayWindowStartPosition.Int64()/1000)); + DP1(_L("CAdvancedAudioPlayController::DoRepeatL SetPositionL[%d]ms"), I64LOW(iPlayWindowStartPosition.Int64()/1000)); SetPositionL(iPlayWindowStartPosition); } else { - DP0(_L("CAdvancedAudioPlayController::DoRepeat SetPositionL(0)")); + DP0(_L("CAdvancedAudioPlayController::DoRepeatL SetPositionL(0)")); SetPositionL(0); } // Register for PlayWindow end position as the FrameTable has set its playwindowendpostime to zero if (iPlayWindowEndPosition > 0) { - DP1(_L("CAdvancedAudioPlayController::DoRepeat iAudioUtility->SetPlayWindowEndTimeMs(%d)"), I64LOW(iPlayWindowEndPosition.Int64()/1000)); + DP1(_L("CAdvancedAudioPlayController::DoRepeatL iAudioUtility->SetPlayWindowEndTimeMs(%d)"), I64LOW(iPlayWindowEndPosition.Int64()/1000)); iAudioUtility->SetPlayWindowEndTimeMs(iPlayWindowEndPosition.Int64() / 1000); } } else { // For non-seekable source // Stop and start playback - DP0(_L("CAdvancedAudioPlayController::DoRepeat Non-Seekable source.")); + DP0(_L("CAdvancedAudioPlayController::DoRepeatL Non-Seekable source.")); iAudioOutput->StopL(EFalse); iDataSourceAdapter->SourceStopL(); // clear the buffers in the source before seeking and priming it DoInitializeL(); @@ -2457,13 +2475,19 @@ // and the current position is adjusted to be placed after the header. iReadHeader = ETrue; } - DP0(_L("CAdvancedAudioPlayController::DoRepeat End") ); + DP0(_L("CAdvancedAudioPlayController::DoRepeatL End") ); } EXPORT_C void CAdvancedAudioPlayController::TrailingSilenceTimerComplete() { DP0(_L("CAdvancedAudioPlayController::TrailingSilenceTimerComplete ")); - DoRepeat(); + + TRAPD(err,DoRepeatL()); //Fix for Bug ECWG-84WE9J + DP1(_L("CAdvancedAudioPlayController::TrailingSilenceTimerComplete: DoRepeatL [%d]"), err); + if(err) + { + SendEventToClient(TMMFEvent(KMMFEventCategoryPlaybackComplete,err)); + } } EXPORT_C TInt CAdvancedAudioPlayController::GetCodecConfigData(RArray& aCodecConfigData) diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/src/mmfaudiotonecontroller.cpp --- a/mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/src/mmfaudiotonecontroller.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/src/mmfaudiotonecontroller.cpp Fri May 28 19:26:28 2010 -0500 @@ -114,6 +114,7 @@ void CMMFAudioToneController::ConstructL() { iSourceAndSinkAdded = EFalse; + iDataSink = NULL; // Construct custom command parsers CMMFAudioPlayDeviceCustomCommandParser* audPlayDevParser = CMMFAudioPlayDeviceCustomCommandParser::NewL(*this); @@ -138,7 +139,15 @@ { User::LeaveIfError(iFactory->CreateAudioOutputControlUtility(iAudioOutputControlUtility)); } -//end drm cr + //end drm cr + + + //For Error : Update s60 tone controller to update the DRM rights + CMMFDRMCustomCommandParser* drmParser = CMMFDRMCustomCommandParser::NewL(*this); + CleanupStack::PushL(drmParser); + AddCustomCommandParserL(*drmParser); + CleanupStack::Pop(drmParser); + // [ assert the invariant now that we are constructed ] __ASSERT_ALWAYS( Invariant(), Panic( EStateNotConstructed)); } @@ -235,6 +244,9 @@ //Only support playing to audio output if (aSink.DataSinkType() != KUidMmfAudioOutput) User::Leave( KErrNotSupported ); + + + iDataSink = &aSink; iMMFDevSound = CMMFDevSound::NewL(); @@ -280,6 +292,22 @@ User::Leave(err); } } + + //For Error : Update s60 tone controller to update the DRM rights + if (iDataSource->DataSourceType()==KUidMmfFileSource) + { + CMMFFile* file = static_cast(iDataSource); + // we only support protected files for playback + if (file->IsProtectedL()) + { + if (iDataSink->DataSinkType()!=KUidMmfAudioOutput) + { + // Conversion is not allowed for DRM protected files + User::Leave(KErrNotSupported); + } + } + } + // for drm CR/Error 417-45879/ESLM-82JAHL if (iDataSource->DataSourceType()==KUidMmfFileSource) { @@ -381,6 +409,18 @@ } } + //For Error : Update s60 tone controller to update the DRM rights + //Getting the Intent for Play if AutomaticIntent is Enabled + if (!iDisableAutoIntent && iDataSource->DataSourceType()==KUidMmfFileSource) + { + CMMFFile* file = static_cast(iDataSource); + TInt err = file->ExecuteIntent(ContentAccess::EPlay); + if (err != KErrNone) + { + User::LeaveIfError(err); + } + } + if(State() == EPausePlaying && iIsResumeSupported) { User::LeaveIfError(iMMFDevSound->Resume()); @@ -414,6 +454,18 @@ __ASSERT_ALWAYS(iMMFDevSound, Panic(EMMFAudioControllerPanicDataSinkDoesNotExist)); + //For Error : Update s60 tone controller to update the DRM rights + //Getting the Intent for Pause if AutomaticIntent is Enabled + if (!iDisableAutoIntent && iDataSource->DataSourceType()==KUidMmfFileSource) + { + CMMFFile* file = static_cast(iDataSource); + TInt err = file->ExecuteIntent(ContentAccess::EPause); + + if (err != KErrNone) + { + User::LeaveIfError(err); + } + } if(iIsResumeSupported) { iMMFDevSound->Pause(); @@ -450,6 +502,19 @@ // Due to the asynchronous nature of the controller // interaction the response to stopped when stopped // should not be an error ] + + + //For Error : Update s60 tone controller to update the DRM rights + //Getting the Intent for Stop if AutomaticIntent is Enabled + if (!iDisableAutoIntent && iDataSource->DataSourceType()==KUidMmfFileSource) + { + CMMFFile* file = static_cast(iDataSource); + TInt err = file->ExecuteIntent(ContentAccess::EStop); + if (err != KErrNone) + { + User::LeaveIfError(err); + } + } if (State() != EStopped) { //[ update state to stopped propogate to devsound ] @@ -1061,3 +1126,63 @@ } return err; } + +//For Error : Update s60 tone controller to update the DRM rights +//Methods from MMMFDRMCustomCommandImplementor +//Checking for the Intents if AutomaticIntent is Disabled + +TInt CMMFAudioToneController::MdcExecuteIntent(ContentAccess::TIntent aIntent) + { + + if (iDataSource->DataSourceType()==KUidMmfFileSource) + { + CMMFFile* file = static_cast(iDataSource); + TInt err = file->ExecuteIntent(aIntent); + return err; + } + else + { + // Evaluating intent will always succeed on sinks that + // don't support DRM + return KErrNone; + } + + } + +TInt CMMFAudioToneController::MdcEvaluateIntent(ContentAccess::TIntent aIntent) + { + if (iDataSource->DataSourceType()==KUidMmfFileSource) + { + CMMFFile* file = static_cast(iDataSource); + TInt err = file->EvaluateIntent(aIntent); + return err; + } + else + { + // Evaluating intent will always succeed on sinks that + // don't support DRM + return KErrNone; + } + } + +TInt CMMFAudioToneController::MdcDisableAutomaticIntent(TBool aDisableAutoIntent) + { + iDisableAutoIntent = aDisableAutoIntent; + return KErrNone; + } + + +TInt CMMFAudioToneController::MdcSetAgentProperty(ContentAccess::TAgentProperty aProperty, TInt aValue) + { + if (iDataSource->DataSourceType()==KUidMmfFileSource) + { + CMMFFile* file = static_cast(iDataSource); + TInt err = file->SetAgentProperty(aProperty, aValue); + return err; + } + else + { + return KErrNone; + } + } + diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/src/mmfaudiotonecontroller.h --- a/mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/src/mmfaudiotonecontroller.h Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/src/mmfaudiotonecontroller.h Fri May 28 19:26:28 2010 -0500 @@ -28,6 +28,7 @@ #include #include +#include /** @@ -52,7 +53,8 @@ public MMMFAudioPlayDeviceCustomCommandImplementor, public MMMFAudioPlayControllerCustomCommandImplementor, public MDevSoundObserver, - public MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor + public MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor, + public MMMFDRMCustomCommandImplementor { public: static CMMFController* NewL(); @@ -109,6 +111,12 @@ //from MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor virtual TInt MapcSetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds& aTrailingSilence); + + // From MMMFDRMCustomCommandImplementor + virtual TInt MdcExecuteIntent(ContentAccess::TIntent aIntent); + virtual TInt MdcEvaluateIntent(ContentAccess::TIntent aIntent); + virtual TInt MdcDisableAutomaticIntent(TBool aDisableAutoIntent); + virtual TInt MdcSetAgentProperty(ContentAccess::TAgentProperty aProperty, TInt aValue); public: @@ -141,7 +149,8 @@ TBool IsValidStateTransition( TControllerState aState ) const; TBool Invariant() const; TBool IsValidState( TControllerState aState ) const ; - TBool ResetPostCondition() const; + TBool ResetPostCondition() const; + void CalculateLeftRightBalance( TInt& aLeft, TInt& aRight, TInt aBalance ) const; void CalculateBalance( TInt& aBalance, TInt aLeft, TInt aRight ) const; @@ -177,6 +186,10 @@ /** Used to store message */ TMMFMessage* iMessage; + + TBool iDisableAutoIntent; + + MDataSink* iDataSink; }; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/ActiveScheduledTestModule/data/mmc/metadata/DRM_NRTmeta.dcf diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/conf/Playbackplugin_FH_Regression_10.1.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/conf/Playbackplugin_FH_Regression_10.1.cfg Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,4574 @@ +//************************** +//* Play 3GPP , 3g2 and MP4 +//************************** +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.3GP.3g2.mp4.FH.1 - Play mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Expected Duration 28 978 000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.3GP.3g2.mp4.FH.2 - Play 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Expected Duration 29 120 000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.3GP.3g2.mp4.FH.3 - Play 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Expected Duration 37 420 000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.3GP.3g2.mp4.FH.4 - Play 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Expected Duration 38 460 000 +ErrorRange 1 500 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.3GP.3g2.mp4.FH.5 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.3GP.3g2.mp4.FH.6 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.3GP.3g2.mp4.FH.7 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +ErrorRange 1 500 000 +[End_TestCase] + + + + +//************************** +//* Play and Stop (ID 121) +//************************** + +[TestCase] +id 121 +Title Plugin.3GP.3g2.mp4.FH.8 - PlayStop mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.3GP.3g2.mp4.FH.9 - PlayStop 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.3GP.3g2.mp4.FH.10 - PlayStop 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.3GP.3g2.mp4.FH.11 - PlayStop 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.3GP.3g2.mp4.FH.12 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.3GP.3g2.mp4.FH.13 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.3GP.3g2.mp4.FH.14 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 122) +//************************** + +[TestCase] +id 122 +Title Plugin.3GP.3g2.mp4.FH.15 - PlayPausePlay mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.3GP.3g2.mp4.FH.16 - PlayPausePlay 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.3GP.3g2.mp4.FH.17 - PlayPausePlay 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.3GP.3g2.mp4.FH.18 - PlayPausePlay 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + + +[TestCase] +id 122 +Title Plugin.3GP.3g2.mp4.FH.19 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.3GP.3g2.mp4.FH.20 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.3GP.3g2.mp4.FH.21 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + + +//************************** +//* Set Position - Play (ID 124) +//************************** + +[TestCase] +id 124 +Title Plugin.3GP.3g2.mp4.FH.22 - SetPosition_Play mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.3GP.3g2.mp4.FH.23 - SetPosition_Play 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.3GP.3g2.mp4.FH.24 - SetPosition_Play 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.3GP.3g2.mp4.FH.25 - SetPosition_Play 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.3GP.3g2.mp4.FH.26 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.3GP.3g2.mp4.FH.27 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.3GP.3g2.mp4.FH.28 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + + +//************************** +//* Play - Get Position (ID 125) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 125 +Title Plugin.3GP.3g2.mp4.FH.29 - GetPosition_Play mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.3GP.3g2.mp4.FH.30 - GetPosition_Play 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.3GP.3g2.mp4.FH.31 - GetPosition_Play 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.3GP.3g2.mp4.FH.32 - GetPosition_Play 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.3GP.3g2.mp4.FH.33 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.3GP.3g2.mp4.FH.34 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.3GP.3g2.mp4.FH.35 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 126) +//************************** + +[TestCase] +id 126 +Title Plugin.3GP.3g2.mp4.FH.36 - GetDuration mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.3GP.3g2.mp4.FH.37 - GetDuration 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.3GP.3g2.mp4.FH.38 - GetDuration 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.3GP.3g2.mp4.FH.39 - GetDuration 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.3GP.3g2.mp4.FH.40 - GetDuration 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.3GP.3g2.mp4.FH.41 - GetDuration 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.3GP.3g2.mp4.FH.42 - GetDuration 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Delay 1000000 +[End_TestCase] + + + + +//************************** +//* Play - Volume Ramping (ID 123) +//************************** + +[TestCase] +id 123 +Title Plugin.3GP.3g2.mp4.FH.43 - VolumeRamping mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.3GP.3g2.mp4.FH.44 - VolumeRamping 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.3GP.3g2.mp4.FH.45 - VolumeRamping 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.3GP.3g2.mp4.FH.46 - VolumeRamping 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.3GP.3g2.mp4.FH.47 - VolumeRamping 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.3GP.3g2.mp4.FH.48 - VolumeRamping 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.3GP.3g2.mp4.FH.49 - VolumeRamping 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 127) +//************************** + +[TestCase] +id 127 +Title Plugin.3GP.3g2.mp4.FH.50 - SetPlaybackWindow mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +//StartPosition 10 000 000 +//EndPosition 25 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.3GP.3g2.mp4.FH.51 - SetPlaybackWindow 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +//StartPosition 10 000 000 +//EndPosition 25 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.3GP.3g2.mp4.FH.52 - SetPlaybackWindow 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.3GP.3g2.mp4.FH.53 - SetPlaybackWindow 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.3GP.3g2.mp4.FH.54 - SetPlaybackWindow 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.3GP.3g2.mp4.FH.55 - SetPlaybackWindow 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.3GP.3g2.mp4.FH.56 - SetPlaybackWindow 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play - Delete Playback Window (ID 128) +//************************** + +[TestCase] +id 128 +Title Plugin.3GP.3g2.mp4.FH.57 - DeletePlaybackWindow mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.3GP.3g2.mp4.FH.58 - DeletePlaybackWindow 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.3GP.3g2.mp4.FH.59 - DeletePlaybackWindow 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.3GP.3g2.mp4.FH.60 - DeletePlaybackWindow 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 128 +Title Plugin.3GP.3g2.mp4.FH.61 - DeletePlaybackWindow 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.3GP.3g2.mp4.FH.62 - DeletePlaybackWindow 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.3GP.3g2.mp4.FH.63 - DeletePlaybackWindow 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +Delay 1000000 +[End_TestCase] + +//************************************ +//* Play AAC-ADTS LC (ID 120) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.AAC.FH.1 - Play 8Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_8khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.2 - Play 11Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.3 - Play 12Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_12khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.4 - Play 16Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_16khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.5 - Play 22Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.6 - Play 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.7 - Play 32Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_32khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.8 - Play 44Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_44.1khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.9 - Play 48Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_48khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.10 - Play 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_64khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.11 - Play 88Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_88khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.12 - Play 96Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_96khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + + +//************************************ +//* Play AAC-ADTS MPEG2 (ID 120) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.AAC.FH.13 - Play 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.AAC.FH.14 - Play 88Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_68kbps_88khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADTS MPEG4 (ID 120) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.AAC.FH.15 - Play 11Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_64kbps_11.025khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.AAC.FH.16 - Play 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.AAC.FH.17 - Play 88Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_83kbps_88khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADTS LC (ID 121) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 121 +Title Plugin.AAC.FH.18 - PlayStop 8Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_8khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_8khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.19 - PlayStop 11Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.20 - PlayStop 12Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_12khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_12khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.21 - PlayStop 16Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_16khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_16khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.22 - PlayStop 22Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.23 - PlayStop 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.24 - PlayStop 32Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_32khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_32khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.25 - PlayStop 44Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_44.1khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.26 - PlayStop 48Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_48khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_48khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.27 - PlayStop 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_64khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_64khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.28 - PlayStop 88Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_88khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_88khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.29 - PlayStop 96Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_96khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_96khz_stereo.aac +Delay 1000000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADIF (ID 120) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.AAC.FH.30 - Play ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AAC.FH.31 - Play ADIF stereo +SoundFile e:\sounds\aac\ADIF\10s_AAC_LC_56kbps_44.1khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADIF (ID 121) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 121 +Title Plugin.AAC.FH.32 - PlayStop ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AAC.FH.33 - PlayStop ADIF stereo +SoundFile e:\sounds\aac\ADIF\10s_AAC_LC_56kbps_44.1khz_stereo.aac +SoundFile e:\sounds\aac\ADIF\10s_AAC_LC_56kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + + + +//******************************** +//* Play - Volume Ramping (ID 123) +//******************************** + +[TestCase] +id 123 +Title Plugin.AAC.FH.34 - VolumeRamping AAC ADTS +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.AAC.FH.35 - VolumeRamping AAC ADTS +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.AAC.FH.36 - VolumeRamping AAC ADIF +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +//---------------------------- +//Add following cases for Inc9 +//---------------------------- + + +//************************** +//* Play Pause Play (ID 122) +//************************** +[TestCase] +id 122 +Title Plugin.AAC.FH.37 - PlayPausePlay AAC 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 5 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.AAC.FH.38 - PlayPausePlay AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 5 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.AAC.FH.39 - PlayPausePlay AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 4 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.AAC.FH.40 - PlayPausePlay AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 4 000 000 +[End_TestCase] + + + +//****************************** +//* Set Position - Play (ID 124) +//****************************** + +[TestCase] +id 124 +Title Plugin.AAC.FH.41 - SetPosition_Play AAC 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Position 000 500 000 +ErrorRange 4 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.AAC.FH.42 - SetPosition_Play AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +Position 10 000 000 +ErrorRange 5 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.AAC.FH.43 - SetPosition_Play AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +//Position 30 000 000 +Position 05 000 000 +ErrorRange 4 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.AAC.FH.44 - SetPosition_Play AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Position 10 000 000 +ErrorRange 4 000 000 +[End_TestCase] + + + +//******************************* +//* Play - Get Position (ID 125) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + + +[TestCase] +id 125 +Title Plugin.AAC.FH.45 - GetPosition_Play AAC 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.AAC.FH.46 - GetPosition_Play AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.AAC.FH.47 - GetPosition_Play AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.AAC.FH.48 - GetPosition_Play AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Delay 1000000 +[End_TestCase] + + +//****************************** +//* Play - Get Duration (ID 126) +//****************************** + +[TestCase] +id 126 +Title Plugin.AAC.FH.49 - GetDuration AAC 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.AAC.FH.50 - GetDuration AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.AAC.FH.51 - GetDuration AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.AAC.FH.52 - GetDuration AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Delay 1000000 +[End_TestCase] + +//************************************* +//* Play - Set Playback Window (ID 127) +//************************************* + +[TestCase] +id 127 +Title Plugin.AAC.FH.53 - SetPlaybackWindow AAC 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.AAC.FH.54 - SetPlaybackWindow AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.AAC.FH.55 - SetPlaybackWindow AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.AAC.FH.56 - SetPlaybackWindow AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + + +//**************************************** +//* Play - Delete Playback Window (ID 128) +//**************************************** +[TestCase] +id 128 +Title Plugin.AAC.FH.57 - DeletePlaybackWindow AAC 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.AAC.FH.58 - DeletePlaybackWindow AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.AAC.FH.59 - DeletePlaybackWindow AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.AAC.FH.60 - DeletePlaybackWindow AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play AMR NB Modes 0-7 (ID 120) +//************************** +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.AMR.FH.1 - Play 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.2 - Play 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.3 - Play 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.4 - Play 10s_AMR_NB_mode3.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode3.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.5 - Play 10s_AMR_NB_mode4.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode4.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.6 - Play 10s_AMR_NB_mode5.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode5.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.7 - Play 10s_AMR_NB_mode6.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode6.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.8 - Play 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.9 - Play AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode4_no_ext +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AMR.FH.10 - Play AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_other_ext.3gp +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play and Stop (ID 121) +//************************** + +[TestCase] +id 121 +Title Plugin.AMR.FH.11 - PlayStop 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.12 - PlayStop 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.13 - PlayStop 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.14 - PlayStop 10s_AMR_NB_mode3.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode3.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode3.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.15 - PlayStop 10s_AMR_NB_mode4.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode4.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode4.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.16 - PlayStop 10s_AMR_NB_mode5.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode5.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode5.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.17 - PlayStop 10s_AMR_NB_mode6.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode6.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode6.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.18 - PlayStop 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.19 - PlayStop AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode4_no_ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode4_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AMR.FH.20 - PlayStop AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_other_ext.3gp +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_other_ext.3gp +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 122) +//************************** + +[TestCase] +id 122 +Title Plugin.AMR.FH.21 - PlayPausePlay 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.AMR.FH.22 - PlayPausePlay AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.AMR.FH.23 - PlayPausePlay AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Set Position - Play (ID 124) +//************************** + +[TestCase] +id 124 +Title Plugin.AMR.FH.24 - SetPosition_Play 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.AMR.FH.25 - SetPosition_Play AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.AMR.FH.26 - SetPosition_Play AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play - Get Position (ID 125) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 125 +Title Plugin.AMR.FH.27 - GetPosition_Play 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.AMR.FH.28 - GetPosition_Play AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.AMR.FH.29 - GetPosition_Play AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 126) +//************************** + +[TestCase] +id 126 +Title Plugin.AMR.FH.30 - GetDuration 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.AMR.FH.31 - GetDuration AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.AMR.FH.32 - GetDuration AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play - Volume Ramping (ID 123) +//************************** + +[TestCase] +id 123 +Title Plugin.AMR.FH.33 - VolumeRamping 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +RampDuration 3 000 000 +Delay 2000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.AMR.FH.34 - VolumeRamping AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +RampDuration 3 000 000 +Delay 2000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.AMR.FH.35 - VolumeRamping AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +RampDuration 3 000 000 +Delay 2000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 127) +//************************** + +[TestCase] +id 127 +Title Plugin.AMR.FH.36 - SetPlaybackWindow 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 02 000 000 +EndPosition 08 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.AMR.FH.37 - SetPlaybackWindow AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_no_ext +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.AMR.FH.38 - SetPlaybackWindow AMR with other ext +SoundFile e:\sounds\amr\10s_3GP_AMR_NB_12.2kbps.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 07 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Delete Playback Window (ID 128) +//************************** + +[TestCase] +id 128 +Title Plugin.AMR.FH.39 - DeletePlaybackWindow 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.AMR.FH.40 - DeletePlaybackWindow AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.AMR.FH.41 - DeletePlaybackWindow AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play AMR WB Modes 0-8 (ID 120) +//************************** +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.AWB.FH.1 - Play 10s_AMR_WB_6.6kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_6.6kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.2 - Play 10s_AMR_WB_8.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_8.85kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.3 - Play 10s_AMR_WB_12.65kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_12.65kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.4 - Play 10s_AMR_WB_14.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_14.25kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.5 - Play 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.6 - Play 10s_AMR_WB_18.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_18.25kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.7 - Play 10s_AMR_WB_19.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_19.85kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.8 - Play 10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.9 - Play 10s_AMR_WB_23.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.10 - Play AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_mode8_no_ext +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.AWB.FH.11 - Play AWB with other ext +SoundFile e:\sounds\awb\10s_3GP_AMR_WB_mode8.3gp +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play and Stop (ID 121) +//************************** + +[TestCase] +id 121 +Title Plugin.AWB.FH.12 - PlayStop 10s_AMR_WB_6.6kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_6.6kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_6.6kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.13 - PlayStop 10s_AMR_WB_8.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_8.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_8.85kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.14 - PlayStop 10s_AMR_WB_12.65kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_12.65kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_12.65kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.15 - PlayStop 10s_AMR_WB_14.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_14.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_14.25kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.16 - PlayStop 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.17 - PlayStop 10s_AMR_WB_18.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_18.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_18.25kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.18 - PlayStop 10s_AMR_WB_19.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_19.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_19.85kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.19 - PlayStop 10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.20 - PlayStop 10s_AMR_WB_23.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.21 - PlayStop AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_mode8_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.AWB.FH.22 - PlayStop AWB with other ext +SoundFile e:\sounds\awb\10s_3GP_AMR_WB_mode8.3gp +Delay 1000000 +[End_TestCase] + + + +//************************** +//* Play Pause Play (ID 122) +//************************** + +[TestCase] +id 122 +Title Plugin.AWB.FH.23 - PlayPausePlay 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.AWB.FH.24 - PlayPausePlay AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.AWB.FH.25 - PlayPausePlay AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Set Position - Play (ID 124) +//************************** + +[TestCase] +id 124 +Title Plugin.AWB.FH.26 - SetPosition_Play 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.AWB.FH.27 - SetPosition_Play AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_no_ext +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.AWB.FH.28 - SetPosition_Play AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_other_ext.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play - Get Position (ID 125) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 125 +Title Plugin.AWB.FH.29 - GetPosition_Play 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.AWB.FH.30 - GetPosition_Play AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.AWB.FH.31 - GetPosition_Play AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_other_ext.3gp +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 126) +//************************** + +[TestCase] +id 126 +Title Plugin.AWB.FH.32 - GetDuration 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.AWB.FH.33 - GetDuration AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.AWB.FH.34 - GetDuration AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play - Volume Ramping (ID 123) +//************************** + +[TestCase] +id 123 +Title Plugin.AWB.FH.35 - VolumeRamping 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.AWB.FH.36 - VolumeRamping AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.AWB.FH.37 - VolumeRamping AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 127) +//************************** + +[TestCase] +id 127 +Title Plugin.AWB.FH.38 - SetPlaybackWindow 10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.AWB.FH.39 - SetPlaybackWindow AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps_no_ext +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.AWB.FH.40 - SetPlaybackWindow AWB with other ext +SoundFile e:\sounds\awb\10s_3GP_AMR_WB_23.05kbps.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Delete Playback Window (ID 128) +//************************** + +[TestCase] +id 128 +Title Plugin.AWB.FH.41 - DeletePlaybackWindow 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.AWB.FH.42 - DeletePlaybackWindow AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.AWB.FH.43 - DeletePlaybackWindow AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + + +//******************************************* +//* Play M4a Sample Rate and BiteRate(ID 120) +//******************************************* +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.M4a.FH.1 - Play Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.M4a.FH.2 - Play Mono 16kbps 22kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_16kbps_22.05khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.3 - Play Mono 20kbps 24kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_20kbps_24khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.4 - Play Mono 24kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_24kbps_32khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.5 - Play 28kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_28kbps_32khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.6 - Play Mono 32kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_32kbps_32khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.7 - Play Mono 40kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_40kbps_44.1khz_mono.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.8 - Play Mono 48kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_48kbps_44.1khz_mono.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.9 - Play Mono 56kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_56kbps_44.1khz_mono.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.10 - Play Mono 64kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_64kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.11 - Play Mono 80kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_80kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.12 - Play Mono 96kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_96kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.13 - Play Mono 112kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_112kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.14 - Play Mono 128kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_128kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.15 - Play Mono 160kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_160kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.16 - Play Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.17 - Play Stereo 20kbps 11kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_20kbps_16khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.18 - Play Stereo 24kbps 16kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_24kbps_16khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.19 - Play Stereo 28kbps 16kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_28kbps_16khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.20 - Play Stereo 32kbps 22kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_32kbps_22.05khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.21 - Play Stereo 40kbps 24kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_40kbps_24khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.22 - Play Stereo 48kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_48kbps_32khz_stereo.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.23 - Play Stereo 56kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_56kbps_32khz_stereo.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.24 - Play Stereo 64kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_64kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.25 - Play Stereo 80kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_80kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.26 - Play Stereo 96kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_96kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.27 - Play Stereo 112kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_112kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.28 - Play Stereo 128kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_128kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.29 - Play Stereo 160kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_160kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.30 - Play Stereo 192kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_192kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.31 - Play Stereo 224kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_224kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.32 - Play Stereo 256kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_256kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.33 - Play Stereo 320kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_320kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.34 - Play Stereo 112kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_112kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.35 - Play Stereo 128kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_128kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.36 - Play Stereo 160kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_160kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.37 - Play Stereo 192kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_192kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.38 - Play Stereo 224kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_224kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.39 - Play Stereo 256kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_256kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.M4a.FH.40 - Play Stereo 320kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_320kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + + + +//************************************ +//* Play M4a (ID 121) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 121 +Title Plugin.M4a.FH.41 - PlayStop Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 121 +Title Plugin.M4a.FH.42 - PlayStop Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Delay 1000000 +[End_TestCase] + + + +//******************************** +//* Play - Volume Ramping (ID 123) +//******************************** + +[TestCase] +id 123 +Title Plugin.M4a.FH.43 - VolumeRamping Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 123 +Title Plugin.M4a.FH.44 - VolumeRamping Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 122) +//************************** + +[TestCase] +id 122 +Title Plugin.M4a.FH.45 - PlayPausePlay Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 122 +Title Plugin.M4a.FH.46 - PlayPausePlay Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************** +//* Set Position - Play (ID 124) +//****************************** + +[TestCase] +id 124 +Title Plugin.M4a.FH.47 - SetPosition_Play Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + +[TestCase] +id 124 +Title Plugin.M4a.FH.48 - SetPosition_Play Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + + +//******************************* +//* Play - Get Position (ID 125) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + + +[TestCase] +id 125 +Title Plugin.M4a.FH.49 - GetPosition_Play Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 125 +Title Plugin.M4a.FH.50 - GetPosition_Play Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Delay 1000000 +[End_TestCase] + + + +//****************************** +//* Play - Get Duration (ID 126) +//****************************** + +[TestCase] +id 126 +Title Plugin.M4a.FH.51 - GetDuration Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 126 +Title Plugin.M4a.FH.52 - GetDuration Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Delay 1000000 +[End_TestCase] + + +//************************************* +//* Play - Set Playback Window (ID 127) +//************************************* + + +[TestCase] +id 127 +Title Plugin.M4a.FH.53 - SetPlaybackWindow Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 127 +Title Plugin.M4a.FH.54 - SetPlaybackWindow Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + + +//**************************************** +//* Play - Delete Playback Window (ID 128) +//**************************************** + + +[TestCase] +id 128 +Title Plugin.M4a.FH.55 - DeletePlaybackWindow Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 128 +Title Plugin.M4a.FH.56 - DeletePlaybackWindow Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play MIDI, SP-MIDI, RMF audio file (ID 120) +//************************** +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.MIDI.FH.1 - Play midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic.mid +//Expected Duration 4 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.2 - Play midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +//Expected Duration 4 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.3 - Play midi with different ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.3gp +//Expected Duration 4 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.4 - Play sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +//Expected Duration 13 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.5 - Play sp-midi 10s_SP_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +//Expected Duration 13 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.6 - Play sp-midi 10s_SP_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +//Expected Duration 13 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.7 - Play rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.8 - Play rmf piano +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.9 - Play rmf piano.awb +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.10 - Play mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.11 - Play mxmf 10s_MXMF_no_ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MIDI.FH.12 - Play mxmf 10s_MXMF_other_ext.awb +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play and Stop (ID 121) +//************************** + +[TestCase] +id 121 +Title Plugin.MIDI.FH.13 - PlayStop midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.14 - PlayStop midi 10s_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.15 - PlayStop midi 10s_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.16 - PlayStop sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.17 - PlayStop sp-midi 10s_SP_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.18 - PlayStop sp-midi 10s_SP_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.19 - PlayStop rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.20 - PlayStop rmf piano +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.21 - PlayStop rmf piano.awb +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.22 - PlayStop mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.23 - PlayStop mxmf 10s_MXMF_no_ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MIDI.FH.24 - PlayStop mxmf 10s_MXMF_other_ext.awb +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Delay 1000000 +[End_TestCase] + + + +//************************** +//* Play Pause Play (ID 122) +//************************** + +[TestCase] +id 122 +Title Plugin.MIDI.FH.25 - PlayPausePlay midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.26 - PlayPausePlay midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.27 - PlayPausePlay midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.28 - PlayPausePlay sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.29 - PlayPausePlay sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.30 - PlayPausePlay sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.31 - PlayPausePlay rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.32 - PlayPausePlay rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.33 - PlayPausePlay rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.34 - PlayPausePlay mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.35 - PlayPausePlay mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MIDI.FH.36 - PlayPausePlay mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +//************************** +//* Set Position - Play (ID 124) +//************************** + +[TestCase] +id 124 +Title Plugin.MIDI.FH.37 - SetPosition_Play midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +//Position 10 000 000 +Position 02 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.38 - SetPosition_Play midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +//Position 10 000 000 +Position 02 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.39 - SetPosition_Play midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +//Position 10 000 000 +Position 02 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.40 - SetPosition_Play sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.41 - SetPosition_Play sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.42 - SetPosition_Play sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.43 - SetPosition_Play rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.44 - SetPosition_Play rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.45 - SetPosition_Play rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.46 - SetPosition_Play mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.47 - SetPosition_Play mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MIDI.FH.48 - SetPosition_Play mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +//************************** +//* Play - Get Position (ID 125) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 125 +Title Plugin.MIDI.FH.49 - GetPosition_Play midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.50 - GetPosition_Play midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.51 - GetPosition_Play midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.52 - GetPosition_Play sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.53 - GetPosition_Play sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.54 - GetPosition_Play sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.55 - GetPosition_Play rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.56 - GetPosition_Play rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.57 - GetPosition_Play rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.58 - GetPosition_Play mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.59 - GetPosition_Play mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MIDI.FH.60 - GetPosition_Play mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 126) +//************************** + +[TestCase] +id 126 +Title Plugin.MIDI.FH.61 - GetDuration mid 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.62 - GetDuration mid without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.63 - GetDuration mid with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.64 - GetDuration sp-mid 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.65 - GetDuration sp-mid without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.66 - GetDuration sp-mid with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.67 - GetDuration rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.68 - GetDuration rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.69 - GetDuration rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 126 +Title Plugin.MIDI.FH.70 - GetDuration mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.71 - GetDuration mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MIDI.FH.72 - GetDuration mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Volume Ramping (ID 123) +//************************** + +[TestCase] +id 123 +Title Plugin.MIDI.FH.73 - VolumeRamping mid 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.74 - VolumeRamping mid without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.75 - VolumeRamping mid with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.76 - VolumeRamping sp-mid 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.77 - VolumeRamping sp-mid without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.78 - VolumeRamping sp-mid with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.79 - VolumeRamping rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.80 - VolumeRamping rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.81 - VolumeRamping rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.82 - VolumeRamping mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.83 - VolumeRamping mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MIDI.FH.84 - VolumeRamping mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 127) +//************************** + +[TestCase] +id 127 +Title Plugin.MIDI.FH.85 - SetPlaybackWindow midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.86 - SetPlaybackWindow midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.87 - SetPlaybackWindow midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[[TestCase] +id 127 +Title Plugin.MIDI.FH.88 - SetPlaybackWindow sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +//StartPosition 10 000 000 +//EndPosition 20 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.89 - SetPlaybackWindow sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +//StartPosition 10 000 000 +//EndPosition 20 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.90 - SetPlaybackWindow sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.awb +//StartPosition 10 000 000 +//EndPosition 20 000 000 +StartPosition 03 000 000 +EndPosition 09 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.91 - SetPlaybackWindow rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.92 - SetPlaybackWindow rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.93 - SetPlaybackWindow rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.94 - SetPlaybackWindow mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.95 - SetPlaybackWindow mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MIDI.FH.96 - SetPlaybackWindow mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Delete Playback Window (ID 128) +//************************** + +[TestCase] +id 128 +Title Plugin.MIDI.FH.97 - DeletePlaybackWindow midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.98 - DeletePlaybackWindow midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.99 - DeletePlaybackWindow midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.100 - DeletePlaybackWindow sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.101 - DeletePlaybackWindow sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.102 - DeletePlaybackWindow sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.103 - DeletePlaybackWindow rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.104 - DeletePlaybackWindow rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.105 - DeletePlaybackWindow rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.106 - DeletePlaybackWindow mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.107 - DeletePlaybackWindow mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MIDI.FH.108 - DeletePlaybackWindow mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play MP3 Sample Rate (ID 120) +//************************** +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.MP3.FH.1 - Play 8Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_8khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.2 - Play 11Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_16kbps_11.025khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.3 - Play 12Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.4 - Play 16Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.5 - Play 22Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_8kbps_22.05khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.6 - Play 24 Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_112kbps_24khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.7 - Play 32 Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.8 - Play 44 Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_44.1khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.9 - Play 48 Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_48khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + + +//********************************** +//* Play and Stop SampleRate(ID 121) +//********************************** + +[TestCase] +id 121 +Title Plugin.MP3.FH.10 - PlayStop 8Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_8khz_mono.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_8khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.11 - PlayStop 11Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_16kbps_11.025khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_16kbps_11.025khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.12 - PlayStop 12Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.13 - PlayStop 16Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.14 - PlayStop 22Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_8kbps_22.05khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_8kbps_22.05khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.15 - PlayStop 24Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_112kbps_24khz_mono.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_112kbps_24khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.16 - PlayStop 32Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.17 - PlayStop 44Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_44.1khz_mono.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_44.1khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.18 - PlayStop 48Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_48khz_mono.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_48khz_mono.mp3 +Delay 1000000 +[End_TestCase] + + + +//********************************** +//* Play MP3 Bit Rate MPEG1 (ID 120) +//********************************** +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.MP3.FH.19 - Play 32Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_32kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.20 - Play 40Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_40kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.21 - Play 48Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_48kbps_48khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.22 - Play 56Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_56kbps_44.1khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.23 - Play 64Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_64kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.24 - Play 80Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_80kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.25 - Play 96Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_96kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.26 - Play 112Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_112kbps_44.1khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.27 - Play 128Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_128kbps_44.1khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.28 - Play 160Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_160kbps_48khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.29 - Play 192Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_192kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.30 - Play 224Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_224kbps_48khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.31 - Play 256Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_256kbps_32khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.32 - Play 320Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_320kbps_44.1khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************************* +//* Play and Stop MP3 Bit Rate MPEG1 (ID 121) +//******************************************* + +[TestCase] +id 121 +Title Plugin.MP3.FH.33 - PlayStop 32Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_32kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_32kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.34 - PlayStop 40Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_40kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_40kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.35 - PlayStop 48Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_48kbps_48khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_48kbps_48khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.36 - PlayStop 56Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_56kbps_44.1khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_56kbps_44.1khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.37 - PlayStop 64Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_64kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_64kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.38 - PlayStop 80Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_80kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_80kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.39 - PlayStop 96Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_96kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_96kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.40 - PlayStop 112Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_112kbps_44.1khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_112kbps_44.1khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.41 - PlayStop 128Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_128kbps_44.1khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_128kbps_44.1khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.42 - PlayStop 160Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_160kbps_48khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_160kbps_48khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.43 - PlayStop 192Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_192kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_192kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.44 - PlayStop 224Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_224kbps_48khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_224kbps_48khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.45 - PlayStop 256Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_256kbps_32khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_256kbps_32khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.46 - PlayStop 320Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_320kbps_44.1khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_320kbps_44.1khz_mono.mp3 +Delay 1000000 +[End_TestCase] + + + + + + +//************************************** +//* Play MP3 Bit Rate MPEG2/2.5 (ID 120) +//************************************** +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.MP3.FH.47 - Play 8Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_8kbps_16khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.48 - Play 16Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_16kbps_22.05khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.49 - Play 24Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_24kbps_12khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.50 - Play 32Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_32kbps_16khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.51 - Play 40Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_40kbps_16khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.52 - Play 48Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_48kbps_22.05khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.53 - Play 56Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_56kbps_24khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.54 - Play 64Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_64kbps_24khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.55 - Play 80Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_80kbps_11.025khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.56 - Play 96Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_96kbps_16khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.57 - Play 112Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_112kbps_16khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.58 - Play 128Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_128kbps_16khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.59 - Play 144Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_144kbps_24khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.MP3.FH.60 - Play 160Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_160kbps_16khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************************** +//* PlayStop MP3 Bit Rate MPEG2/2.5 (ID 121) +//****************************************** + +[TestCase] +id 121 +Title Plugin.MP3.FH.61 - PlayStop 8Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_8kbps_16khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_8kbps_16khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.62 - PlayStop 16Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_16kbps_22.05khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_16kbps_22.05khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.63 - PlayStop 24Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_24kbps_12khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_24kbps_12khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.64 - PlayStop 32Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_32kbps_16khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_32kbps_16khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.65 - PlayStop 40Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_40kbps_16khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_40kbps_16khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.66 - PlayStop 48Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_48kbps_22.05khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_48kbps_22.05khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.67 - PlayStop 56Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_56kbps_24khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_56kbps_24khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.68 - PlayStop 64Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_64kbps_24khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_64kbps_24khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.69 - PlayStop 80Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_80kbps_11.025khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_80kbps_11.025khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.70 - PlayStop 96Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_96kbps_16khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_96kbps_16khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.71 - PlayStop 112Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_112kbps_16khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_112kbps_16khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.72 - PlayStop 128Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_128kbps_16khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_128kbps_16khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.73 - PlayStop 144Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_144kbps_24khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_144kbps_24khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.MP3.FH.74 - PlayStop 160Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_160kbps_16khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_160kbps_16khz_mono.mp3 +Delay 1000000 +[End_TestCase] + + + + + +//************************** +//* Play Pause Play (ID 122) +//************************** + +[TestCase] +id 122 +Title Plugin.MP3.FH.75 - PlayPausePlay MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_22.05khz_stereo.mp3 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MP3.FH.76 - PlayPausePlay MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 122 +Title Plugin.MP3.FH.77 - PlayPausePlay MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************** +//* Set Position - Play (ID 124) +//****************************** + +[TestCase] +id 124 +Title Plugin.MP3.FH.78 - SetPosition_Play MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + +[TestCase] +id 124 +Title Plugin.MP3.FH.79 - SetPosition_Play MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +Position 05 000 000 +ErrorRange 3 000 000 +[End_TestCase] + +[TestCase] +id 124 +Title Plugin.MP3.FH.80 - SetPosition_Play MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************* +//* Play - Get Position (ID 125) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 125 +Title Plugin.MP3.FH.81 - GetPosition_Play MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_22.05khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MP3.FH.82 - GetPosition_Play MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 125 +Title Plugin.MP3.FH.83 - GetPosition_Play MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +//****************************** +//* Play - Get Duration (ID 126) +//****************************** + +[TestCase] +id 126 +Title Plugin.MP3.FH.84 - GetDuration MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MP3.FH.85 - GetDuration MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 126 +Title Plugin.MP3.FH.86 - GetDuration MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + + +//******************************** +//* Play - Volume Ramping (ID 123) +//******************************** + +[TestCase] +id 123 +Title Plugin.MP3.FH.87 - VolumeRamping MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MP3.FH.88 - VolumeRamping MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_22.05khz_stereo.mp3 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 123 +Title Plugin.MP3.FH.89 - VolumeRamping MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +//************************************* +//* Play - Set Playback Window (ID 127) +//************************************* + +[TestCase] +id 127 +Title Plugin.MP3.FH.90 - SetPlaybackWindow MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MP3.FH.91 - SetPlaybackWindow MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 127 +Title Plugin.MP3.FH.92 - SetPlaybackWindow MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +//**************************************** +//* Play - Delete Playback Window (ID 128) +//**************************************** + +[TestCase] +id 128 +Title Plugin.MP3.FH.93 - DeletePlaybackWindow MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MP3.FH.94 - DeletePlaybackWindow MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 128 +Title Plugin.MP3.FH.95 - DeletePlaybackWindow MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_22.05khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +//******************************************* +//* Play 3gp EAAC+ audio files (ID 120) +//******************************************* +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.1 - Play implicit stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode0.3gp +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.2 - Play explicit non-backwards compatible stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.3 - Play 20kbps 32khz 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_20kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.4 - Play 16kbps 32khz mono 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_16kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.5 - Play 24kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_24kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.6 - Play 20kbps 32khz 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_20kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.7 - Play 16kbps 32khz mono 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_16kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.8 - Play 24kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_24kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.9 - Play 20kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_20kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.10 - Play 16kbps 32khz 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_16kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.11 - Play 24kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_24kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************************* +//* Play mp4 EAAC+ audio files (ID 120) +//******************************************* +// Testing Playback to EOF + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.12 - Play implicit pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_0.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.13 - Play explicit backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.14 - Play explicit non-backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_2.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.15 - Play implicit stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.16 - Play explicit backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_1.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 120 +Title Plugin.HeAAC.FH.17 - Play explicit non-backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_2.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play EAAC+ (ID 121) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.18 - PlayStop implicit stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode0.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode0.3gp +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.19 - PlayStop explicit non-backwards compatible stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.20 - PlayStop implicit pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_0.mp4 +Delay 1000000 +[End_TestCase] + + + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.21 - PlayStop explicit backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.22 - PlayStop explicit non-backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_2.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_2.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.23 - PlayStop implicit stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.24 - PlayStop explicit backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_1.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 121 +Title Plugin.HeAAC.FH.25 - PlayStop explicit non-backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_2.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_2.mp4 +Delay 1000000 +[End_TestCase] + + +//******************************** +//* Play - Volume Ramping (ID 123) +//******************************** + +[TestCase] +id 123 +Title Plugin.HeAAC.FH.26 - VolumeRamping 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 123 +Title Plugin.HeAAC.FH.27 - VolumeRamping 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 123 +Title Plugin.HeAAC.FH.28 - VolumeRamping 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 122) +//************************** + +[TestCase] +id 122 +Title Plugin.HeAAC.FH.29 - PlayPausePlay 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +[TestCase] +id 122 +Title Plugin.HeAAC.FH.30 - PlayPausePlay 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +[TestCase] +id 122 +Title Plugin.HeAAC.FH.31 - PlayPausePlay 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +//****************************** +//* Set Position - Play (ID 124) +//****************************** + +[TestCase] +id 124 +Title Plugin.HeAAC.FH.32 - SetPosition_Play 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + +[TestCase] +id 124 +Title Plugin.HeAAC.FH.33 - SetPosition_Play 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + +[TestCase] +id 124 +Title Plugin.HeAAC.FH.34 - SetPosition_Play 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + + +//******************************* +//* Play - Get Position (ID 125) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. +[TestCase] +id 125 +Title Plugin.HeAAC.FH.35 - GetPosition_Play 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 125 +Title Plugin.HeAAC.FH.36 - GetPosition_Play 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 125 +Title Plugin.HeAAC.FH.37 - GetPosition_Play 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Delay 1000000 +[End_TestCase] + + + +//****************************** +//* Play - Get Duration (ID 126) +//****************************** +[TestCase] +id 126 +Title Plugin.HeAAC.FH.38 - GetDuration 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 126 +Title Plugin.HeAAC.FH.39 - GetDuration 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 126 +Title Plugin.HeAAC.FH.40 - GetDuration 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Delay 1000000 +[End_TestCase] + + +//************************************* +//* Play - Set Playback Window (ID 127) +//************************************* + +[TestCase] +id 127 +Title Plugin.HeAAC.FH.41 - SetPlaybackWindow 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +StartPosition 3 000 000 +EndPosition 7 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 127 +Title Plugin.HeAAC.FH.42 - SetPlaybackWindow 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +StartPosition 3 000 000 +EndPosition 7 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 127 +Title Plugin.HeAAC.FH.43 - SetPlaybackWindow 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +StartPosition 0 000 000 +EndPosition 5 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + + +//**************************************** +//* Play - Delete Playback Window (ID 128) +//**************************************** + + +[TestCase] +id 128 +Title Plugin.HeAAC.FH.44 - DeletePlaybackWindow 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +StartPosition 3 000 000 +EndPosition 7 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 128 +Title Plugin.HeAAC.FH.45 - DeletePlaybackWindow 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +StartPosition 3 000 000 +EndPosition 7 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 128 +Title Plugin.HeAAC.FH.46 - DeletePlaybackWindow 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +StartPosition 0 000 000 +EndPosition 5 000 000 +Delay 1000000 +[End_TestCase] diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/conf/Playbackplugin_Regression_10.1.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/conf/Playbackplugin_Regression_10.1.cfg Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,6171 @@ +# Configuration Filename: PluginTest_AAC.cfg +# DESCRIPTION: This config file is to test the AAC audio. +# +# History +# 2005-03-21 Sue Xu 64 test cases +//************************************ +//* Play AAC-ADTS LC (ID 102) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.AAC.1 - Play 8Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_8khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.2 - Play 11Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.3 - Play 12Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_12khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.4 - Play 16Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_16khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.5 - Play 22Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.6 - Play 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.7 - Play 32Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_32khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.8 - Play 44Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_44.1khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.9 - Play 48Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_48khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.10 - Play 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_64khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.11 - Play 88Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_88khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.12 - Play 96Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_96khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + + +//************************************ +//* Play AAC-ADTS MPEG2 (ID 102) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.AAC.13 - Play 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.AAC.14 - Play 88Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_68kbps_88khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADTS MPEG4 (ID 102) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.AAC.15 - Play 11Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_64kbps_11.025khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.AAC.16 - Play 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.AAC.17 - Play 88Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_83kbps_88khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADTS LC (ID 103) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 103 +Title Plugin.AAC.18 - PlayStop 8Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_8khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_8khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.19 - PlayStop 11Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.20 - PlayStop 12Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_12khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_12khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.21 - PlayStop 16Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_16khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_16khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.22 - PlayStop 22Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.23 - PlayStop 24Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.24 - PlayStop 32Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_32khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_32khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.25 - PlayStop 44Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_44.1khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.26 - PlayStop 48Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_48khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_48khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.27 - PlayStop 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_64khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_64khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.28 - PlayStop 88Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_88khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_88khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.29 - PlayStop 96Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_96khz_stereo.aac +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_96khz_stereo.aac +Delay 1000000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADIF (ID 102) +//************************************ +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.AAC.30 - Play ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +# ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AAC.31 - Play ADIF stereo +SoundFile e:\sounds\aac\ADIF\10s_AAC_LC_56kbps_44.1khz_stereo.aac +# ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play AAC-ADIF (ID 103) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 103 +Title Plugin.AAC.32 - PlayStop ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AAC.33 - PlayStop ADIF stereo +SoundFile e:\sounds\aac\ADIF\10s_AAC_LC_56kbps_44.1khz_stereo.aac +SoundFile e:\sounds\aac\ADIF\10s_AAC_LC_56kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + + + +//*************************************** +//* Play - Volume Max and Medium (ID 112) +//*************************************** + +[TestCase] +id 112 +Title Plugin.AAC.34 - SettingVolume AAC ADTS +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_32khz_stereo.aac +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.AAC.35 - SettingVolume AAC ADTS +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_8khz_stereo.aac +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.AAC.36 - SettingVolume AAC ADIF +SoundFile e:\sounds\aac\ADIF\10s_AAC_Generic_ADIF_meta_full.aac +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.AAC.37 - SettingVolume AAC ADIF +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +[End_TestCase] + +//******************************** +//* Play - Volume Ramping (ID 113) +//******************************** + +[TestCase] +id 113 +Title Plugin.AAC.38 - VolumeRamping AAC ADTS +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_16kbps_11.025khz_stereo.aac +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.AAC.39 - VolumeRamping AAC ADTS +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_20kbps_22.05khz_stereo.aac +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.AAC.40 - VolumeRamping AAC ADIF +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +//---------------------------- +//Add following cases for Inc9 +//---------------------------- + + +//************************** +//* Play Pause Play (ID 108) +//************************** +[TestCase] +id 108 +Title Plugin.AAC.41 - PlayPausePlay AAC 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 5 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.AAC.42 - PlayPausePlay AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 5 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.AAC.43 - PlayPausePlay AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 4 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.AAC.44 - PlayPausePlay AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 4 000 000 +[End_TestCase] + + + +//****************************** +//* Set Position - Play (ID 109) +//****************************** + +[TestCase] +id 109 +Title Plugin.AAC.45 - SetPosition_Play AAC 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Position 000 500 000 +ErrorRange 4 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.AAC.46 - SetPosition_Play AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +//Position 50 000 000 +Position 10 000 000 +ErrorRange 5 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.AAC.47 - SetPosition_Play AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +//Position 30 000 000 +Position 05 000 000 +ErrorRange 4 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.AAC.48 - SetPosition_Play AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Position 10 000 000 +ErrorRange 4 000 000 +[End_TestCase] + + + +//******************************* +//* Play - Get Position (ID 110) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + + +[TestCase] +id 110 +Title Plugin.AAC.49 - GetPosition_Play AAC 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.AAC.50 - GetPosition_Play AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.AAC.51 - GetPosition_Play AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.AAC.52 - GetPosition_Play AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Delay 1000000 +[End_TestCase] + + +//****************************** +//* Play - Get Duration (ID 111) +//****************************** + +[TestCase] +id 111 +Title Plugin.AAC.53 - GetDuration AAC 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.AAC.54 - GetDuration AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.AAC.55 - GetDuration AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.AAC.56 - GetDuration AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +Delay 1000000 +[End_TestCase] + +//************************************* +//* Play - Set Playback Window (ID 115) +//************************************* + +[TestCase] +id 115 +Title Plugin.AAC.57 - SetPlaybackWindow AAC 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_56kbps_24khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AAC.58 - SetPlaybackWindow AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AAC.59 - SetPlaybackWindow AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AAC.60 - SetPlaybackWindow AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + + +//**************************************** +//* Play - Delete Playback Window (ID 116) +//**************************************** +[TestCase] +id 116 +Title Plugin.AAC.61 - DeletePlaybackWindow AAC 64Khz ADTS LC +SoundFile e:\sounds\aac\ADTS\SampleRate\10s_AAC_LC_44kbps_64khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.AAC.62 - DeletePlaybackWindow AAC 44Khz ADTS MPEG2 +SoundFile e:\sounds\aac\ADTS\MPEG2\10s_AAC_LC_42kbps_44.1khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.AAC.63 - DeletePlaybackWindow AAC 48Khz ADTS MPEG4 +SoundFile e:\sounds\aac\ADTS\MPEG4\10s_AAC_LC_44kbps_48khz_stereo.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.AAC.64 - DeletePlaybackWindow AAC ADIF mono +SoundFile e:\sounds\aac\ADIF\10s_AAC_44khz_mono.aac +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + + +#Configuration Filename: PluginTest_AMR.cfg +# DESCRIPTION: This config file is to test the AMR audio. +# +# History +# 2005-03-21 Sue Xu 44 Test cases +//************************** +//* Play AMR NB Modes 0-7 (ID 102) +//************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.AMR.1 - Play 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.2 - Play 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.3 - Play 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.4 - Play 10s_AMR_NB_mode3.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode3.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.5 - Play 10s_AMR_NB_mode4.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode4.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.6 - Play 10s_AMR_NB_mode5.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode5.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.7 - Play 10s_AMR_NB_mode6.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode6.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.8 - Play 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.9 - Play AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode4_no_ext +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AMR.10 - Play AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_other_ext.3gp +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play and Stop (ID 103) +//************************** + +[TestCase] +id 103 +Title Plugin.AMR.11 - PlayStop 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.12 - PlayStop 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.13 - PlayStop 10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode1.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.14 - PlayStop 10s_AMR_NB_mode3.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode3.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode3.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.15 - PlayStop 10s_AMR_NB_mode4.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode4.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode4.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.16 - PlayStop 10s_AMR_NB_mode5.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode5.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode5.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.17 - PlayStop 10s_AMR_NB_mode6.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode6.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode6.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.18 - PlayStop 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.19 - PlayStop AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode4_no_ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode4_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AMR.20 - PlayStop AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_other_ext.3gp +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_other_ext.3gp +Delay 1000000 +[End_TestCase] + + + +//************************** +//* Play Pause Play (ID 108) +//************************** + +[TestCase] +id 108 +Title Plugin.AMR.21 - PlayPausePlay 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.AMR.22 - PlayPausePlay AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.AMR.23 - PlayPausePlay AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Set Position - Play (ID 109) +//************************** + +[TestCase] +id 109 +Title Plugin.AMR.24 - SetPosition_Play 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.AMR.25 - SetPosition_Play AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.AMR.26 - SetPosition_Play AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play - Get Position (ID 110) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 110 +Title Plugin.AMR.27 - GetPosition_Play 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.AMR.28 - GetPosition_Play AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.AMR.29 - GetPosition_Play AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 111) +//************************** + +[TestCase] +id 111 +Title Plugin.AMR.30 - GetDuration 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.AMR.31 - GetDuration AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.AMR.32 - GetDuration AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Volume Max and Medium (ID 112) +//************************** + +[TestCase] +id 112 +Title Plugin.AMR.33 - SettingVolume 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.AMR.34 - SettingVolume AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.AMR.35 - SettingVolume AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +[End_TestCase] + +//************************** +//* Play - Volume Ramping (ID 113) +//************************** + +[TestCase] +id 113 +Title Plugin.AMR.36 - VolumeRamping 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.AMR.37 - VolumeRamping AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.AMR.38 - VolumeRamping AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 115) +//************************** + + +[TestCase] +id 115 +Title Plugin.AMR.39 - SetPlaybackWindow 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 02 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AMR.40 - SetPlaybackWindow AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_no_ext +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 02 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 115 +Title Plugin.AMR.41 - SetPlaybackWindow AMR with other ext +SoundFile e:\sounds\amr\10s_3GP_AMR_NB_12.2kbps.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 02 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Delete Playback Window (ID 116) +//************************** + +[TestCase] +id 116 +Title Plugin.AMR.42 - DeletePlaybackWindow 10s_AMR_NB_mode0.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode0.amr +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.AMR.43 - DeletePlaybackWindow AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.AMR.44 - DeletePlaybackWindow AMR with other ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode0_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +# Configuration Filename: PluginTest_AWB.cfg +# DESCRIPTION: This config file is to test the AWB audio. +# +# History +# 2005-03-21 Sue Xu 46 Test cases + +//************************** +//* Play AMR WB Modes 0-8 (ID 102) +//************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.AWB.1 - Play 10s_AMR_WB_6.6kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_6.6kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.2 - Play 10s_AMR_WB_8.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_8.85kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.3 - Play 10s_AMR_WB_12.65kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_12.65kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.4 - Play 10s_AMR_WB_14.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_14.25kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.5 - Play 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.6 - Play 10s_AMR_WB_18.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_18.25kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.7 - Play 10s_AMR_WB_19.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_19.85kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.8 - Play 10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.9 - Play 10s_AMR_WB_23.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps.amr +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.10 - Play AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_mode8_no_ext +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.AWB.11 - Play AWB with other ext +SoundFile e:\sounds\awb\10s_3GP_AMR_WB_mode8.3gp +Expected Duration 2 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play and Stop (ID 103) +//************************** + +[TestCase] +id 103 +Title Plugin.AWB.12 - PlayStop 10s_AMR_WB_6.6kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_6.6kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_6.6kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.13 - PlayStop 10s_AMR_WB_8.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_8.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_8.85kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.14 - PlayStop 10s_AMR_WB_12.65kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_12.65kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_12.65kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.15 - PlayStop 10s_AMR_WB_14.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_14.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_14.25kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.16 - PlayStop 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.17 - PlayStop 10s_AMR_WB_18.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_18.25kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_18.25kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.18 - PlayStop 10s_AMR_WB_19.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_19.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_19.85kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.19 - PlayStop 10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.20 - PlayStop 10s_AMR_WB_23.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.21 - PlayStop AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_mode8_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.AWB.22 - PlayStop AWB with other ext +SoundFile e:\sounds\awb\10s_3GP_AMR_WB_mode8.3gp +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 108) +//************************** + +[TestCase] +id 108 +Title Plugin.AWB.23 - PlayPausePlay 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.AWB.24 - PlayPausePlay AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.AWB.25 - PlayPausePlay AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Set Position - Play (ID 109) +//************************** + +[TestCase] +id 109 +Title Plugin.AWB.26 - SetPosition_Play 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.AWB.27 - SetPosition_Play AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_no_ext +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.AWB.28 - SetPosition_Play AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_other_ext.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play - Get Position (ID 110) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 110 +Title Plugin.AWB.29 - GetPosition_Play 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.AWB.30 - GetPosition_Play AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.AWB.31 - GetPosition_Play AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_other_ext.3gp +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 111) +//************************** + +[TestCase] +id 111 +Title Plugin.AWB.32 - GetDuration 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.AWB.33 - GetDuration AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.AWB.34 - GetDuration AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Volume Max and Medium (ID 112) +//************************** + +[TestCase] +id 112 +Title Plugin.AWB.35 - SettingVolume 10s_AMR_WB_15.85kbps.awb +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps.awb +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.AWB.36 - SettingVolume AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_no_ext +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.AWB.37 - SettingVolume AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_15.85kbps_other_ext.3gp +[End_TestCase] + +//************************** +//* Play - Volume Ramping (ID 113) +//************************** + +[TestCase] +id 113 +Title Plugin.AWB.38 - VolumeRamping 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.AWB.39 - VolumeRamping AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.AWB.40 - VolumeRamping AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 115) +//************************** + +[TestCase] +id 115 +Title Plugin.AWB.41 - SetPlaybackWindow 10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 02 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AWB.42 - SetPlaybackWindow AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps_no_ext +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AWB.43 - SetPlaybackWindow AWB with other ext +SoundFile e:\sounds\awb\10s_3GP_AMR_WB_23.05kbps.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Delete Playback Window (ID 116) +//************************** + +[TestCase] +id 116 +Title Plugin.AWB.44 - DeletePlaybackWindow 10s_AMR_WB_23.85kbps_Generic.awb +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.AWB.45 - DeletePlaybackWindow AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.AWB.46 - DeletePlaybackWindow AWB with other ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.85kbps_Generic_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +# Configuration Filename: PluginTest_EAACplus.cfg +# DESCRIPTION: This config file is to test the EAAC+ audio. +# +# History +# 2005-04-12 Sue Xu - 49 Test cases +//******************************************* +//* Play 3gp EAAC+ audio files (ID 102) +//******************************************* +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.HeAAC.1 - Play implicit stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode0.3gp +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.HeAAC.2 - Play explicit non-backwards compatible stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.3 - Play 20kbps 32khz 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_20kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.4 - Play 16kbps 32khz mono 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_16kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.5 - Play 24kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_24kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.6 - Play 20kbps 32khz 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_20kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.7 - Play 16kbps 32khz mono 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_16kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.8 - Play 24kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_24kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.9 - Play 20kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_20kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.10 - Play 16kbps 32khz 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_16kbps_32khz_Mono.3gp +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.HeAAC.11 - Play 24kbps 32khz stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AAC+_24kbps_32khz_Stereo.3gp +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************************* +//* Play mp4 EAAC+ audio files (ID 102) +//******************************************* +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.HeAAC.12 - Play implicit pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_0.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + + +[TestCase] +id 102 +Title Plugin.HeAAC.13 - Play explicit backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.HeAAC.14 - Play explicit non-backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_2.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.HeAAC.15 - Play implicit stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.HeAAC.16 - Play explicit backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_1.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.HeAAC.17 - Play explicit non-backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_2.mp4 +ErrorRange 1 000 000 +[End_TestCase] + + +//************************************ +//* Play EAAC+ (ID 103) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 103 +Title Plugin.HeAAC.18 - PlayStop implicit stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode0.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode0.3gp +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 103 +Title Plugin.HeAAC.19 - PlayStop explicit non-backwards compatible stereo 3gp audio +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.HeAAC.20 - PlayStop implicit pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_0.mp4 +Delay 1000000 +[End_TestCase] + + + +[TestCase] +id 103 +Title Plugin.HeAAC.21 - PlayStop explicit backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 103 +Title Plugin.HeAAC.22 - PlayStop explicit non-backwards compatible pstereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_2.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_2.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 103 +Title Plugin.HeAAC.23 - PlayStop implicit stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 103 +Title Plugin.HeAAC.24 - PlayStop explicit backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_1.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 103 +Title Plugin.HeAAC.25 - PlayStop explicit non-backwards compatible stereo mp4 audio +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_2.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_2.mp4 +Delay 1000000 +[End_TestCase] + + + +//*************************************** +//* Play - Volume Max and Medium (ID 112) +//*************************************** + +[TestCase] +id 112 +Title Plugin.HeAAC.26 - SettingVolume 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 112 +Title Plugin.HeAAC.27 - SettingVolume 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 112 +Title Plugin.HeAAC.28 - SettingVolume 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Delay 1000000 +[End_TestCase] + + +//******************************** +//* Play - Volume Ramping (ID 113) +//******************************** + +[TestCase] +id 113 +Title Plugin.HeAAC.29 - VolumeRamping 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 113 +Title Plugin.HeAAC.30 - VolumeRamping 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 113 +Title Plugin.HeAAC.31 - VolumeRamping 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 108) +//************************** + +[TestCase] +id 108 +Title Plugin.HeAAC.32 - PlayPausePlay 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +[TestCase] +id 108 +Title Plugin.HeAAC.33 - PlayPausePlay 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +[TestCase] +id 108 +Title Plugin.HeAAC.34 - PlayPausePlay 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +//****************************** +//* Set Position - Play (ID 109) +//****************************** + +[TestCase] +id 109 +Title Plugin.HeAAC.35 - SetPosition_Play 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + +[TestCase] +id 109 +Title Plugin.HeAAC.36 - SetPosition_Play 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + +[TestCase] +id 109 +Title Plugin.HeAAC.37 - SetPosition_Play 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + + +//******************************* +//* Play - Get Position (ID 110) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. +[TestCase] +id 110 +Title Plugin.HeAAC.38 - GetPosition_Play 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 110 +Title Plugin.HeAAC.39 - GetPosition_Play 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 110 +Title Plugin.HeAAC.40 - GetPosition_Play 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Delay 1000000 +[End_TestCase] + + + +//****************************** +//* Play - Get Duration (ID 111) +//****************************** +[TestCase] +id 111 +Title Plugin.HeAAC.41 - GetDuration 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 111 +Title Plugin.HeAAC.42 - GetDuration 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 111 +Title Plugin.HeAAC.43 - GetDuration 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +Delay 1000000 +[End_TestCase] + + +//************************************* +//* Play - Set Playback Window (ID 115) +//************************************* + +[TestCase] +id 115 +Title Plugin.HeAAC.44 - SetPlaybackWindow 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +StartPosition 3 000 000 +EndPosition 7 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 115 +Title Plugin.HeAAC.45 - SetPlaybackWindow 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +StartPosition 3 000 000 +EndPosition 7 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 115 +Title Plugin.HeAAC.46 - SetPlaybackWindow 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +StartPosition 0 000 000 +EndPosition 5 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + + +//**************************************** +//* Play - Delete Playback Window (ID 116) +//**************************************** + + +[TestCase] +id 116 +Title Plugin.HeAAC.47 - DeletePlaybackWindow 10s_MP4_stereo_0.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_stereo_0.mp4 +StartPosition 3 000 000 +EndPosition 7 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 116 +Title Plugin.HeAAC.48 - DeletePlaybackWindow 10s_3GP_AMR_NB_mode2.3gp +SoundFile e:\sounds\HeAAC\10s_3GP_AMR_NB_mode2.3gp +StartPosition 3 000 000 +EndPosition 7 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 116 +Title Plugin.HeAAC.49 - DeletePlaybackWindow 10s_MP4_pstereo_1.mp4 +SoundFile e:\sounds\HeAAC\10s_MP4_pstereo_1.mp4 +StartPosition 0 000 000 +EndPosition 5 000 000 +Delay 1000000 +[End_TestCase] + +# Configuration Filename: PluginTest_m4a.cfg +# DESCRIPTION: This config file is to test the m4a audio. +# +# History +# 2005-03-21 Sue Xu - 56 Test cases + +//******************************************* +//* Play M4a Sample Rate and BiteRate(ID 102) +//******************************************* +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.M4a.1 - Play Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.M4a.2 - Play Mono 16kbps 22kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_16kbps_22.05khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.3 - Play Mono 20kbps 24kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_20kbps_24khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.4 - Play Mono 24kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_24kbps_32khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.5 - Play 28kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_28kbps_32khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.6 - Play Mono 32kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_32kbps_32khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.7 - Play Mono 40kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_40kbps_44.1khz_mono.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.8 - Play Mono 48kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_48kbps_44.1khz_mono.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.9 - Play Mono 56kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_56kbps_44.1khz_mono.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.10 - Play Mono 64kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_64kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.11 - Play Mono 80kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_80kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.12 - Play Mono 96kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_96kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.13 - Play Mono 112kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_112kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.14 - Play Mono 128kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_128kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.15 - Play Mono 160kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_160kbps_44.1khz_mono.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.16 - Play Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.17 - Play Stereo 20kbps 11kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_20kbps_16khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.18 - Play Stereo 24kbps 16kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_24kbps_16khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.19 - Play Stereo 28kbps 16kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_28kbps_16khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.20 - Play Stereo 32kbps 22kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_32kbps_22.05khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.21 - Play Stereo 40kbps 24kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_40kbps_24khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.22 - Play Stereo 48kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_48kbps_32khz_stereo.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.23 - Play Stereo 56kbps 32kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_56kbps_32khz_stereo.m4a +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.24 - Play Stereo 64kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_64kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.25 - Play Stereo 80kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_80kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.26 - Play Stereo 96kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_96kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.27 - Play Stereo 112kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_112kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.28 - Play Stereo 128kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_128kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.29 - Play Stereo 160kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_160kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.30 - Play Stereo 192kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_192kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.31 - Play Stereo 224kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_224kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.32 - Play Stereo 256kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_256kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.33 - Play Stereo 320kbps 44kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_320kbps_44.1khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.34 - Play Stereo 112kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_112kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.35 - Play Stereo 128kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_128kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.36 - Play Stereo 160kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_160kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.37 - Play Stereo 192kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_192kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.38 - Play Stereo 224kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_224kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.39 - Play Stereo 256kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_256kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.M4a.40 - Play Stereo 320kbps 48kHz m4a audio +SoundFile e:\sounds\m4a\10s_AAC_LC_320kbps_48khz_stereo.m4a +ErrorRange 1 000 000 +[End_TestCase] + + + +//************************************ +//* Play M4a (ID 103) +//************************************ +// Testing Play Stop Play to EOF + +[TestCase] +id 103 +Title Plugin.M4a.41 - PlayStop Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 103 +Title Plugin.M4a.42 - PlayStop Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Delay 1000000 +[End_TestCase] + + +//*************************************** +//* Play - Volume Max and Medium (ID 112) +//*************************************** + +[TestCase] +id 112 +Title Plugin.M4a.43 - SettingVolume Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 112 +Title Plugin.M4a.44 - SettingVolume Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Delay 1000000 +[End_TestCase] + + +//******************************** +//* Play - Volume Ramping (ID 113) +//******************************** + +[TestCase] +id 113 +Title Plugin.M4a.45 - VolumeRamping Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 113 +Title Plugin.M4a.46 - VolumeRamping Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 108) +//************************** + +[TestCase] +id 108 +Title Plugin.M4a.47 - PlayPausePlay Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + + +[TestCase] +id 108 +Title Plugin.M4a.48 - PlayPausePlay Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************** +//* Set Position - Play (ID 109) +//****************************** + +[TestCase] +id 109 +Title Plugin.M4a.49 - SetPosition_Play Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + +[TestCase] +id 109 +Title Plugin.M4a.50 - SetPosition_Play Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + + + +//******************************* +//* Play - Get Position (ID 110) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + + +[TestCase] +id 110 +Title Plugin.M4a.51 - GetPosition_Play Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 110 +Title Plugin.M4a.52 - GetPosition_Play Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Delay 1000000 +[End_TestCase] + + + +//****************************** +//* Play - Get Duration (ID 111) +//****************************** + +[TestCase] +id 111 +Title Plugin.M4a.53 - GetDuration Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 111 +Title Plugin.M4a.54 - GetDuration Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +Delay 1000000 +[End_TestCase] + + +//************************************* +//* Play - Set Playback Window (ID 115) +//************************************* + + +[TestCase] +id 115 +Title Plugin.M4a.55 - SetPlaybackWindow Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 115 +Title Plugin.M4a.56 - SetPlaybackWindow Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + + + +//**************************************** +//* Play - Delete Playback Window (ID 116) +//**************************************** + + +[TestCase] +id 116 +Title Plugin.M4a.57 - DeletePlaybackWindow Mono 8kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_8kbps_11.025khz_mono.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 116 +Title Plugin.M4a.58 - DeletePlaybackWindow Stereo 16kbps 11kHz m4a audio +SoundFile e:\sounds\M4a\10s_AAC_LC_16kbps_11.025khz_stereo.m4a +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +# Configuration Filename: PluginTest_Midi.cfg +# DESCRIPTION: This config file is to test the MIDI, SP-MIDI, and RMF audio. +# +# History +# 2005-10-17 Sue Xu 120 Test cases + +//************************** +//* Play MIDI, SP-MIDI, RMF audio file (ID 102) +//************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.MIDI.1 - Play midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic.mid +//Expected Duration 4 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.2 - Play midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +//Expected Duration 4 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.3 - Play midi with different ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.3gp +//Expected Duration 4 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.4 - Play sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +//Expected Duration 13 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.5 - Play sp-midi 10s_SP_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +//Expected Duration 13 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.6 - Play sp-midi 10s_SP_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +//Expected Duration 13 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.7 - Play rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.8 - Play rmf piano +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.9 - Play rmf piano.awb +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.10 - Play mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.11 - Play mxmf 10s_MXMF_no_ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MIDI.12 - Play mxmf 10s_MXMF_other_ext.awb +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +//Expected Duration 12 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +//************************** +//* Play and Stop (ID 103) +//************************** + +[TestCase] +id 103 +Title Plugin.MIDI.13 - PlayStop midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.14 - PlayStop midi 10s_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.15 - PlayStop midi 10s_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.16 - PlayStop sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.17 - PlayStop sp-midi 10s_SP_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.18 - PlayStop sp-midi 10s_SP_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.19 - PlayStop rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.20 - PlayStop rmf piano +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.21 - PlayStop rmf piano.awb +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.22 - PlayStop mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.23 - PlayStop mxmf 10s_MXMF_no_ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MIDI.24 - PlayStop mxmf 10s_MXMF_other_ext.awb +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Delay 1000000 +[End_TestCase] + + + +//************************** +//* Play Pause Play (ID 108) +//************************** + +[TestCase] +id 108 +Title Plugin.MIDI.25 - PlayPausePlay midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.26 - PlayPausePlay midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.27 - PlayPausePlay midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.28 - PlayPausePlay sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.29 - PlayPausePlay sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.30 - PlayPausePlay sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.31 - PlayPausePlay rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.32 - PlayPausePlay rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.33 - PlayPausePlay rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.34 - PlayPausePlay mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.35 - PlayPausePlay mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MIDI.36 - PlayPausePlay mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 2 000 000 +[End_TestCase] + + +//************************** +//* Set Position - Play (ID 109) +//************************** + +[TestCase] +id 109 +Title Plugin.MIDI.37 - SetPosition_Play midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +//Position 10 000 000 +Position 02 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.38 - SetPosition_Play midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +//Position 10 000 000 +Position 02 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.39 - SetPosition_Play midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +//Position 10 000 000 +Position 02 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.40 - SetPosition_Play sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.41 - SetPosition_Play sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.42 - SetPosition_Play sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.43 - SetPosition_Play rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.44 - SetPosition_Play rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.45 - SetPosition_Play rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.46 - SetPosition_Play mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.47 - SetPosition_Play mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MIDI.48 - SetPosition_Play mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Position 10 000 000 +ErrorRange 2 000 000 +[End_TestCase] + +//************************** +//* Play - Get Position (ID 110) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 110 +Title Plugin.MIDI.49 - GetPosition_Play midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.50 - GetPosition_Play midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.51 - GetPosition_Play midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.52 - GetPosition_Play sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.53 - GetPosition_Play sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.54 - GetPosition_Play sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.55 - GetPosition_Play rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.56 - GetPosition_Play rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.57 - GetPosition_Play rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.58 - GetPosition_Play mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.59 - GetPosition_Play mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MIDI.60 - GetPosition_Play mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 111) +//************************** + +[TestCase] +id 111 +Title Plugin.MIDI.61 - GetDuration mid 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.62 - GetDuration mid without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.63 - GetDuration mid with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.64 - GetDuration sp-mid 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.65 - GetDuration sp-mid without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.66 - GetDuration sp-mid with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.67 - GetDuration rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.68 - GetDuration rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.69 - GetDuration rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 111 +Title Plugin.MIDI.70 - GetDuration mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.71 - GetDuration mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MIDI.72 - GetDuration mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Volume Max and Medium (ID 112) +//************************** + +[TestCase] +id 112 +Title Plugin.MIDI.73 - SettingVolume mid 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.74 - SettingVolume mid without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.75 - SettingVolume mid with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.76 - SettingVolume sp-mid 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.77 - SettingVolume sp-mid without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.78 - SettingVolume sp-mid with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.79 - SettingVolume rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.80 - SettingVolume rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.81 - SettingVolume rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.82 - SettingVolume mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.83 - SettingVolume mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MIDI.84 - SettingVolume mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +[End_TestCase] + +//************************** +//* Play - Volume Ramping (ID 113) +//************************** + +[TestCase] +id 113 +Title Plugin.MIDI.85 - VolumeRamping mid 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.86 - VolumeRamping mid without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.87 - VolumeRamping mid with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.88 - VolumeRamping sp-mid 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.89 - VolumeRamping sp-mid without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.90 - VolumeRamping sp-mid with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.amr +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.91 - VolumeRamping rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.92 - VolumeRamping rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.93 - VolumeRamping rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.awb +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.94 - VolumeRamping mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.95 - VolumeRamping mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MIDI.96 - VolumeRamping mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 115) +//************************** + +[TestCase] +id 115 +Title Plugin.MIDI.97 - SetPlaybackWindow midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.98 - SetPlaybackWindow midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.99 - SetPlaybackWindow midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.100 - SetPlaybackWindow sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +//StartPosition 10 000 000 +//EndPosition 20 000 000 +StartPosition 03 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 115 +Title Plugin.MIDI.101 - SetPlaybackWindow sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +//StartPosition 10 000 000 +//EndPosition 20 000 000 +StartPosition 02 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.102 - SetPlaybackWindow sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.awb +//StartPosition 10 000 000 +//EndPosition 20 000 000 +StartPosition 02 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.103 - SetPlaybackWindow rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.104 - SetPlaybackWindow rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.105 - SetPlaybackWindow rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.106 - SetPlaybackWindow mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.107 - SetPlaybackWindow mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.108 - SetPlaybackWindow mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Delete Playback Window (ID 116) +//************************** + +[TestCase] +id 116 +Title Plugin.MIDI.109 - DeletePlaybackWindow midi 10s_MID_Generic.mid +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext.mid +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.110 - DeletePlaybackWindow midi without ext +SoundFile e:\sounds\mid\10s_MID_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.111 - DeletePlaybackWindow midi with other ext +SoundFile e:\sounds\mid\10s_MID_Generic_other_ext.amr +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.112 - DeletePlaybackWindow sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.113 - DeletePlaybackWindow sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.114 - DeletePlaybackWindow sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.115 - DeletePlaybackWindow rmf 10s_RMF_MID.rmf +SoundFile e:\sounds\mid\10s_RMF_MID.rmf +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.116 - DeletePlaybackWindow rmf without ext +SoundFile e:\sounds\mid\10s_RMF_MID_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.117 - DeletePlaybackWindow rmf with other ext +SoundFile e:\sounds\mid\10s_RMF_MID_other_ext.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.118 - DeletePlaybackWindow mxmf 10s_MXMF.mxmf +SoundFile e:\sounds\mxmf\10s_MXMF.mxmf +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.119 - DeletePlaybackWindow mxmf without ext +SoundFile e:\sounds\mxmf\10s_MXMF_no_ext +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MIDI.120 - DeletePlaybackWindow mxmf with other ext +SoundFile e:\sounds\mxmf\10s_MXMF_other_ext.awb +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +# Configuration Filename: PluginTest_MP3.cfg +# DESCRIPTION: This config file is to test the MP3 audio. +# +# History +# 2005-03-21 Sue Xu - 137 Test cases + +//************************** +//* Play MP3 Sample Rate (ID 102) +//************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.MP3.1 - Play 8Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_8khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.2 - Play 11Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_11.025khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.3 - Play 12Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.4 - Play 16Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_16khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.5 - Play 22Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_22.05khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.6 - Play 24 Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.7 - Play 32 Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_32khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.8 - Play 44 Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_44.1khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.9 - Play 48 Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + + +//********************************** +//* Play and Stop SampleRate(ID 103) +//********************************** + +[TestCase] +id 103 +Title Plugin.MP3.10 - PlayStop 8Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_8khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_8kbps_8khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.11 - PlayStop 11Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_24kbps_11.025khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_24kbps_11.025khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.12 - PlayStop 12Khz MPEG2.5 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_24kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2.5_24kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.13 - PlayStop 16Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_16khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_16khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.14 - PlayStop 22Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_22.05khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_22.05khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.15 - PlayStop 24Khz MPEG2 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.16 - PlayStop 32Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_32khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_32khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.17 - PlayStop 44Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_44.1khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_44.1khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.18 - PlayStop 48Khz MPEG1 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_32kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + + +//***************************************** +//* Play MP3 Sample Rate Descriptor(ID 104) +//***************************************** +// Testing Play Descriptor to EOF + + + +//********************************** +//* Play MP3 Bit Rate MPEG1 (ID 102) +//********************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.MP3.19 - Play 32Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_32kbps_44.1khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.20 - Play 40Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_40kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.21 - Play 48Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_48kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.22 - Play 56Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_56kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.23 - Play 64Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_64kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.24 - Play 80Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_80kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.25 - Play 96Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_96kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.26 - Play 112Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_112kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.27 - Play 128Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_128kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.28 - Play 160Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_160kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.29 - Play 192Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_192kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.30 - Play 224Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_224kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.31 - Play 256Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_256kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.32 - Play 320Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_320kbps_48khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************************* +//* Play and Stop MP3 Bit Rate MPEG1 (ID 103) +//******************************************* + +[TestCase] +id 103 +Title Plugin.MP3.33 - PlayStop 32Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_32kbps_44.1khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_32kbps_44.1khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.34 - PlayStop 40Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_40kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_40kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.35 - PlayStop 48Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_48kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_48kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.36 - PlayStop 56Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_56kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_56kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.37 - PlayStop 64Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_64kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_64kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.38 - PlayStop 80Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_80kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_80kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.39 - PlayStop 96Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_96kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_96kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.40 - PlayStop 112Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_112kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_112kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.41 - PlayStop 128Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_128kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_128kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.42 - PlayStop 160Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_160kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_160kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.43 - PlayStop 192Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_192kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_192kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.44 - PlayStop 224Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_224kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_224kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.45 - PlayStop 256Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_256kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_256kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.46 - PlayStop 320Kbps MPEG1 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_320kbps_48khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_320kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + + +//******************************************** +//* Play MP3 Bit Rate MPEG1 Descriptor(ID 104) +//******************************************** + + + + +//************************************** +//* Play MP3 Bit Rate MPEG2/2.5 (ID 102) +//************************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.MP3.47 - Play 8Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_8kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.48 - Play 16Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.49 - Play 24Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_24kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.50 - Play 32Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_32kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.51 - Play 40Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_40kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.52 - Play 48Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_48kbps_24khz_mono.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.53 - Play 56Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.54 - Play 64Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_64kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.55 - Play 80Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_80kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.56 - Play 96Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_96kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.57 - Play 112Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_112kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.58 - Play 128Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_128kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.59 - Play 144Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_144kbps_24khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.MP3.60 - Play 160Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_160kbps_12khz_stereo.mp3 +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************************** +//* PlayStop MP3 Bit Rate MPEG2/2.5 (ID 103) +//****************************************** + +[TestCase] +id 103 +Title Plugin.MP3.61 - PlayStop 8Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_8kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_8kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.62 - PlayStop 16Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_16kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.63 - PlayStop 24Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_24kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_24kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.64 - PlayStop 32Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_32kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_32kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.65 - PlayStop 40Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_40kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_40kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.66 - PlayStop 48Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_48kbps_24khz_mono.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_48kbps_24khz_mono.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.67 - PlayStop 56Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.68 - PlayStop 64Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_64kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_64kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.69 - PlayStop 80Kbps MPEG2.5 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_80kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_80kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.70 - PlayStop 96Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_96kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_96kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.71 - PlayStop 112Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_112kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_112kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.72 - PlayStop 128Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_128kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_128kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.73 - PlayStop 144Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_144kbps_24khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2_144kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.MP3.74 - PlayStop 160Kbps MPEG2 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_160kbps_12khz_stereo.mp3 +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_160kbps_12khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + + + +//************************************************ +//* Play MP3 Bit Rate MPEG2/2.5 Descriptor(ID 104) +//************************************************ + + +//*************************************** +//* Play Descriptor after another (ID 105) +//*************************************** + + +//************************** +//* Play Pause Play (ID 108) +//************************** + +[TestCase] +id 108 +Title Plugin.MP3.75 - PlayPausePlay MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_24khz_stereo.mp3 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MP3.76 - PlayPausePlay MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.MP3.77 - PlayPausePlay MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************** +//* Set Position - Play (ID 109) +//****************************** + +[TestCase] +id 109 +Title Plugin.MP3.78 - SetPosition_Play MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MP3.79 - SetPosition_Play MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +Position 05 000 000 +ErrorRange 3 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.MP3.80 - SetPosition_Play MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************* +//* Play - Get Position (ID 110) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 110 +Title Plugin.MP3.81 - GetPosition_Play MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MP3.82 - GetPosition_Play MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.MP3.83 - GetPosition_Play MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +//****************************** +//* Play - Get Duration (ID 111) +//****************************** + +[TestCase] +id 111 +Title Plugin.MP3.84 - GetDuration MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MP3.85 - GetDuration MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.MP3.86 - GetDuration MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +Delay 1000000 +[End_TestCase] + +//*************************************** +//* Play - Volume Max and Medium (ID 112) +//*************************************** + +[TestCase] +id 112 +Title Plugin.MP3.87 - SettingVolume MP3 MPEG2 16KHz +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_16kbps_16khz_stereo.mp3 +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MP3.88 - SettingVolume MP3 MPEG2.5 24Kbps +SoundFile e:\sounds\mp3\BitRate\10s_MP3_MPEG2.5_24kbps_12khz_stereo.mp3 +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.MP3.89 - SettingVolume MP3 MPEG1 128Kbps +SoundFile e:\sounds\mp3\BitRate\10s_MP3_128kbps_48khz_stereo.mp3 +[End_TestCase] + +//******************************** +//* Play - Volume Ramping (ID 113) +//******************************** + +[TestCase] +id 113 +Title Plugin.MP3.90 - VolumeRamping MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MP3.91 - VolumeRamping MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_24khz_stereo.mp3 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.MP3.92 - VolumeRamping MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +//************************************* +//* Play - Set Playback Window (ID 115) +//************************************* + +[TestCase] +id 115 +Title Plugin.MP3.93 - SetPlaybackWindow MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MP3.94 - SetPlaybackWindow MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MP3.95 - SetPlaybackWindow MP3 MPEG2 24KHz 56Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_56kbps_24khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +//**************************************** +//* Play - Delete Playback Window (ID 116) +//**************************************** + +[TestCase] +id 116 +Title Plugin.MP3.96 - DeletePlaybackWindow MP3 MPEG1 48KHz 224Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_224kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MP3.97 - DeletePlaybackWindow MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.MP3.98 - DeletePlaybackWindow MP3 MPEG2 24KHz 160Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_MPEG2_160kbps_24khz_stereo.mp3 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +# Configuration Filename: PluginTest_wav.cfg +# DESCRIPTION: This config file is to test the wav audio. +# +# History +# 2005-03-21 Sue Xu - 137 Test cases + +//************************** +//* Play WAV Sample Rate (ID 102) +//************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.wav.1 - maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.2 - Play 11Khz MPEG2.5 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.3 - Play 12Khz MPEG2.5 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.4 - Play 16Khz MPEG2 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.5 - Play 22Khz MPEG2 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.6 - Play 24 Khz MPEG2 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.7 - Play 32 Khz MPEG1 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.8 - Play 44 Khz MPEG1 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.9 - Play 48 Khz MPEG1 +SoundFile e:\sounds\wav\maintst2.wav +ErrorRange 1 000 000 +[End_TestCase] + + +//********************************** +//* Play and Stop SampleRate(ID 103) +//********************************** + +[TestCase] +id 103 +Title Plugin.wav.10 - PlayStop 8Khz MPEG2.5 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.11 - PlayStop 11Khz MPEG2.5 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.12 - PlayStop 12Khz MPEG2.5 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.13 - PlayStop 16Khz MPEG2 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.14 - PlayStop 22Khz MPEG2 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.15 - PlayStop 24Khz MPEG2 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.16 - PlayStop 32Khz MPEG1 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.17 - PlayStop 44Khz MPEG1 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.18 - PlayStop 48Khz MPEG1 +SoundFile e:\sounds\wav\maintst2.wav +SoundFile e:\sounds\wav\maintst2.wav +Delay 1000000 +[End_TestCase] + + +//***************************************** +//* Play wav Sample Rate Descriptor(ID 104) +//***************************************** +// Testing Play Descriptor to EOF + + +//********************************** +//* Play wav Bit Rate MPEG1 (ID 102) +//********************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.wav.19 - Play 32Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.20 - Play 40Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.21 - Play 48Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.22 - Play 56Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.23 - Play 64Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.24 - Play 80Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.25 - Play 96Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.26 - Play 112Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.27 - Play 128Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.28 - Play 160Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.29 - Play 192Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.30 - Play 224Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.31 - Play 256Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.32 - Play 320Kbps MPEG1 +SoundFile e:\sounds\wav\maintst3.wav +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************************* +//* Play and Stop wav Bit Rate MPEG1 (ID 103) +//******************************************* + +[TestCase] +id 103 +Title Plugin.wav.33 - PlayStop 32Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.34 - PlayStop 40Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.35 - PlayStop 48Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.36 - PlayStop 56Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.37 - PlayStop 64Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.38 - PlayStop 80Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.39 - PlayStop 96Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.40 - PlayStop 112Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.41 - PlayStop 128Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.42 - PlayStop 160Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.43 - PlayStop 192Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.44 - PlayStop 224Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.45 - PlayStop 256Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.46 - PlayStop 320Kbps MPEG1 +SoundFile e:\sounds\wav\maintst.wav +SoundFile e:\sounds\wav\maintst.wav +Delay 1000000 +[End_TestCase] + + +//******************************************** +//* Play wav Bit Rate MPEG1 Descriptor(ID 104) +//******************************************** + + + + +//************************************** +//* Play wav Bit Rate MPEG2/2.5 (ID 102) +//************************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.wav.47 - Play 8Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.48 - Play 16Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.49 - Play 24Kbps MPEG2.5 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.50 - Play 32Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.51 - Play 40Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.52 - Play 48Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.53 - Play 56Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.54 - Play 64Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.55 - Play 80Kbps MPEG2.5 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.56 - Play 96Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.57 - Play 112Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.58 - Play 128Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.59 - Play 144Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.wav.60 - Play 160Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav10s.wav +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************************** +//* PlayStop wav Bit Rate MPEG2/2.5 (ID 103) +//****************************************** + +[TestCase] +id 103 +Title Plugin.wav.61 - PlayStop 8Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.62 - PlayStop 16Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.63 - PlayStop 24Kbps MPEG2.5 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.64 - PlayStop 32Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.65 - PlayStop 40Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.66 - PlayStop 48Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.67 - PlayStop 56Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.68 - PlayStop 64Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.69 - PlayStop 80Kbps MPEG2.5 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.70 - PlayStop 96Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.71 - PlayStop 112Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.72 - PlayStop 128Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.73 - PlayStop 144Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.wav.74 - PlayStop 160Kbps MPEG2 +SoundFile e:\sounds\wav\recordwav30s.wav +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + + + +//************************************************ +//* Play wav Bit Rate MPEG2/2.5 Descriptor(ID 104) +//************************************************ + + +//*************************************** +//* Play Descriptor after another (ID 105) +//*************************************** + + +[TestCase] +id 108 +Title Plugin.wav.76 - PlayPausePlay wav MPEG2 24KHz 56Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.wav.77 - PlayPausePlay wav MPEG1 48KHz 224Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 000 000 +[End_TestCase] + + +//****************************** +//* Set Position - Play (ID 109) +//****************************** + +[TestCase] +id 109 +Title Plugin.wav.78 - SetPosition_Play wav MPEG1 48KHz 224Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Position 000 500 000 +ErrorRange 3 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.wav.79 - SetPosition_Play wav MPEG1 48KHz 96Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Position 20 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.wav.80 - SetPosition_Play wav MPEG2 24KHz 56Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + + +//******************************* +//* Play - Get Position (ID 110) +//******************************* +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 110 +Title Plugin.wav.81 - GetPosition_Play wav MPEG2 24KHz 160Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.wav.82 - GetPosition_Play wav MPEG2 24KHz 56Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.wav.83 - GetPosition_Play wav MPEG1 48KHz 96Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +//****************************** +//* Play - Get Duration (ID 111) +//****************************** + +[TestCase] +id 111 +Title Plugin.wav.84 - GetDuration wav MPEG1 48KHz 96Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.wav.85 - GetDuration wav MPEG1 48KHz 224Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.wav.86 - GetDuration wav MPEG2 24KHz 56Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +Delay 1000000 +[End_TestCase] + +//*************************************** +//* Play - Volume Max and Medium (ID 112) +//*************************************** + +[TestCase] +id 112 +Title Plugin.wav.87 - SettingVolume wav MPEG2 16KHz +SoundFile e:\sounds\wav\recordwav30s.wav +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.wav.88 - SettingVolume wav MPEG2.5 24Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.wav.89 - SettingVolume wav MPEG1 128Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +[End_TestCase] + +//******************************** +//* Play - Volume Ramping (ID 113) +//******************************** + +[TestCase] +id 113 +Title Plugin.wav.90 - VolumeRamping wav MPEG2 24KHz 56Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.wav.91 - VolumeRamping wav MPEG2 24KHz 160Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.wav.92 - VolumeRamping MPEG1 48KHz 224Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +RampDuration 5 000 000 +Delay 1000000 +[End_TestCase] + +//************************************* +//* Play - Set Playback Window (ID 115) +//************************************* + +[TestCase] +id 115 +Title Plugin.wav.93 - SetPlaybackWindow wav MPEG1 48KHz 224Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.wav.94 - SetPlaybackWindow wav MPEG1 48KHz 96Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.wav.95 - SetPlaybackWindow wav MPEG2 24KHz 56Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +StartPosition 10 000 000 +EndPosition 20 000 000 +ErrorRange 2 000 000 +Delay 1000000 +[End_TestCase] + +//**************************************** +//* Play - Delete Playback Window (ID 116) +//**************************************** + +[TestCase] +id 116 +Title Plugin.wav.96 - DeletePlaybackWindow wav MPEG1 48KHz 224Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.wav.97 - DeletePlaybackWindow wav MPEG1 48KHz 96Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.wav.98 - DeletePlaybackWindow wav MPEG2 24KHz 160Kbps +SoundFile e:\sounds\wav\recordwav30s.wav +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +# Configuration Filename: PluginTest_3GPP-MP4.cfg +# DESCRIPTION: This config file is to test the 3GPP and MP4 audio. +# +# History +# 2005-11-01 Sue Xu 70 Test cases +//************************** +//* Play 3GPP , 3g2 and MP4 +//************************** +// Testing Playback to EOF + +[TestCase] +id 102 +Title Plugin.3GP.3g2.mp4.1 - Play mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Expected Duration 28 978 000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.3GP.3g2.mp4.2 - Play 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Expected Duration 29 120 000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.3GP.3g2.mp4.3 - Play 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Expected Duration 37 420 000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.3GP.3g2.mp4.4 - Play 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Expected Duration 38 460 000 +ErrorRange 1 500 000 +[End_TestCase] + + +[TestCase] +id 102 +Title Plugin.3GP.3g2.mp4.5 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.3GP.3g2.mp4.6 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 102 +Title Plugin.3GP.3g2.mp4.7 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +ErrorRange 1 500 000 +[End_TestCase] + + + + +//************************** +//* Play and Stop (ID 103) +//************************** + +[TestCase] +id 103 +Title Plugin.3GP.3g2.mp4.8 - PlayStop mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.3GP.3g2.mp4.9 - PlayStop 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.3GP.3g2.mp4.10 - PlayStop 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.3GP.3g2.mp4.11 - PlayStop 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.3GP.3g2.mp4.12 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.3GP.3g2.mp4.13 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 103 +Title Plugin.3GP.3g2.mp4.14 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play Pause Play (ID 108) +//************************** + +[TestCase] +id 108 +Title Plugin.3GP.3g2.mp4.15 - PlayPausePlay mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.3GP.3g2.mp4.16 - PlayPausePlay 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.3GP.3g2.mp4.17 - PlayPausePlay 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.3GP.3g2.mp4.18 - PlayPausePlay 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + + +[TestCase] +id 108 +Title Plugin.3GP.3g2.mp4.19 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.3GP.3g2.mp4.20 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + +[TestCase] +id 108 +Title Plugin.3GP.3g2.mp4.21 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +PauseDelay 5000000 +PlayDelay 10000000 +ErrorRange 1 500 000 +[End_TestCase] + + +//************************** +//* Set Position - Play (ID 109) +//************************** + +[TestCase] +id 109 +Title Plugin.3GP.3g2.mp4.22 - SetPosition_Play mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.3GP.3g2.mp4.23 - SetPosition_Play 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.3GP.3g2.mp4.24 - SetPosition_Play 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.3GP.3g2.mp4.25 - SetPosition_Play 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.3GP.3g2.mp4.26 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.3GP.3g2.mp4.27 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + +[TestCase] +id 109 +Title Plugin.3GP.3g2.mp4.28 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Position 10 000 000 +ErrorRange 1 000 000 +[End_TestCase] + + +//************************** +//* Play - Get Position (ID 110) +//************************** +// Delay is the setting position, meaning every delay value, the get position is called. +// This info be seen on the log file. + +[TestCase] +id 110 +Title Plugin.3GP.3g2.mp4.29 - GetPosition_Play mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.3GP.3g2.mp4.30 - GetPosition_Play 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.3GP.3g2.mp4.31 - GetPosition_Play 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.3GP.3g2.mp4.32 - GetPosition_Play 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.3GP.3g2.mp4.33 - Play 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.3GP.3g2.mp4.34 - Play 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 110 +Title Plugin.3GP.3g2.mp4.35 - Play 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Get Duration (ID 111) +//************************** + +[TestCase] +id 111 +Title Plugin.3GP.3g2.mp4.36 - GetDuration mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.3GP.3g2.mp4.37 - GetDuration 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.3GP.3g2.mp4.38 - GetDuration 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.3GP.3g2.mp4.39 - GetDuration 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.3GP.3g2.mp4.40 - GetDuration 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.3GP.3g2.mp4.41 - GetDuration 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 111 +Title Plugin.3GP.3g2.mp4.42 - GetDuration 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Delay 1000000 +[End_TestCase] + + + +//************************** +//* Play - Volume Max and Medium (ID 112) +//************************** + +[TestCase] +id 112 +Title Plugin.3GP.3g2.mp4.43 - SettingVolume mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.3GP.3g2.mp4.44 - SettingVolume 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.3GP.3g2.mp4.45 - SettingVolume 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.3GP.3g2.mp4.46 - SettingVolume 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.3GP.3g2.mp4.47 - SettingVolume 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.3GP.3g2.mp4.48 - SettingVolume 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 112 +Title Plugin.3GP.3g2.mp4.49 - SettingVolume 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Volume Ramping (ID 113) +//************************** + +[TestCase] +id 113 +Title Plugin.3GP.3g2.mp4.50 - VolumeRamping mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.3GP.3g2.mp4.51 - VolumeRamping 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.3GP.3g2.mp4.52 - VolumeRamping 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.3GP.3g2.mp4.53 - VolumeRamping 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.3GP.3g2.mp4.54 - VolumeRamping 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.3GP.3g2.mp4.55 - VolumeRamping 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 113 +Title Plugin.3GP.3g2.mp4.56 - VolumeRamping 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +RampDuration 3 000 000 +Delay 1000000 +[End_TestCase] + +//************************** +//* Play - Set Playback Window (ID 115) +//************************** + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.57 - SetPlaybackWindow mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +//StartPosition 10 000 000 +//EndPosition 25 000 000 +StartPosition 02 000 000 +EndPosition 07 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.58 - SetPlaybackWindow 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +//StartPosition 10 000 000 +//EndPosition 25 000 000 +StartPosition 02 000 000 +EndPosition 07 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.59 - SetPlaybackWindow 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.60 - SetPlaybackWindow 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.61 - SetPlaybackWindow 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.62 - SetPlaybackWindow 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 03 000 000 +EndPosition 05 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.63 - SetPlaybackWindow 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +//StartPosition 15 000 000 +//EndPosition 35 000 000 +StartPosition 02 000 000 +EndPosition 06 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + + +//************************** +//* Play - Delete Playback Window (ID 116) +//************************** + +[TestCase] +id 116 +Title Plugin.3GP.3g2.mp4.64 - DeletePlaybackWindow mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.3GP.3g2.mp4.65 - DeletePlaybackWindow 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.3GP.3g2.mp4.66 - DeletePlaybackWindow 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.3GP.3g2.mp4.67 - DeletePlaybackWindow 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +StartPosition 10 000 000 +EndPosition 20 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 116 +Title Plugin.3GP.3g2.mp4.68 - DeletePlaybackWindow 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.3GP.3g2.mp4.69 - DeletePlaybackWindow 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 116 +Title Plugin.3GP.3g2.mp4.70 - DeletePlaybackWindow 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +Delay 1000000 +[End_TestCase] + +//Get Formats. Required: id +// Optional: Title, InterfaceId +[TestCase] +id 101 +Title MMFTS.PLAY.1 - Get playback formats (KUidInterfaceMMFAudioPlayDevice) +InterfaceId 270497494 +[End_TestCase] + +//Get Formats. Required: id +// Optional: Title, InterfaceId +[TestCase] +id 101 +Title MMFTS.PLAY.1 - Get playback formats (KUidInterfaceMMFAudioPlayController) +InterfaceId 270497496 +[End_TestCase] + +//Play. Required: id (to specify the type of test case), SoundFile (the clip to be played) +// Optional: Title (to differentiate this case by name from other cases) +[TestCase] +id 102 +Title MMFTS.PLAY.2 - Play PCM_08_08_m.wav +SoundFile e:\sounds\PCM_08_08_m.wav +ErrorRange 0 800 000 +ExpectedDuration 2 000 000 +[End_TestCase] + +//Play. Required: id (to specify the type of test case), SoundFile (the clip to be played) +// Optional: Title (to differentiate this case by name from other cases) +[TestCase] +id 102 +Title MMFTS.PLAY.2 - Play PCM_08_08_m.wav (don't check duration) +SoundFile e:\sounds\PCM_08_08_m.wav +#ErrorRange 0 800 000 +#ExpectedDuration 2 000 000 +[End_TestCase] + +//Play. Stop and then open and play a second file. Required id, SoundFile (x2) +// Optional: Title, Delay (Microseconds) +[TestCase] +id 103 +Title MMFTS.PLAY.3 - PlayStop PCM_08_08_m / SOUND24 +SoundFile e:\sounds\secretag.wav +SoundFile e:\sounds\SOUND24.WAV +Delay 5000000 +[End_TestCase] + +//Play using descriptor based sound. Required: id, SoundDes +// Optional: Title +[TestCase] +id 104 +Title MMFTS.PLAY.4 - Descriptor SOUND24.WAV +SoundDes e:\sounds\SOUND24.WAV +ErrorRange 0 500 000 +ExpectedDuration 1 080 000 +[End_TestCase] + +//Play. Stop and then open and play a second descriptor. Required id, SoundDes (x2) +// Optional: Title, Delay (Microseconds) +[TestCase] +id 105 +Title MMFTS.PLAY.5 - PlayStopDes CLAP / SOUND24 +SoundDes e:\sounds\kissapp.wav +SoundDes e:\sounds\SOUND24.WAV +Delay 3000000 +[End_TestCase] + +//Play url. Required: id, SoundUrl +// Optional: Title, MimeType (default is KNullDesC8), IapId +#[TestCase] +#id 106 +#Title MMFTS.PLAY.6 - Url PCM_08_08_m.wav +#SoundUrl http://www.freewebs.com/tpcconline/wav/texasfight.wav +#MimeType audio/x-wav +#IapId -1 +#[End_TestCase] + +//Play url. Stop then open another url. Required: id, SoundUrl +// Optional: Title, MimeType (KNullDesC8), IapId, Delay, another set of SoundUrl, Mimetype, IapId +#[TestCase] +#id 107 +#Title MMFTS.PLAY.7 - Url Stop/Open PCM_08_08_m / CLAP.WAV +#SoundUrl http://www.freewebs.com/tpcconline/wav/texasfight.wav +#MimeType audio/x-wav +#IapId 12 +#Delay 1 500 0 +#SoundUrl http://www.freewebs.com/tpcconline/wav/texasfight.wav +#MimeType audio/wav +#IapId 11 +#[End_TestCase] + +//Play a file. Pause for a few seconds. Required id, SoundFile +// Optional: Title, PauseDelay (Microseconds), PlayDelay (Microseconds). +// Note, if the play delay is shorter than the pause delay they'll be swapped +// The PauseDelay and PlayDelay represent the amount of time that has passed since the +// clip began playing. So in this example the clip will be paused half a second after it started, +// and then continue playing 1.5 seconds later (this means 2 seconds after it started playing) +// +// Think about this timeline: +// |-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +// Start 0.5s 1 sec 1.5 sec 2 sec 2.5 sec +// Pause Resume Playback +[TestCase] +id 108 +Title MMFTS.PLAY.8 - PlayPause kissapp.wav +SoundFile e:\sounds\kissapp.wav +PauseDelay 3000000 +PlayDelay 5000000 +ErrorRange 2 000 000 +[End_TestCase] + +//Set Play Position. Required: id, SoundFile +// Optional: Title, Position (seconds miliseconds microseconds, added), ErrorRange (seconds miliseconds microseconds, added) +[TestCase] +id 109 +Title MMFTS.PLAY.9 - Position kissapp.wav +SoundFile e:\sounds\kissapp.wav +Position 2 000 000 +ErrorRange 3 000 000 +[End_TestCase] + +//Play and report position. Required: id, SoundFile +// Optional: Title, Delay +[TestCase] +id 110 +Title MMFTS.PLAY.10 - report position DRUMROLL.wav +SoundFile e:\sounds\DRUMROLL.wav +Delay 250000 +[End_TestCase] + +//Play and report duration. Required: id, SoundFile +// Optional: Title, Delay(Microseconds), Expected duration (seconds miliseconds microseconds) +[TestCase] +id 111 +Title MMFTS.PLAY.11 - Report duration SOUND24.WAV +SoundFile e:\sounds\SOUND24.WAV +Delay 1500 +ExpectedDuration 1 085 351 +[End_TestCase] + +//Play two files with different volumes. Required: id, SoundFile +// Optional: Title, SoundFile (second file to play) +[TestCase] +id 112 +Title MMFTS.PLAY.12 - Volumes SOUND24 / CLAP +SoundFile e:\sounds\SOUND24.WAV +SoundFile e:\sounds\CLAP.WAV +[End_TestCase] + +//Required: id, Title, SoundFile +// Optional: Ramp (seconds miliseconds microseconds, added), Delay (Microseconds) +[TestCase] +id 113 +Title MMFTS.PLAY.13 - Ramp SOUND24.WAV +SoundFile e:\sounds\SOUND24.WAV +RampDuration 0 750 +Delay 2500 +[End_TestCase] + +//Metainformation. Required: id, SoundFile +// Optional: Title +[TestCase] +id 114 +Title MMFTS.PLAY.14 - MetaInfo (Radioboy - Nike) +SoundFile e:\Sounds\Radioboy-Nike.mp3 +[End_TestCase] + +//Metainformation. Required: id, SoundFile +// Optional: Title +#[TestCase] +#id 114 +#itle MMFTS.PLAY.14 - MetaInfo (canyon.mid) +#SoundFile e:\Sounds\canyon.mid +#[End_TestCase] + +//Play with window. Required: id, SoundFile +// Optional: Title, StartPosition, EndPosition (seconds miliseconds microseconds, added), Delay (Microseconds) +[TestCase] +id 115 +Title MMFTS.PLAY.15 - Window +SoundFile e:\sounds\kissapp.wav +StartPosition 2 000 000 +EndPosition 4 000 000 +ErrorRange 3 000 000 +Delay 500000 +[End_TestCase] + +//Play with window. Required: id, SoundFile +// Optional: Title, StartPosition, EndPosition (seconds miliseconds microseconds, added), Delay (Microseconds) +[TestCase] +id 116 +Title MMFTS.PLAY.16 - Window Clear +SoundFile e:\sounds\kissapp.wav +StartPosition 2 000 000 +EndPosition 4 000 000 +ErrorRange 3 000 000 +Delay 100000 +[End_TestCase] + +//Required: id, SoundFile +// Optional: Title, RepeatTimes, SilenceDuration, ErrorRange (leave out so that expected duration is not checked) +[TestCase] +id 117 +Title MMFTS.PLAY.17 - Repeat PCM_08_08_m +SoundFile e:\sounds\PCM_08_08_m.wav +RepeatTimes 3 +SilenceDuration 3 000 000 +ErrorRange 2 0 0 +ExpectedDuration 2 000 000 +[End_TestCase] + +//Required: id, SoundFile +// Optional: Title, RepeatTimes, SilenceDuration, ErrorRange (leave out so that expected duration is not checked), ExpectedDuration (leave out to use GetDuration()) +[TestCase] +id 117 +Title MMFTS.PLAY.17 - Repeat PCM_08_08_m (don't check duration) +SoundFile e:\sounds\PCM_08_08_m.wav +RepeatTimes 3 +SilenceDuration 3 000 000 +#ErrorRange 0 500 0 +#ExpectedDuration 2 000 000 +[End_TestCase] + +//Balance. Required: id, SoundFile +// Optional: Title, Balance +[TestCase] +id 118 +Title MMFTS.PLAY.18 - balance ULAW_08_08_s.wav +SoundFile e:\sounds\ULAW_08_08_s.wav +Balance 90 +[End_TestCase] + +//Play two files with different priorities. Required: id, SoundFile +// Optional: Title, SoundFile (second file), Priority (either specify two values or none. If only one is specified then the behavior is undefined) +[TestCase] +id 119 +Title MMFTS.PLAY.19 - SOUND24.WAV +SoundFile e:\sounds\SOUND24.WAV +SoundFile e:\sounds\CLAP.WAV +Priority 3 +Priority 23 + +PriorityPreference 2 +PriorityPreference 1 +[End_TestCase] + + +//******************NEGATIVE TEST CASE******************// + +[TestCase] +id 115 +Title Plugin.AMR.01 - SetPlaybackWindow 10s_AMR_NB_mode7.amr +SoundFile e:\sounds\amr\10s_AMR_NB_mode7.amr +NegativeValue 1 +StartPosition 15 000 000 +EndPosition 35 000 000 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AMR.02 - SetPlaybackWindow AMR without ext +SoundFile e:\sounds\amr\10s_AMR_NB_mode7_no_ext +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 115 +Title Plugin.AMR.03 - SetPlaybackWindow AMR with other ext +SoundFile e:\sounds\amr\10s_3GP_AMR_NB_12.2kbps.3gp +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AWB.04 - SetPlaybackWindow 10s_AMR_WB_23.05kbps.amr +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps.amr +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AWB.05 - SetPlaybackWindow AWB without ext +SoundFile e:\sounds\awb\10s_AMR_WB_23.05kbps_no_ext +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.AWB.06 - SetPlaybackWindow AWB with other ext +SoundFile e:\sounds\awb\10s_3GP_AMR_WB_23.05kbps.3gp +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.07 - SetPlaybackWindow sp-midi 10s_SP_MID_Generic.mid +SoundFile e:\sounds\mid\10s_SP_MID_Generic.mid +StartPosition 10 000 000 +EndPosition 25 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + + +[TestCase] +id 115 +Title Plugin.MIDI.08 - SetPlaybackWindow sp-midi without ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_no_ext +StartPosition 10 000 000 +EndPosition 25 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MIDI.09 - SetPlaybackWindow sp-midi with other ext +SoundFile e:\sounds\mid\10s_SP_MID_Generic_other_ext.awb +StartPosition 10 000 000 +EndPosition 25 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.10 - SetPlaybackWindow mp4 audio +SoundFile e:\sounds\3gpp\10s_MP4_16kbps_22.05khz_mono.mp4 +StartPosition 10 000 000 +EndPosition 25 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.11 - SetPlaybackWindow 3gpp-aac audio +SoundFile e:\sounds\3gpp\10s_3GP_AAC+_24kbps_16khz_mono.3gp +StartPosition 10 000 000 +EndPosition 25 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.12 - SetPlaybackWindow 3gpp-amr audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_NB_mode3.3gp +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.13 - SetPlaybackWindow 3gpp-awb audio +SoundFile e:\sounds\3gpp\10s_3GP_AMR_WB_mode0.3gp +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.14 - SetPlaybackWindow 3gpp2-aac audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AAC_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.15 - SetPlaybackWindow 3gpp2-amr audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AMR_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.3GP.3g2.mp4.16 - SetPlaybackWindow 3gpp2-awb audio +SoundFile e:\sounds\3gpp2\10s_3GPP2_AWB_Generic.3g2 +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + +[TestCase] +id 115 +Title Plugin.MP3.17 - SetPlaybackWindow MP3 MPEG1 48KHz 96Kbps +SoundFile e:\sounds\mp3\SampleRate\10s_MP3_96kbps_48khz_stereo.mp3 +StartPosition 15 000 000 +EndPosition 35 000 000 +NegativeValue 1 +ErrorRange 3 000 000 +Delay 1000000 +[End_TestCase] + diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/data/mmc/metadata/DRM_NRTmeta.dcf diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/MmfTsPlay.h --- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/MmfTsPlay.h Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/MmfTsPlay.h Fri May 28 19:26:28 2010 -0500 @@ -80,7 +80,10 @@ _LIT(KTagExpectedDuration, "ExpectedDuration"); _LIT(KTagWindowStart, "StartPosition"); _LIT(KTagWindowEnd, "EndPosition"); + + _LIT(KNegativeTag, "NegativeValue"); + _LIT(KTagMime, "MimeType"); _LIT(KTagIapId, "IapId"); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/SimpleSoundPlayer.h --- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/SimpleSoundPlayer.h Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/SimpleSoundPlayer.h Fri May 28 19:26:28 2010 -0500 @@ -204,6 +204,8 @@ TBool playVolume; TBool metaInfo; TBool playWindow; + + TBool iNegativePlayBackWindow; TBool clearWindow; TBool setBalance; TBool iDontPlayAudioClip; // Binh diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/src/MmfTsPlay_core.cpp --- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/src/MmfTsPlay_core.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/src/MmfTsPlay_core.cpp Fri May 28 19:26:28 2010 -0500 @@ -1934,7 +1934,7 @@ if ( !section->GetLine(KTagSoundFile, FileNamePtr, ENoTag) ) { - TBool UsingStartDefault, UsingEndDefault, UsingDefaultReportDelay; + TBool UsingStartDefault, UsingEndDefault, UsingDefaultReportDelay ,UsingNegativeTestCaseDefault; TFileName FileName = FileNamePtr; // TInt WindowError; @@ -1956,6 +1956,14 @@ ReportDelay = GetTimeIntervalL(section, KTagDelay, UsingDefaultReportDelay, (TTimeIntervalMicroSeconds32)KDefaultReportDelay); iLogger->Log(_L("Setting delays to report position to [%d]"), ReportDelay.Int()); + + + TInt NegativeTestCaseValue = GetIntL(section, KNegativeTag, UsingNegativeTestCaseDefault,0); + + if (NegativeTestCaseValue == 1) + { + sndPlayer->iNegativePlayBackWindow = true; + } CParameters *reportParams = new(ELeave)CParameters(CSimpleSoundPlayer::KPlayerActionReportPosition); CleanupStack::PushL(reportParams); @@ -1975,8 +1983,14 @@ TTimeIntervalMicroSeconds ExpectedDuration = TTimeIntervalMicroSeconds(I64INT(EndPosition.Int64()) - I64INT(StartPosition.Int64())); iLogger->Log(_L("ExpectedDuration: %d") ,ExpectedDuration.Int64() ); - - if ( Abs(ExpectedDuration.Int64() - PerceivedDuration.Int64()) > ErrorRange.Int64() ) + + if((ExpectedDuration > (sndPlayer->GetDuration())) && (sndPlayer->iNegativePlayBackWindow)) + { + iLogger->Log(_L("ExpectedDuration is greater than the actual duration of the file")); + iLogger->Log(_L("Negative Test was successful")); + aResult.iResultDes.Copy(KTestCaseResultSuccess()); + } + else if ( Abs(ExpectedDuration.Int64() - PerceivedDuration.Int64()) > ErrorRange.Int64() ) { //Durations too different iLogger->Log(_L("The clips duration is too different from the actual duration + position") ); aResult.iResult = KErrExpectedValueDifferent; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/src/SimpleSoundPlayer.cpp --- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/src/SimpleSoundPlayer.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/src/SimpleSoundPlayer.cpp Fri May 28 19:26:28 2010 -0500 @@ -448,12 +448,14 @@ } - + + TInt pwErr =0; + if (playWindow) { iLogger.Log(_L("SetPlayWindow, start=[%d]"),startPosition.Int64()); iLogger.Log(_L("SetPlayWindow, end=[%d]"), endPosition.Int64() ); - TInt pwErr = iMdaPlayer->SetPlayWindow(startPosition, endPosition); + pwErr = iMdaPlayer->SetPlayWindow(startPosition, endPosition); iLogger.Log(_L("SetPlayWindow err=[%d]"), pwErr); if (clearWindow) { @@ -462,7 +464,11 @@ } } - + if (iNegativePlayBackWindow && pwErr ) + { + iLogger.Log(_L("SetPlayWindow Expected Err for negative test case")); + CActiveScheduler::Stop(); + } if (setBalance) { SetBalance(aBalance); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/data/mmc/metadata/DRM_NRTmeta.dcf diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/data/mmc/metadata/DRM_NRTmeta.dcf diff -r b67dd1fc57c5 -r 2ed61feeead6 mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioToneTestModule/data/mmc/metadata/DRM_NRTmeta.dcf diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmmw_plat/openmax_al_api/tsrc/group/bld.inf Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,24 @@ +/* +* 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: +* +*/ + +PRJ_PLATFORMS +DEFAULT + +PRJ_TESTMMPFILES +#include "../openmaxaltestmodule/group/bld.inf" + +// End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_common.cfg --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_common.cfg Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_common.cfg Fri May 28 19:26:28 2010 -0500 @@ -52,6 +52,7 @@ MO_ENGINE 1 MO_PLAYER 4 MO_RECORDER 5 +MO_RADIO 6 6 XA_BOOLEAN_FALSE 0 XA_BOOLEAN_TRUE 1 @@ -107,6 +108,7 @@ XA_PLAYSTATE_STOPPED 1 XA_PLAYSTATE_PAUSED 2 XA_PLAYSTATE_PLAYING 3 +XA_IODEVICE_RADIO 5 WinPtX 0 WinPtY 300 diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_mp_streaming.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_mp_streaming.cfg Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,148 @@ +// +// 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: +// +// + +[Test] +title 22.1 PlayItf RTSP +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_SetDataLocator 1 rtsp:\/\/10.48.2.51/Copyright_Free_Test_Content/Clips/Video/3GP/176x144/h263/h263_176x144_15fps_384kbps_AAC-LC_128kbps_mono_44.1kHz.3gp +ALImpl al_SetDataFormat 1 video/3gp 17 +ALImpl al_SetDataSource 1 1 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_CreateWindow WinPtX WinPtY WinTopLeft WinTopRight WinBotLeft WinBotRight +ALImpl al_SetDataSink 5 3 2 +ALImpl al_engitf_CreateMediaPlayer 0 +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_PLAY +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_PLAYING +pause 20000 +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +ALImpl al_DeleteWindow +delete ALImpl +[Endtest] + +[Test] +title 22.2 PlayItf RTSPU +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_SetDataLocator 1 rtsp:\/\/10.48.2.56/WMTest/192k_WMV9_VBR_CIF_WMA9_60fps.wmv +ALImpl al_SetDataFormat 1 audio/3gp 17 +ALImpl al_SetDataSource 1 1 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_CreateWindow WinPtX WinPtY WinTopLeft WinTopRight WinBotLeft WinBotRight +ALImpl al_SetDataSink 5 3 2 +ALImpl al_engitf_CreateMediaPlayer 0 +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_PLAY +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_PLAYING +pause 40000 +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +ALImpl al_DeleteWindow +delete ALImpl +[Endtest] + +[Test] +title 22.3 PlayItf RTSPT +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_SetDataLocator 1 rtspt:\/\/10.48.2.56/WMTest/128k_WMV9_VBR_QCIF_WMA9_30fps.wmv +ALImpl al_SetDataFormat 1 audio/3gp 17 +ALImpl al_SetDataSource 1 1 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_CreateWindow WinPtX WinPtY WinTopLeft WinTopRight WinBotLeft WinBotRight +ALImpl al_SetDataSink 5 3 2 +ALImpl al_engitf_CreateMediaPlayer 0 +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_PLAY +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_PLAYING +pause 20000 +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +ALImpl al_DeleteWindow +delete ALImpl +[Endtest] + +[Test] +title 22.4 PlayItf MMS +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_SetDataLocator 1 mms:\/\/10.48.2.56/WMTest/128k_WMV9_VBR_QCIF_WMA9_30fps.wmv +ALImpl al_SetDataFormat 1 audio/3gp 17 +ALImpl al_SetDataSource 1 1 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_CreateWindow WinPtX WinPtY WinTopLeft WinTopRight WinBotLeft WinBotRight +ALImpl al_SetDataSink 5 3 2 +ALImpl al_engitf_CreateMediaPlayer 0 +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_PLAY +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_PLAYING +pause 20000 +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +ALImpl al_DeleteWindow +delete ALImpl +[Endtest] + + +[Test] +title 22.5 PlayItf HTTP +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_SetDataLocator 1 http:\/\/10.48.2.51/Copyright_Free_Test_Content/Clips/Video/3GP/176x144/mpeg4/mpeg4_176x144_15fps_384kbps_AAC-LC_128kbps_mono_44.1kHz.3gp +ALImpl al_SetDataFormat 1 audio/3gp 17 +ALImpl al_SetDataSource 1 1 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_CreateWindow WinPtX WinPtY WinTopLeft WinTopRight WinBotLeft WinBotRight +ALImpl al_SetDataSink 5 3 2 +ALImpl al_engitf_CreateMediaPlayer 0 +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_PLAY +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_PLAYING +pause 20000 +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_playitf_GetPlayState XA_PLAYSTATE_STOPPED +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +ALImpl al_DeleteWindow +delete ALImpl +[Endtest] + diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_radioitf.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_radioitf.cfg Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,729 @@ +[Test] +title 21.1 RadioItf Start Radio +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_PLAYEVENT_HEADMOVING +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +wait Event_XA_PLAYEVENT_HEADMOVING +release Event_XA_PLAYEVENT_HEADMOVING + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.2 RadioItf Set Freq 106.0 MHz +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 106000000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.3 RadioItf Get Freq +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 106000000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +ALImpl al_radioitf_GetFrequency 106000000 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.4 RadioItf Set Freq Range +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED +ALImpl al_radioitf_SetFreqRange 1 // EFmRangeJapan +wait Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED + + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.5 RadioItf Get Freq Range +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED +ALImpl al_radioitf_SetFreqRange 1 // EFmRangeJapan +wait Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED + +ALImpl al_radioitf_GetFreqRange 1 // EFmRangeJapan + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.6 RadioItf Get FR Properties +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED +ALImpl al_radioitf_SetFreqRange 0 // EFmRangeEuroAmerica +wait Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED + +ALImpl al_radioitf_GetFreqRangeProperties 0 87500000 108000000 20 // range expected: min freq, max freq, freq interval + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.7 RadioItf Is Freq Range Supported +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +ALImpl al_radioitf_IsFreqRangeSupported 1 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.8 RadioItf Set Squelch +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +allownextresult XA_RESULT_FEATURE_UNSUPPORTED +ALImpl al_radioitf_SetSquelch 1 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.9 RadioItf Get Squelch +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +allownextresult XA_RESULT_FEATURE_UNSUPPORTED +ALImpl al_radioitf_GetSquelch 1 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.10 RadioItfSetStereoModeMONO +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_PLAYEVENT_HEADMOVING +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +wait Event_XA_PLAYEVENT_HEADMOVING +release Event_XA_PLAYEVENT_HEADMOVING + +ALImpl al_radioitf_SetStereoMode 0 +ALImpl al_radioitf_GetStereoMode 0 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.11 RadioItf SetStereoModeSTEREO +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_PLAYEVENT_HEADMOVING +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +wait Event_XA_PLAYEVENT_HEADMOVING +release Event_XA_PLAYEVENT_HEADMOVING + +ALImpl al_radioitf_SetStereoMode 1 +ALImpl al_radioitf_GetStereoMode 1 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.12 RadioItf SetStereoModeAUTO +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_PLAYEVENT_HEADMOVING +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +wait Event_XA_PLAYEVENT_HEADMOVING +release Event_XA_PLAYEVENT_HEADMOVING + +ALImpl al_radioitf_SetStereoMode 2 +ALImpl al_radioitf_GetStereoMode 2 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] +[Test] +title 21.13 RadioItf Get Signal Strength +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_PLAYEVENT_HEADMOVING +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +wait Event_XA_PLAYEVENT_HEADMOVING +release Event_XA_PLAYEVENT_HEADMOVING + +ALImpl al_radioitf_GetSignalStrength + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.14 RadioItf Seek +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 103700000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 106000000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 090900000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 096100000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +request Event_XA_RADIO_EVENT_SEEK_COMPLETED +ALImpl al_radioitf_Seek 1 +wait Event_XA_RADIO_EVENT_SEEK_COMPLETED +release Event_XA_RADIO_EVENT_SEEK_COMPLETED + + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.15 RadioItf Stop Seeking +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 103700000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 106000000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 090900000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +ALImpl al_radioitf_SetFrequency 096100000 +wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED +release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED + +ALImpl al_radioitf_Seek 1 +ALImpl al_radioitf_StopSeeking + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.16 RadioItf Cancel Set Freq +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 + +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +ALImpl al_radioitf_CancelSetFrequency + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.17 RadioItf Set Volume +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_engitf_CreateMediaPlayer 2 XA_IID_NOKIALINEARVOLUME XA_IID_NOKIAVOLUMEEXT + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIAVOLUMEEXT +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIALINEARVOLUME +ALImpl al_nokiavolumeextitf_RegisterVolumeCallback +ALImpl al_nokialinearvolumeitf_RegisterVolumeCallback + +ALImpl al_nokialinearvolumeitf_SetGetVolumeLevel 20 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.18 RadioItf Get Step Count +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_engitf_CreateMediaPlayer 2 XA_IID_NOKIALINEARVOLUME XA_IID_NOKIAVOLUMEEXT + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIAVOLUMEEXT +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIALINEARVOLUME +ALImpl al_nokiavolumeextitf_RegisterVolumeCallback +ALImpl al_nokialinearvolumeitf_RegisterVolumeCallback + +ALImpl al_nokialinearvolumeitf_GetStepCount + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.19 RadioItf SetMute On +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_engitf_CreateMediaPlayer 2 XA_IID_NOKIALINEARVOLUME XA_IID_NOKIAVOLUMEEXT + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIAVOLUMEEXT +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIALINEARVOLUME +ALImpl al_nokiavolumeextitf_RegisterVolumeCallback +ALImpl al_nokialinearvolumeitf_RegisterVolumeCallback + +ALImpl al_nokiavolumeextitf_SetMute 1 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.20 RadioItf SetMute Off +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_engitf_CreateMediaPlayer 2 XA_IID_NOKIALINEARVOLUME XA_IID_NOKIAVOLUMEEXT + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIAVOLUMEEXT +ALImpl al_objitf_GetInterface MO_PLAYER XA_IID_NOKIALINEARVOLUME +ALImpl al_nokiavolumeextitf_RegisterVolumeCallback +ALImpl al_nokialinearvolumeitf_RegisterVolumeCallback + +ALImpl al_nokiavolumeextitf_SetMute 0 + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] + +[Test] +title 21.21 RadioItf Stop Radio +create openmaxaltestmodule ALImpl +ALImpl al_createEngine 1 1 0 0 +ALImpl al_objitf_Realize MO_ENGINE XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_ENGINE XA_IID_ENGINE +ALImpl al_engitf_CreateRadioDevice 0 +ALImpl al_objitf_Realize MO_RADIO XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface MO_RADIO XA_IID_RADIO +ALImpl al_radioitf_RegisterRadioCallback + +ALImpl al_SetDataLocator 3 5 0 1 +ALImpl al_SetDataSource 3 0 1 +ALImpl al_SetDataSink 3 6 1 +ALImpl al_engitf_CreateMediaPlayer 0 + +ALImpl al_objitf_Realize MO_PLAYER XA_BOOLEAN_FALSE +ALImpl al_objitf_GetInterface 4 XA_IID_PLAY +ALImpl al_playitf_RegisterCallback + +request Event_XA_PLAYEVENT_HEADMOVING +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_PLAYING +wait Event_XA_PLAYEVENT_HEADMOVING +release Event_XA_PLAYEVENT_HEADMOVING + +request Event_XA_PLAYEVENT_HEADSTALLED +ALImpl al_playitf_SetPlayState XA_PLAYSTATE_STOPPED +wait Event_XA_PLAYEVENT_HEADSTALLED +release Event_XA_PLAYEVENT_HEADSTALLED + +ALImpl al_objitf_Destroy MO_RADIO +ALImpl al_objitf_Destroy MO_PLAYER +ALImpl al_objitf_Destroy MO_ENGINE +delete ALImpl +[Endtest] \ No newline at end of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/bld.inf --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/bld.inf Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/bld.inf Fri May 28 19:26:28 2010 -0500 @@ -43,6 +43,7 @@ ../conf/openmaxaltestmodule_mp_preemption.cfg /epoc32/winscw/c/testframework/openmaxaltestmodule_mp_preemption.cfg ../conf/openmaxaltestmodule_mo_mdextractionitf.cfg /epoc32/winscw/c/testframework/openmaxaltestmodule_mo_mdextractionitf.cfg ../conf/openmaxaltestmodule_mp_mdextractionitf.cfg /epoc32/winscw/c/testframework/openmaxaltestmodule_mp_mdextractionitf.cfg +../conf/openmaxaltestmodule_radioitf.cfg /epoc32/winscw/c/testframework/openmaxaltestmodule_radioitf.cfg ../data/c/omxaltestdata/test.wav /epoc32/winscw/c/testing/data/omxaltestdata/test.wav ../data/c/omxaltestdata/test.mp3 /epoc32/winscw/c/testing/data/omxaltestdata/test.mp3 ../data/c/omxaltestdata/test.3gp /epoc32/winscw/c/testing/data/omxaltestdata/test.3gp diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/openmaxaltestmodule.mmp --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/openmaxaltestmodule.mmp Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/openmaxaltestmodule.mmp Fri May 28 19:26:28 2010 -0500 @@ -79,6 +79,9 @@ SOURCEPATH ../src/metadata SOURCE openmaxalmetadataextractionitftests.cpp +SOURCEPATH ../src/radio +SOURCE openmaxalradioitftests.cpp + LIBRARY euser.lib LIBRARY libglib.lib LIBRARY stiftestinterface.lib diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/openmaxaltestmodule.pkg --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/openmaxaltestmodule.pkg Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/openmaxaltestmodule.pkg Fri May 28 19:26:28 2010 -0500 @@ -65,12 +65,14 @@ "..\conf\openmaxaltestmodule_mp_objectitf.cfg" - "!:\testframework\openmaxaltestmodule_mp_objectitf.cfg" "..\conf\openmaxaltestmodule_mp_playitf.cfg" - "!:\testframework\openmaxaltestmodule_mp_playitf.cfg" "..\conf\openmaxaltestmodule_mp_seekitf.cfg" - "!:\testframework\openmaxaltestmodule_mp_seekitf.cfg" -"..\conf\openmaxaltestmodule_common_dynsrcitf.cfg" - "!:\testframework\openmaxaltestmodule_common_dynsrcitf.cfg" +"..\conf\openmaxaltestmodule_common_dynsrcitf.cfg" - "!:\testframework\openmaxaltestmodule_common_dynsrcitf.cfg" "..\conf\openmaxaltestmodule_mp_strminfoitf.cfg" - "!:\testframework\openmaxaltestmodule_mp_strminfoitf.cfg" "..\conf\openmaxaltestmodule_mp_preemption.cfg" - "!:\testframework\openmaxaltestmodule_mp_preemption.cfg" "..\conf\openmaxaltestmodule_mo_mdextractionitf.cfg" - "!:\testframework\openmaxaltestmodule_mo_mdextractionitf.cfg" "..\conf\openmaxaltestmodule_mp_mdextractionitf.cfg" - "!:\testframework\openmaxaltestmodule_mp_mdextractionitf.cfg" "..\conf\openmaxaltestmodule_mp_variousformats.cfg" - "!:\testframework\openmaxaltestmodule_mp_variousformats.cfg" +"..\conf\openmaxaltestmodule_radioitf.cfg" - "!:\testframework\openmaxaltestmodule_radioitf.cfg" +"..\conf\openmaxaltestmodule_mp_streaming.cfg" - "!:\testframework\openmaxaltestmodule_mp_streaming.cfg" ;data files "..\data\c\omxaltestdata\test.wav" - "!:\testing\data\omxaltestdata\test.wav" "..\data\c\omxaltestdata\test.mp3" - "!:\testing\data\omxaltestdata\test.mp3" diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/inc/openmaxaltestmodule.h --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/inc/openmaxaltestmodule.h Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/inc/openmaxaltestmodule.h Fri May 28 19:26:28 2010 -0500 @@ -98,6 +98,7 @@ virtual ~COpenMAXALTestModule(); virtual void HandlePlayItfCallback( XAPlayItf caller, XAuint32 event ); + virtual void HandleRadioItfCallback(XARadioItf caller, XAuint32 event ); virtual void HandleObjectCallback(XAObjectItf caller,XAuint32 event, XAresult result,XAuint32 param, void * pInterface); @@ -354,6 +355,21 @@ virtual TInt al_dynsrcitf_SetSource( CStifItemParser& aItem ); + virtual TInt al_radioitf_SetFreqRange(CStifItemParser& aItem ); + virtual TInt al_radioitf_GetFreqRange(CStifItemParser& aItem ); + virtual TInt al_radioitf_IsFreqRangeSupported(CStifItemParser& aItem ); + virtual TInt al_radioitf_GetFreqRangeProperties(CStifItemParser& aItem ); + virtual TInt al_radioitf_SetFrequency(CStifItemParser& aItem ); + virtual TInt al_radioitf_CancelSetFrequency(CStifItemParser& aItem ); + virtual TInt al_radioitf_GetFrequency(CStifItemParser& aItem ); + virtual TInt al_radioitf_SetSquelch(CStifItemParser& aItem ); + virtual TInt al_radioitf_GetSquelch(CStifItemParser& aItem ); + virtual TInt al_radioitf_SetStereoMode(CStifItemParser& aItem ); + virtual TInt al_radioitf_GetStereoMode(CStifItemParser& aItem ); + virtual TInt al_radioitf_GetSignalStrength(CStifItemParser& aItem ); + virtual TInt al_radioitf_Seek(CStifItemParser& aItem ); + virtual TInt al_radioitf_StopSeeking(CStifItemParser& aItem ); + virtual TInt al_radioitf_RegisterRadioCallback(CStifItemParser& aItem ); virtual TInt al_strminfoitf_QueryMediaContainerInformation( CStifItemParser& aItem ); virtual TInt al_strminfoitf_QueryStreamType( CStifItemParser& aItem ); virtual TInt al_strminfoitf_QueryStreamInformation( CStifItemParser& aItem ); @@ -387,6 +403,7 @@ virtual TInt al_nokialinearvolumeitf_SetVolumeLevel( CStifItemParser& aItem ); virtual TInt al_nokialinearvolumeitf_GetVolumeLevel( CStifItemParser& aItem ); + virtual TInt al_nokialinearvolumeitf_SetGetVolumeLevel( CStifItemParser& aItem ); virtual TInt al_nokialinearvolumeitf_GetStepCount( CStifItemParser& aItem ); virtual TInt al_nokialinearvolumeitf_RegisterVolumeCallback( CStifItemParser& aItem ); virtual TInt al_nokialinearvolumeitf_SetCallbackEventsMask( CStifItemParser& aItem ); @@ -467,6 +484,7 @@ XAPlayItf m_PlayItf; XASeekItf m_SeekItf; + XARadioItf m_RadioItf; XADynamicSourceItf m_DynSrcItf; XAVolumeItf m_VolumeItf; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/init/testframework.ini --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/init/testframework.ini Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/init/testframework.ini Fri May 28 19:26:28 2010 -0500 @@ -131,6 +131,8 @@ TestCaseFile= c:\testframework\openmaxaltestmodule_mp_mdextractionitf.cfg TestCaseFile= c:\testframework\openmaxaltestmodule_mo.cfg #TestCaseFile= c:\testframework\openmaxaltestmodule_mp_variousformats.cfg +TestCaseFile= c:\testframework\openmaxaltestmodule_radioitf.cfg +TestCaseFile= c:\testframework\openmaxaltestmodule_mp_streaming.cfg [End_Module] diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/common/openmaxalnokialinearvolumeitftests.cpp --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/common/openmaxalnokialinearvolumeitftests.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/common/openmaxalnokialinearvolumeitftests.cpp Fri May 28 19:26:28 2010 -0500 @@ -98,6 +98,40 @@ return status; } +TInt COpenMAXALTestModule::al_nokialinearvolumeitf_SetGetVolumeLevel( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TInt volume(0); + XAuint32 alvol; + XAuint32 getVol(0); + status = aItem.GetNextInt(volume); + RET_ERR_IF_ERR(status); + XAuint32 expectedVol = volume; + + if(m_NokiaLinearVolumeItf) + { + alvol = volume; + status = (*m_NokiaLinearVolumeItf)->SetVolumeLevel(m_NokiaLinearVolumeItf, &alvol); + if (status != KErrNone) + { + return status; + } + status = (*m_NokiaLinearVolumeItf)->GetVolumeLevel(m_NokiaLinearVolumeItf, &getVol); + if (status != KErrNone) + { + return status; + } + if (getVol != expectedVol) + status = KErrCompletion; + } + else + { + return KErrNotFound; + } + + return status; + } + TInt COpenMAXALTestModule::al_nokialinearvolumeitf_GetVolumeLevel( CStifItemParser& /*aItem*/ ) { TInt status(KErrNone); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/common/openmaxaltestmoduleblocks.cpp --- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/common/openmaxaltestmoduleblocks.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/common/openmaxaltestmoduleblocks.cpp Fri May 28 19:26:28 2010 -0500 @@ -245,6 +245,23 @@ ENTRY( "al_dynsrcitf_SetSource", COpenMAXALTestModule::al_dynsrcitf_SetSource ), /*DynamicSourceItf ends*/ + /*RadioItf begins*/ + ENTRY( "al_radioitf_SetFreqRange", COpenMAXALTestModule::al_radioitf_SetFreqRange ), + ENTRY( "al_radioitf_GetFreqRange", COpenMAXALTestModule::al_radioitf_GetFreqRange ), + ENTRY( "al_radioitf_IsFreqRangeSupported", COpenMAXALTestModule::al_radioitf_IsFreqRangeSupported ), + ENTRY( "al_radioitf_GetFreqRangeProperties", COpenMAXALTestModule::al_radioitf_GetFreqRangeProperties ), + ENTRY( "al_radioitf_SetFrequency", COpenMAXALTestModule::al_radioitf_SetFrequency ), + ENTRY( "al_radioitf_CancelSetFrequency", COpenMAXALTestModule::al_radioitf_CancelSetFrequency ), + ENTRY( "al_radioitf_GetFrequency", COpenMAXALTestModule::al_radioitf_GetFrequency ), + ENTRY( "al_radioitf_SetSquelch", COpenMAXALTestModule::al_radioitf_SetSquelch ), + ENTRY( "al_radioitf_GetSquelch", COpenMAXALTestModule::al_radioitf_GetSquelch ), + ENTRY( "al_radioitf_SetStereoMode", COpenMAXALTestModule::al_radioitf_SetStereoMode ), + ENTRY( "al_radioitf_GetStereoMode", COpenMAXALTestModule::al_radioitf_GetStereoMode ), + ENTRY( "al_radioitf_GetSignalStrength", COpenMAXALTestModule::al_radioitf_GetSignalStrength ), + ENTRY( "al_radioitf_Seek", COpenMAXALTestModule::al_radioitf_Seek ), + ENTRY( "al_radioitf_StopSeeking", COpenMAXALTestModule::al_radioitf_StopSeeking ), + ENTRY( "al_radioitf_RegisterRadioCallback", COpenMAXALTestModule::al_radioitf_RegisterRadioCallback ), + /*RadioItf ends*/ /*StreamInformationItf begins*/ ENTRY( "al_strminfoitf_QueryMediaContainerInformation", COpenMAXALTestModule::al_strminfoitf_QueryMediaContainerInformation ), ENTRY( "al_strminfoitf_QueryStreamType", COpenMAXALTestModule::al_strminfoitf_QueryStreamType ), @@ -285,6 +302,7 @@ /*NokiaLinearVolumeItf begins*/ ENTRY( "al_nokialinearvolumeitf_SetVolumeLevel", COpenMAXALTestModule::al_nokialinearvolumeitf_SetVolumeLevel ), ENTRY( "al_nokialinearvolumeitf_GetVolumeLevel", COpenMAXALTestModule::al_nokialinearvolumeitf_GetVolumeLevel ), + ENTRY( "al_nokialinearvolumeitf_SetGetVolumeLevel", COpenMAXALTestModule::al_nokialinearvolumeitf_SetGetVolumeLevel ), ENTRY( "al_nokialinearvolumeitf_GetStepCount", COpenMAXALTestModule::al_nokialinearvolumeitf_GetStepCount ), ENTRY( "al_nokialinearvolumeitf_RegisterVolumeCallback", COpenMAXALTestModule::al_nokialinearvolumeitf_RegisterVolumeCallback ), ENTRY( "al_nokialinearvolumeitf_SetCallbackEventsMask", COpenMAXALTestModule::al_nokialinearvolumeitf_SetCallbackEventsMask ), diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/radio/openmaxalradioitftests.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/radio/openmaxalradioitftests.cpp Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,462 @@ +/* +* 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: This file contains testclass implementation. +* +*/ + +// [INCLUDE FILES] - do not remove +#include +#include +#include +#include +#include "openmaxaltestmodule.h" + +// EXTERNAL DATA STRUCTURES +//extern ?external_data; + +// EXTERNAL FUNCTION PROTOTYPES +//extern ?external_function( ?arg_type,?arg_type ); + +// CONSTANTS +//const ?type ?constant_var = ?constant; + +// MACROS +//#define ?macro ?macro_def + +// LOCAL CONSTANTS AND MACROS +//const ?type ?constant_var = ?constant; +//#define ?macro_name ?macro_def + +// MODULE DATA STRUCTURES +//enum ?declaration +//typedef ?declaration + +// LOCAL FUNCTION PROTOTYPES +//?type ?function_name( ?arg_type, ?arg_type ); + +// FORWARD DECLARATIONS +//class ?FORWARD_CLASSNAME; +void RadioItfCallback(XARadioItf caller, +void* pContext, +XAuint32 event, +XAuint32 eventIntData, +XAboolean eventBooleanData); + +// ============================= LOCAL FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// ?function_name ?description. +// ?description +// Returns: ?value_1: ?description +// ?value_n: ?description_line1 +// ?description_line2 +// ----------------------------------------------------------------------------- +// +/* +?type ?function_name( + ?arg_type arg, // ?description + ?arg_type arg) // ?description + { + + ?code // ?comment + + // ?comment + ?code + } +*/ + +TInt COpenMAXALTestModule::al_radioitf_SetFreqRange( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TInt freqRange(0); + status = aItem.GetNextInt(freqRange); + RET_ERR_IF_ERR(status); + + if(m_RadioItf) + { + status = (*m_RadioItf)->SetFreqRange( + m_RadioItf, freqRange); + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_GetFreqRange( CStifItemParser& aItem ) + { + TInt status(KErrNone); + XAuint8 freqRange; + TInt expectedRange; + status = aItem.GetNextInt(expectedRange); + RET_ERR_IF_ERR(status); + + if (m_RadioItf) + { + status = (*m_RadioItf)->GetFreqRange( + m_RadioItf, &freqRange); + if (!status) + { + if (freqRange != (TInt)expectedRange) + { + status = KErrCompletion; + } + } + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_IsFreqRangeSupported( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TInt freqRange; + XAboolean isSupported; + status = aItem.GetNextInt(freqRange); + if (m_RadioItf) + { + status = (*m_RadioItf)->IsFreqRangeSupported( + m_RadioItf, (XAuint8)freqRange, &isSupported); + if (!isSupported) + status = KErrCompletion; + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_GetFreqRangeProperties( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TInt range; + status = aItem.GetNextInt(range); + RET_ERR_IF_ERR(status); + TInt expectedMinFreq; + status = aItem.GetNextInt(expectedMinFreq); + RET_ERR_IF_ERR(status); + TInt expectedMaxFreq; + status = aItem.GetNextInt(expectedMaxFreq); + RET_ERR_IF_ERR(status); + TInt expectedFreqInterval; + status = aItem.GetNextInt(expectedFreqInterval); + RET_ERR_IF_ERR(status); + XAuint32 minFreq; + XAuint32 maxFreq; + XAuint32 freqInterval; + + if (m_RadioItf) + { + status = (*m_RadioItf)->GetFreqRangeProperties( + m_RadioItf, range, &minFreq, &maxFreq, &freqInterval); + if (!status) + { + /* If duration does not fall between the range we expected fail the case */ + if ( ( minFreq != (XAuint32)expectedMinFreq) || (maxFreq != (XAuint32)expectedMaxFreq) || (freqInterval != (XAuint32)expectedFreqInterval) ) + { + status = KErrCompletion; + } + } + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_SetFrequency( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TInt freq; + status = aItem.GetNextInt(freq); + RET_ERR_IF_ERR(status); + if (m_RadioItf) + { + status = (*m_RadioItf)->SetFrequency( + m_RadioItf, freq); + if (status != KErrNone) + status = KErrCompletion; + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_GetFrequency( CStifItemParser& aItem) + { + TInt status(KErrNone); + TInt expectedFreq; + status = aItem.GetNextInt(expectedFreq); + RET_ERR_IF_ERR(status); + XAuint32 freq; + + if (m_RadioItf) + { + status = (*m_RadioItf)->GetFrequency( + m_RadioItf, &freq); + if (!status) + { + if ( freq != expectedFreq ) + { + status = KErrCompletion; + } + } + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_RegisterRadioCallback( CStifItemParser& /*aItem*/ ) + { + TInt status(KErrNone); + XAresult res; + + if(m_RadioItf) + { + res = (*m_RadioItf)->RegisterRadioCallback( + m_RadioItf, &RadioItfCallback, (void*)this); + status = res; + } + else + { + status = KErrNotFound; + } + + return status; + } + + +TInt COpenMAXALTestModule::al_radioitf_SetSquelch( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TBool squelch; + status = aItem.GetNextInt(squelch); + RET_ERR_IF_ERR(status); + + if(m_RadioItf) + { + status = (*m_RadioItf)->SetSquelch( + m_RadioItf, squelch); + + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_GetSquelch( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TBool expectedSquelch; + status = aItem.GetNextInt(expectedSquelch); + RET_ERR_IF_ERR(status); + XAboolean squelch; + + if(m_RadioItf) + { + status = (*m_RadioItf)->GetSquelch( + m_RadioItf, &squelch); + if (!status) + { + if (squelch != (XAboolean)expectedSquelch) + { + status = KErrCompletion; + } + } + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_CancelSetFrequency( CStifItemParser& /*aItem*/ ) + { + TInt status(KErrNone); + + if(m_RadioItf) + { + status = (*m_RadioItf)->CancelSetFrequency( + m_RadioItf); + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_SetStereoMode( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TInt stereoMode; + status = aItem.GetNextInt(stereoMode); + RET_ERR_IF_ERR(status); + + if(m_RadioItf) + { + status = (*m_RadioItf)->SetStereoMode( + m_RadioItf, (XAuint32)stereoMode); + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_GetStereoMode( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TInt expectedStereoMode; + status = aItem.GetNextInt(expectedStereoMode); + RET_ERR_IF_ERR(status); + XAuint32 stereoMode; + + if(m_RadioItf) + { + status = (*m_RadioItf)->GetStereoMode( + m_RadioItf, &stereoMode); + if (!status) + { + if (stereoMode != (XAboolean)expectedStereoMode) + { + status = KErrCompletion; + } + } + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_GetSignalStrength( CStifItemParser& /*aItem*/ ) + { + TInt status(KErrNone); + XAuint32 signalStrength; + + if(m_RadioItf) + { + status = (*m_RadioItf)->GetSignalStrength( + m_RadioItf, &signalStrength); + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_Seek( CStifItemParser& aItem ) + { + TInt status(KErrNone); + TBool upwards; + status = aItem.GetNextInt(upwards); + RET_ERR_IF_ERR(status); + + if(m_RadioItf) + { + status = (*m_RadioItf)->Seek( + m_RadioItf, upwards); + } + else + { + status = KErrNotFound; + } + return status; + } + +TInt COpenMAXALTestModule::al_radioitf_StopSeeking( CStifItemParser& /*aItem*/ ) + { + TInt status(KErrNone); + + if(m_RadioItf) + { + status = (*m_RadioItf)->StopSeeking( + m_RadioItf); + } + else + { + status = KErrNotFound; + } + return status; + } + + +void COpenMAXALTestModule::HandleRadioItfCallback( + XARadioItf caller, + XAuint32 event +) +{ + XAuint32 freq; + XAmillibel volume; + + switch (event) + { + case XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED: + TEventIf antennaStatusEvent( TEventIf::ESetEvent, _L("Event_XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED:") ); + TestModuleIf().Event( antennaStatusEvent ); + break; + + case XA_RADIO_EVENT_FREQUENCY_CHANGED: + TEventIf freqChangedEvent( TEventIf::ESetEvent, _L("Event_XA_RADIO_EVENT_FREQUENCY_CHANGED") ); + TestModuleIf().Event( freqChangedEvent ); + break; + + case XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED: + TEventIf freqRangeChangedEvent( TEventIf::ESetEvent,_L("Event_XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED")); + TestModuleIf().Event( freqRangeChangedEvent ); + break; + + case XA_RADIO_EVENT_SEEK_COMPLETED: + TEventIf seekEvent( TEventIf::ESetEvent, _L("Event_XA_RADIO_EVENT_SEEK_COMPLETED") ); + TestModuleIf().Event( seekEvent ); + break; + + default: + break; + } + +} + +void RadioItfCallback ( + XARadioItf caller, + void * pContext, + XAuint32 event, + XAuint32 eventIntData, + XAboolean eventBooleanData + ) + { + if (pContext) + { + ((COpenMAXALTestModule*)pContext)->HandleRadioItfCallback(caller, event); + } + } + diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_ext_api/group/bld.inf --- a/mmmw_plat/openmax_al_ext_api/group/bld.inf Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/openmax_al_ext_api/group/bld.inf Fri May 28 19:26:28 2010 -0500 @@ -25,5 +25,6 @@ #ifdef FF_OPENMAX_AL ../inc/xanokiavolumeextitf.h MW_LAYER_PLATFORM_EXPORT_PATH(khronos/xanokiavolumeextitf.h) ../inc/xanokialinearvolumeitf.h MW_LAYER_PLATFORM_EXPORT_PATH(khronos/xanokialinearvolumeitf.h) +../inc/xaradioitfext.h MW_LAYER_PLATFORM_EXPORT_PATH(khronos/xaradioitfext.h) ../readme_ext.txt MW_LAYER_PLATFORM_EXPORT_PATH(khronos/readme_ext.txt) #endif \ No newline at end of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/openmax_al_ext_api/inc/xaradioitfext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmmw_plat/openmax_al_ext_api/inc/xaradioitfext.h Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,32 @@ +/* +* 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: +* +*/ + +#ifndef XARADIOITFEXT_H +#define XARADIOITFEXT_H + +// Currently defined in OpenMAXAL.h for RADIO: +//#define XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED ((XAuint32) 0x00000001) +//#define XA_RADIO_EVENT_FREQUENCY_CHANGED ((XAuint32) 0x00000002) +//#define XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED ((XAuint32) 0x00000003) +//#define XA_RADIO_EVENT_PRESET_CHANGED ((XAuint32) 0x00000004) +//#define XA_RADIO_EVENT_SEEK_COMPLETED ((XAuint32) 0x00000005) + +// ADDED: +#define XA_RADIO_EVENT_STEREO_STATUS_CHANGED ((XAuint32) 0x00000006) +#define XA_RADIO_EVENT_SIGNAL_STRENGTH_CHANGED ((XAuint32) 0x00000007) + +#endif /* XARADIOITFEXT_H */ diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/system_tone_service_api/tsrc/conf/systemtoneservicestif.cfg --- a/mmmw_plat/system_tone_service_api/tsrc/conf/systemtoneservicestif.cfg Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/system_tone_service_api/tsrc/conf/systemtoneservicestif.cfg Fri May 28 19:26:28 2010 -0500 @@ -61,6 +61,126 @@ [Enddefine] [Test] +title 01 Play EmailAlert +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayTone EmailAlert +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + +[Test] +title 02 Play SmsAlert +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayTone SmsAlert +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + +[Test] +title 03 Play ChatAlert +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayTone ChatAlert +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + +[Test] +title 04 Play MmsAlert +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayTone MmsAlert +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + +[Test] +title 05 Play WarningBeep +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayTone WarningBeep +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + + +[Test] +title 06 Play DeafultBeep +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayTone DefaultBeep +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + + +[Test] +title 07 Play IncomingCall +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayAlarm IncomingCall +pause 10000 +STSSTIF StopAlarm True +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + + +[Test] +title 08 Play IncomingCall2 +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayAlarm IncomingCallLine2 +pause 10000 +STSSTIF StopAlarm True +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + + +[Test] +title 09 Play VideoCall +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayAlarm IncomingDataCall +pause 10000 +STSSTIF StopAlarm True +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + + +[Test] +title 10 Play DefaultAlarm +create systemtoneservicestif STSSTIF +STSSTIF Create +STSSTIF PlayAlarm ToDoAlarm +pause 10000 +STSSTIF StopAlarm True +pause 5000 +STSSTIF Delete +delete STSSTIF +[Endtest] + + + + + + + + +[Test] title NFT create systemtoneservicestif STSSTIF STSSTIF Create @@ -74,7 +194,7 @@ [Test] -title 01 Create systemtoneservicestif +title 11 Create systemtoneservicestif create systemtoneservicestif STSSTIF STSSTIF Create delete STSSTIF @@ -83,7 +203,7 @@ [Test] -title 02 Play ClockAlarm Ringtone +title 12 Play ClockAlarm Ringtone create systemtoneservicestif STSSTIF STSSTIF Create STSSTIF PlayAlarm ClockAlarm @@ -94,17 +214,17 @@ [Test] -title 03 Play ClockAlarmContext Ringtone +title 13 Play ClockAlarmContext Ringtone create systemtoneservicestif STSSTIF STSSTIF Create -STSSTIF PlayAlarm ClockAlarm -pause 10000 +STSSTIF PlayTone EmailAlert +pause 5000 STSSTIF Delete delete STSSTIF [Endtest] [Test] -title 04 Stop ClockAlarm with recognized Context +title 14 Stop ClockAlarm with recognized Context create systemtoneservicestif STSSTIF STSSTIF Create STSSTIF PlayAlarm ClockAlarm @@ -117,7 +237,7 @@ [Test] -title 05 Stop ClockAlarm with non-recognized Context +title 15 Stop ClockAlarm with non-recognized Context create systemtoneservicestif STSSTIF STSSTIF Create STSSTIF PlayAlarm ClockAlarm @@ -130,12 +250,12 @@ [Test] -title 06 Play two tones +title 16 Play two tones create systemtoneservicestif STSSTIF STSSTIF Create STSSTIF PlayAlarm ClockAlarm -pause 10000 -STSSTIF PlayTone DefaultTone +pause 5000 +STSSTIF PlayTone DefaultBeep pause 10000 STSSTIF StopAlarm True STSSTIF Delete diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/system_tone_service_api/tsrc/group/systemtoneservicestif.pkg --- a/mmmw_plat/system_tone_service_api/tsrc/group/systemtoneservicestif.pkg Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/system_tone_service_api/tsrc/group/systemtoneservicestif.pkg Fri May 28 19:26:28 2010 -0500 @@ -47,7 +47,9 @@ ; Install files "\epoc32\release\armv5\udeb\systemtoneservicestif.dll" - "!:\Sys\Bin\systemtoneservicestif.dll" - +"..\conf\systemtoneservicestif.cfg" - "C:\testframework\systemtoneservicestif.cfg" +"..\init\TestFramework.ini" - "C:\TestFramework\TestFramework.ini" + ; Embedded SIS ; None diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/system_tone_service_api/tsrc/inc/systemtoneservicesactiveobj.h --- a/mmmw_plat/system_tone_service_api/tsrc/inc/systemtoneservicesactiveobj.h Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/system_tone_service_api/tsrc/inc/systemtoneservicesactiveobj.h Fri May 28 19:26:28 2010 -0500 @@ -18,9 +18,12 @@ #include +#include +#include +#include +#include #include - @@ -28,10 +31,9 @@ { public: - CStsActiveObj( MStsPlayAlarmObserver* aObserver); + static CStsActiveObj* NewL( MStsPlayAlarmObserver* aObserver,CStifLogger* aLogger ); ~CStsActiveObj(); - - + public: // Functions from base classes /** @@ -48,11 +50,23 @@ * RunError derived from CActive handles errors from active handler. */ TInt RunError( TInt aError ); - + + private: + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(MStsPlayAlarmObserver* aObserver, CStifLogger* aLogger); + + /** + * C++ constructor. + */ + CStsActiveObj(); private: // Data MStsPlayAlarmObserver* iObserver; + CStifLogger* iLog; }; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/system_tone_service_api/tsrc/src/systemtoneservicesactiveobj.cpp --- a/mmmw_plat/system_tone_service_api/tsrc/src/systemtoneservicesactiveobj.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/system_tone_service_api/tsrc/src/systemtoneservicesactiveobj.cpp Fri May 28 19:26:28 2010 -0500 @@ -19,14 +19,29 @@ #include #include "systemtoneservicesactiveobj.h" -CStsActiveObj::CStsActiveObj(MStsPlayAlarmObserver* aObserver) : CActive (EPriorityStandard) + +CStsActiveObj::CStsActiveObj() : CActive (CActive::EPriorityStandard) { + +} + + +void CStsActiveObj::ConstructL(MStsPlayAlarmObserver* aObserver, CStifLogger* aLogger) +{ + iObserver = aObserver; + iLog = aLogger; CActiveScheduler::Add(this); } - +CStsActiveObj* CStsActiveObj::NewL( MStsPlayAlarmObserver* aTestClass, CStifLogger* aLogger) +{ + CStsActiveObj* self = new ( ELeave ) CStsActiveObj(); + CleanupStack::PushL( self ); + self->ConstructL( aTestClass, aLogger); + CleanupStack::Pop( self ); + return self; - +} CStsActiveObj::~ CStsActiveObj() { @@ -39,12 +54,12 @@ void CStsActiveObj::RunL() { - if(IsActive()) + /*(if(IsActive()) { Cancel(); } - SetActive(); + SetActive();*/ } diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/system_tone_service_api/tsrc/src/systemtoneservicestifblocks.cpp --- a/mmmw_plat/system_tone_service_api/tsrc/src/systemtoneservicestifblocks.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/system_tone_service_api/tsrc/src/systemtoneservicestifblocks.cpp Fri May 28 19:26:28 2010 -0500 @@ -229,15 +229,13 @@ if (aAlarmContext == iCurrentContext) { - _LIT( Ksystemtoneservicestif, "STS" ); + _LIT( Ksystemtoneservicestif, "STS" ); _LIT( KPrint, "PlayAlarmComplete" ); TestModuleIf().Printf( 0, Ksystemtoneservicestif, KPrint ); - // Print to log file - iLog->Log( KPrint ); - - iPlayState = EStopped; - iCallbackController->Cancel(); - //HandleEvent(); + + iPlayState = EStopped; + iCallbackController->Cancel(); + //HandleEvent(); } } diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/telephony_multimedia_service_api/inc/tmsfactory.h --- a/mmmw_plat/telephony_multimedia_service_api/inc/tmsfactory.h Fri May 14 18:19:45 2010 -0500 +++ b/mmmw_plat/telephony_multimedia_service_api/inc/tmsfactory.h Fri May 28 19:26:28 2010 -0500 @@ -394,6 +394,8 @@ IMPORT_C gint DeleteDTMF(TMSDTMF*& dtmf); /** + * FEATURE IS CURRENTLY NOT SUPPORTED + * * Creates TMSRTPSession object. * * @param rtpsession @@ -406,22 +408,21 @@ * Buffer processing mode: either PULL or PUSH. * * @return - * TMS_RESULT_SUCCESS when object is created successfully. - * TMS_RESULT_INSUFFICIENT_MEMORY when object creation failed due to - * insufficient memory. + * TMS_RESULT_FEATURE_NOT_SUPPORTED */ IMPORT_C gint CreateRTPSession(TMSRTPSession*& rtpsession, guint8* sdp, guint mode); /** + * FEATURE IS CURRENTLY NOT SUPPORTED + * * Deletes TMSRTPSession object. * * @param rtpsession * RTP Session object to be deleted. * * @return - * TMS_RESULT_SUCCESS when object is deleted successfully. - * TMS_RESULT_INVALID_ARGUMENT if RTP session object is invalid. + * TMS_RESULT_FEATURE_NOT_SUPPORTED */ IMPORT_C gint DeleteRTPSession(TMSRTPSession*& rtpsession); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmmw_plat/telephony_multimedia_service_api/telephony_multimedia_service_api.metaxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmmw_plat/telephony_multimedia_service_api/telephony_multimedia_service_api.metaxml Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,16 @@ + + + telephony_multimedia_service_api + API to Telephony Multimedia Server + c++ + mmserv + + + + + + + no + no + + diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/radioutility/presetutility/group/bld.inf --- a/mmserv/radioutility/presetutility/group/bld.inf Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/radioutility/presetutility/group/bld.inf Fri May 28 19:26:28 2010 -0500 @@ -28,6 +28,9 @@ ../conf/presetutility_10207B87.crml MW_LAYER_CRML(presetutility_10207B87.crml) +backup_registration.xml z:/private/10207B87/backup_registration.xml + + // iby files ../rom/fmpresetutility.iby CORE_MW_LAYER_IBY_EXPORT_PATH(fmpresetutility.iby) ../rom/presetutility.iby CORE_MW_LAYER_IBY_EXPORT_PATH(presetutility.iby) diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/radioutility/presetutility/tsrc/group/Bld.inf --- a/mmserv/radioutility/presetutility/tsrc/group/Bld.inf Fri May 14 18:19:45 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* 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: -* -*/ -#include - - -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_TESTEXPORTS -// NOTE: If using ARS requirements all export operations should be done under this. -// 'abld test export' - -PRJ_EXPORTS -// Specify the source file followed by its destination here -// copy will be used to copy the source file to its destination -// If there's no destination then the source file will be copied -// to the same name in /epoc32/include -// Example: -/* -/agnmodel/inc/AGMCOMON.H -*/ - -PRJ_TESTMMPFILES - - PresetUtilityTestModule.mmp - -PRJ_MMPFILES - - PresetUtilityTestModule_nrm.mmp - -// Specify the .mmp files required for building the important component -// releasables. -// -// Specify "tidy" if the component you need to build doesn't need to be -// released. Specify "ignore" if the MMP file exists but should be -// ignored. -// Example: -/* -/agnmodel/group/agnmodel.mmp -#if defined(MARM) -/agnmodel/group/agsvexe.mmp -#endif -*/ - -// End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/radioutility/presetutility/tsrc/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/radioutility/presetutility/tsrc/group/bld.inf Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,62 @@ +/* +* 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: +* +*/ +#include + + +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_TESTEXPORTS +// NOTE: If using ARS requirements all export operations should be done under this. +// 'abld test export' + +PRJ_EXPORTS +// Specify the source file followed by its destination here +// copy will be used to copy the source file to its destination +// If there's no destination then the source file will be copied +// to the same name in /epoc32/include +// Example: +/* +/agnmodel/inc/AGMCOMON.H +*/ + +PRJ_TESTMMPFILES + + PresetUtilityTestModule.mmp + +PRJ_MMPFILES + + PresetUtilityTestModule_nrm.mmp + +// Specify the .mmp files required for building the important component +// releasables. +// +// Specify "tidy" if the component you need to build doesn't need to be +// released. Specify "ignore" if the MMP file exists but should be +// ignored. +// Example: +/* +/agnmodel/group/agnmodel.mmp +#if defined(MARM) +/agnmodel/group/agsvexe.mmp +#endif +*/ + +// End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp --- a/mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp Fri May 28 19:26:28 2010 -0500 @@ -1435,6 +1435,7 @@ iState = EStateTunerOff; iPreEmpted = ETrue; iSettings->SetRadioOff(aError); + RADIO_RDEBUG(_L("[RADIO-SVR] PlayError() - Call TunerOff and start waiting")); iTunerControl->TunerOff(); //The adaptation is expected to call TunerOffComplete() upon completion // wait for TunerOffComplete callback iSchedulerWait->Start(); @@ -1680,12 +1681,6 @@ return; } - if ( iState != EStateStarted ) - { - CompleteAsyncRequest(KErrAlreadyExists); - return; - } - TInt err = KErrNone; if ( !iTunerControl ) { @@ -1832,7 +1827,7 @@ break; case EStateTunerOff: if ( iSettings->IsAntennaAttached() && AllowRadioInOfflineMode() - && !iSettings->IsTransmitterActive() ) + && !iSettings->IsTransmitterActive() && !iPreEmpted ) { RADIO_RDEBUG(_L("[RADIO-SVR] ProcessSetFrequency() - Sent TunerOn request")); RecreateFmTunerControl(); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/sts/rom/mmmwsystemtoneservice.iby --- a/mmserv/sts/rom/mmmwsystemtoneservice.iby Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/sts/rom/mmmwsystemtoneservice.iby Fri May 28 19:26:28 2010 -0500 @@ -19,8 +19,8 @@ * */ -#ifndef SYSTEMTONESERVICE_IBY -#define SYSTEMTONESERVICE_IBY +#ifndef MMMWSYSTEMTONESERVICE_IBY +#define MMMWSYSTEMTONESERVICE_IBY #include @@ -30,6 +30,6 @@ //STS_Stub data=ZSYSTEM/install/sts_stub.sis System/Install/sts_stub.sis -#endif //SYSTEMTONESERVICE_IBY +#endif //MMMWSYSTEMTONESERVICE_IBY //End of File \ No newline at end of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/sts/sts/group/sts.mmp --- a/mmserv/sts/sts/group/sts.mmp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/sts/sts/group/sts.mmp Fri May 28 19:26:28 2010 -0500 @@ -21,6 +21,7 @@ TARGET sts.lib TARGETTYPE lib +APP_LAYER_SYSTEMINCLUDE MW_LAYER_SYSTEMINCLUDE OS_LAYER_LIBC_SYSTEMINCLUDE OS_LAYER_STDCPP_SYSTEMINCLUDE diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/sts/sts/inc/stsplayer.h --- a/mmserv/sts/sts/inc/stsplayer.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/sts/sts/inc/stsplayer.h Fri May 28 19:26:28 2010 -0500 @@ -21,6 +21,9 @@ #include #include +class MProEngEngine; +class MProEngProfile; + class MStsPlayerObserver { public: @@ -30,6 +33,7 @@ class CStsPlayer : private MMdaAudioPlayerCallback { public: + static CStsPlayer* CreateTonePlayer(MStsPlayerObserver& aObserver, CSystemToneService::TToneType aTone, unsigned int aContext); static CStsPlayer* CreateAlarmPlayer(MStsPlayerObserver& aObserver, @@ -38,9 +42,14 @@ void Play(); void Stop(); + protected: + + void LoadActiveProfileSettingsL(); + void SetToneSettings(CSystemToneService::TToneType aTone); + void SetAlarmSettings(CSystemToneService::TAlarmType aAlarm); CStsPlayer(MStsPlayerObserver& aObserver, const TDesC& aFileName, - int aRepeatNumberOfTimes, unsigned int aContext); + int aRepeatNumberOfTimes, unsigned int aContext); bool Init(); private: @@ -53,6 +62,15 @@ TPtrC iFileName; int iRepeatNumberOfTimes; unsigned int iContext; + + MProEngEngine* iEngine; + MProEngProfile* iProfile; + + TInt iVolume; + TBool iWarningToneEnabled; + TUint iAudioPreference; + TUint iAudioPriority; + }; #endif // STSPLAYER_H_ diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/sts/sts/src/stsplayer.cpp --- a/mmserv/sts/sts/src/stsplayer.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/sts/sts/src/stsplayer.cpp Fri May 28 19:26:28 2010 -0500 @@ -15,30 +15,51 @@ * This file provides the implementation for creating and deleting a * an MMF based player for playing and stopping a tone playback. */ +#include "stsplayer.h" +#include +#include +#include +#include +#include +#include +#include -#include "stsplayer.h" _LIT(KDefaultFile,"z:\\data\\sounds\\digital\\clock.aac"); + + + + /*static*/CStsPlayer* CStsPlayer::CreateTonePlayer( MStsPlayerObserver& aObserver, CSystemToneService::TToneType aTone, unsigned int aContext) { CStsPlayer* self = 0; - switch (aTone) + + self = new CStsPlayer(aObserver, KDefaultFile, 0, aContext); + + if( self != 0) + { + TRAPD(err,self->LoadActiveProfileSettingsL()); + + if( err == KErrNone ) + self->SetToneSettings(aTone); + else { - default: - self = new CStsPlayer(aObserver, KDefaultFile, 0, aContext); - break; - } - if (self != 0) - { - bool successful = self->Init(); - if (!successful) + delete self; + self = 0; + } + + if (self != 0) + { + bool successful = self->Init(); + if (!successful) { - delete self; - self = 0; + delete self; + self = 0; } + } } return self; } @@ -48,43 +69,181 @@ unsigned int aContext) { CStsPlayer* self = 0; - switch (aAlarm) - { - case CSystemToneService::EClockAlarm: - self = new CStsPlayer(aObserver, KDefaultFile, 10, aContext); - break; - default: - self = new CStsPlayer(aObserver, KDefaultFile, 10, aContext); - break; - } - if (self != 0) - { - bool successful = self->Init(); - if (!successful) + + self = new CStsPlayer(aObserver, KDefaultFile, 10, aContext); + + if( self != 0) + { + TRAPD(err,self->LoadActiveProfileSettingsL()); + + if( err == KErrNone ) + self->SetAlarmSettings(aAlarm); + else + { + delete self; + self = 0; + } + + if (self != 0) + { + bool successful = self->Init(); + if (!successful) { - delete self; - self = 0; - } + delete self; + self = 0; + } + } } return self; } +void CStsPlayer::LoadActiveProfileSettingsL() + { + if(!iEngine) + { + iEngine = ProEngFactory::NewEngineL(); + } + + if (iEngine) + iProfile = iEngine->ActiveProfileL(); + + if (iProfile) + { + MProEngToneSettings& settings = iProfile->ToneSettings(); + iWarningToneEnabled = settings.WarningAndGameTones(); + } + + + + + } + +void CStsPlayer::SetToneSettings(CSystemToneService::TToneType aTone) + { + + if(iProfile) + + { + MProEngTones& tones = iProfile->ProfileTones(); + + switch (aTone) + { + case CSystemToneService::EEmailAlert: + iFileName.Set(tones.EmailAlertTone()); + iAudioPreference = KAudioPrefNewSMS; + iAudioPriority = KAudioPriorityRecvMsg ; + break; + case CSystemToneService::ESmsAlert: + iFileName.Set(tones.MessageAlertTone()); + iAudioPreference = KAudioPrefNewSMS; + iAudioPriority = KAudioPriorityRecvMsg; + break; + case CSystemToneService::EMmsAlert: + iFileName.Set(tones.MessageAlertTone()); + iAudioPreference = KAudioPrefNewSMS; + iAudioPriority = KAudioPriorityRecvMsg; + break; + case CSystemToneService::EChatAlert: + iFileName.Set(tones.MessageAlertTone()); + iAudioPreference = KAudioPrefNewSMS ; + iAudioPriority = KAudioPriorityRecvMsg; + break; + case CSystemToneService::EWarningBeep: + iAudioPreference = KAudioPrefWarning; + iAudioPriority = KAudioPriorityWarningTone ; + if (iWarningToneEnabled) + iFileName.Set(KDefaultFile); + else + iVolume = 0; + + break; + default: + iAudioPreference = KAudioPrefDefaultTone; + iAudioPriority = KAudioPriorityWarningTone ; + break; + } + } + + else + { + iAudioPreference = KAudioPrefDefaultTone; + iAudioPriority = KAudioPriorityWarningTone ; + } + + } + + +void CStsPlayer::SetAlarmSettings(CSystemToneService::TAlarmType aAlarm) + { + if(iProfile) + + { + MProEngTones& tones = iProfile->ProfileTones(); + + switch (aAlarm) + { + case CSystemToneService::EIncomingCall: + iFileName.Set(tones.RingingTone1()); + iAudioPreference = KAudioPrefIncomingCall ; + iAudioPriority = KAudioPriorityRingingTone ; + break; + case CSystemToneService::EIncomingCallLine2: + iFileName.Set(tones.RingingTone2()); + iAudioPreference = KAudioPrefIncomingCall; + iAudioPriority = KAudioPriorityRingingTone ; + break; + case CSystemToneService::EIncomingDataCall: + iFileName.Set(tones.VideoCallRingingTone()); + iAudioPreference = KAudioPrefIncomingDataCall; + iAudioPriority = KAudioPriorityRealOnePlayer; + break; + default: + iAudioPreference = KAudioPrefAlarmClock ; + iAudioPriority = KAudioPriorityAlarm; + break; + } + } + else + { + iAudioPreference = KAudioPrefDefaultTone; + iAudioPriority = KAudioPriorityWarningTone ; + } + } + + + + CStsPlayer::CStsPlayer(MStsPlayerObserver& aObserver, const TDesC& aFileName, int aRepeatNumberOfTimes, unsigned int aContext) : iObserver(aObserver), iPlayer(0), iFileName(aFileName), iRepeatNumberOfTimes(aRepeatNumberOfTimes), iContext(aContext) { + iEngine = ProEngFactory::NewEngineL(); } bool CStsPlayer::Init() { - TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this)); - return result == KErrNone; + + + TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this)); + return result == KErrNone; + } + CStsPlayer::~CStsPlayer() { - delete iPlayer; + if (iProfile) + { + iProfile->Release(); + } + if (iEngine) + { + iEngine->Release(); + } + + delete iPlayer; + } void CStsPlayer::Play() @@ -111,6 +270,8 @@ if (aError == KErrNone) { TTimeIntervalMicroSeconds delay = 0; + // Set PriorityPref + iPlayer->SetPriority(iAudioPriority,iAudioPreference); iPlayer->SetRepeats(iRepeatNumberOfTimes, delay); iPlayer->Play(); } @@ -118,6 +279,7 @@ { //TODO: add trace // Since there is an error, indicate that the playback is complete + RDebug::Print(_L("InitCompleteReturned"), aError); iObserver.PlayComplete(iContext); } } diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/sts/stsserver/group/stsserver.mmp --- a/mmserv/sts/stsserver/group/stsserver.mmp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/sts/stsserver/group/stsserver.mmp Fri May 28 19:26:28 2010 -0500 @@ -49,3 +49,4 @@ LIBRARY libc.lib LIBRARY libstdcpp.lib LIBRARY mediaclientaudio.lib +LIBRARY profileengine.lib \ No newline at end of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/inc/tmscallclisrv.h --- a/mmserv/tms/inc/tmscallclisrv.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/inc/tmscallclisrv.h Fri May 28 19:26:28 2010 -0500 @@ -89,6 +89,7 @@ TMSStreamType StreamType; gint StreamId; TMSFormatType FormatType; + gint RetryTime; }; typedef TPckgBuf TMSCliSrvStreamInitDataStructBufPckg; @@ -98,6 +99,7 @@ TMSCallType CallType; TMSStreamType StreamType; gint StreamId; + gint RetryTime; }; typedef TPckgBuf TMSCliSrvStreamOpDataStructBufPckg; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/inc/tmscallproxy.h --- a/mmserv/tms/inc/tmscallproxy.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/inc/tmscallproxy.h Fri May 28 19:26:28 2010 -0500 @@ -42,9 +42,10 @@ const TMSStreamType strmType, gint& strmId); IMPORT_C gint InitStream(const TMSCallType callType, const TMSStreamType strmType, gint strmId, - const TMSFormatType frmtType, RHandleBase* msgQueue); + const TMSFormatType frmtType, RHandleBase* msgQueue, + const gint retrytime); IMPORT_C gint StartStream(const TMSCallType callType, - const TMSStreamType strmType, gint strmId); + const TMSStreamType strmType, gint strmId, const gint retrytime); IMPORT_C gint PauseStream(const TMSCallType callType, const TMSStreamType strmType, gint strmId); IMPORT_C gint StopStream(const TMSCallType callType, diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/inc/tmsstreambody.h --- a/mmserv/tms/inc/tmsstreambody.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/inc/tmsstreambody.h Fri May 28 19:26:28 2010 -0500 @@ -50,9 +50,9 @@ virtual gint GetState() = 0; virtual gint GetStreamType() = 0; virtual gint GetStreamId() = 0; - virtual gint Init() = 0; + virtual gint Init(gint retrytime) = 0; virtual gint Pause() = 0; - virtual gint Start() = 0; + virtual gint Start(gint retrytime) = 0; virtual gint Stop() = 0; virtual void Deinit() = 0; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/inc/tmstimer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/tms/inc/tmstimer.h Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * Utility class for CTimer object + * + */ + +#ifndef TMSTIMER_H +#define TMSTIMER_H + +// INCLUDES +#include +#include + +namespace TMS { + +/** + * TMSTimerObserver observer. + */ +class TMSTimerObserver + { +public: + + /** + * Called upon timer timeout. + */ + virtual void TimerEvent() = 0; + }; + +// CLASS DECLARATION +/** + * TMSTimer - Timer service. + */ +class TMSTimer : protected CTimer + { +public: + + /** + * Two-phased constructor. + */ + IMPORT_C static TMSTimer* NewL(gint aPriority = CActive::EPriorityStandard); + + /** + * Destructor. + */ + IMPORT_C virtual ~TMSTimer(); + + /** + * Call callback method upon timer timeout event. + * All former request will be canceled first + */ + IMPORT_C void NotifyAfter(gint timeout, TCallBack aCallBack); + + /** + * Call client observer upon timer timeout event. + * All former request will be canceled first + */ + IMPORT_C void NotifyAfter(gint timeout, TMSTimerObserver& observer); + + /** + * Cancel the timer + */ + IMPORT_C void CancelNotify(); + + /** + * Determines if the timer is running. + */ + IMPORT_C gboolean IsRunning(); + +protected: + + /** + * From CTimer::RunL() + */ + virtual void RunL(); + + /** + * From CTimer::RunL() + */ + virtual TInt RunError(TInt aError); + + /** + * From CTimer::DoCancel() + */ + virtual void DoCancel(); + +private: + + /** + * C++ default constructor. + */ + TMSTimer(gint aPriority); + + /** + * Symbian OS constructor. + */ + void ConstructL(); + + // By default, prohibit copy constructor + TMSTimer(const TMSTimer&); + + // Prohibit assigment operator + TMSTimer& operator = (const TMSTimer&); + +private: + + // Optional callback instead of observer + TCallBack iCallBack; + + // Observer for notify service. + TMSTimerObserver* iObserver; + }; + +} //namespace TMS + +#endif //TMSTIMER_H + diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsapi/src/tmsstream.cpp --- a/mmserv/tms/tmsapi/src/tmsstream.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsapi/src/tmsstream.cpp Fri May 28 19:26:28 2010 -0500 @@ -166,7 +166,7 @@ gint status(TMS_RESULT_UNINITIALIZED_OBJECT); if (iBody) { - status = iBody->Init(); + status = iBody->Init(0); } return status; } @@ -186,7 +186,7 @@ gint status(TMS_RESULT_UNINITIALIZED_OBJECT); if (iBody) { - status = iBody->Start(); + status = iBody->Start(0); } return status; } diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallproxy/bwins/tmscallproxy.def --- a/mmserv/tms/tmscallproxy/bwins/tmscallproxy.def Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallproxy/bwins/tmscallproxy.def Fri May 28 19:26:28 2010 -0500 @@ -1,35 +1,35 @@ EXPORTS ?GetVolume@TMSCallProxy@TMS@@QAEHAAI@Z @ 1 NONAME ; int TMS::TMSCallProxy::GetVolume(unsigned int &) - ?StartStream@TMSCallProxy@TMS@@QAEHHHH@Z @ 2 NONAME ; int TMS::TMSCallProxy::StartStream(int, int, int) - ?SetCNG@TMSCallProxy@TMS@@QAEHHH@Z @ 3 NONAME ; int TMS::TMSCallProxy::SetCNG(int, int) - ?BufferFilled@TMSCallProxy@TMS@@QAEHHHHAAVTMSBuffer@2@@Z @ 4 NONAME ; int TMS::TMSCallProxy::BufferFilled(int, int, int, class TMS::TMSBuffer &) - ?CreateStream@TMSCallProxy@TMS@@QAEHHHAAH@Z @ 5 NONAME ; int TMS::TMSCallProxy::CreateStream(int, int, int &) - ?GetSupportedBitRates@TMSCallProxy@TMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 6 NONAME ; int TMS::TMSCallProxy::GetSupportedBitRates(class std::vector > &) - ?Close@TMSCallProxy@TMS@@QAEXXZ @ 7 NONAME ; void TMS::TMSCallProxy::Close(void) - ?InitStream@TMSCallProxy@TMS@@QAEHHHHHPAVRHandleBase@@@Z @ 8 NONAME ; int TMS::TMSCallProxy::InitStream(int, int, int, int, class RHandleBase *) - ?GetCNG@TMSCallProxy@TMS@@QAEHHAAH@Z @ 9 NONAME ; int TMS::TMSCallProxy::GetCNG(int, int &) - ?GetMaxVolume@TMSCallProxy@TMS@@QAEHAAI@Z @ 10 NONAME ; int TMS::TMSCallProxy::GetMaxVolume(unsigned int &) - ?GetVADMode@TMSCallProxy@TMS@@QAEHHAAH@Z @ 11 NONAME ; int TMS::TMSCallProxy::GetVADMode(int, int &) - ?PauseStream@TMSCallProxy@TMS@@QAEHHHH@Z @ 12 NONAME ; int TMS::TMSCallProxy::PauseStream(int, int, int) - ?GetBitRate@TMSCallProxy@TMS@@QAEHAAI@Z @ 13 NONAME ; int TMS::TMSCallProxy::GetBitRate(unsigned int &) - ?SetFormatCodecMode@TMSCallProxy@TMS@@QAEHHHH@Z @ 14 NONAME ; int TMS::TMSCallProxy::SetFormatCodecMode(int, int, int) - ?GetPlc@TMSCallProxy@TMS@@QAEHHAAH@Z @ 15 NONAME ; int TMS::TMSCallProxy::GetPlc(int, int &) - ?StopStream@TMSCallProxy@TMS@@QAEHHHH@Z @ 16 NONAME ; int TMS::TMSCallProxy::StopStream(int, int, int) - ?SetVolume@TMSCallProxy@TMS@@QAEHI@Z @ 17 NONAME ; int TMS::TMSCallProxy::SetVolume(unsigned int) - ?GetGain@TMSCallProxy@TMS@@QAEHAAI@Z @ 18 NONAME ; int TMS::TMSCallProxy::GetGain(unsigned int &) - ?SetPlc@TMSCallProxy@TMS@@QAEHHH@Z @ 19 NONAME ; int TMS::TMSCallProxy::SetPlc(int, int) - ??1TMSCallProxy@TMS@@UAE@XZ @ 20 NONAME ; TMS::TMSCallProxy::~TMSCallProxy(void) - ?GetMaxGain@TMSCallProxy@TMS@@QAEHAAI@Z @ 21 NONAME ; int TMS::TMSCallProxy::GetMaxGain(unsigned int &) - ?CreateCall@TMSCallProxy@TMS@@QAEHH@Z @ 22 NONAME ; int TMS::TMSCallProxy::CreateCall(int) - ?SetVADMode@TMSCallProxy@TMS@@QAEHHH@Z @ 23 NONAME ; int TMS::TMSCallProxy::SetVADMode(int, int) - ?DeleteCall@TMSCallProxy@TMS@@QAEXXZ @ 24 NONAME ; void TMS::TMSCallProxy::DeleteCall(void) - ?GetDataXferChunkHandle@TMSCallProxy@TMS@@QAEHHHHI@Z @ 25 NONAME ; int TMS::TMSCallProxy::GetDataXferChunkHandle(int, int, int, unsigned int) - ?DeleteStream@TMSCallProxy@TMS@@QAEHHHAAH@Z @ 26 NONAME ; int TMS::TMSCallProxy::DeleteStream(int, int, int &) - ??0TMSCallProxy@TMS@@QAE@XZ @ 27 NONAME ; TMS::TMSCallProxy::TMSCallProxy(void) - ?BufferEmptied@TMSCallProxy@TMS@@QAEHHHHAAVTMSBuffer@2@@Z @ 28 NONAME ; int TMS::TMSCallProxy::BufferEmptied(int, int, int, class TMS::TMSBuffer &) - ?Connect@TMSCallProxy@TMS@@QAEHXZ @ 29 NONAME ; int TMS::TMSCallProxy::Connect(void) - ?SetGain@TMSCallProxy@TMS@@QAEHI@Z @ 30 NONAME ; int TMS::TMSCallProxy::SetGain(unsigned int) - ?SetBitRate@TMSCallProxy@TMS@@QAEHI@Z @ 31 NONAME ; int TMS::TMSCallProxy::SetBitRate(unsigned int) + ?GetGain@TMSCallProxy@TMS@@QAEHAAI@Z @ 2 NONAME ; int TMS::TMSCallProxy::GetGain(unsigned int &) + ?SetPlc@TMSCallProxy@TMS@@QAEHHH@Z @ 3 NONAME ; int TMS::TMSCallProxy::SetPlc(int, int) + ??1TMSCallProxy@TMS@@UAE@XZ @ 4 NONAME ; TMS::TMSCallProxy::~TMSCallProxy(void) + ?SetCNG@TMSCallProxy@TMS@@QAEHHH@Z @ 5 NONAME ; int TMS::TMSCallProxy::SetCNG(int, int) + ?GetMaxGain@TMSCallProxy@TMS@@QAEHAAI@Z @ 6 NONAME ; int TMS::TMSCallProxy::GetMaxGain(unsigned int &) + ?BufferFilled@TMSCallProxy@TMS@@QAEHHHHAAVTMSBuffer@2@@Z @ 7 NONAME ; int TMS::TMSCallProxy::BufferFilled(int, int, int, class TMS::TMSBuffer &) + ?CreateCall@TMSCallProxy@TMS@@QAEHH@Z @ 8 NONAME ; int TMS::TMSCallProxy::CreateCall(int) + ?CreateStream@TMSCallProxy@TMS@@QAEHHHAAH@Z @ 9 NONAME ; int TMS::TMSCallProxy::CreateStream(int, int, int &) + ?SetVADMode@TMSCallProxy@TMS@@QAEHHH@Z @ 10 NONAME ; int TMS::TMSCallProxy::SetVADMode(int, int) + ?GetSupportedBitRates@TMSCallProxy@TMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 11 NONAME ; int TMS::TMSCallProxy::GetSupportedBitRates(class std::vector > &) + ?InitStream@TMSCallProxy@TMS@@QAEHHHHHPAVRHandleBase@@H@Z @ 12 NONAME ; int TMS::TMSCallProxy::InitStream(int, int, int, int, class RHandleBase *, int) + ?GetDataXferChunkHandle@TMSCallProxy@TMS@@QAEHHHHI@Z @ 13 NONAME ; int TMS::TMSCallProxy::GetDataXferChunkHandle(int, int, int, unsigned int) + ?Close@TMSCallProxy@TMS@@QAEXXZ @ 14 NONAME ; void TMS::TMSCallProxy::Close(void) + ?DeleteCall@TMSCallProxy@TMS@@QAEXXZ @ 15 NONAME ; void TMS::TMSCallProxy::DeleteCall(void) + ?GetCNG@TMSCallProxy@TMS@@QAEHHAAH@Z @ 16 NONAME ; int TMS::TMSCallProxy::GetCNG(int, int &) + ?StartStream@TMSCallProxy@TMS@@QAEHHHHH@Z @ 17 NONAME ; int TMS::TMSCallProxy::StartStream(int, int, int, int) + ?GetMaxVolume@TMSCallProxy@TMS@@QAEHAAI@Z @ 18 NONAME ; int TMS::TMSCallProxy::GetMaxVolume(unsigned int &) + ??0TMSCallProxy@TMS@@QAE@XZ @ 19 NONAME ; TMS::TMSCallProxy::TMSCallProxy(void) + ?DeleteStream@TMSCallProxy@TMS@@QAEHHHAAH@Z @ 20 NONAME ; int TMS::TMSCallProxy::DeleteStream(int, int, int &) + ?BufferEmptied@TMSCallProxy@TMS@@QAEHHHHAAVTMSBuffer@2@@Z @ 21 NONAME ; int TMS::TMSCallProxy::BufferEmptied(int, int, int, class TMS::TMSBuffer &) + ?GetVADMode@TMSCallProxy@TMS@@QAEHHAAH@Z @ 22 NONAME ; int TMS::TMSCallProxy::GetVADMode(int, int &) + ?Connect@TMSCallProxy@TMS@@QAEHXZ @ 23 NONAME ; int TMS::TMSCallProxy::Connect(void) + ?PauseStream@TMSCallProxy@TMS@@QAEHHHH@Z @ 24 NONAME ; int TMS::TMSCallProxy::PauseStream(int, int, int) + ?GetBitRate@TMSCallProxy@TMS@@QAEHAAI@Z @ 25 NONAME ; int TMS::TMSCallProxy::GetBitRate(unsigned int &) + ?SetFormatCodecMode@TMSCallProxy@TMS@@QAEHHHH@Z @ 26 NONAME ; int TMS::TMSCallProxy::SetFormatCodecMode(int, int, int) + ?SetGain@TMSCallProxy@TMS@@QAEHI@Z @ 27 NONAME ; int TMS::TMSCallProxy::SetGain(unsigned int) + ?SetBitRate@TMSCallProxy@TMS@@QAEHI@Z @ 28 NONAME ; int TMS::TMSCallProxy::SetBitRate(unsigned int) + ?GetPlc@TMSCallProxy@TMS@@QAEHHAAH@Z @ 29 NONAME ; int TMS::TMSCallProxy::GetPlc(int, int &) + ?StopStream@TMSCallProxy@TMS@@QAEHHHH@Z @ 30 NONAME ; int TMS::TMSCallProxy::StopStream(int, int, int) + ?DeinitStream@TMSCallProxy@TMS@@QAEHHHH@Z @ 31 NONAME ; int TMS::TMSCallProxy::DeinitStream(int, int, int) ?GetFormatCodecMode@TMSCallProxy@TMS@@QAEHHHAAH@Z @ 32 NONAME ; int TMS::TMSCallProxy::GetFormatCodecMode(int, int, int &) - ?DeinitStream@TMSCallProxy@TMS@@QAEHHHH@Z @ 33 NONAME ; int TMS::TMSCallProxy::DeinitStream(int, int, int) + ?SetVolume@TMSCallProxy@TMS@@QAEHI@Z @ 33 NONAME ; int TMS::TMSCallProxy::SetVolume(unsigned int) diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallproxy/eabi/tmscallproxy.def --- a/mmserv/tms/tmscallproxy/eabi/tmscallproxy.def Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallproxy/eabi/tmscallproxy.def Fri May 28 19:26:28 2010 -0500 @@ -4,12 +4,12 @@ _ZN3TMS12TMSCallProxy10GetBitRateERj @ 3 NONAME _ZN3TMS12TMSCallProxy10GetMaxGainERj @ 4 NONAME _ZN3TMS12TMSCallProxy10GetVADModeEiRi @ 5 NONAME - _ZN3TMS12TMSCallProxy10InitStreamEiiiiP11RHandleBase @ 6 NONAME + _ZN3TMS12TMSCallProxy10InitStreamEiiiiP11RHandleBasei @ 6 NONAME _ZN3TMS12TMSCallProxy10SetBitRateEj @ 7 NONAME _ZN3TMS12TMSCallProxy10SetVADModeEii @ 8 NONAME _ZN3TMS12TMSCallProxy10StopStreamEiii @ 9 NONAME _ZN3TMS12TMSCallProxy11PauseStreamEiii @ 10 NONAME - _ZN3TMS12TMSCallProxy11StartStreamEiii @ 11 NONAME + _ZN3TMS12TMSCallProxy11StartStreamEiiii @ 11 NONAME _ZN3TMS12TMSCallProxy12BufferFilledEiiiRNS_9TMSBufferE @ 12 NONAME _ZN3TMS12TMSCallProxy12CreateStreamEiiRi @ 13 NONAME _ZN3TMS12TMSCallProxy12DeinitStreamEiii @ 14 NONAME diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallproxy/src/tmscallproxy.cpp --- a/mmserv/tms/tmscallproxy/src/tmscallproxy.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallproxy/src/tmscallproxy.cpp Fri May 28 19:26:28 2010 -0500 @@ -119,7 +119,8 @@ // EXPORT_C gint TMSCallProxy::InitStream(const TMSCallType callType, const TMSStreamType strmType, gint strmId, - const TMSFormatType frmtType, RHandleBase* msgQueue) + const TMSFormatType frmtType, RHandleBase* msgQueue, + const gint retrytime) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -128,6 +129,7 @@ inPckg().StreamType = strmType; inPckg().StreamId = strmId; inPckg().FormatType = frmtType; + inPckg().RetryTime = retrytime; status = RSessionBase::SendReceive(TMS_INIT_STREAM, TIpcArgs(&inPckg, *msgQueue)); TRACE_PRN_FN_EXT; @@ -140,7 +142,7 @@ // ----------------------------------------------------------------------------- // EXPORT_C gint TMSCallProxy::StartStream(const TMSCallType callType, - const TMSStreamType strmType, gint strmId) + const TMSStreamType strmType, gint strmId, const gint retrytime) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -148,6 +150,7 @@ inPckg().CallType = callType; inPckg().StreamType = strmType; inPckg().StreamId = strmId; + inPckg().RetryTime = retrytime; status = RSessionBase::SendReceive(TMS_START_STREAM, TIpcArgs(&inPckg)); TRACE_PRN_FN_EXT; return TMSRESULT(status); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmscalladpt.h --- a/mmserv/tms/tmscallserver/inc/tmscalladpt.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmscalladpt.h Fri May 28 19:26:28 2010 -0500 @@ -31,24 +31,28 @@ virtual ~TMSCallAdpt(); // From TMSStream - virtual gint CreateStream(TMSCallType callType, - TMSStreamType strmType, gint& outStrmId) = 0; - virtual gint InitStream(TMSCallType callType, TMSStreamType strmType, - gint strmId, TMSFormatType frmtType, const RMessage2& aMessage) = 0; - virtual gint StartStream(TMSCallType callType, - TMSStreamType strmType, gint strmId) = 0; - virtual gint PauseStream(TMSCallType callType, - TMSStreamType strmType, gint strmId) = 0; - virtual gint StopStream(TMSCallType callType, TMSStreamType strmType, - gint strmId) = 0; - virtual gint DeinitStream(TMSCallType callType, - TMSStreamType strmType, gint strmId) = 0; - virtual gint DeleteStream(TMSCallType callType, - TMSStreamType strmType, gint strmId) = 0; - virtual gint DataXferBufferEmptied(TMSCallType callType, - TMSStreamType strmType, gint strmId) = 0; - virtual gint DataXferBufferFilled(TMSCallType callType, - TMSStreamType strmType, gint strmId, guint datasize) = 0; + virtual gint CreateStream(const TMSCallType callType, + const TMSStreamType strmType, gint& outStrmId) = 0; + virtual gint InitStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const TMSFormatType frmtType, const gint retrytime, + const RMessage2& aMessage) = 0; + virtual gint StartStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const gint retrytime) = 0; + virtual gint PauseStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId) = 0; + virtual gint StopStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId) = 0; + virtual gint DeinitStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId) = 0; + virtual gint DeleteStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId) = 0; + virtual gint DataXferBufferEmptied(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId) = 0; + virtual gint DataXferBufferFilled(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const guint datasize) = 0; virtual gint GetDataXferBufferHndl(const TMSCallType callType, const TMSStreamType strmType, const gint strmId, const guint32 key, RChunk& chunk) = 0; @@ -84,20 +88,19 @@ virtual gint SetPlc(const TMSFormatType fmttype, const gboolean plc) = 0; // From TMS routing - virtual gint SetOutput(TMSAudioOutput output) = 0; + virtual gint SetOutput(const TMSAudioOutput output) = 0; virtual gint GetOutput(TMSAudioOutput& output) = 0; virtual gint GetPreviousOutput(TMSAudioOutput& output) = 0; - virtual gint GetAvailableOutputsL(gint& count, - CBufFlat*& outputsbuffer) = 0; + virtual gint GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuf) = 0; // From TMSDTMF - virtual gint StartDTMF(TMSStreamType streamtype, TDes& dtmfstring) = 0; - virtual gint StopDTMF(TMSStreamType streamtype) = 0; - virtual gint ContinueDTMF(TBool continuesending) = 0; + virtual gint StartDTMF(const TMSStreamType streamtype, TDes& dtmfstr) = 0; + virtual gint StopDTMF(const TMSStreamType streamtype) = 0; + virtual gint ContinueDTMF(const gboolean sending) = 0; protected: TMSCallAdpt(); - virtual gint PostConstruct(); + virtual gint PostConstruct() = 0; protected: gint iGlobalVol; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmscallcsadpt.h --- a/mmserv/tms/tmscallserver/inc/tmscallcsadpt.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmscallcsadpt.h Fri May 28 19:26:28 2010 -0500 @@ -18,6 +18,7 @@ #ifndef CALLCSADPT_H #define CALLCSADPT_H +// INCLUDES #include #include #include @@ -40,37 +41,42 @@ class TMSDtmfNotifier; /* - * CallCSAdapt class + * TMSCallCSAdpt class */ class TMSCallCSAdpt : public TMSCallAdpt, - public TMSCSPDevSoundObserver, + public TMSCSDevSoundObserver, public MTelephonyAudioRoutingObserver, public TMSDTMFTonePlayerObserver, public TMSDTMFObserver { public: - TMSCallCSAdpt(); + static TMSCallCSAdpt* NewL(); virtual ~TMSCallCSAdpt(); virtual gint PostConstruct(); - virtual gint CreateStream(TMSCallType callType, TMSStreamType strmType, - gint& outStrmId); - virtual gint InitStream(TMSCallType callType, TMSStreamType strmType, - gint strmId, TMSFormatType frmtType, const RMessage2& message); - virtual gint StartStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint PauseStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint StopStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint DeinitStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint DeleteStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint DataXferBufferEmptied(TMSCallType callType, - TMSStreamType strmType, gint strmId); - virtual gint DataXferBufferFilled(TMSCallType callType, - TMSStreamType strmType, gint strmId, guint datasize); + // From TMSStream + virtual gint CreateStream(const TMSCallType callType, + const TMSStreamType strmType, gint& outStrmId); + virtual gint InitStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const TMSFormatType frmtType, const gint retryTime, + const RMessage2& message); + virtual gint StartStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const gint retrytime); + virtual gint PauseStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint StopStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DeinitStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DeleteStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DataXferBufferEmptied(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DataXferBufferFilled(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const guint datasize); virtual gint GetDataXferBufferHndl(const TMSCallType callType, const TMSStreamType strmType, const gint strmId, const guint32 key, RChunk& chunk); @@ -106,45 +112,47 @@ virtual gint SetPlc(const TMSFormatType fmttype, const gboolean plc); // From TMS audio routing - virtual gint SetOutput(TMSAudioOutput output); + virtual gint SetOutput(const TMSAudioOutput output); virtual gint GetOutput(TMSAudioOutput& output); virtual gint GetPreviousOutput(TMSAudioOutput& output); - virtual gint GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuffer); - + virtual gint GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuf); + // From TMSDTMF - virtual gint StartDTMF(TMSStreamType streamtype, TDes& dtmfstring); - virtual gint StopDTMF(TMSStreamType streamtype); - virtual gint ContinueDTMF(TBool continuesending); + virtual gint StartDTMF(const TMSStreamType streamtype, TDes& dtmfstr); + virtual gint StopDTMF(const TMSStreamType streamtype); + virtual gint ContinueDTMF(const gboolean sending); - //From TMSCSPDevSoundObserver - void DownlinkInitCompleted(TInt status); - void UplinkInitCompleted(TInt status); - void UplinkActivatedSuccessfully(); - void DownlinkActivatedSuccessfully(); - void UplinkActivationFailed(); - void DownlinkActivationFailed(); + //From TMSCSDevSoundObserver + void DownlinkInitCompleted(gint status); + void UplinkInitCompleted(gint status); + void DownlinkActivationCompleted(gint status); + void UplinkActivationCompleted(gint status); - //From DTMFTonePlayerObserver - void DTMFInitCompleted(TInt error); - void DTMFToneFinished(TInt error); + //From TMSDTMFTonePlayerObserver + void DTMFInitCompleted(gint status); + void DTMFToneFinished(gint status); //From TMSDTMFObserver - void HandleDTMFEvent(const TMSDTMFObserver::TCCPDtmfEvent aEvent, - const TInt aError, const TChar aTone); + void HandleDTMFEvent(const TMSDTMFObserver::TCCPDtmfEvent event, + const gint status, const TChar tone); private: + TMSCallCSAdpt(); + void ConstructL(); + + gint InitUplink(const gint retrytime); + gint InitDownlink(const gint retrytime); void AvailableOutputsChanged( CTelephonyAudioRouting& aTelephonyAudioRouting); void OutputChanged(CTelephonyAudioRouting& aTelephonyAudioRouting); void SetOutputComplete(CTelephonyAudioRouting& aTelephonyAudioRouting, - gint aError); + gint status); void GetSupportedBitRatesL(CBufFlat*& brbuffer); void NotifyClient(const gint strmId, const gint command, const gint status = KErrNone, const gint64 int64 = TInt64(0)); private: gint iNextStreamId; - TMSCSUplink* iCSUplink; TMSCSDownlink* iCSDownlink; CTelephonyAudioRouting* iRouting; @@ -152,8 +160,8 @@ TMSAudioDtmfTonePlayer* iDTMFDnlinkPlayer; TMSDtmfNotifier* iDTMFNotifier; TMSDTMFProvider* iDTMFUplinkPlayer; - TMSStreamType iStrmtype; + // Message queues for communication and data transfer back to the client RMsgQueue iMsgQueueUp; RMsgQueue iMsgQueueDn; TmsMsgBuf iMsgBuffer; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmscallipadpt.h --- a/mmserv/tms/tmscallserver/inc/tmscallipadpt.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmscallipadpt.h Fri May 28 19:26:28 2010 -0500 @@ -15,8 +15,8 @@ * */ -#ifndef __CALLIPADAPT_H -#define __CALLIPADAPT_H +#ifndef CALLIPADAPT_H +#define CALLIPADAPT_H // INCLUDES #include @@ -24,6 +24,7 @@ #include "tmsclientserver.h" #include "tmsshared.h" #include "tmscalladpt.h" +#include "tmsipcallstream.h" #include "tmsdtmftoneplayer.h" #include "tmsdtmfnotifier.h" @@ -33,35 +34,41 @@ class TMSIPDownlink; class TMSIPUplink; -// TMSCallIPAdpt class +/* + * TMSCallIPAdpt class + */ class TMSCallIPAdpt : public TMSCallAdpt, + public TMSIPDevSoundObserver, public TMSDTMFTonePlayerObserver { public: - // Constractor static TMSCallIPAdpt* NewL(); virtual ~TMSCallIPAdpt(); virtual gint PostConstruct(); // From TMSStream - virtual gint CreateStream(TMSCallType callType, TMSStreamType strmType, - gint& outStrmId); - virtual gint InitStream(TMSCallType callType, TMSStreamType strmType, - gint strmId, TMSFormatType frmtType, const RMessage2& message); - virtual gint StartStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint PauseStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint StopStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint DeinitStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint DeleteStream(TMSCallType callType, TMSStreamType strmType, - gint strmId); - virtual gint DataXferBufferEmptied(TMSCallType callType, - TMSStreamType strmType, gint strmId); - virtual gint DataXferBufferFilled(TMSCallType callType, - TMSStreamType strmType, gint strmId, guint datasize); + virtual gint CreateStream(const TMSCallType callType, + const TMSStreamType strmType, gint& outStrmId); + virtual gint InitStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const TMSFormatType frmtType, const gint retryTime, + const RMessage2& message); + virtual gint StartStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const gint retrytime); + virtual gint PauseStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint StopStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DeinitStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DeleteStream(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DataXferBufferEmptied(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId); + virtual gint DataXferBufferFilled(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const guint datasize); virtual gint GetDataXferBufferHndl(const TMSCallType callType, const TMSStreamType strmType, const gint strmId, const guint32 key, RChunk& chunk); @@ -96,16 +103,16 @@ virtual gint GetPlc(const TMSFormatType fmttype, gboolean& plc); virtual gint SetPlc(const TMSFormatType fmttype, const gboolean plc); - // From TMS audio output - virtual gint SetOutput(TMSAudioOutput output); + // From TMS audio routing + virtual gint SetOutput(const TMSAudioOutput output); virtual gint GetOutput(TMSAudioOutput& output); virtual gint GetPreviousOutput(TMSAudioOutput& output); - virtual gint GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuffer); + virtual gint GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuf); - // From TMSDTMF - virtual gint StartDTMF(TMSStreamType streamtype, TDes& dtmfstring); - virtual gint StopDTMF(TMSStreamType streamtype); - virtual gint ContinueDTMF(gboolean continuesending); + // From TMSDTMF + virtual gint StartDTMF(const TMSStreamType streamtype, TDes& dtmfstr); + virtual gint StopDTMF(const TMSStreamType streamtype); + virtual gint ContinueDTMF(const gboolean sending); // From TMS codec formats gint SetIlbcCodecMode(const gint mode, const TMSStreamType strmtype); @@ -118,8 +125,6 @@ gint ConcealErrorForNextBuffer(); gint BadLsfNextBuffer(); - gint OpenDownlinkL(const RMessage2& message); - gint OpenUplinkL(const RMessage2& message); void SetFormat(const gint strmId, const guint32 aFormat); void BufferFilledL(guint dataSize); @@ -127,34 +132,45 @@ gint GetDataXferChunkHndl(const TMSStreamType strmType, const guint32 key, RChunk& chunk); - //From DTMFTonePlayerObserver - void DTMFInitCompleted(gint error); - void DTMFToneFinished(gint error); + //From TMSIPDevSoundObserver + void DownlinkInitCompleted(gint status); + void UplinkInitCompleted(gint status); + void DownlinkStarted(gint status); + void UplinkStarted(gint status); + + //From TMSDTMFTonePlayerObserver + void DTMFInitCompleted(gint status); + void DTMFToneFinished(gint status); private: + TMSCallIPAdpt(); void ConstructL(); - TMSCallIPAdpt(); + + gint OpenDownlink(const RMessage2& message, const gint retrytime); + gint OpenUplink(const RMessage2& message, const gint retrytime); gint InitDTMF(TMSStreamType strmtype); - void NotifyClient(const gint strmId, const gint aCommand, - const gint aStatus = KErrNone, const gint64 aInt64 = gint64(0)); void GetSupportedBitRatesL(CBufFlat*& brbuffer); + void NotifyClient(const gint strmId, const gint command, + const gint status = KErrNone, const gint64 int64 = TInt64(0)); private: gint iNextStreamId; + TMSIPUplink* iIPUplink; + TMSIPDownlink* iIPDownlink; + TMSAudioDtmfTonePlayer* iDTMFDnlinkPlayer; + TMSDtmfNotifier* iDTMFNotifier; + TMSAudioDtmfTonePlayer* iDTMFUplinkPlayer; + // Message queues for communication and data transfer back to the client + RMsgQueue iMsgQueueUp; + RMsgQueue iMsgQueueDn; + TmsMsgBuf iMsgBuffer; + gboolean iUplinkInitialized; gint iUplinkStreamId; gboolean iDnlinkInitialized; gint iDnlinkStreamId; - TMSIPDownlink* iIPDownlink; - TMSIPUplink* iIPUplink; - - // Message queues for communication and data transfer back to the client - RMsgQueue iMsgQueueUp; - RMsgQueue iMsgQueueDn; - - TmsMsgBuf iMsgBuffer; TMMFPrioritySettings iPriority; guint32 iUpFourCC; guint32 iDnFourCC; @@ -163,14 +179,10 @@ RArray iArrBitrates; RArray iCodecs; gint iCodecsCount; - - TMSAudioDtmfTonePlayer* iDTMFDnlinkPlayer; - TMSAudioDtmfTonePlayer* iDTMFUplinkPlayer; - TMSDtmfNotifier* iDTMFNotifier; }; } //namespace TMS -#endif //__CALLIPADAPT_H +#endif //CALLIPADPT_H // End of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmscsdevsound.h --- a/mmserv/tms/tmscallserver/inc/tmscsdevsound.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmscsdevsound.h Fri May 28 19:26:28 2010 -0500 @@ -19,58 +19,50 @@ #define TMSCSDEVSOUND_H #include +#include "tmstimer.h" namespace TMS { -class TMSCSPDevSoundObserver; +// FORWARD DECLARATIONS +class TMSTimer; +class TMSCSDevSoundObserver; /** * Wrapper for CMMFDevSound * */ -NONSHARABLE_CLASS(TMSCSPDevSound) : public CBase, - public MDevSoundObserver +NONSHARABLE_CLASS(TMSCSDevSound) : public CBase, + public MDevSoundObserver, + public TMSTimerObserver { public: /** * Destructor. */ - virtual ~TMSCSPDevSound(); - - /** - * Activates the dev sound stream. TMSCSPDevSoundObserver methods are called - * when activation goes ok or fails. If the stream is already active or - * activating then nothing is done. - */ - virtual void Activate(); - - /** - * Deactivates the devsound stream. If stream is not active or - * activation is not ongoing then nothing is done. - */ - virtual void Deactivate(); + virtual ~TMSCSDevSound(); /** - * Indicates that activation is ongoing, - * but the result of the activation is still unknown. - * @return ETrue - activation ongoing, EFalse - activation not ongoing. + * Activates the DevSound stream. + * Stream activation status is indicated by TMSCSDevSoundObserver callback + * methods. If the stream is already active or being activated, call to + * this will result in no action. */ - TBool IsActivationOngoing() const; + virtual void Activate(const gint retrytime); /** - * Determines wether the devsound stream is active or not. - * @return ETrue - Stream is active, EFalse - Stream not active. + * Deactivates an active DevSound stream. */ - TBool IsActive() const; + virtual void Deactivate(gboolean reset = TRUE); + /* + * Returns DevSound instance associated with the stream. + */ CMMFDevSound& DevSound(); - // from base class MDevSoundObserver - /** * From MDevSoundObserver - * Empty implementation + * Indicates DevSound initialization status. */ void InitializeComplete(TInt aError); @@ -78,50 +70,58 @@ * From MDevSoundObserver * Empty implementation */ - void BufferToBeFilled(CMMFBuffer* aBuffer); + void BufferToBeFilled(CMMFBuffer* /*aBuffer*/) {} /** * From MDevSoundObserver * Empty implementation */ - void PlayError(TInt aError); + void PlayError(TInt /*aError*/) {} /** * From MDevSoundObserver * Empty implementation */ - void ToneFinished(TInt aError); + void ToneFinished(TInt /*aError*/) {} + + /** + * From MDevSoundObserver + * Empty implementation + */ + void BufferToBeEmptied(CMMFBuffer* /*aBuffer*/) {} /** * From MDevSoundObserver * Empty implementation */ - void BufferToBeEmptied(CMMFBuffer* aBuffer); + void RecordError(TInt /*aError*/) {} /** * From MDevSoundObserver * Empty implementation */ - void RecordError(TInt aError); + void ConvertError(TInt /*aError*/) {} /** * From MDevSoundObserver * Empty implementation */ - void ConvertError(TInt aError); + void DeviceMessage(TUid /*aMessageType*/, const TDesC8& /*aMsg*/) {} - /** - * From MDevSoundObserver - * Empty implementation + /* + * From TMSTimerObserver. + * Called upon timer timeout event. */ - void DeviceMessage(TUid aMessageType, const TDesC8& aMsg); + void TimerEvent(); protected: - TMSCSPDevSound(TMSCSPDevSoundObserver& aObserver); - - void ConstructL(TMMFState aMode, gint aAudioPreference, - gint aAudioPriority); + TMSCSDevSound(TMSCSDevSoundObserver& observer); + void ConstructL(const TMSStreamType strmtype, const gint retrytime); + void InitializeL(); + void NotifyEvent(gint error); + void StartTimer(); + void CancelTimer(); private: @@ -132,31 +132,40 @@ protected: - TUint iStreamType; - /** - * Indication if device is activated. Derived class has to update this. + * Indication of DevSound activated state. TRUE == stream activated. + * Derived class has to update this. */ - TBool iActive; + gboolean iActive; /** - * Indication if activation is ongoing. + * Indication of an ongoing DevSound activation. * Derived class has to update this. */ - TBool iActivationOngoing; + gboolean iActivationOngoing; /** - * Devsound instance - * Own. + * Devsound instance associated with the stream. */ CMMFDevSound* iDevSound; /** - * Observer for successfull activation. - * Not own. + * An observer subscribing to TMSCSDevSound notifications. */ - TMSCSPDevSoundObserver& iObserver; + TMSCSDevSoundObserver& iObserver; + + TMSStreamType iStreamType; + gint iPreference; + gint iPriority; + TMMFState iMode; + /* + * For retry timer + */ + gint iInitRetryTime; + gint iStartRetryTime; + TMSTimer* iTimer; + gint iTimeout; }; } //namespace TMS diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmscsdevsoundobserver.h --- a/mmserv/tms/tmscallserver/inc/tmscsdevsoundobserver.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmscsdevsoundobserver.h Fri May 28 19:26:28 2010 -0500 @@ -21,39 +21,16 @@ namespace TMS { /** - * Observer interface for knowing when audio streams have been - * successfully ramped up. - * + * TMSCSDevSoundObserver + * An observer interface providing TMSCSDevSound event notifications. */ -class TMSCSPDevSoundObserver +class TMSCSDevSoundObserver { public: - virtual void DownlinkInitCompleted(TInt status) = 0; - virtual void UplinkInitCompleted(TInt status) = 0; - - /** - * Notification that Mic has been activated successfully - * - */ - virtual void UplinkActivatedSuccessfully() = 0; - - /** - * Notification that speaker has been activated successfully - * - */ - virtual void DownlinkActivatedSuccessfully() = 0; - - /** - * Notification that Mic initialisation failed. - * - */ - virtual void UplinkActivationFailed() = 0; - - /** - * Notification that Speaker activation failed. - * - */ - virtual void DownlinkActivationFailed() = 0; + virtual void DownlinkInitCompleted(gint status) = 0; + virtual void UplinkInitCompleted(gint status) = 0; + virtual void UplinkActivationCompleted(gint status) = 0; + virtual void DownlinkActivationCompleted(gint status) = 0; }; } //namespace TMS diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmscsdownlink.h --- a/mmserv/tms/tmscallserver/inc/tmscsdownlink.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmscsdownlink.h Fri May 28 19:26:28 2010 -0500 @@ -23,26 +23,24 @@ namespace TMS { -// -class TMSCSPDevSoundObserver; - /** - * Provides Downlink functionality. + * Provides Downlink stream functionality. * */ -NONSHARABLE_CLASS(TMSCSDownlink) : public TMSCSPDevSound +NONSHARABLE_CLASS(TMSCSDownlink) : public TMSCSDevSound { public: - static TMSCSDownlink* NewL(TMSCSPDevSoundObserver& aObserver); + static TMSCSDownlink* NewL(TMSCSDevSoundObserver& observer, + const gint retrytime); virtual ~TMSCSDownlink(); /** * Sets volume. - * @param aVolume Volume. + * @param volume Volume. */ - void SetVolume(gint aVolume); + void SetVolume(gint volume); /** * Gets volume. @@ -60,31 +58,29 @@ /** * From MDevSoundObserver. - * Indication from devsound that stream (Downlink) has been activated + * Indication from the devsound that Downlink has been activated * successfully. */ void BufferToBeFilled(CMMFBuffer* /*aBuffer*/); /** * From MDevSoundObserver. - * Indication from devsound that activation of stream( Downlink) - * failed. + * Indication from devsound that Downlink activation has failed. */ void PlayError(TInt aErrorCode); private: /** - * From CSPDevSound. + * From TMSCSDevSound. * Tries to activate the mic stream. */ void DoActivateL(); protected: - TMSCSDownlink(TMSCSPDevSoundObserver& aObserver); - - void ConstructL(); + TMSCSDownlink(TMSCSDevSoundObserver& observer); + void ConstructL(const gint retrytime); }; } //namespace TMS diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmscsuplink.h --- a/mmserv/tms/tmscallserver/inc/tmscsuplink.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmscsuplink.h Fri May 28 19:26:28 2010 -0500 @@ -24,14 +24,15 @@ namespace TMS { /** - * Provides uplink functionality. + * Provides Uplink stream functionality. * */ -NONSHARABLE_CLASS(TMSCSUplink) : public TMSCSPDevSound +NONSHARABLE_CLASS(TMSCSUplink) : public TMSCSDevSound { public: - static TMSCSUplink* NewL(TMSCSPDevSoundObserver& aObserver); + static TMSCSUplink* NewL(TMSCSDevSoundObserver& observer, + const gint retrytime); virtual ~TMSCSUplink(); @@ -40,22 +41,12 @@ * * @return ETrue - mic is muted, EFalse - mic is not muted. */ - TBool IsMuted(); - - /** - * Set mic muted. - */ - void SetMuted(); - - /** - * Set mic unmuted. - */ - void SetUnmuted(); + gboolean IsMuted(); /** * Set mic gain. */ - void SetGain(gint aGain); + void SetGain(gint gain); /** * Get mic muted. @@ -70,33 +61,30 @@ // from base class MDevSoundObserver /** - * From MDevSoundObserver - * Notification from Devsound that stream (mic) is - * activated successfully. + * From MDevSoundObserver. + * Indication from the devsound that Uplink has been activated + * successfully. */ void BufferToBeEmptied(CMMFBuffer* aBuffer); /** * From MDevSoundObserver - * Notification from devsound that downstream(mic) activation - * feiled. + * Indication from devsound that Uplink activation has failed. */ void RecordError(TInt aError); private: - // from base class MCSPDevSound - /** - * From MCSPDevSound. + * From TMSCSDevSound. * Tries to activate the mic stream. */ void DoActivateL(); protected: - TMSCSUplink(TMSCSPDevSoundObserver& aObserver); - void ConstructL(); + TMSCSUplink(TMSCSDevSoundObserver& aObserver); + void ConstructL(const gint retrytime); }; } //namespace TMS diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmsdtmfobserver.h --- a/mmserv/tms/tmscallserver/inc/tmsdtmfobserver.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmsdtmfobserver.h Fri May 28 19:26:28 2010 -0500 @@ -63,13 +63,13 @@ /** * HandleDTMFEvents. - * @param aEvent Event type - * @param aError Error code - * @param aTone Character + * @param event Event type + * @param status Error code + * @param tone Character * @return none */ - virtual void HandleDTMFEvent(const TMSDTMFObserver::TCCPDtmfEvent aEvent, - const TInt aError, const TChar aTone) /*const*/ = 0; + virtual void HandleDTMFEvent(const TMSDTMFObserver::TCCPDtmfEvent event, + const gint status, const TChar tone) /*const*/ = 0; }; } //namespace TMS diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmsdtmftoneplayerobserver.h --- a/mmserv/tms/tmscallserver/inc/tmsdtmftoneplayerobserver.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmsdtmftoneplayerobserver.h Fri May 28 19:26:28 2010 -0500 @@ -18,6 +18,8 @@ #ifndef DTMFTONEPLAYEROBSERVER_H #define DTMFTONEPLAYEROBSERVER_H +#include + namespace TMS { /** @@ -26,8 +28,8 @@ class TMSDTMFTonePlayerObserver { public: - virtual void DTMFInitCompleted(TInt error) = 0; - virtual void DTMFToneFinished(TInt error) = 0; + virtual void DTMFInitCompleted(gint status) = 0; + virtual void DTMFToneFinished(gint status) = 0; }; } //namespace TMS diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/inc/tmsipcallstream.h --- a/mmserv/tms/tmscallserver/inc/tmsipcallstream.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/inc/tmsipcallstream.h Fri May 28 19:26:28 2010 -0500 @@ -56,6 +56,19 @@ namespace TMS { +/** + * TMSIPDevSoundObserver + * An observer interface providing TMSIPCallStreamBase event notifications. + */ +class TMSIPDevSoundObserver + { +public: + virtual void DownlinkInitCompleted(gint status) = 0; + virtual void UplinkInitCompleted(gint status) = 0; + virtual void UplinkStarted(gint status) = 0; + virtual void DownlinkStarted(gint status) = 0; + }; + // ----------------------------------------------------------------------------- // Class Name: TMSIPCallStreamBase // @@ -78,7 +91,7 @@ public: virtual ~TMSIPCallStreamBase(); - virtual void Start() = 0; + virtual void Start(const gint retrytime) = 0; virtual void Stop() = 0; virtual gint SetCodecCi() = 0; @@ -91,6 +104,8 @@ gint ConfigureMedia(const guint32 aCodecID); protected: + TMSIPCallStreamBase(TMSIPDevSoundObserver& observer); + #ifndef __USE_GSTREAMER__ // From MDevSoundObserver virtual void InitializeComplete(TInt aError) = 0; @@ -105,7 +120,7 @@ #endif //__USE_GSTREAMER__ protected: - + TMSIPDevSoundObserver& iObserver; CActiveScheduler* iActiveScheduler; TStreamState iStatus; @@ -145,14 +160,13 @@ static void cb_raw_playback_handoff(GstElement* appsrc, guint size); static gboolean bus_call(GstBus* bus, GstMessage* msg, gpointer data); #endif //__USE_GSTREAMER__ - static TMSIPDownlink* NewL(const guint32 codecID, - const TMMFPrioritySettings priority); - TMSIPDownlink(); - void ConstructL(const guint32 codecID, - const TMMFPrioritySettings priority); + + static TMSIPDownlink* NewL(TMSIPDevSoundObserver& observer, + const guint32 codecID, const TMMFPrioritySettings priority, + const gint retrytime); gint SetCodecCi(); - void Start(); + void Start(const gint retrytime); void Stop(); void BufferFilled(const guint buflen); gint SetVolume(const guint volume); @@ -178,6 +192,11 @@ void SetAudioDeviceL(TMSAudioOutput output); void GetAudioDeviceL(TMSAudioOutput& output); +protected: + TMSIPDownlink(TMSIPDevSoundObserver& observer); + void ConstructL(const guint32 codecID, + const TMMFPrioritySettings priority, const gint retrytime); + private: void SetCodecCiL(); @@ -214,9 +233,6 @@ GstElement* iSink; GstBus* iBusPlay; #endif //__USE_GSTREAMER__ -#ifdef _DEBUG - gint iSamplesPlayedCount; -#endif #ifdef __PLAY_WAV_FROM_FILE__ RFile iFile; @@ -242,14 +258,13 @@ static void cb_record_raw_handoff(GstElement *sink); static gboolean bus_call(GstBus* bus, GstMessage* msg, gpointer data); #endif //__USE_GSTREAMER__ - static TMSIPUplink* NewL(const guint32 codecID, - const TMMFPrioritySettings priority); - TMSIPUplink(); - void ConstructL(const guint32 codecID, - const TMMFPrioritySettings priority); + + static TMSIPUplink* NewL(TMSIPDevSoundObserver& observer, + const guint32 codecID, const TMMFPrioritySettings priority, + const gint retrytime); gint SetCodecCi(); - void Start(); + void Start(const gint retrytime); void Stop(); void BufferEmptied(); gint SetGain(const guint gain); @@ -268,6 +283,11 @@ gint SetVad(const TMSFormatType fmttype, const gboolean vad); gint GetVad(const TMSFormatType fmttype, gboolean& vad); +protected: + TMSIPUplink(TMSIPDevSoundObserver& observer); + void ConstructL(const guint32 codecID, + const TMMFPrioritySettings priority, const gint retrytime); + private: void SetCodecCiL(); @@ -300,9 +320,6 @@ GstElement* iAppSink; GstBus* iBusRec; #endif //__USE_GSTREAMER__ -#ifdef _DEBUG - gint iSamplesRecCount; -#endif }; } //namespace TMS diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmscalladpt.cpp --- a/mmserv/tms/tmscallserver/src/tmscalladpt.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmscalladpt.cpp Fri May 28 19:26:28 2010 -0500 @@ -73,7 +73,7 @@ case TMS_CALL_CS: retVal = TMS_RESULT_INSUFFICIENT_MEMORY; - self = new TMSCallCSAdpt(); + self = TMSCallCSAdpt::NewL(); if (self) { retVal = self->PostConstruct(); @@ -93,14 +93,4 @@ return retVal; } -// ----------------------------------------------------------------------------- -// TMSCallAdpt::PostConstruct -// -// ----------------------------------------------------------------------------- -// -gint TMSCallAdpt::PostConstruct() - { - return TMS_RESULT_SUCCESS; - } - // End of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmscallcsadpt.cpp --- a/mmserv/tms/tmscallserver/src/tmscallcsadpt.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmscallcsadpt.cpp Fri May 28 19:26:28 2010 -0500 @@ -33,14 +33,27 @@ using namespace TMS; // ----------------------------------------------------------------------------- -// TMSCallCSAdpt::TMSCallCSAdpt -// +// TMSCallCSAdpt::NewL +// Symbian constructor. // ----------------------------------------------------------------------------- // -TMSCallCSAdpt::TMSCallCSAdpt() +TMSCallCSAdpt* TMSCallCSAdpt::NewL() + { + TMSCallCSAdpt* self = new (ELeave) TMSCallCSAdpt(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// TMSCallCSAdpt::ConstructL +// 2-nd phase constructor. +// ----------------------------------------------------------------------------- +// +void TMSCallCSAdpt::ConstructL() { TRACE_PRN_FN_ENT; - iCSDownlink = NULL; iCSUplink = NULL; iRouting = NULL; @@ -48,8 +61,16 @@ iDTMFDnlinkPlayer = NULL; iDTMFUplinkPlayer = NULL; iDTMFNotifier = NULL; + TRACE_PRN_FN_EXT; + } - TRACE_PRN_FN_EXT; +// ----------------------------------------------------------------------------- +// TMSCallCSAdpt::TMSCallCSAdpt +// +// ----------------------------------------------------------------------------- +// +TMSCallCSAdpt::TMSCallCSAdpt() + { } // ----------------------------------------------------------------------------- @@ -60,19 +81,19 @@ TMSCallCSAdpt::~TMSCallCSAdpt() { TRACE_PRN_FN_ENT; - delete iCSDownlink; - delete iCSUplink; + delete iRouting; delete iTarSettings; + delete iDTMFUplinkPlayer; delete iDTMFDnlinkPlayer; - delete iDTMFUplinkPlayer; delete iDTMFNotifier; + delete iCSUplink; + delete iCSDownlink; if (iMsgQueueUp.Handle() > 0) { iMsgQueueUp.Close(); } - if (iMsgQueueDn.Handle() > 0) { iMsgQueueDn.Close(); @@ -93,7 +114,6 @@ iNextStreamId = 1; iUplinkInitialized = FALSE; iDnlinkInitialized = FALSE; - TRACE_PRN_FN_EXT; return status; } @@ -103,40 +123,44 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::CreateStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint& outStrmId) +gint TMSCallCSAdpt::CreateStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, gint& outStrmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); switch (strmType) { case TMS_STREAM_UPLINK: + { status = TMS_RESULT_ALREADY_EXIST; if (!iUplinkInitialized) { - iUplinkInitialized = TRUE; iUplinkStreamId = iNextStreamId; outStrmId = iUplinkStreamId; iNextStreamId++; - iUplinkInitialized = TRUE; + //iUplinkInitialized = TRUE; //not initialized yet! status = TMS_RESULT_SUCCESS; } break; + } case TMS_STREAM_DOWNLINK: + { status = TMS_RESULT_ALREADY_EXIST; if (!iDnlinkInitialized) { - iDnlinkInitialized = TRUE; iDnlinkStreamId = iNextStreamId; outStrmId = iDnlinkStreamId; iNextStreamId++; - iDnlinkInitialized = TRUE; + //iDnlinkInitialized = TRUE; //not initialized yet! status = TMS_RESULT_SUCCESS; } break; + } default: + { status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED; break; + } } TRACE_PRN_FN_EXT; return status; @@ -147,8 +171,10 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::InitStream(TMSCallType /*callType*/, TMSStreamType strmType, - gint strmId, TMSFormatType /*frmtType*/, const RMessage2& message) +gint TMSCallCSAdpt::InitStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId, + const TMSFormatType /*frmtType*/, const gint retrytime, + const RMessage2& message) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -157,6 +183,7 @@ { case TMS_STREAM_UPLINK: { + status = TMS_RESULT_DOES_NOT_EXIST; if (strmId == iUplinkStreamId) { // Open message queue handling client-server communication @@ -167,30 +194,14 @@ } if (status == TMS_RESULT_SUCCESS) { - TRAP(status, iCSUplink = TMSCSUplink::NewL(*this)); - - if (status == TMS_RESULT_SUCCESS) - { - TRAP(status, iDTMFUplinkPlayer = - TMSDTMFProvider::NewL()); - iDTMFUplinkPlayer->AddObserver(*this); - if (!iDTMFNotifier) - { - TRAP(status, iDTMFNotifier = - TMSDtmfNotifier::NewL()); - } - } + status = InitUplink(retrytime); } - iStrmtype = TMS_STREAM_UPLINK; - } - else - { - status = TMS_RESULT_DOES_NOT_EXIST; } break; } case TMS_STREAM_DOWNLINK: { + status = TMS_RESULT_DOES_NOT_EXIST; if (strmId == iDnlinkStreamId) { // Open message queue handling client-server communication @@ -201,35 +212,8 @@ } if (status == TMS_RESULT_SUCCESS) { - TRAP(status, iCSDownlink = TMSCSDownlink::NewL(*this)); - if (status == TMS_RESULT_SUCCESS) - { - TRAP(status, iRouting = - CTelephonyAudioRouting::NewL(*this)); - if (status == TMS_RESULT_SUCCESS) - { - TRAP(status, iTarSettings = TMSTarSettings::NewL()); - } - if (status == TMS_RESULT_SUCCESS) - { - TRAP(status, iDTMFDnlinkPlayer = - TMSAudioDtmfTonePlayer::NewL(*this, - KAudioDTMFString, - KAudioPriorityDTMFString)); - - if (!iDTMFNotifier) - { - TRAP(status, iDTMFNotifier = - TMSDtmfNotifier::NewL()); - } - } - } + status = InitDownlink(retrytime); } - iStrmtype = TMS_STREAM_DOWNLINK; - } - else - { - status = TMS_RESULT_DOES_NOT_EXIST; } break; } @@ -246,32 +230,98 @@ } // ----------------------------------------------------------------------------- +// TMSCallCSAdpt::InitUplink +// +// ----------------------------------------------------------------------------- +// +gint TMSCallCSAdpt::InitUplink(const gint retrytime) + { + gint status(TMS_RESULT_SUCCESS); + + if (!iCSUplink) + { + TRAP(status, iCSUplink = TMSCSUplink::NewL(*this, retrytime)); + } + if (!iDTMFUplinkPlayer && status == TMS_RESULT_SUCCESS) + { + TRAP(status, iDTMFUplinkPlayer = TMSDTMFProvider::NewL()); + iDTMFUplinkPlayer->AddObserver(*this); + } + if (!iDTMFNotifier && status == TMS_RESULT_SUCCESS) + { + TRAP(status, iDTMFNotifier = TMSDtmfNotifier::NewL()); + } + return status; + } + +// ----------------------------------------------------------------------------- +// TMSCallCSAdpt::InitDownlink +// +// ----------------------------------------------------------------------------- +// +gint TMSCallCSAdpt::InitDownlink(const gint retrytime) + { + gint status(TMS_RESULT_SUCCESS); + + if (!iCSDownlink) + { + TRAP(status, iCSDownlink = TMSCSDownlink::NewL(*this, retrytime)); + } + if (!iRouting && status == TMS_RESULT_SUCCESS) + { + TRAP(status, iRouting = CTelephonyAudioRouting::NewL(*this)); + } + if (!iTarSettings && status == TMS_RESULT_SUCCESS) + { + TRAP(status, iTarSettings = TMSTarSettings::NewL()); + } + if (!iDTMFDnlinkPlayer && status == TMS_RESULT_SUCCESS) + { + TRAP(status, iDTMFDnlinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this, + KAudioDTMFString, KAudioPriorityDTMFString)); + } + if (!iDTMFNotifier && status == TMS_RESULT_SUCCESS) + { + TRAP(status, iDTMFNotifier = TMSDtmfNotifier::NewL()); + } + return status; + } + +// ----------------------------------------------------------------------------- // TMSCallCSAdpt::StartStream // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::StartStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallCSAdpt::StartStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId, const gint retrytime) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_SUCCESS); + gint status(TMS_RESULT_INVALID_STATE); switch (strmType) { case TMS_STREAM_UPLINK: + { if (iCSUplink && strmId == iUplinkStreamId) { - iCSUplink->Activate(); + iCSUplink->Activate(retrytime); + status = TMS_RESULT_SUCCESS; } break; + } case TMS_STREAM_DOWNLINK: + { if (iCSDownlink && strmId == iDnlinkStreamId) { - iCSDownlink->Activate(); + iCSDownlink->Activate(retrytime); + status = TMS_RESULT_SUCCESS; } break; + } default: + { status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED; break; + } } TRACE_PRN_FN_EXT; return status; @@ -282,11 +332,11 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::PauseStream(TMSCallType /*callType*/, - TMSStreamType /*strmType*/, gint /*strmId*/) +gint TMSCallCSAdpt::PauseStream(const TMSCallType /*callType*/, + const TMSStreamType /*strmType*/, const gint /*strmId*/) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_SUCCESS); + gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED); TRACE_PRN_FN_EXT; return status; } @@ -296,32 +346,39 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::StopStream(TMSCallType /*callType*/, TMSStreamType strmType, - gint strmId) +gint TMSCallCSAdpt::StopStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_SUCCESS); + gint status(TMS_RESULT_INVALID_STATE); + switch (strmType) { case TMS_STREAM_UPLINK: + { if (iCSUplink && strmId == iUplinkStreamId) { iCSUplink->Deactivate(); - NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, - status, 0); + status = TMS_RESULT_SUCCESS; + NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); } break; + } case TMS_STREAM_DOWNLINK: + { if (iCSDownlink && strmId == iDnlinkStreamId) { iCSDownlink->Deactivate(); - NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, - status, 0); + status = TMS_RESULT_SUCCESS; + NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); } break; + } default: + { status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED; break; + } } TRACE_PRN_FN_EXT; return status; @@ -332,20 +389,22 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::DeinitStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallCSAdpt::DeinitStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_SUCCESS); + gint status(TMS_RESULT_INVALID_STATE); + switch (strmType) { case TMS_STREAM_UPLINK: + { if (iCSUplink && strmId == iUplinkStreamId) { iCSUplink->Deactivate(); iUplinkInitialized = FALSE; - NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, - status, 0); + status = TMS_RESULT_SUCCESS; + NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status); } break; case TMS_STREAM_DOWNLINK: @@ -353,13 +412,17 @@ { iCSDownlink->Deactivate(); iDnlinkInitialized = FALSE; + status = TMS_RESULT_SUCCESS; NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete, - status, 0); + status); } break; + } default: + { status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED; break; + } } TRACE_PRN_FN_EXT; return status; @@ -370,30 +433,36 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::DeleteStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallCSAdpt::DeleteStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); switch (strmType) { case TMS_STREAM_UPLINK: + { if (strmId == iUplinkStreamId) { iUplinkStreamId = -1; iUplinkInitialized = FALSE; } break; + } case TMS_STREAM_DOWNLINK: + { if (strmId == iDnlinkStreamId) { iDnlinkStreamId = -1; iDnlinkInitialized = FALSE; } break; + } default: + { status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED; break; + } } TRACE_PRN_FN_EXT; return status; @@ -404,8 +473,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::DataXferBufferEmptied(TMSCallType /*callType*/, - TMSStreamType /*strmType*/, gint /*strmId*/) +gint TMSCallCSAdpt::DataXferBufferEmptied(const TMSCallType /*callType*/, + const TMSStreamType /*strmType*/, const gint /*strmId*/) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED); @@ -418,8 +487,9 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::DataXferBufferFilled(TMSCallType /*callType*/, - TMSStreamType /*strmType*/, gint /*strmId*/, guint /*datasize*/) +gint TMSCallCSAdpt::DataXferBufferFilled(const TMSCallType /*callType*/, + const TMSStreamType /*strmType*/, const gint /*strmId*/, + const guint /*datasize*/) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED); @@ -450,11 +520,12 @@ gint TMSCallCSAdpt::GetMaxVolume(guint& volume) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSDownlink && iDnlinkInitialized) { volume = iCSDownlink->MaxVolume(); status = TMS_RESULT_SUCCESS; + TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt: GetMaxVolume [%d]"), volume); } TRACE_PRN_FN_EXT; return status; @@ -468,12 +539,12 @@ gint TMSCallCSAdpt::SetVolume(const guint volume) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSDownlink && iDnlinkInitialized) { iCSDownlink->SetVolume(volume); status = TMS_RESULT_SUCCESS; - NotifyClient(iDnlinkStreamId, ECmdSetVolume, status, 0); + NotifyClient(iDnlinkStreamId, ECmdSetVolume, status); } TRACE_PRN_FN_EXT; return status; @@ -487,13 +558,12 @@ gint TMSCallCSAdpt::GetVolume(guint& volume) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSDownlink && iDnlinkInitialized) { volume = iCSDownlink->Volume(); status = TMS_RESULT_SUCCESS; } - TRACE_PRN_FN_EXT; return status; } @@ -506,11 +576,12 @@ gint TMSCallCSAdpt::GetMaxGain(guint& gain) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSUplink && iUplinkInitialized) { gain = iCSUplink->MaxGain(); status = TMS_RESULT_SUCCESS; + TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetMaxGain [%d]"), gain); } TRACE_PRN_FN_EXT; return status; @@ -524,12 +595,12 @@ gint TMSCallCSAdpt::SetGain(const guint gain) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); - if (iUplinkInitialized) + gint status(TMS_RESULT_INVALID_STATE); + if (iCSUplink && iUplinkInitialized) { iCSUplink->SetGain(gain); status = TMS_RESULT_SUCCESS; - NotifyClient(iUplinkInitialized, ECmdSetGain, status, 0); + NotifyClient(iUplinkStreamId, ECmdSetGain, status); } TRACE_PRN_FN_EXT; return status; @@ -543,7 +614,7 @@ gint TMSCallCSAdpt::GetGain(guint& gain) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSUplink && iUplinkInitialized) { gain = iCSUplink->Gain(); @@ -561,11 +632,12 @@ gint TMSCallCSAdpt::GetGlobalMaxVolume(guint& volume) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSDownlink && iDnlinkInitialized) { volume = iCSDownlink->MaxVolume(); status = TMS_RESULT_SUCCESS; + TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxVolume [%d]"), volume); } TRACE_PRN_FN_EXT; return status; @@ -579,8 +651,7 @@ gint TMSCallCSAdpt::SetGlobalVolume(const guint volume) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_SUCCESS); - + gint status(TMS_RESULT_INVALID_STATE); iGlobalVol = volume; if (iCSDownlink && iDnlinkInitialized) { @@ -599,13 +670,12 @@ gint TMSCallCSAdpt::GetGlobalVolume(guint& volume) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSDownlink && iDnlinkInitialized) { volume = iCSDownlink->Volume(); status = TMS_RESULT_SUCCESS; } - TRACE_PRN_FN_EXT; return status; } @@ -618,11 +688,12 @@ gint TMSCallCSAdpt::GetGlobalMaxGain(guint& gain) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSUplink && iUplinkInitialized) { gain = iCSUplink->MaxGain(); status = TMS_RESULT_SUCCESS; + TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxGain [%d]"), gain); } TRACE_PRN_FN_EXT; return status; @@ -636,8 +707,7 @@ gint TMSCallCSAdpt::SetGlobalGain(const guint gain) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_SUCCESS); - + gint status(TMS_RESULT_INVALID_STATE); iGlobalGain = gain; if (iCSUplink && iUplinkInitialized) { @@ -656,7 +726,7 @@ gint TMSCallCSAdpt::GetGlobalGain(guint& gain) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_ILLEGAL_OPERATION); + gint status(TMS_RESULT_INVALID_STATE); if (iCSUplink && iUplinkInitialized) { gain = iCSUplink->Gain(); @@ -668,7 +738,7 @@ // ----------------------------------------------------------------------------- // TMSCallCSAdpt::GetCodecMode -// +// No codec format in CS call // ----------------------------------------------------------------------------- // gint TMSCallCSAdpt::GetCodecMode(const TMSFormatType /*fmttype*/, @@ -682,7 +752,7 @@ // ----------------------------------------------------------------------------- // TMSCallCSAdpt::SetCodecMode -// +// No codec format in CS call // ----------------------------------------------------------------------------- // gint TMSCallCSAdpt::SetCodecMode(const TMSFormatType /*fmttype*/, @@ -696,7 +766,7 @@ // ----------------------------------------------------------------------------- // TMSCallCSAdpt::GetSupportedBitRatesCount -// +// No codec format in CS call // ----------------------------------------------------------------------------- // gint TMSCallCSAdpt::GetSupportedBitRatesCount(guint& /*count*/) @@ -712,26 +782,15 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::GetSupportedBitRates(CBufFlat*& brbuffer) +gint TMSCallCSAdpt::GetSupportedBitRates(CBufFlat*& /*brbuffer*/) { TRACE_PRN_FN_ENT; - TRAPD(status, GetSupportedBitRatesL(brbuffer)); + gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED); TRACE_PRN_FN_EXT; return status; } // ----------------------------------------------------------------------------- -// TMSCallCSAdpt::GetSupportedBitRatesL -// -// GetSupportedBitRates implementation which can leave. -// ----------------------------------------------------------------------------- -// -void TMSCallCSAdpt::GetSupportedBitRatesL(CBufFlat*& /*brbuffer*/) - { - User::Leave(TMS_RESULT_FEATURE_NOT_SUPPORTED); - } - -// ----------------------------------------------------------------------------- // TMSCallCSAdpt::GetBitRate // // ----------------------------------------------------------------------------- @@ -775,7 +834,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::SetVAD(const TMSFormatType /*fmttype*/, const gboolean /*vad*/) +gint TMSCallCSAdpt::SetVAD(const TMSFormatType /*fmttype*/, + const gboolean /*vad*/) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED); @@ -842,7 +902,7 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::SetOutput(TMSAudioOutput output) +gint TMSCallCSAdpt::SetOutput(const TMSAudioOutput output) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_UNINITIALIZED_OBJECT); @@ -913,7 +973,7 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuffer) +gint TMSCallCSAdpt::GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuf) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_UNINITIALIZED_OBJECT); @@ -922,11 +982,11 @@ if (iRouting) { RBufWriteStream stream; - stream.Open(*outputsbuffer); + stream.Open(*outputsbuf); CleanupClosePushL(stream); - TArray availableOutputs = - iRouting->AvailableOutputs(); + TArray + availableOutputs = iRouting->AvailableOutputs(); guint numOfItems = availableOutputs.Count(); count = numOfItems; @@ -949,26 +1009,23 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::StartDTMF(TMSStreamType strmtype, TDes& dtmfstring) +gint TMSCallCSAdpt::StartDTMF(const TMSStreamType strmtype, TDes& dtmfstring) { TRACE_PRN_FN_ENT; - gint status(TMS_RESULT_SUCCESS); - + gint status(TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED); TmsMsgBufPckg dtmfpckg; + dtmfpckg().iStatus = status; + dtmfpckg().iRequest = ECmdDTMFTonePlayFinished; if (strmtype == TMS_STREAM_DOWNLINK && iDnlinkInitialized) { if (iDTMFDnlinkPlayer) { iDTMFDnlinkPlayer->PlayDtmfTone(dtmfstring); + status = TMS_RESULT_SUCCESS; } - dtmfpckg().iStatus = TMS_RESULT_SUCCESS; dtmfpckg().iRequest = ECmdDTMFToneDnlPlayStarted; - if (iDTMFNotifier) - { - iDTMFNotifier->SetDtmf(dtmfpckg, TRUE); - } } else if (strmtype == TMS_STREAM_UPLINK && iUplinkInitialized) { @@ -976,17 +1033,18 @@ if (iDTMFUplinkPlayer) { status = iDTMFUplinkPlayer->SendDtmfToneString(dtmfstring); + status = TMS_RESULT_SUCCESS; } - dtmfpckg().iStatus = TMSUtility::EtelToTMSResult(status); dtmfpckg().iRequest = ECmdDTMFToneUplPlayStarted; - - if (iDTMFNotifier) - { - iDTMFNotifier->SetDtmf(dtmfpckg, TRUE); - } } + if (iDTMFNotifier) + { + iDTMFNotifier->SetDtmf(dtmfpckg); + } + + TRACE_PRN_IF_ERR(status); TRACE_PRN_FN_EXT; return status; } @@ -996,7 +1054,7 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::StopDTMF(TMSStreamType streamtype) +gint TMSCallCSAdpt::StopDTMF(const TMSStreamType streamtype) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -1020,14 +1078,14 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallCSAdpt::ContinueDTMF(gboolean continuesending) +gint TMSCallCSAdpt::ContinueDTMF(const gboolean sending) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_UNINITIALIZED_OBJECT); if (iDTMFUplinkPlayer) { - status = iDTMFUplinkPlayer->ContinueDtmfStringSending(continuesending); + status = iDTMFUplinkPlayer->ContinueDtmfStringSending(sending); status = TMSUtility::EtelToTMSResult(status); } @@ -1035,13 +1093,13 @@ return status; } -//From DTMFTonePlayerObserver +//From TMSDTMFTonePlayerObserver // ----------------------------------------------------------------------------- // TMSCallCSAdpt::DTMFInitCompleted // // ----------------------------------------------------------------------------- // -void TMSCallCSAdpt::DTMFInitCompleted(gint /*error*/) +void TMSCallCSAdpt::DTMFInitCompleted(gint /*status*/) { TRACE_PRN_FN_ENT; // TODO: process error @@ -1053,23 +1111,23 @@ // // ----------------------------------------------------------------------------- // -void TMSCallCSAdpt::DTMFToneFinished(gint error) +void TMSCallCSAdpt::DTMFToneFinished(gint status) { TRACE_PRN_FN_ENT; + TRACE_PRN_IF_ERR(status); TmsMsgBufPckg dtmfpckg; - if (error == KErrUnderflow || error == KErrInUse) + // KErrUnderflow indicates end of DTMF playback. + if (status == KErrUnderflow || status == KErrInUse) { - error = TMS_RESULT_SUCCESS; + status = TMS_RESULT_SUCCESS; } - - dtmfpckg().iStatus = TMSUtility::TMSResult(error); + dtmfpckg().iStatus = TMSUtility::TMSResult(status); dtmfpckg().iRequest = ECmdDTMFTonePlayFinished; if (iDTMFNotifier) { - iDTMFNotifier->SetDtmf(dtmfpckg, TRUE); + iDTMFNotifier->SetDtmf(dtmfpckg); } - TRACE_PRN_FN_EXT; } @@ -1079,19 +1137,18 @@ // ----------------------------------------------------------------------------- // void TMSCallCSAdpt::HandleDTMFEvent( - const TMSDTMFObserver::TCCPDtmfEvent aEvent, const gint aError, - const TChar /*aTone*/) + const TMSDTMFObserver::TCCPDtmfEvent event, const gint status, + const TChar /*tone*/) { TRACE_PRN_FN_ENT; TmsMsgBufPckg dtmfpckg; - TRACE_PRN_N1(_L("**TMS TMSCallCSAdpt::HandleDTMFEvent error:%d"),aError); - - dtmfpckg().iStatus = TMSUtility::EtelToTMSResult(aError); + TRACE_PRN_N1(_L("**TMS TMSCallCSAdpt::HandleDTMFEvent error:%d"), status); - switch (aEvent) + dtmfpckg().iStatus = TMSUtility::EtelToTMSResult(status); + + switch (event) { - case ECCPDtmfUnknown: //Unknown break; case ECCPDtmfManualStart: //DTMF sending started manually @@ -1117,78 +1174,59 @@ TRACE_PRN_FN_EXT; } -// From TMSCSPDevSoundObserver - // ----------------------------------------------------------------------------- // TMSCallCSAdpt::DownlinkInitCompleted -// +// From TMSCSDevSoundObserver // ----------------------------------------------------------------------------- // void TMSCallCSAdpt::DownlinkInitCompleted(gint status) { TRACE_PRN_FN_ENT; - NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status, 0); + if (status == TMS_RESULT_SUCCESS) + { + iDnlinkInitialized = TRUE; + } + NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); TRACE_PRN_FN_EXT; } // ----------------------------------------------------------------------------- // TMSCallCSAdpt::UplinkInitCompleted -// +// From TMSCSDevSoundObserver // ----------------------------------------------------------------------------- // void TMSCallCSAdpt::UplinkInitCompleted(gint status) { TRACE_PRN_FN_ENT; - NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status, 0); - TRACE_PRN_FN_EXT; - } - -// ----------------------------------------------------------------------------- -// TMSCallCSAdpt::UplinkActivatedSuccessfully -// -// ----------------------------------------------------------------------------- -// -void TMSCallCSAdpt::UplinkActivatedSuccessfully() - { - TRACE_PRN_FN_ENT; - NotifyClient(iUplinkStreamId, ECmdUplinkStarted, KErrNone, 0); - TRACE_PRN_FN_EXT; - } - -// ----------------------------------------------------------------------------- -// TMSCallCSAdpt::DownlinkActivatedSuccessfully -// -// ----------------------------------------------------------------------------- -// -void TMSCallCSAdpt::DownlinkActivatedSuccessfully() - { - TRACE_PRN_FN_ENT; - NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, KErrNone, 0); + if (status == TMS_RESULT_SUCCESS) + { + iUplinkInitialized = TRUE; + } + NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); TRACE_PRN_FN_EXT; } // ----------------------------------------------------------------------------- // TMSCallCSAdpt::UplinkActivationFailed -// +// From TMSCSDevSoundObserver // ----------------------------------------------------------------------------- // -void TMSCallCSAdpt::UplinkActivationFailed() +void TMSCallCSAdpt::UplinkActivationCompleted(gint status) { TRACE_PRN_FN_ENT; - NotifyClient(iUplinkStreamId, ECmdUplinkStarted, TMS_RESULT_FATAL_ERROR, 0); + NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status); TRACE_PRN_FN_EXT; } // ----------------------------------------------------------------------------- // TMSCallCSAdpt::DownlinkActivationFailed -// +// From TMSCSDevSoundObserver // ----------------------------------------------------------------------------- // -void TMSCallCSAdpt::DownlinkActivationFailed() +void TMSCallCSAdpt::DownlinkActivationCompleted(gint status) { TRACE_PRN_FN_ENT; - NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, - TMS_RESULT_FATAL_ERROR, 0); + NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status); TRACE_PRN_FN_EXT; } @@ -1229,7 +1267,7 @@ // ----------------------------------------------------------------------------- // void TMSCallCSAdpt::SetOutputComplete( - CTelephonyAudioRouting& aTelephonyAudioRouting, gint /*aError*/) + CTelephonyAudioRouting& aTelephonyAudioRouting, gint /*status*/) { TRACE_PRN_FN_ENT; TRoutingMsgBufPckg pckg; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmscallipadpt.cpp --- a/mmserv/tms/tmscallserver/src/tmscallipadpt.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmscallipadpt.cpp Fri May 28 19:26:28 2010 -0500 @@ -19,7 +19,6 @@ #include "tmsutility.h" #include "tmsclientserver.h" #include "tmsshared.h" -#include "tmsipcallstream.h" #include "tmscallipadpt.h" using namespace TMS; @@ -46,8 +45,8 @@ void TMSCallIPAdpt::ConstructL() { TRACE_PRN_FN_ENT; + iIPDownlink = NULL; iIPUplink = NULL; - iIPDownlink = NULL; iDTMFDnlinkPlayer = NULL; iDTMFUplinkPlayer = NULL; iDTMFNotifier = NULL; @@ -114,8 +113,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::CreateStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint& outStrmId) +gint TMSCallIPAdpt::CreateStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, gint& outStrmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -126,10 +125,10 @@ status = TMS_RESULT_ALREADY_EXIST; if (!iUplinkInitialized) { - iUplinkInitialized = TRUE; iUplinkStreamId = iNextStreamId; outStrmId = iUplinkStreamId; iNextStreamId++; + //iUplinkInitialized = TRUE; //not initialized yet! status = TMS_RESULT_SUCCESS; } break; @@ -139,10 +138,10 @@ status = TMS_RESULT_ALREADY_EXIST; if (!iDnlinkInitialized) { - iDnlinkInitialized = TRUE; iDnlinkStreamId = iNextStreamId; outStrmId = iDnlinkStreamId; iNextStreamId++; + //iDnlinkInitialized = TRUE; //not initialized yet! status = TMS_RESULT_SUCCESS; } break; @@ -162,12 +161,13 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::InitStream(TMSCallType /*callType*/, TMSStreamType strmType, - gint strmId, TMSFormatType frmtType, const RMessage2& message) +gint TMSCallIPAdpt::InitStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId, + const TMSFormatType frmtType, const gint retrytime, + const RMessage2& message) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); - guint32 fourCC = TOFOURCC(frmtType); if (fourCC == NULL) { @@ -182,12 +182,11 @@ if (strmId == iUplinkStreamId) { SetFormat(iUplinkStreamId, fourCC); - status = OpenUplinkL(message); + status = OpenUplink(message, retrytime); if (status == TMS_RESULT_SUCCESS) { status = InitDTMF(TMS_STREAM_UPLINK); } - NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); } break; } @@ -197,12 +196,11 @@ if (strmId == iDnlinkStreamId) { SetFormat(iDnlinkStreamId, fourCC); - status = OpenDownlinkL(message); + status = OpenDownlink(message, retrytime); if (status == TMS_RESULT_SUCCESS) { status = InitDTMF(TMS_STREAM_DOWNLINK); } - NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); } break; } @@ -223,8 +221,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::StartStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallIPAdpt::StartStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId, const gint retrytime) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_INVALID_STATE); @@ -232,9 +230,9 @@ { case TMS_STREAM_UPLINK: { - if (strmId == iUplinkStreamId && iIPUplink) + if (iIPUplink && strmId == iUplinkStreamId) { - iIPUplink->Start(); + iIPUplink->Start(retrytime); status = TMS_RESULT_SUCCESS; NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status); } @@ -242,9 +240,9 @@ } case TMS_STREAM_DOWNLINK: { - if (strmId == iDnlinkStreamId && iIPDownlink) + if (iIPDownlink && strmId == iDnlinkStreamId) { - iIPDownlink->Start(); + iIPDownlink->Start(retrytime); status = TMS_RESULT_SUCCESS; NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status); } @@ -265,8 +263,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::PauseStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallIPAdpt::PauseStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_INVALID_STATE); @@ -307,8 +305,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::StopStream(TMSCallType /*callType*/, TMSStreamType strmType, - gint strmId) +gint TMSCallIPAdpt::StopStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_INVALID_STATE); @@ -317,7 +315,7 @@ { case TMS_STREAM_UPLINK: { - if (strmId == iUplinkStreamId && iIPUplink) + if (iIPUplink && strmId == iUplinkStreamId) { iIPUplink->Stop(); status = TMS_RESULT_SUCCESS; @@ -327,7 +325,7 @@ } case TMS_STREAM_DOWNLINK: { - if (strmId == iDnlinkStreamId && iIPDownlink) + if (iIPDownlink && strmId == iDnlinkStreamId) { iIPDownlink->Stop(); status = TMS_RESULT_SUCCESS; @@ -350,8 +348,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::DeinitStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallIPAdpt::DeinitStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_INVALID_STATE); @@ -360,20 +358,19 @@ { case TMS_STREAM_UPLINK: { - if (strmId == iUplinkStreamId && iIPUplink) + if (iIPUplink && strmId == iUplinkStreamId) { iIPUplink->Stop(); //iUplinkStreamId = -1; iUplinkInitialized = FALSE; status = TMS_RESULT_SUCCESS; - NotifyClient(iUplinkStreamId, ECmdDownlinkDeInitComplete, - status); + NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status); } break; } case TMS_STREAM_DOWNLINK: { - if (strmId == iDnlinkStreamId && iIPDownlink) + if (iIPDownlink && strmId == iDnlinkStreamId) { iIPDownlink->Stop(); //iDnlinkStreamId = -1; @@ -400,8 +397,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::DeleteStream(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallIPAdpt::DeleteStream(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -409,7 +406,6 @@ { case TMS_STREAM_UPLINK: { - // This is additional error checking if (strmId == iUplinkStreamId) { iUplinkStreamId = -1; @@ -419,7 +415,6 @@ } case TMS_STREAM_DOWNLINK: { - // This is additional error checking if (strmId == iDnlinkStreamId) { iDnlinkStreamId = -1; @@ -442,8 +437,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::DataXferBufferEmptied(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId) +gint TMSCallIPAdpt::DataXferBufferEmptied(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -473,8 +468,8 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::DataXferBufferFilled(TMSCallType /*callType*/, - TMSStreamType strmType, gint strmId, guint datasize) +gint TMSCallIPAdpt::DataXferBufferFilled(const TMSCallType /*callType*/, + const TMSStreamType strmType, const gint strmId, const guint datasize) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_SUCCESS); @@ -543,14 +538,12 @@ { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_INVALID_STATE); - if (iDnlinkInitialized && iIPDownlink) { status = iIPDownlink->GetMaxVolume(volume); iMaxVolume = volume; TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt: GetMaxVolume [%d]"), iMaxVolume); } - TRACE_PRN_FN_EXT; return status; } @@ -657,7 +650,7 @@ { status = iIPDownlink->GetMaxVolume(volume); iMaxVolume = volume; - TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt: GetMaxVolume [%d]"), iMaxVolume); + TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxVolume [%d]"), volume); } TRACE_PRN_FN_EXT; return status; @@ -672,6 +665,7 @@ { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_INVALID_STATE); + //iGlobalVol = volume; if (iDnlinkInitialized && iIPDownlink) { status = iIPDownlink->SetVolume(volume); @@ -710,7 +704,7 @@ { status = iIPUplink->GetMaxGain(gain); iMaxGain = gain; - TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetMaxGain [%d]"), iMaxGain); + TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxGain [%d]"), gain); } TRACE_PRN_FN_EXT; return status; @@ -725,6 +719,7 @@ { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_INVALID_STATE); + //iGlobalGain = gain; if (iUplinkInitialized && iIPUplink) { status = iIPUplink->SetGain(gain); @@ -995,11 +990,11 @@ } // ----------------------------------------------------------------------------- -// TMSCallIPAdpt::OpenDownlinkL +// TMSCallIPAdpt::OpenDownlink // Method for player initialization. // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::OpenDownlinkL(const RMessage2& message) +gint TMSCallIPAdpt::OpenDownlink(const RMessage2& message, const gint retrytime) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_UNINITIALIZED_OBJECT); @@ -1019,10 +1014,11 @@ if (!iIPDownlink) { - iIPDownlink = TMSIPDownlink::NewL(iDnFourCC, iPriority); + TRAP(status, iIPDownlink = TMSIPDownlink::NewL(*this, iDnFourCC, + iPriority, retrytime)); } - if (iIPDownlink) + if (iIPDownlink && status == TMS_RESULT_SUCCESS) { // Open message queue for handling server notifications to the client if (iMsgQueueDn.Handle() <= 0) @@ -1043,11 +1039,11 @@ } // ----------------------------------------------------------------------------- -// TMSCallIPAdpt::OpenUplinkL +// TMSCallIPAdpt::OpenUplink // Method for recorder initialization. // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::OpenUplinkL(const RMessage2& message) +gint TMSCallIPAdpt::OpenUplink(const RMessage2& message, const gint retrytime) { TRACE_PRN_FN_ENT; gint status(TMS_RESULT_UNINITIALIZED_OBJECT); @@ -1065,10 +1061,11 @@ if (!iIPUplink) { - iIPUplink = TMSIPUplink::NewL(iUpFourCC, iPriority); + TRAP(status, iIPUplink = TMSIPUplink::NewL(*this, iUpFourCC, iPriority, + retrytime)); } - if (iIPUplink) + if (iIPUplink && status == TMS_RESULT_SUCCESS) { // Open message queue for handling server notifications to the client if (iMsgQueueUp.Handle() <= 0) @@ -1360,11 +1357,13 @@ // gint TMSCallIPAdpt::SetOutput(TMSAudioOutput output) { + TRACE_PRN_FN_ENT; gint status(TMS_RESULT_UNINITIALIZED_OBJECT); if (iDnlinkInitialized && iIPDownlink) { TRAP(status, iIPDownlink->SetAudioDeviceL(output)); } + TRACE_PRN_FN_EXT; return status; } // ----------------------------------------------------------------------------- @@ -1374,13 +1373,16 @@ // gint TMSCallIPAdpt::GetOutput(TMSAudioOutput& output) { + TRACE_PRN_FN_ENT; gint status(TMS_RESULT_UNINITIALIZED_OBJECT); if (iDnlinkInitialized && iIPDownlink) { TRAP(status, iIPDownlink->GetAudioDeviceL(output)); } + TRACE_PRN_FN_EXT; return status; } + // ----------------------------------------------------------------------------- // TMSCallIPAdpt::GetPreviousOutput // @@ -1397,7 +1399,7 @@ // ----------------------------------------------------------------------------- // gint TMSCallIPAdpt::GetAvailableOutputsL(gint& /*count*/, - CBufFlat*& /*outputsbuffer*/) + CBufFlat*& /*outputsbuf*/) { return TMS_RESULT_FEATURE_NOT_SUPPORTED; } @@ -1416,35 +1418,15 @@ { delete iDTMFDnlinkPlayer; iDTMFDnlinkPlayer = NULL; - - /* Clarify with adaptation team which prio/pref values should be used. - * 1) KAudioDTMFString -local play, no mixing - * KAudioPriorityDTMFString -local play, no mixing - * 2) KAudioPrefUnknownVoipAudioDownlink -3rd party VoIP? - * KAudioPriorityUnknownVoipAudioDownlink -3rd party VoIP? - * 3) KAudioPrefVoipAudioDownlink -NOK native VoIP? - * KAudioPriorityVoipAudioDownlink -NOK native VoIP? - */ TRAP(status, iDTMFDnlinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this, - KAudioPrefVoipAudioDownlink, KAudioPriorityVoipAudioDownlink)); + KAudioDTMFString, KAudioPriorityDTMFString)); } else if (strmtype == TMS_STREAM_UPLINK) { delete iDTMFUplinkPlayer; iDTMFUplinkPlayer = NULL; - - /* Clarify with adaptation team which prio/pref values should be used. - * Currently the audio policy blocks DTMF mixing with the UPL stream. - * 1) KAudioPrefUnknownVoipAudioUplink -3rd party VoIP? - * KAudioPriorityUnknownVoipAudioUplink -3rd party VoIP? - * KAudioPriorityUnknownVoipAudioUplinkNonSignal -??? - * 2) KAudioPrefVoipAudioUplink -NOK native VoIP? - * KAudioPrefUnknownVoipAudioUplinkNonSignal -??? - * KAudioPrefVoipAudioUplinkNonSignal -??? - * KAudioPriorityVoipAudioUplink -NOK native VoIP? - */ TRAP(status, iDTMFUplinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this, - KAudioPrefVoipAudioUplink, KAudioPriorityVoipAudioUplink)); + KAudioDTMFString, KAudioPriorityDTMFString)); } if (!iDTMFNotifier && status == TMS_RESULT_SUCCESS) @@ -1510,18 +1492,20 @@ gint TMSCallIPAdpt::StopDTMF(TMSStreamType streamtype) { TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_SUCCESS); - if (streamtype == TMS_STREAM_DOWNLINK) + if (streamtype == TMS_STREAM_DOWNLINK && iDTMFDnlinkPlayer) { iDTMFDnlinkPlayer->Cancel(); } - else if (streamtype == TMS_STREAM_UPLINK) + else if (streamtype == TMS_STREAM_UPLINK && iDTMFUplinkPlayer) { + //status = iDTMFUplinkPlayer->StopDtmfTone(); iDTMFUplinkPlayer->Cancel(); } TRACE_PRN_FN_EXT; - return TMS_RESULT_SUCCESS; + return status; } // ----------------------------------------------------------------------------- @@ -1529,7 +1513,7 @@ // // ----------------------------------------------------------------------------- // -gint TMSCallIPAdpt::ContinueDTMF(gboolean /*continuesending*/) +gint TMSCallIPAdpt::ContinueDTMF(const gboolean /*sending*/) { return TMS_RESULT_FEATURE_NOT_SUPPORTED; } @@ -1540,10 +1524,10 @@ // // ----------------------------------------------------------------------------- // -void TMSCallIPAdpt::DTMFInitCompleted(gint /*error*/) +void TMSCallIPAdpt::DTMFInitCompleted(gint /*status*/) { TRACE_PRN_FN_ENT; - //TRACE_PRN_IF_ERR(error); + // TODO: process error TRACE_PRN_FN_EXT; } @@ -1552,18 +1536,18 @@ // // ----------------------------------------------------------------------------- // -void TMSCallIPAdpt::DTMFToneFinished(gint error) +void TMSCallIPAdpt::DTMFToneFinished(gint status) { TRACE_PRN_FN_ENT; - TRACE_PRN_IF_ERR(error); + TRACE_PRN_IF_ERR(status); TmsMsgBufPckg dtmfpckg; - // Ignore KErrUnderflow - end of DTMF playback. - if(error == KErrUnderflow /*|| error == KErrInUse*/) - { - error = TMS_RESULT_SUCCESS; - } - dtmfpckg().iStatus = error; + // KErrUnderflow indicates end of DTMF playback. + if (status == KErrUnderflow /*|| status == KErrInUse*/) + { + status = TMS_RESULT_SUCCESS; + } + dtmfpckg().iStatus = TMSUtility::TMSResult(status); dtmfpckg().iRequest = ECmdDTMFTonePlayFinished; if (iDTMFNotifier) { @@ -1573,14 +1557,70 @@ } // ----------------------------------------------------------------------------- +// TMSCallIPAdpt::DownlinkInitCompleted +// From TMSIPDevSoundObserver +// ----------------------------------------------------------------------------- +// +void TMSCallIPAdpt::DownlinkInitCompleted(gint status) + { + TRACE_PRN_FN_ENT; + if (status == TMS_RESULT_SUCCESS) + { + iDnlinkInitialized = TRUE; + } + NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallIPAdpt::UplinkInitCompleted +// From TMSIPDevSoundObserver +// ----------------------------------------------------------------------------- +// +void TMSCallIPAdpt::UplinkInitCompleted(gint status) + { + TRACE_PRN_FN_ENT; + if (status == TMS_RESULT_SUCCESS) + { + iUplinkInitialized = TRUE; + } + NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallIPAdpt::UplinkStarted +// From TMSIPDevSoundObserver +// ----------------------------------------------------------------------------- +// +void TMSCallIPAdpt::UplinkStarted(gint status) + { + TRACE_PRN_FN_ENT; + NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallIPAdpt::DownlinkStarted +// From TMSIPDevSoundObserver +// ----------------------------------------------------------------------------- +// +void TMSCallIPAdpt::DownlinkStarted(gint status) + { + TRACE_PRN_FN_ENT; + NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- // TMSCallIPAdpt::NotifyClient // ----------------------------------------------------------------------------- // -void TMSCallIPAdpt::NotifyClient(const gint strmId, const gint aCommand, - const gint aStatus, const gint64 /*aInt64*/) +void TMSCallIPAdpt::NotifyClient(const gint strmId, const gint command, + const gint status, const gint64 /*int64*/) { - iMsgBuffer.iRequest = aCommand; - iMsgBuffer.iStatus = aStatus; + iMsgBuffer.iRequest = command; + iMsgBuffer.iStatus = status; if (strmId == iUplinkStreamId) { diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmscallsession.cpp --- a/mmserv/tms/tmscallserver/src/tmscallsession.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmscallsession.cpp Fri May 28 19:26:28 2010 -0500 @@ -300,7 +300,7 @@ TMSCliSrvStreamInitDataStructBufPckg pckg; aMessage.ReadL(0, pckg); status = iCallAdpt->InitStream(pckg().CallType, pckg().StreamType, - pckg().StreamId, pckg().FormatType, aMessage); + pckg().StreamId, pckg().FormatType, pckg().RetryTime, aMessage); switch (pckg().StreamType) { @@ -336,7 +336,7 @@ TMSCliSrvStreamOpDataStructBufPckg pckg; aMessage.ReadL(0, pckg); status = iCallAdpt->StartStream(pckg().CallType, pckg().StreamType, - pckg().StreamId); + pckg().StreamId, pckg().RetryTime); } aMessage.Complete(status); TRACE_PRN_FN_EXT; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmscsdevsound.cpp --- a/mmserv/tms/tmscallserver/src/tmscsdevsound.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmscsdevsound.cpp Fri May 28 19:26:28 2010 -0500 @@ -16,46 +16,93 @@ */ #include -#include +#include #include +#include "tmsutility.h" #include "tmscsdevsound.h" #include "tmscsdevsoundobserver.h" using namespace TMS; +// CONSTANTS +const gint KTimeoutInitial = 200000; // 200 ms initial timeout +const gint KTimeoutMultiplier = 2; // Double the timeout for each retry +const gint KMicroSecMultiply = 1000000; //1 sec + // ----------------------------------------------------------------------------- -// TMSCSPDevSound +// TMSCSDevSound // ----------------------------------------------------------------------------- // -TMSCSPDevSound::TMSCSPDevSound(TMSCSPDevSoundObserver& aObserver) : - iObserver(aObserver) +TMSCSDevSound::TMSCSDevSound(TMSCSDevSoundObserver& observer) : + iObserver(observer) { + iTimer = NULL; + iTimeout = KTimeoutInitial; + iInitRetryTime = 0; + iStartRetryTime = 0; } // ----------------------------------------------------------------------------- // ConstructL // ----------------------------------------------------------------------------- // -void TMSCSPDevSound::ConstructL(TMMFState aMode, gint aAudioPreference, - gint aAudioPriority) +void TMSCSDevSound::ConstructL(const TMSStreamType strmtype, + const gint retrytime) { + TRACE_PRN_FN_ENT; + iInitRetryTime = retrytime; + iStreamType = strmtype; + + if (strmtype == TMS_STREAM_UPLINK) + { + iMode = EMMFStateRecording; + iPriority = KAudioPriorityCSCallUplink; + iPreference = KAudioPrefCSCallUplink; + } + else if (strmtype == TMS_STREAM_DOWNLINK) + { + iMode = EMMFStatePlaying; + iPriority = KAudioPriorityCSCallDownlink; + iPreference = KAudioPrefCSCallDownlink; + } + + if (iInitRetryTime != 0) + { + iTimer = TMSTimer::NewL(); + } + + InitializeL(); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// InitializeL +// ----------------------------------------------------------------------------- +// +void TMSCSDevSound::InitializeL() + { + TRACE_PRN_FN_ENT; TMMFPrioritySettings audioPriority; TFourCC modemFourCC; modemFourCC.Set(KS60FourCCCodeModem); + + delete iDevSound; + iDevSound = NULL; iDevSound = CMMFDevSound::NewL(); if (iDevSound) { #ifndef __WINSCW__ - iDevSound->InitializeL(*this, modemFourCC, aMode); -#else //For testing TMS in WINSCW - iDevSound->InitializeL(*this, KMMFFourCCCodePCM16, aMode); + iDevSound->InitializeL(*this, modemFourCC, iMode); +#else + //For testing TMS in WINSCW + iDevSound->InitializeL(*this, KMMFFourCCCodePCM16, iMode); #endif - iStreamType = aAudioPreference; - audioPriority.iPriority = aAudioPriority; - audioPriority.iPref = aAudioPreference; - audioPriority.iState = aMode; + audioPriority.iPriority = iPriority; + audioPriority.iPref = iPreference; + audioPriority.iState = iMode; iDevSound->SetPrioritySettings(audioPriority); } + TRACE_PRN_FN_EXT; } // ----------------------------------------------------------------------------- @@ -63,18 +110,24 @@ // Not implemented // ----------------------------------------------------------------------------- // -TMSCSPDevSound::~TMSCSPDevSound() +TMSCSDevSound::~TMSCSDevSound() { + TRACE_PRN_FN_ENT; + CancelTimer(); + delete iTimer; delete iDevSound; + TRACE_PRN_FN_EXT; } // ----------------------------------------------------------------------------- // Tries to activate the audio stream if not active or activating // ----------------------------------------------------------------------------- // -void TMSCSPDevSound::Activate() +void TMSCSDevSound::Activate(const gint retrytime) { - if (!IsActive() && !IsActivationOngoing()) + iStartRetryTime = retrytime; + + if (!iActive && !iActivationOngoing) { iActivationOngoing = ETrue; TRAP_IGNORE(DoActivateL()); @@ -85,122 +138,129 @@ // Deactivates the audio device. // ----------------------------------------------------------------------------- // -void TMSCSPDevSound::Deactivate() +void TMSCSDevSound::Deactivate(gboolean reset) { - if (iDevSound && (IsActive() || IsActivationOngoing())) + TRACE_PRN_FN_ENT; + if (reset) + { + iTimeout = KTimeoutInitial; + } + CancelTimer(); + if (iDevSound && (iActive || iActivationOngoing)) { iDevSound->Stop(); iActive = EFalse; iActivationOngoing = EFalse; } - } - -// ----------------------------------------------------------------------------- -// ActivationOngoing -// ----------------------------------------------------------------------------- -// -TBool TMSCSPDevSound::IsActivationOngoing() const - { - return iActivationOngoing; - } - -// ----------------------------------------------------------------------------- -// IsActive -// ----------------------------------------------------------------------------- -// -TBool TMSCSPDevSound::IsActive() const - { - return iActive; + TRACE_PRN_FN_EXT; } // ----------------------------------------------------------------------------- // DevSound // ----------------------------------------------------------------------------- // -CMMFDevSound& TMSCSPDevSound::DevSound() +CMMFDevSound& TMSCSDevSound::DevSound() { return *iDevSound; } // ----------------------------------------------------------------------------- // From class MDevSoundObserver -// Not implemented // ----------------------------------------------------------------------------- // -void TMSCSPDevSound::InitializeComplete(TInt aError) +void TMSCSDevSound::InitializeComplete(TInt aError) { - if (iStreamType == KAudioPrefCSCallDownlink) + TRACE_PRN_FN_ENT; + if (aError != TMS_RESULT_SUCCESS && iInitRetryTime != 0) { - iObserver.DownlinkInitCompleted(aError); + StartTimer(); } else { - iObserver.UplinkInitCompleted(aError); + iTimeout = KTimeoutInitial; + CancelTimer(); + NotifyEvent(aError); + } + TRACE_PRN_FN_EXT; + } + + +// ----------------------------------------------------------------------------- +// TMSCSDevSound::NotifyEvent +// ----------------------------------------------------------------------------- +// +void TMSCSDevSound::NotifyEvent(gint error) + { + if (iStreamType == TMS_STREAM_DOWNLINK) + { + iObserver.DownlinkInitCompleted(error); + } + else if (iStreamType == TMS_STREAM_UPLINK) + { + iObserver.UplinkInitCompleted(error); } } // ----------------------------------------------------------------------------- -// From class MDevSoundObserver -// Not implemented +// TMSCSDevSound::CancelTimer +// Resets timer // ----------------------------------------------------------------------------- // -void TMSCSPDevSound::BufferToBeFilled(CMMFBuffer* /*aBuffer*/) +void TMSCSDevSound::CancelTimer() { + iInitRetryTime = 0; + if (iTimer) + { + if (iTimer->IsRunning()) + { + iTimer->CancelNotify(); + } + } } // ----------------------------------------------------------------------------- -// From class MDevSoundObserver -// Not implemented +// TMSCSDevSound::StartTimer +// Activates timer // ----------------------------------------------------------------------------- // -void TMSCSPDevSound::PlayError(TInt /*aError*/) +void TMSCSDevSound::StartTimer() { - } - -// ----------------------------------------------------------------------------- -// From class MDevSoundObserver -// Not implemented -// ----------------------------------------------------------------------------- -// -void TMSCSPDevSound::ToneFinished(TInt /*aError*/) - { + if (iTimer && (iInitRetryTime != 0 || iStartRetryTime != 0)) + { + iTimer->NotifyAfter(iTimeout, *this); + } } // ----------------------------------------------------------------------------- -// From class MDevSoundObserver -// Not implemented -// ----------------------------------------------------------------------------- -// -void TMSCSPDevSound::BufferToBeEmptied(CMMFBuffer* /*aBuffer*/) - { - } - -// ----------------------------------------------------------------------------- -// From class MDevSoundObserver -// Not implemented +// From TMSTimerObserver +// Notification upon TMSTimer timeout. // ----------------------------------------------------------------------------- // -void TMSCSPDevSound::RecordError(TInt /*aError*/) - { - } - -// ----------------------------------------------------------------------------- -// From class MDevSoundObserver -// Not implemented -// ----------------------------------------------------------------------------- -// -void TMSCSPDevSound::ConvertError(TInt /*aError*/) +void TMSCSDevSound::TimerEvent() { - } + iTimeout *= KTimeoutMultiplier; -// ----------------------------------------------------------------------------- -// From class MDevSoundObserver -// Not implemented -// ----------------------------------------------------------------------------- -// -void TMSCSPDevSound::DeviceMessage(TUid /*aMessageType*/, - const TDesC8& /*aMsg*/) - { + if (!iActivationOngoing) //Initializing + { + if (iTimeout > (iInitRetryTime * KMicroSecMultiply)) + { + iInitRetryTime = 0; + } + TRAPD(status, InitializeL()); + if (status != TMS_RESULT_SUCCESS) + { + NotifyEvent(status); + } + } + else //Activating + { + if (iTimeout > (iStartRetryTime * KMicroSecMultiply)) + { + iStartRetryTime = 0; + } + Deactivate(FALSE); + Activate(iStartRetryTime); + } } // End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmscsdownlink.cpp --- a/mmserv/tms/tmscallserver/src/tmscsdownlink.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmscsdownlink.cpp Fri May 28 19:26:28 2010 -0500 @@ -16,6 +16,7 @@ */ #include +#include "tmsutility.h" #include "tmscsdownlink.h" #include "tmscsdevsoundobserver.h" @@ -25,20 +26,44 @@ const gint KDefaultMaxVolume = 10; // ----------------------------------------------------------------------------- +// Constructor +// ----------------------------------------------------------------------------- +// +TMSCSDownlink::TMSCSDownlink(TMSCSDevSoundObserver& observer) : + TMSCSDevSound(observer) + { + } + +// ----------------------------------------------------------------------------- +// Second phase constructor +// ----------------------------------------------------------------------------- +// +void TMSCSDownlink::ConstructL(const gint retrytime) + { + TMSCSDevSound::ConstructL(TMS_STREAM_DOWNLINK, retrytime); + + if (iDevSound) + { + iDevSound->SetVolume(KDefaultVolume); + } + } + +// ----------------------------------------------------------------------------- // Static constructor // ----------------------------------------------------------------------------- // -TMSCSDownlink* TMSCSDownlink::NewL(TMSCSPDevSoundObserver& aObserver) +TMSCSDownlink* TMSCSDownlink::NewL(TMSCSDevSoundObserver& observer, + const gint retrytime) { - TMSCSDownlink* self = new (ELeave) TMSCSDownlink(aObserver); + TMSCSDownlink* self = new (ELeave) TMSCSDownlink(observer); CleanupStack::PushL(self); - self->ConstructL(); + self->ConstructL(retrytime); CleanupStack::Pop(self); return self; } // ----------------------------------------------------------------------------- -// Destructor. +// Destructor // ----------------------------------------------------------------------------- // TMSCSDownlink::~TMSCSDownlink() @@ -49,19 +74,19 @@ // Sets volume // ----------------------------------------------------------------------------- // -void TMSCSDownlink::SetVolume(gint aVolume) +void TMSCSDownlink::SetVolume(gint volume) { if (iDevSound) { gint maxVolume(iDevSound->MaxVolume()); maxVolume = (maxVolume > 0) ? maxVolume : KDefaultMaxVolume; - gint scaledVolume = (aVolume * maxVolume) / KDefaultMaxVolume; + gint scaledVolume = (volume * maxVolume) / KDefaultMaxVolume; iDevSound->SetVolume(scaledVolume); } } // ----------------------------------------------------------------------------- -// Gives volume +// Returns volume // ----------------------------------------------------------------------------- // gint TMSCSDownlink::Volume() @@ -75,7 +100,7 @@ } // ----------------------------------------------------------------------------- -// Gives max volume +// Returns device's max volume // ----------------------------------------------------------------------------- // gint TMSCSDownlink::MaxVolume() @@ -95,13 +120,14 @@ // void TMSCSDownlink::BufferToBeFilled(CMMFBuffer* /*aBuffer*/) { - //CSPLOGSTRING( CSPINT, "TMSCSDownlink:: activated" ); + TRACE_PRN_N(_L("TMSCSDownlink::BufferToBeFilled")); + // We dont react to devsound messages unless we are activating. - if (IsActivationOngoing()) + if (iActivationOngoing) { iActive = ETrue; iActivationOngoing = EFalse; - iObserver.DownlinkActivatedSuccessfully(); + iObserver.DownlinkActivationCompleted(KErrNone); } } @@ -112,23 +138,27 @@ // void TMSCSDownlink::PlayError(TInt aError) { - //CSPLOGSTRING( CSPINT, "TMSCSDownlink::PlayError" ); + TRACE_PRN_N1(_L("TMSCSDownlink::PlayError[%d]"), aError); - // We dont react to devsound messages unless we are activating. - if (IsActivationOngoing()) + // We don't react to devsound errors unless we are activating. + if (iActivationOngoing && aError == KErrAccessDenied) { - //CSPLOGSTRING( CSPINT, "TMSCSDownlink::PlayError activation failed" ); - if (aError == KErrAccessDenied) + if (iStartRetryTime != 0) { + StartTimer(); + } + else + { + CancelTimer(); iActivationOngoing = EFalse; - iObserver.DownlinkActivationFailed(); + iObserver.DownlinkActivationCompleted(aError); } } } // ----------------------------------------------------------------------------- -// From class CSPDevsound -// Tries to activate Downlink stream. +// From class TMSCSDevSound +// Activates Downlink stream. // ----------------------------------------------------------------------------- // void TMSCSDownlink::DoActivateL() @@ -139,28 +169,4 @@ } } -// ----------------------------------------------------------------------------- -// Constructor -// ----------------------------------------------------------------------------- -// -TMSCSDownlink::TMSCSDownlink(TMSCSPDevSoundObserver& aObserver) : - TMSCSPDevSound(aObserver) - { - } - -// ----------------------------------------------------------------------------- -// Second phase constructor -// ----------------------------------------------------------------------------- -// -void TMSCSDownlink::ConstructL() - { - TMSCSPDevSound::ConstructL(EMMFStatePlaying, KAudioPrefCSCallDownlink, - KAudioPriorityCSCallDownlink); - - if (iDevSound) - { - iDevSound->SetVolume(KDefaultVolume); - } - } - // End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmscsuplink.cpp --- a/mmserv/tms/tmscallserver/src/tmscsuplink.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmscsuplink.cpp Fri May 28 19:26:28 2010 -0500 @@ -16,23 +16,40 @@ */ #include +#include "tmsutility.h" #include "tmscsuplink.h" #include "tmscsdevsoundobserver.h" using namespace TMS; -// Mute value -const gint KSetMuteToDevSound = 0; +// ----------------------------------------------------------------------------- +// Constructor +// ----------------------------------------------------------------------------- +// +TMSCSUplink::TMSCSUplink(TMSCSDevSoundObserver& observer) : + TMSCSDevSound(observer) + { + } // ----------------------------------------------------------------------------- -// Static constructor. +// Second phase constructor // ----------------------------------------------------------------------------- // -TMSCSUplink* TMSCSUplink::NewL(TMSCSPDevSoundObserver& aObserver) +void TMSCSUplink::ConstructL(const gint retrytime) { - TMSCSUplink* self = new (ELeave) TMSCSUplink(aObserver); + TMSCSDevSound::ConstructL(TMS_STREAM_UPLINK, retrytime); + } + +// ----------------------------------------------------------------------------- +// Static constructor +// ----------------------------------------------------------------------------- +// +TMSCSUplink* TMSCSUplink::NewL(TMSCSDevSoundObserver& observer, + const gint retrytime) + { + TMSCSUplink* self = new (ELeave) TMSCSUplink(observer); CleanupStack::PushL(self); - self->ConstructL(); + self->ConstructL(retrytime); CleanupStack::Pop(self); return self; } @@ -49,61 +66,31 @@ // Gives mic mute state // ----------------------------------------------------------------------------- // -TBool TMSCSUplink::IsMuted() +gboolean TMSCSUplink::IsMuted() { - TBool isMuted = EFalse; - gint gain = 0; + gint gain(0); + if (iDevSound) { gain = iDevSound->Gain(); } - if (!gain) - { - // Mute is on - isMuted = ETrue; - } - // CSPLOGSTRING( CSPINT, "TMSCSUplink::IsMuted" ); - return isMuted; + return ((!gain)? TRUE : FALSE); } // ----------------------------------------------------------------------------- -// Set mic muted. +// Sets mic gain // ----------------------------------------------------------------------------- // -void TMSCSUplink::SetMuted() +void TMSCSUplink::SetGain(gint gain) { if (iDevSound) { - iDevSound->SetGain(KSetMuteToDevSound); + iDevSound->SetGain(gain); } } // ----------------------------------------------------------------------------- -// Set mic unmuted -// ----------------------------------------------------------------------------- -// -void TMSCSUplink::SetUnmuted() - { - if (iDevSound) - { - iDevSound->SetGain(iDevSound->MaxGain()); - } - } - -// ----------------------------------------------------------------------------- -// Sets gain -// ----------------------------------------------------------------------------- -// -void TMSCSUplink::SetGain(gint aGain) - { - if (iDevSound) - { - iDevSound->SetGain(aGain); - } - } - -// ----------------------------------------------------------------------------- -// Gives volume +// Returns mic gain // ----------------------------------------------------------------------------- // gint TMSCSUplink::Gain() @@ -117,7 +104,7 @@ } // ----------------------------------------------------------------------------- -// Gives max gain +// Returns max mic gain // ----------------------------------------------------------------------------- // gint TMSCSUplink::MaxGain() @@ -132,46 +119,50 @@ // ----------------------------------------------------------------------------- // From class MDevSoundObserver -// Activation was successfull. +// Uplink stream has been activated successfully. // ----------------------------------------------------------------------------- // void TMSCSUplink::BufferToBeEmptied(CMMFBuffer* /*aBuffer*/) { - // CSPLOGSTRING( CSPINT, "TMSCSUplink::BufferToBeEmptied" ); + TRACE_PRN_N(_L("TMSCSUplink::BufferToBeEmptied")); // We dont react to devsound messages unless we are activating. - if (IsActivationOngoing()) + if (iActivationOngoing) { iActive = ETrue; iActivationOngoing = EFalse; - iObserver.UplinkActivatedSuccessfully(); + iObserver.UplinkActivationCompleted(KErrNone); } } // ----------------------------------------------------------------------------- // From class MDevSoundObserver -// Activation feiled +// Uplink stream activation failed // ----------------------------------------------------------------------------- // void TMSCSUplink::RecordError(TInt aError) { - // CSPLOGSTRING( CSPINT, "TMSCSUplink::RecordError" ); + TRACE_PRN_N1(_L("TMSCSUplink::RecordError[%d]"), aError); // We dont react to devsound messages unless we are activating. - if (IsActivationOngoing()) + if (iActivationOngoing && aError == KErrAccessDenied) { - if (aError == KErrAccessDenied) + if (iStartRetryTime != 0) { + StartTimer(); + } + else + { + CancelTimer(); iActivationOngoing = EFalse; - iObserver.UplinkActivationFailed(); + iObserver.UplinkActivationCompleted(aError); } } } // ----------------------------------------------------------------------------- -// From class TMSCSPDevSound -// Tries to activate mic stream. Stream becomes active when BufferToBeFilled -// gets called. +// From class TMSCSDevSound +// Activates Uplink stream. // ----------------------------------------------------------------------------- // void TMSCSUplink::DoActivateL() @@ -182,23 +173,4 @@ } } -// ----------------------------------------------------------------------------- -// Constructor -// ----------------------------------------------------------------------------- -// -TMSCSUplink::TMSCSUplink(TMSCSPDevSoundObserver& aObserver) : - TMSCSPDevSound(aObserver) - { - } - -// ----------------------------------------------------------------------------- -// Second phase constructor -// ----------------------------------------------------------------------------- -// -void TMSCSUplink::ConstructL() - { - TMSCSPDevSound::ConstructL(EMMFStateRecording, KAudioPrefCSCallUplink, - KAudioPriorityCSCallUplink); - } - // End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmsipcalldownlinkds.cpp --- a/mmserv/tms/tmscallserver/src/tmsipcalldownlinkds.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmsipcalldownlinkds.cpp Fri May 28 19:26:28 2010 -0500 @@ -32,7 +32,8 @@ // Standard Constructor // ----------------------------------------------------------------------------- // -TMSIPDownlink::TMSIPDownlink() +TMSIPDownlink::TMSIPDownlink(TMSIPDevSoundObserver& observer) : + TMSIPCallStreamBase(observer) { } @@ -61,12 +62,13 @@ // Symbian two-phase constructor // ----------------------------------------------------------------------------- // -TMSIPDownlink* TMSIPDownlink::NewL(const guint32 codecID, - const TMMFPrioritySettings priority) +TMSIPDownlink* TMSIPDownlink::NewL(TMSIPDevSoundObserver& observer, + const guint32 codecID, const TMMFPrioritySettings priority, + const gint retrytime) { - TMSIPDownlink* self = new (ELeave) TMSIPDownlink(); + TMSIPDownlink* self = new (ELeave) TMSIPDownlink(observer); CleanupStack::PushL(self); - self->ConstructL(codecID, priority); + self->ConstructL(codecID, priority, retrytime); CleanupStack::Pop(self); return self; } @@ -77,17 +79,15 @@ // ----------------------------------------------------------------------------- // void TMSIPDownlink::ConstructL(const guint32 codecID, - const TMMFPrioritySettings priority) + const TMMFPrioritySettings priority, const gint /*retrytime*/) { TRACE_PRN_FN_ENT; - iCodecID = codecID; iPriority = priority; // Client must set these before querying! iG711DecodeMode = TMS_G711_CODEC_MODE_ALAW; iILBCDecodeMode = TMS_ILBC_CODEC_MODE_20MS_FRAME; - TRAPD(err, InitDevSoundL(EMMFStatePlaying, priority)); if (err != TMS_RESULT_SUCCESS) { @@ -95,7 +95,6 @@ } iMaxBufLen = ConfigureMedia(iCodecID); - TRACE_PRN_FN_EXT; } @@ -104,26 +103,21 @@ // // ----------------------------------------------------------------------------- // -void TMSIPDownlink::Start() +void TMSIPDownlink::Start(const gint /*retrytime*/) { TRACE_PRN_FN_ENT; - gint err = TMS_RESULT_ILLEGAL_OPERATION; if (iStatus == EReady && iDevSound) { TRAP(err, iDevSound->PlayInitL()); TRACE_PRN_IF_ERR(err); - -#ifdef _DEBUG - iSamplesPlayedCount = 0; -#endif if (err != TMS_RESULT_SUCCESS) { iStatus = EReady; + iObserver.DownlinkStarted(err); } } - TRACE_PRN_FN_EXT; } @@ -141,7 +135,6 @@ iDevSound->Stop(); iStatus = EReady; } - TRACE_PRN_FN_EXT; } @@ -156,18 +149,19 @@ void TMSIPDownlink::BufferToBeFilled(CMMFBuffer* aBuffer) { // Store pointer to the received buffer - iDevSoundBufPtr = static_cast(aBuffer); + iDevSoundBufPtr = static_cast (aBuffer); iBufLen = iDevSoundBufPtr->RequestSize(); TRACE_PRN_N1(_L("TMS->DNL->BTBF: LEN[%d]"), iBufLen); #ifndef __WINSCW__ - //TODO: revisit this! + //TODO: Is this still true? // The first AMR buffer returns 1 for no data frame. /*if (iCodecID == KMccFourCCIdAMRNB) { iBufLen = iMaxBufLen; }*/ #endif //__WINSCW__ + // Create or adjust the chunk gint err = DoChunk(iBufLen, iMsgBuffer); @@ -182,6 +176,7 @@ iMsgBuffer.iStatus = err; iMsgBuffer.iInt = iBufLen; iStatus = EStreaming; + // If chunk is opened, we will expect a call from the client to // get chunk handle. When we get a call to copy chunk handle, // check these variables and see if they match. This is not @@ -195,7 +190,6 @@ iMsgBuffer.iRequest = ECmdFillBuffer; err = iMsgQueue.Send(iMsgBuffer); - TRACE_PRN_IF_ERR(err); } @@ -210,7 +204,7 @@ // Copy data over from chunk TPtr8 dataPtr(iChunk.Base(), buflen, iMaxBufLen); - // RDebug::RawPrint(dataPtr); + //RDebug::RawPrint(dataPtr); if (iStatus == EStreaming && iDevSound && iDevSoundBufPtr) { @@ -362,7 +356,6 @@ status = TMS_RESULT_ILLEGAL_OPERATION; } } - TRACE_PRN_IF_ERR(status); return status; } @@ -396,7 +389,6 @@ } } } - TRACE_PRN_IF_ERR(err); return err; } @@ -443,7 +435,6 @@ } } } - TRACE_PRN_IF_ERR(err); return err; } @@ -478,7 +469,6 @@ TRACE_PRN_N1(_L("TMS->DNL: FrameModeRqrdForEC [%d]"), frmodereq); } } - TRACE_PRN_IF_ERR(err); return err; } @@ -502,7 +492,6 @@ TRACE_PRN_N1(_L("TMS->DNL: SetFrameMode [%d]"), frmode); } } - TRACE_PRN_IF_ERR(err); return err; } @@ -523,7 +512,6 @@ TRACE_PRN_N1(_L("TMS->DNL: GetFrameMode [%d]"), frmode); err = TMS_RESULT_SUCCESS; } - TRACE_PRN_IF_ERR(err); return err; } @@ -542,7 +530,6 @@ err = iErrConcealmentIntfc->ConcealErrorForNextBuffer(); TRACE_PRN_N(_L("TMS->DNL: ConcealErrorForNextBuffer")); } - TRACE_PRN_IF_ERR(err); return err; } @@ -569,7 +556,6 @@ TRACE_PRN_N1(_L("TMS->DNL: SetCng [%d]"), cng); } } - TRACE_PRN_IF_ERR(err); return err; } @@ -596,7 +582,6 @@ TRACE_PRN_N1(_L("TMS->DNL: GetCng [%d]"), cng); } } - TRACE_PRN_IF_ERR(err); return err; } @@ -619,7 +604,6 @@ TRACE_PRN_N1(_L("TMS->DNL: SetPlc [%d]"), plc); } } - TRACE_PRN_IF_ERR(err); return err; } @@ -640,7 +624,6 @@ err = TMS_RESULT_SUCCESS; TRACE_PRN_N1(_L("TMS->DNL: GetPlc [%d]"), plc); } - TRACE_PRN_IF_ERR(err); return err; } @@ -662,7 +645,6 @@ TRACE_PRN_N(_L("TMS->DNL: BadLsfNextBuffer")); } } - TRACE_PRN_IF_ERR(err); return err; } @@ -759,37 +741,30 @@ void TMSIPDownlink::InitializeComplete(TInt aError) { TRACE_PRN_FN_ENT; + gint status = aError; - gint err = aError; - - if (err == TMS_RESULT_SUCCESS && iDevSound) + if (status == TMS_RESULT_SUCCESS && iDevSound) { TMMFCapabilities conf; conf = iDevSound->Config(); conf.iRate = EMMFSampleRate8000Hz; conf.iChannels = EMMFMono; - TRAP(err, iDevSound->SetConfigL(conf)); - if (err == TMS_RESULT_SUCCESS) + TRAP(status, iDevSound->SetConfigL(conf)); + if (status == TMS_RESULT_SUCCESS) { // We are ready to stream even in case of later CI setting failure iStatus = EReady; iMaxVolume = iDevSound->MaxVolume(); } - // Init Custom Interface API to the decoder - err = SetCodecCi(); - if (err != TMS_RESULT_SUCCESS) - { - // DEBUG only - // Can ignore error - although decoder is not fully configured but - // it can still run in the default mode. - TRACE_PRN_IF_ERR(err); - } + // Init Custom Interface API to the Decoder. Any return error can + // be ignored as codec can still run in the default mode even if not + // fully configured. + SetCodecCi(); } - // TODO: Notify client - - TRACE_PRN_IF_ERR(err); + iObserver.DownlinkInitCompleted(status); + TRACE_PRN_IF_ERR(status); TRACE_PRN_FN_EXT; } @@ -800,16 +775,11 @@ // The state of recorder is rolled back to EReady. // ----------------------------------------------------------------------------- // -void TMSIPDownlink::PlayError(TInt /*aError*/) +void TMSIPDownlink::PlayError(TInt aError) { - //TRACE_PRN_IF_ERR(aError); - -#ifdef _DEBUG - iSamplesPlayedCount = 0; -#endif iStatus = EReady; - - // TODO: Notify client + iObserver.DownlinkStarted(aError); + TRACE_PRN_IF_ERR(aError); } // End of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmsipcallstreambase.cpp --- a/mmserv/tms/tmscallserver/src/tmsipcallstreambase.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmsipcallstreambase.cpp Fri May 28 19:26:28 2010 -0500 @@ -24,6 +24,16 @@ using namespace TMS; // ----------------------------------------------------------------------------- +// TMSIPCallStreamBase::TMSIPCallStreamBase +// Constructor +// ----------------------------------------------------------------------------- +// +TMSIPCallStreamBase::TMSIPCallStreamBase(TMSIPDevSoundObserver& observer) : + iObserver(observer) + { + } + +// ----------------------------------------------------------------------------- // TMSIPCallStreamBase::~TMSIPCallStreamBase // Destructor // ----------------------------------------------------------------------------- diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmscallserver/src/tmsipcalluplinkds.cpp --- a/mmserv/tms/tmscallserver/src/tmsipcalluplinkds.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmscallserver/src/tmsipcalluplinkds.cpp Fri May 28 19:26:28 2010 -0500 @@ -31,7 +31,8 @@ // Standard Constructor // ----------------------------------------------------------------------------- // -TMSIPUplink::TMSIPUplink() +TMSIPUplink::TMSIPUplink(TMSIPDevSoundObserver& observer) : + TMSIPCallStreamBase(observer) { } @@ -59,12 +60,13 @@ // Symbian two-phase constructor // ----------------------------------------------------------------------------- // -TMSIPUplink* TMSIPUplink::NewL(const guint32 codecID, - const TMMFPrioritySettings priority) +TMSIPUplink* TMSIPUplink::NewL(TMSIPDevSoundObserver& observer, + const guint32 codecID, const TMMFPrioritySettings priority, + const gint retrytime) { - TMSIPUplink* self = new (ELeave) TMSIPUplink(); + TMSIPUplink* self = new (ELeave) TMSIPUplink(observer); CleanupStack::PushL(self); - self->ConstructL(codecID, priority); + self->ConstructL(codecID, priority, retrytime); CleanupStack::Pop(self); return self; } @@ -75,17 +77,15 @@ // ----------------------------------------------------------------------------- // void TMSIPUplink::ConstructL(const guint32 codecID, - const TMMFPrioritySettings priority) + const TMMFPrioritySettings priority, const gint /*retrytime*/) { TRACE_PRN_FN_ENT; - iCodecID = codecID; iPriority = priority; // Client must set these before querying! iG711EncodeMode = TMS_G711_CODEC_MODE_ALAW; iILBCEncodeMode = TMS_ILBC_CODEC_MODE_20MS_FRAME; - TRAPD(err, InitDevSoundL(EMMFStateRecording, priority)); if (err != TMS_RESULT_SUCCESS) { @@ -93,7 +93,6 @@ } iMaxBufLen = ConfigureMedia(iCodecID); - TRACE_PRN_FN_EXT; } @@ -102,7 +101,7 @@ // // ----------------------------------------------------------------------------- // -void TMSIPUplink::Start() +void TMSIPUplink::Start(const gint /*retrytime*/) { TRACE_PRN_FN_ENT; @@ -116,17 +115,10 @@ if (err != TMS_RESULT_SUCCESS) { - //TODO: Notify main thread iStatus = EReady; + iObserver.UplinkStarted(err); } -#ifdef _DEBUG - else - { - iSamplesRecCount = 0; - } -#endif } - TRACE_PRN_FN_EXT; } @@ -144,10 +136,6 @@ iDevSound->Stop(); iStatus = EReady; } - else - { - //TODO: Notify main thread - } TRACE_PRN_FN_EXT; } @@ -158,9 +146,8 @@ // void TMSIPUplink::BufferToBeEmptied(CMMFBuffer* aBuffer) { - iDevSoundBufPtr = static_cast(aBuffer); + iDevSoundBufPtr = static_cast (aBuffer); TDes8& data = iDevSoundBufPtr->Data(); - iBufLen = iDevSoundBufPtr->BufferSize(); TRACE_PRN_N1(_L("TMS->UPL: BTBE->LEN [%d]"), iBufLen); @@ -353,7 +340,6 @@ status = TMS_RESULT_ILLEGAL_OPERATION; } } - return status; } @@ -386,7 +372,6 @@ } } } - TRACE_PRN_IF_ERR(err); return err; } @@ -433,7 +418,6 @@ } } } - TRACE_PRN_IF_ERR(err); return err; } @@ -465,7 +449,6 @@ { err = iSpeechEncoderConfig->GetSupportedBitrates(bitrates); } - TRACE_PRN_IF_ERR(err); return err; } @@ -484,7 +467,6 @@ err = iSpeechEncoderConfig->SetBitrate(bitrate); TRACE_PRN_N1(_L("TMS->UPL: SetBitrate [%d]"), bitrate); } - TRACE_PRN_IF_ERR(err); return err; } @@ -503,7 +485,6 @@ err = iSpeechEncoderConfig->GetBitrate(bitrate); TRACE_PRN_N1(_L("TMS->UPL: GetBitrate [%d]"), bitrate); } - TRACE_PRN_IF_ERR(err); return err; } @@ -634,36 +615,30 @@ { TRACE_PRN_FN_ENT; - gint err = aError; + gint status = aError; - if (err == TMS_RESULT_SUCCESS && iDevSound) + if (status == TMS_RESULT_SUCCESS && iDevSound) { TMMFCapabilities conf; conf = iDevSound->Config(); conf.iRate = EMMFSampleRate8000Hz; conf.iChannels = EMMFMono; - TRAP(err, iDevSound->SetConfigL(conf)); - if (err == TMS_RESULT_SUCCESS) + TRAP(status, iDevSound->SetConfigL(conf)); + if (status == TMS_RESULT_SUCCESS) { // We are ready to stream even in case of CI setting failure iStatus = EReady; iMaxGain = iDevSound->MaxGain(); } - // Init Custom Interface API to the Encoder - err = SetCodecCi(); - if (err != TMS_RESULT_SUCCESS) - { - // DEBUG only - // Can ignore error - although encoder is not fully configured but - // it can still run in the default mode. - TRACE_PRN_IF_ERR(err); - } + // Init Custom Interface API to the Encoder. Any return error can + // be ignored as codec can still run in the default mode even if not + // fully configured. + SetCodecCi(); } - // TODO: Notify client - - TRACE_PRN_IF_ERR(err); + iObserver.UplinkInitCompleted(status); + TRACE_PRN_IF_ERR(status); TRACE_PRN_FN_EXT; } @@ -674,16 +649,11 @@ // The state of recorder is rolled back to EReady. // ----------------------------------------------------------------------------- // -void TMSIPUplink::RecordError(TInt /*aError*/) +void TMSIPUplink::RecordError(TInt aError) { - //TRACE_PRN_IF_ERR(aError); - -#ifdef _DEBUG - iSamplesRecCount = 0; -#endif iStatus = EReady; - - // TODO: Notify client + iObserver.UplinkStarted(aError); + TRACE_PRN_IF_ERR(aError); } // End of file diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsimpl/inc/tmsstreambodyimpl.h --- a/mmserv/tms/tmsimpl/inc/tmsstreambodyimpl.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsimpl/inc/tmsstreambodyimpl.h Fri May 28 19:26:28 2010 -0500 @@ -66,9 +66,9 @@ virtual TMSStreamState GetState(); virtual TMSStreamType GetStreamType(); virtual gint GetStreamId(); - virtual gint Init(); + virtual gint Init(gint retrytime); virtual gint Pause(); - virtual gint Start(); + virtual gint Start(gint retrytime); virtual gint Stop(); virtual void Deinit(); diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsimpl/src/tmsstreambodyimpl.cpp --- a/mmserv/tms/tmsimpl/src/tmsstreambodyimpl.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsimpl/src/tmsstreambodyimpl.cpp Fri May 28 19:26:28 2010 -0500 @@ -334,7 +334,7 @@ return iContext.StreamId; } -gint TMSStreamBodyImpl::Init() +gint TMSStreamBodyImpl::Init(gint retrytime) { gint ret(TMS_RESULT_SUCCESS); @@ -355,7 +355,8 @@ if (iContext.CallProxy) { ret = (iContext.CallProxy)->InitStream(iContext.CallType, - iContext.StreamType, iContext.StreamId, fmttype, &iMsgQueue); + iContext.StreamType, iContext.StreamId, fmttype, &iMsgQueue, + retrytime); } else { @@ -490,13 +491,13 @@ return ret; } -gint TMSStreamBodyImpl::Start() +gint TMSStreamBodyImpl::Start(gint retrytime) { gint ret(TMS_RESULT_SUCCESS); if (iContext.CallProxy) { ret = (iContext.CallProxy)->StartStream(iContext.CallType, - iContext.StreamType, iContext.StreamId); + iContext.StreamType, iContext.StreamId, retrytime); } else { @@ -734,7 +735,15 @@ event.prev_state = iPrevState; if (iObserver) { - event.type = TMS_EVENT_STREAM_STATE_CHANGED; + if (aError != TMS_RESULT_SUCCESS) + { + //event.type = TMS_EVENT_STREAM_STATE_CHANGE_ERROR; + event.type = TMS_EVENT_STREAM_STATE_CHANGED; + } + else + { + event.type = TMS_EVENT_STREAM_STATE_CHANGED; + } iObserver->TMSStreamEvent(*iParent, event); } break; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsserver/group/tmsserver.mmp --- a/mmserv/tms/tmsserver/group/tmsserver.mmp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsserver/group/tmsserver.mmp Fri May 28 19:26:28 2010 -0500 @@ -44,7 +44,6 @@ SOURCE tmsrtcontainer.cpp SOURCE tmsrtaudiohdlr.cpp SOURCE tmsrtplayer.cpp -SOURCE tmstimer.cpp SOURCE tmsasyncreqao.cpp USERINCLUDE ../inc @@ -67,6 +66,7 @@ LIBRARY libglib.lib LIBRARY mmfdevsound.lib LIBRARY tmscallserver.lib +LIBRARY tmsutility.lib LIBRARY centralrepository.lib LIBRARY cenrepnotifhandler.lib LIBRARY profileengine.lib diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsserver/inc/tmsrtplayer.h --- a/mmserv/tms/tmsserver/inc/tmsrtplayer.h Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsserver/inc/tmsrtplayer.h Fri May 28 19:26:28 2010 -0500 @@ -47,7 +47,7 @@ */ class TMSRingTonePlayer : public CBase, public TMSRtAudioHdlrObsrv, - public TMSTimerObsrv, + public TMSTimerObserver, public TMSAsyncReqObsrv { public: @@ -226,9 +226,9 @@ TInt aPlayer); /** - * @see TMSTimerObsrv + * From TMSTimerObserver */ - virtual void HandleTimeOutL(); + virtual void TimerEvent(); /** * Enumerates how many times TTS has played diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsserver/inc/tmstimer.h --- a/mmserv/tms/tmsserver/inc/tmstimer.h Fri May 14 18:19:45 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: - * Utility class for CTimer object - * - */ - -#ifndef TMSTIMER_H -#define TMSTIMER_H - -// INCLUDES -#include - -namespace TMS { - -/** -* Mixin class for phone timer -*/ -class TMSTimerObsrv - { - - public: // New functions - - /** - * Destructor - */ - virtual ~TMSTimerObsrv(){}; - - /** - * This function is called after on timeout - */ - virtual void HandleTimeOutL() = 0; - }; - -// CLASS DECLARATION - -/** - * Utility class for timer - */ -class TMSTimer : public CTimer - { -public: - // Constructors and destructor - - /** - * Two-phased constructor. - */ - IMPORT_C static TMSTimer* NewL( - TInt aPriority = CActive::EPriorityStandard); - - /** - * Destructor. - */ - IMPORT_C virtual ~TMSTimer(); - -public: - // New functions - - /** - * The Callback function is called after the interval - * All former request will be canceled first - */ - IMPORT_C void After(TTimeIntervalMicroSeconds32 anInterval, - TCallBack aCallBack); - - /** - * Use the maxin class to notify the timer - * All former request will be canceled first - */ - IMPORT_C void After(TTimeIntervalMicroSeconds32 anInterval, - TMSTimerObsrv* aObserver); - - /** - * Cancel the timer if needed - */ - IMPORT_C void CancelTimer(); - -protected: - // Functions from base classes - - /** - * From CTimer::RunL() - */ - virtual void RunL(); - - /** - * From CTimer::RunL() - */ - virtual TInt RunError(TInt aError); - - /** - * From CTimer::DoCancel() - */ - virtual void DoCancel(); - -private: - - /** - * C++ default constructor. - */ - TMSTimer(TInt aPriority); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - // By default, prohibit copy constructor - TMSTimer(const TMSTimer&); - - // Prohibit assigment operator - TMSTimer& operator = (const TMSTimer&); - -private: - // Data - - // Used by After( anInterval, aCallBack ) - TCallBack iCallBack; - - // Used by After( anInterval, aObserver ) - TMSTimerObsrv* iTimerObserver; - }; - -} // namespace TMS - -#endif // TMSTIMER_H - -// End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsserver/src/tmsrtplayer.cpp --- a/mmserv/tms/tmsserver/src/tmsrtplayer.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsserver/src/tmsrtplayer.cpp Fri May 28 19:26:28 2010 -0500 @@ -594,18 +594,18 @@ if (!iAudioPlayer) { CreateAudioPlayerL(); - if (!iTimer->IsActive()) + if (!iTimer->IsRunning()) { // If InitComplete event doesn't occur within permittable time, // this will trigger fallback routine. - iTimer->After(KTMSMaxRingingWaiting, this); + iTimer->NotifyAfter(KTMSMaxRingingWaiting, *this); } } // Start playing. if (!iAudioPlayer) { - iTimer->Cancel(); + iTimer->CancelNotify(); PlayDefaultToneL(); } else @@ -739,9 +739,9 @@ iTtsDelaysCount = KTMSTtsDelaysCount; // Start TTS timer just before RT - if (!iTtsDelayTimer->IsActive()) + if (!iTtsDelayTimer->IsRunning()) { - iTtsDelayTimer->After(KTMSTtsDelays[iTtsDelayIndex], + iTtsDelayTimer->NotifyAfter(KTMSTtsDelays[iTtsDelayIndex], TCallBack(HandleTtsDelayTimeout, this)); } iTtsVolume = iRtParam.iVolume; @@ -771,7 +771,7 @@ iTonePlayingStatus = EBackupTonePlaying; iTtsToneToBePlayed = EFalse; iTTsTimeOutCounter = 0; - iTtsDelayTimer->Cancel(); + iTtsDelayTimer->CancelNotify(); if (iTtsPlayer) { iTtsPlayer->StopPlaying(); @@ -809,11 +809,11 @@ if (!iDefaultPlayer) { CreateDefaultRtPlayerL(); - if (!iTimer->IsActive()) + if (!iTimer->IsRunning()) { // If InitComplete event doesn't occur within permittable time, // this will trigger fallback routine. - iTimer->After(KTMSMaxRingingWaiting, this); + iTimer->NotifyAfter(KTMSMaxRingingWaiting, *this); } } @@ -821,7 +821,7 @@ if (!iDefaultPlayer) { // Default player not ready, play backup. - iTimer->Cancel(); + iTimer->CancelNotify(); PlayBackupToneL(); } else @@ -844,14 +844,14 @@ iTtsToneToBePlayed = EFalse; iTTsTimeOutCounter = 0; - iTtsDelayTimer->Cancel(); + iTtsDelayTimer->CancelNotify(); if (iTtsPlayer) { iTtsPlayer->StopPlaying(); delete iTtsPlayer; iTtsPlayer = NULL; } - iTimer->Cancel(); + iTimer->CancelNotify(); switch (iTonePlayingStatus) { @@ -1240,7 +1240,7 @@ if (ignore) ; } - iTimer->Cancel(); + iTimer->CancelNotify(); DoHandlePlayerError(!deleteAll, EFalse); iRtObserver.RtPlayerEvent(aEvent, aError); } @@ -1256,7 +1256,7 @@ (iTonePlayingStatus == EDefaultTonePlaying && aPlayer == EPlayerDefault)) { - iTimer->Cancel(); + iTimer->CancelNotify(); } else { @@ -1302,10 +1302,10 @@ // Need to restart TTS sequence TTS has completed its iterations, // set index to zero. iTtsDelayIndex = 0; - if (!iTtsDelayTimer->IsActive()) + if (!iTtsDelayTimer->IsRunning()) { // Restart TTS sequence - iTtsDelayTimer->After(KTMSTtsDelays[iTtsDelayIndex], + iTtsDelayTimer->NotifyAfter(KTMSTtsDelays[iTtsDelayIndex], TCallBack(HandleTtsDelayTimeout, this)); } } @@ -1332,10 +1332,10 @@ // Caller name is said once. Increase tone player volume. SolveNewVolumeAndRamptime(ESaidOnce); - if (!iTtsDelayTimer->IsActive()) + if (!iTtsDelayTimer->IsRunning()) { // There are more TTS iterations to be played. - iTtsDelayTimer->After(KTMSTtsDelays[iTtsDelayIndex], + iTtsDelayTimer->NotifyAfter(KTMSTtsDelays[iTtsDelayIndex], TCallBack(HandleTtsDelayTimeout, this)); } } @@ -1347,10 +1347,10 @@ } // ----------------------------------------------------------------------------- -// TMSRingTonePlayer::HandleTimeOutL +// TMSRingTonePlayer::TimerEvent // ----------------------------------------------------------------------------- // -void TMSRingTonePlayer::HandleTimeOutL() +void TMSRingTonePlayer::TimerEvent() { DoHandlePlayerError(ETrue, ETrue); } diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsserver/src/tmstimer.cpp --- a/mmserv/tms/tmsserver/src/tmstimer.cpp Fri May 14 18:19:45 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: - * - */ - -// INCLUDE FILES -#include "tmstimer.h" - -using namespace TMS; - -// --------------------------------------------------------- -// TMSTimer::TMSTimer -// --------------------------------------------------------- -// -TMSTimer::TMSTimer(TInt aPriority) : - CTimer(aPriority) - { - CActiveScheduler::Add(this); - } - -// --------------------------------------------------------- -// TMSTimer::ConstructL -// --------------------------------------------------------- -// -void TMSTimer::ConstructL() - { - CTimer::ConstructL(); - } - -// --------------------------------------------------------- -// TMSTimer::NewL -// --------------------------------------------------------- -// -EXPORT_C TMSTimer* TMSTimer::NewL(TInt aPriority) - { - TMSTimer* self = new (ELeave) TMSTimer(aPriority); - - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - - return self; - } - -// --------------------------------------------------------- -// TMSTimer::~TMSTimer -// --------------------------------------------------------- -// -EXPORT_C TMSTimer::~TMSTimer() - { - Cancel(); - } - -// --------------------------------------------------------- -// TMSTimer::RunL() -// --------------------------------------------------------- -// -void TMSTimer::RunL() - { - if (iStatus != KErrNone) - { - //error code is ignored, as CPeriodic. - return; - } - - if (!iTimerObserver) - { - //"TMSTimer::RunL CallBack" ); - iCallBack.CallBack(); - } - else - { - //"TMSTimer::RunL HandleTimeOutL" ); - iTimerObserver->HandleTimeOutL(); - } - } - -// --------------------------------------------------------- -// TMSTimer::RunL() -// --------------------------------------------------------- -// -TInt TMSTimer::RunError(TInt aError) - { - //TODO: process error if HandleTimeOutL() in RunL leaves - return aError; - } - -// --------------------------------------------------------- -// TMSTimer::After() -// --------------------------------------------------------- -// -EXPORT_C void TMSTimer::After(TTimeIntervalMicroSeconds32 anInterval, - TCallBack aCallBack) - { - if (IsActive()) - { - Cancel(); - } - iTimerObserver = NULL; - iCallBack = aCallBack; - CTimer::After(anInterval); - } - -// --------------------------------------------------------- -// TMSTimer::After() -// --------------------------------------------------------- -// - -EXPORT_C void TMSTimer::After(TTimeIntervalMicroSeconds32 anInterval, - TMSTimerObsrv* aObserver) - { - //__ASSERT_DEBUG( aObserver, Panic( EPhoneUtilsParameterNotInitialized ) ); - - if (IsActive()) - { - Cancel(); - } - iTimerObserver = aObserver; - CTimer::After(anInterval); - } - -// --------------------------------------------------------- -// TMSTimer::CancelTimer -// --------------------------------------------------------- -// -EXPORT_C void TMSTimer::CancelTimer() - { - Cancel(); - } - -// --------------------------------------------------------- -// TMSTimer::DoCancel -// --------------------------------------------------------- -// -void TMSTimer::DoCancel() - { - iTimerObserver = NULL; - CTimer::DoCancel(); - } - -// End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsutility/bwins/tmsutility.def --- a/mmserv/tms/tmsutility/bwins/tmsutility.def Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsutility/bwins/tmsutility.def Fri May 28 19:26:28 2010 -0500 @@ -1,8 +1,14 @@ EXPORTS - ?FourCCToTMSFormat@TMSUtility@TMS@@SAHK@Z @ 1 NONAME ; int TMS::TMSUtility::FourCCToTMSFormat(unsigned long) - ?ToTAROutput@TMSUtility@TMS@@SA?AW4TAudioOutput@CTelephonyAudioRouting@@H@Z @ 2 NONAME ; enum CTelephonyAudioRouting::TAudioOutput TMS::TMSUtility::ToTAROutput(int) - ?ToFourCC@TMSUtility@TMS@@SAKH@Z @ 3 NONAME ; unsigned long TMS::TMSUtility::ToFourCC(int) - ?EtelToTMSResult@TMSUtility@TMS@@SAHH@Z @ 4 NONAME ; int TMS::TMSUtility::EtelToTMSResult(int) - ?ToTMSOutput@TMSUtility@TMS@@SAHW4TAudioOutput@CTelephonyAudioRouting@@@Z @ 5 NONAME ; int TMS::TMSUtility::ToTMSOutput(enum CTelephonyAudioRouting::TAudioOutput) - ?TMSResult@TMSUtility@TMS@@SAHH@Z @ 6 NONAME ; int TMS::TMSUtility::TMSResult(int) + ?NewL@TMSTimer@TMS@@SAPAV12@H@Z @ 1 NONAME ; class TMS::TMSTimer * TMS::TMSTimer::NewL(int) + ?EtelToTMSResult@TMSUtility@TMS@@SAHH@Z @ 2 NONAME ; int TMS::TMSUtility::EtelToTMSResult(int) + ?ToTMSOutput@TMSUtility@TMS@@SAHW4TAudioOutput@CTelephonyAudioRouting@@@Z @ 3 NONAME ; int TMS::TMSUtility::ToTMSOutput(enum CTelephonyAudioRouting::TAudioOutput) + ?IsRunning@TMSTimer@TMS@@QAEHXZ @ 4 NONAME ; int TMS::TMSTimer::IsRunning(void) + ?TMSResult@TMSUtility@TMS@@SAHH@Z @ 5 NONAME ; int TMS::TMSUtility::TMSResult(int) + ?CancelNotify@TMSTimer@TMS@@QAEXXZ @ 6 NONAME ; void TMS::TMSTimer::CancelNotify(void) + ?FourCCToTMSFormat@TMSUtility@TMS@@SAHK@Z @ 7 NONAME ; int TMS::TMSUtility::FourCCToTMSFormat(unsigned long) + ?NotifyAfter@TMSTimer@TMS@@QAEXHAAVTMSTimerObserver@2@@Z @ 8 NONAME ; void TMS::TMSTimer::NotifyAfter(int, class TMS::TMSTimerObserver &) + ?ToTAROutput@TMSUtility@TMS@@SA?AW4TAudioOutput@CTelephonyAudioRouting@@H@Z @ 9 NONAME ; enum CTelephonyAudioRouting::TAudioOutput TMS::TMSUtility::ToTAROutput(int) + ?ToFourCC@TMSUtility@TMS@@SAKH@Z @ 10 NONAME ; unsigned long TMS::TMSUtility::ToFourCC(int) + ??1TMSTimer@TMS@@UAE@XZ @ 11 NONAME ; TMS::TMSTimer::~TMSTimer(void) + ?NotifyAfter@TMSTimer@TMS@@QAEXHVTCallBack@@@Z @ 12 NONAME ; void TMS::TMSTimer::NotifyAfter(int, class TCallBack) diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsutility/eabi/tmsutility.def --- a/mmserv/tms/tmsutility/eabi/tmsutility.def Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsutility/eabi/tmsutility.def Fri May 28 19:26:28 2010 -0500 @@ -5,4 +5,14 @@ _ZN3TMS10TMSUtility17FourCCToTMSFormatEm @ 4 NONAME _ZN3TMS10TMSUtility8ToFourCCEi @ 5 NONAME _ZN3TMS10TMSUtility9TMSResultEi @ 6 NONAME + _ZN3TMS8TMSTimer11NotifyAfterEi9TCallBack @ 7 NONAME + _ZN3TMS8TMSTimer11NotifyAfterEiRNS_16TMSTimerObserverE @ 8 NONAME + _ZN3TMS8TMSTimer12CancelNotifyEv @ 9 NONAME + _ZN3TMS8TMSTimer4NewLEi @ 10 NONAME + _ZN3TMS8TMSTimer9IsRunningEv @ 11 NONAME + _ZN3TMS8TMSTimerD0Ev @ 12 NONAME + _ZN3TMS8TMSTimerD1Ev @ 13 NONAME + _ZN3TMS8TMSTimerD2Ev @ 14 NONAME + _ZTIN3TMS8TMSTimerE @ 15 NONAME + _ZTVN3TMS8TMSTimerE @ 16 NONAME diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsutility/group/tmsutility.mmp --- a/mmserv/tms/tmsutility/group/tmsutility.mmp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/tms/tmsutility/group/tmsutility.mmp Fri May 28 19:26:28 2010 -0500 @@ -38,7 +38,9 @@ SOURCEPATH ../src SOURCE tmsutility.cpp +SOURCE tmstimer.cpp +LIBRARY euser.lib LIBRARY libc.lib LIBRARY libglib.lib diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/tms/tmsutility/src/tmstimer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/tms/tmsutility/src/tmstimer.cpp Fri May 28 19:26:28 2010 -0500 @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Telephony Multimedia Service + * + */ + +// INCLUDE FILES +#include "tmstimer.h" + +using namespace TMS; + +// ----------------------------------------------------------------------------- +// Constructor +// ----------------------------------------------------------------------------- +// +TMSTimer::TMSTimer(gint aPriority) : + CTimer(aPriority) + { + CActiveScheduler::Add(this); + } + +// ----------------------------------------------------------------------------- +// TMSTimer::ConstructL +// ----------------------------------------------------------------------------- +// +void TMSTimer::ConstructL() + { + CTimer::ConstructL(); + } + +// ----------------------------------------------------------------------------- +// TMSTimer::NewL +// ----------------------------------------------------------------------------- +// +EXPORT_C TMSTimer* TMSTimer::NewL(gint aPriority) + { + TMSTimer* self = new (ELeave) TMSTimer(aPriority); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// TMSTimer::~TMSTimer +// ----------------------------------------------------------------------------- +// +EXPORT_C TMSTimer::~TMSTimer() + { + Cancel(); + } + +// ----------------------------------------------------------------------------- +// TMSTimer::NotifyAfter +// ----------------------------------------------------------------------------- +// +EXPORT_C void TMSTimer::NotifyAfter(gint timeout, TCallBack callback) + { + if (IsActive()) + { + Cancel(); + } + iObserver = NULL; + iCallBack = callback; + CTimer::After(TTimeIntervalMicroSeconds32(timeout)); + } + +// ----------------------------------------------------------------------------- +// TMSTimer::NotifyAfter +// ----------------------------------------------------------------------------- +// +EXPORT_C void TMSTimer::NotifyAfter(gint timeout, TMSTimerObserver& observer) + { + if (IsActive()) + { + Cancel(); + } + iObserver = &observer; + CTimer::After(TTimeIntervalMicroSeconds32(timeout)); + } + +// ----------------------------------------------------------------------------- +// TMSTimer::CancelNotify +// ----------------------------------------------------------------------------- +// +EXPORT_C void TMSTimer::CancelNotify() + { + Cancel(); + } + +// ----------------------------------------------------------------------------- +// TMSTimer::IsRunning +// ----------------------------------------------------------------------------- +// +EXPORT_C gboolean TMSTimer::IsRunning() + { + return IsActive(); + } + +// ----------------------------------------------------------------------------- +// TMSTimer::RunL() +// ----------------------------------------------------------------------------- +// +void TMSTimer::RunL() + { + // Currently RunL doesn't leave. + if (iObserver) + { + iObserver->TimerEvent(); + } + else + { + iCallBack.CallBack(); + } + } + +// ----------------------------------------------------------------------------- +// TMSTimer::RunError() +// ----------------------------------------------------------------------------- +// +TInt TMSTimer::RunError(TInt aError) + { + return aError; + } + +// ----------------------------------------------------------------------------- +// TMSTimer::DoCancel +// ----------------------------------------------------------------------------- +// +void TMSTimer::DoCancel() + { + iObserver = NULL; + CTimer::DoCancel(); + } + +// End of File diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/voipaudioservices/VoIPServer/group/VoIPAudioServer.mmp --- a/mmserv/voipaudioservices/VoIPServer/group/VoIPAudioServer.mmp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/voipaudioservices/VoIPServer/group/VoIPAudioServer.mmp Fri May 28 19:26:28 2010 -0500 @@ -25,6 +25,7 @@ EPOCHEAPSIZE 0x20000 0x1000000 // Min 128kb, max 16Mb CAPABILITY MultiMediaDD ReadDeviceData WriteDeviceData UserEnvironment ReadUserData WriteUserData VENDORID VID_DEFAULT +EPOCPROCESSPRIORITY high SOURCEPATH ../src diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/voipaudioservices/VoIPServer/src/VoIPServerSession.cpp --- a/mmserv/voipaudioservices/VoIPServer/src/VoIPServerSession.cpp Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/voipaudioservices/VoIPServer/src/VoIPServerSession.cpp Fri May 28 19:26:28 2010 -0500 @@ -1907,14 +1907,12 @@ if (aError == KErrNone) { TMMFPrioritySettings pSet; - iShared.iMutex.Wait(); - pSet.iPref = iShared.iPreference; - pSet.iPriority = iShared.iPriority; - iShared.iMutex.Signal(); if (iDTMFTonePlayer && iDTMFTonePlayerInitRequest) { // initialized DTMF player + pSet.iPref = KAudioDTMFString; + pSet.iPriority = KAudioPriorityDTMFString; iDTMFTonePlayer->SetPrioritySettings(pSet); iDTMFTonePlayer->SetVolume(iMaxVolume); iToneLenOn = KDTMFToneLengthOn; @@ -1934,6 +1932,10 @@ else if (iDevSound && iDevSoundInitRequest) { // initialized standard player to check G711 frame rate + iShared.iMutex.Wait(); + pSet.iPref = iShared.iPreference; + pSet.iPriority = iShared.iPriority; + iShared.iMutex.Signal(); iDevSound->SetPrioritySettings(pSet); iDevSoundInitRequest = EFalse; diff -r b67dd1fc57c5 -r 2ed61feeead6 mmserv/voipaudioservices/group/bld.inf --- a/mmserv/voipaudioservices/group/bld.inf Fri May 14 18:19:45 2010 -0500 +++ b/mmserv/voipaudioservices/group/bld.inf Fri May 28 19:26:28 2010 -0500 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). + * 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" diff -r b67dd1fc57c5 -r 2ed61feeead6 tsrc/group/bld.inf --- a/tsrc/group/bld.inf Fri May 14 18:19:45 2010 -0500 +++ b/tsrc/group/bld.inf Fri May 28 19:26:28 2010 -0500 @@ -34,6 +34,9 @@ #include "../../mmmw_plat/radio_utilities_api/tsrc/Group/bld.inf" #include "../../mmmw_plat/thumbnail_engine_api/tsrc/group/bld.inf" #include "../../mmmw_plat/telephony_multimedia_service_api/tsrc/Group/Bld.inf" +#include "../../mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group/bld.inf" +#include "../../mmmw_plat/system_tone_service_api/tsrc/group/bld.inf" + PRJ_MMPFILES