void getAvailableMimeTypesL(QStringList& result) { RApaLsSession apaSession; User::LeaveIfError(apaSession.Connect()); CleanupClosePushL(apaSession); static const TInt DataTypeArrayGranularity = 8; CDataTypeArray* array = new(ELeave) CDataTypeArray(DataTypeArrayGranularity); CleanupStack::PushL(array); apaSession.GetSupportedDataTypesL(*array); for (TInt i = 0; i < array->Count(); ++i) { const TPtrC mimeType = array->At(i).Des(); const MediaType mediaType = Utils::mimeTypeToMediaType(mimeType); if (MediaTypeAudio == mediaType or MediaTypeVideo == mediaType) { result.append(qt_TDesC2QString(mimeType)); } } CleanupStack::PopAndDestroy(2); // apaSession, array }
/** Check if a certain datatype is known/recognized by apparc. @param aApparcServer an open session to apparc @param aDataType the datatype you want to test @return ETrue if @c aDataType is one of those returned from RApaLsSession::GetSupportedDataTypesL */ TBool CT_ApsScanStep::DoRecognizeL(RApaLsSession& aApparcServer, const TDataType& aDataType) { TBool recognized = EFalse; CDataTypeArray* dataTypes=new(ELeave) CDataTypeArray(64); CleanupStack::PushL(dataTypes); aApparcServer.GetSupportedDataTypesL(*dataTypes); const TInt count = dataTypes->Count(); for(TInt i=0; i<count; i++) { const TDataType& tmp = dataTypes->At(i); if(tmp == aDataType) { recognized = ETrue; break; } } CleanupStack::PopAndDestroy(dataTypes); return recognized; }