--- /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