phonebookui/Phonebook/PbkAiwProviders/src/PbkProviderUtils.cpp
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook/PbkAiwProviders/src/PbkProviderUtils.cpp	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,149 @@
+/*
+* Copyright (c) 2002 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: 
+*		Namespace structure for Phonebook AIW Providers helper functions
+*
+*/
+
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <AiwGenericParam.h>
+#include "PbkProviderUtils.h"
+#include "PbkAiwProviders.hrh"
+
+/// Unnamed namespace for local definitions
+namespace __RVCT_UNS_PbkProviderUtils {
+
+// LOCAL CONSTANTS
+enum TPanicCode
+    {
+    EPanicPreCond_CopyAndReplaceChars = 1,
+    };
+
+_LIT(KMimeTypeImage, "IMAGE");
+_LIT(KMimeTypeAudio, "AUDIO");
+
+_LIT(KMimeTypeRingingTone, "APPLICATION/VND.NOKIA.RINGING-TONE");
+
+#ifdef RD_VIDEO_AS_RINGING_TONE
+_LIT(KMimeTypeVideo, "VIDEO");
+_LIT(KMimeTypeRealMedia, "APPLICATION/VND.RN-REALMEDIA");
+_LIT(KMimeTypeSDP, "APPLICATION/SDP");
+_LIT(KMimeTypeFlash, "APPLICATION/X-SHOCKWAVE-FLASH");
+#endif  // RD_VIDEO_AS_RINGING_TONE
+
+
+
+// ================= LOCAL FUNCTIONS =======================
+#ifdef _DEBUG
+void Panic(TPanicCode aReason)
+    {
+    _LIT(KPanicText, "PbkProviderUtils");
+    User::Panic(KPanicText, aReason);
+    }
+#endif
+}
+
+using namespace __RVCT_UNS_PbkProviderUtils;
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+TInt PbkProviderUtils::MapMimeTypeL
+        (const TDesC& aMimeTypeString)
+    {
+    _LIT(KSeparator, "/");
+    
+    // Check for a type separator in the string
+    TInt pos = aMimeTypeString.Find(KSeparator);
+    // Leave if no separator was found.. the MIME
+    // standard requires it
+    User::LeaveIfError(pos);
+    
+    // Copy the full Mime type string (needed for uppercase)
+    HBufC* fullBuf = aMimeTypeString.AllocLC();
+    TPtr fullString = fullBuf->Des();
+    fullString.UpperCase();
+
+	// Construct the compare string    
+    TPtrC extractString(aMimeTypeString.Left(pos));
+    HBufC* compareBuf = extractString.AllocLC();
+    TPtr compareString = compareBuf->Des();
+    compareString.UpperCase();
+
+	// Perform the comparison
+    TInt ret = EPbkMimeTypeNotSupported;
+    // Mime type case:  IMAGE/*
+    if (compareString.CompareF(KMimeTypeImage) == 0)
+    	{
+    	ret = EPbkMimeTypeImage;
+    	}
+    // Mime type case:  AUDIO/*
+	else if (compareString.CompareF(KMimeTypeAudio) == 0)
+		{
+    	ret = EPbkMimeTypeAudio;
+    	}
+    //	Mime type case: APPLICATION/VND.NOKIA.RINGING-TONE
+    else if (fullString.CompareF(KMimeTypeRingingTone) == 0)    
+        {
+        ret = EPbkMimeTypeRingingTone;
+        }    	
+    	
+#ifdef RD_VIDEO_AS_RINGING_TONE
+
+    // Mime type case:  VIDEO/*
+	else if (compareString.CompareF(KMimeTypeVideo) == 0)
+		{
+    	ret = EPbkMimeTypeVideo;
+    	}    
+    //	Mime type case: Special video formats
+    else if ( (fullString.CompareF(KMimeTypeRealMedia) == 0) ||
+              (fullString.CompareF(KMimeTypeSDP) == 0) ||
+              (fullString.CompareF(KMimeTypeFlash) == 0) )
+        {
+        ret = EPbkMimeTypeVideo;
+        }
+        
+#endif      // RD_VIDEO_AS_RINGING_TONE
+
+	CleanupStack::PopAndDestroy(compareBuf);	    	
+	CleanupStack::PopAndDestroy(fullBuf);
+    
+	return ret;    
+    }
+    
+TPtrC PbkProviderUtils::GetAiwParamAsDescriptor(
+		const CAiwGenericParamList& aParamList,
+		TGenericParamId aParamType)
+	{
+	TInt index = 0;
+	const TAiwGenericParam* genericParam = NULL;
+    genericParam = aParamList.FindFirst( 
+        index,
+        aParamType,
+        EVariantTypeDesC);
+        
+    if (index >= 0 && genericParam)
+        {
+        // Get the data
+        return genericParam->Value().AsDes();
+        }
+	else
+    	{
+		return KNullDesC();
+    	}
+	}
+
+// End of File