--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/richcallsettingsengine/rcse2/inc/crcseaudiocodecregistry.h Mon Jan 18 20:12:36 2010 +0200
@@ -0,0 +1,214 @@
+/*
+* Copyright (c) 2002-2007 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: Offers API for storing, getting and updating Audio Codec entry.
+*
+*/
+
+
+
+#ifndef CRCSEAUDIOCODECREGISTRY_H
+#define CRCSEAUDIOCODECREGISTRY_H
+
+// INCLUDES
+#include <e32base.h>
+#include <rcseregistrybase.h>
+
+// FORWARD DECLARATIONS
+class CRCSEAudioCodecEntry;
+
+// CLASS DECLARATION
+
+/**
+* Offers getting, setting and updating of Audio codec entries.
+*
+* @lib RCSE.lib
+* @since S60 v3.0
+*/
+class CRCSEAudioCodecRegistry: public CRCSERegistryBase
+ {
+public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CRCSEAudioCodecRegistry* NewLC();
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CRCSEAudioCodecRegistry* NewL();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CRCSEAudioCodecRegistry();
+
+public: // New functions
+
+ /**
+ * Adds new audio codec entry.
+ *
+ * @since S60 v3.0
+ * @param aCodecEntry New entry.
+ * @return Codec identifier of the added audio codec entry.
+ */
+
+ IMPORT_C TUint32 AddL(const CRCSEAudioCodecEntry& aCodecEntry );
+
+ /**
+ * Gets all codec identifiers which are stored to RCSE. If there are
+ * no codecs stored, aAllIds will contain zero entries.
+ *
+ * @since S60 v3.0
+ * @param aAllIds Array, where the codec identifiers are stored.
+ */
+ IMPORT_C void GetAllCodecIdsL( RArray<TUint32>& aAllIds );
+
+ /**
+ * Search a Audio Codec entry, which id is same as aCodecId.
+ * Leaves with KErrNotFound if such profile is not found.
+ * Default values are reseted to aFoundEntry before the search.
+ * the new values are set to it.
+ *
+ * @since S60 v3.0
+ * @param aCodecId Search criteria for Audio Codec.
+ * @param aFoundEntry A found audio codec entry.
+ */
+ IMPORT_C void FindL( TUint32 aCodecId,
+ CRCSEAudioCodecEntry& aFoundEntry );
+
+ /**
+ * Deletes a codec, which codec id is same than aCodecId.
+ *
+ * @since S60 v3.0
+ * @param aCodecId Audio Codec identifier
+ */
+ IMPORT_C void DeleteL( TUint32 aCodecId );
+
+ /**
+ * Updates codec, which codec identifier is same than aCodecId.
+ * Only settings that are set in aUpdateData are updated in codec.
+ * Leaves with KErrNotFound if codec is not found.
+ *
+ * @since S60 v3.0
+ * @param aCodecId codec identifier.
+ * @param aUpdateData Updated data, which are updated to codec.
+ */
+ IMPORT_C void UpdateL( TUint32 aCodecId,
+ const CRCSEAudioCodecEntry& aUpdateData );
+
+ /**
+ * Gets default codec. Default codec is a codec, which
+ * can be used when no other codec is available. AFoundEntrys
+ * buffers and arrays are freed, before the new values are set to it.
+ *
+ * @since S60 v3.0
+ * @param aDefaultCodec Default codec settings are set to this.
+ */
+ IMPORT_C void GetDefaultCodec(
+ CRCSEAudioCodecEntry& aDefaultCodec ) const;
+
+
+ /**
+ * Adds bunch of audio codec entries to store in one transaction.
+ *
+ * @since S60 v3.2
+ * @param aEntries
+ */
+ void AddL( RPointerArray<CRCSEAudioCodecEntry>& aEntries );
+
+ /**
+ * Delete bunch of audio codec entries from store in one transaction.
+ *
+ * @since S60 v3.2
+ * @param aIds Codec IDs
+ */
+ void DeleteL( const RArray<TUint32>& aIds );
+
+protected: // New functions
+
+ /**
+ * C++ default constructor.
+ */
+ CRCSEAudioCodecRegistry();
+
+private:
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * Do actual search of requested entry.
+ * Leaves with KErrNotFound if such profile is not found.
+ * Default values are reseted to aFoundEntry before the search.
+ *
+ * @since S60 v3.0.
+ * @param aProfileId Search criteria for profiles.
+ * @param aFoundEntry A found profile entry
+ * @leave KErrNotFound if audio codec doesn't exist.
+ */
+ void FindEntryL( TUint32 aProfileId, CRCSEAudioCodecEntry& aFoundEntry );
+
+ /**
+ * Adds or updates settings entry to storage depending of the aId
+ * parameter. Entry is stored as new entry if aId parameter have
+ * been set to KNoEntryId, otherwise existing entry is updated.
+ *
+ * @since S60 v3.2
+ * @param aId ID of entry if exists.
+ * @param aEntry Entry to be added to storage.
+ * @param aUpdate Determines add or update operation.
+ * New entry is added when value is set to EFalse (default).
+ * @return ID of entry.
+ */
+ void AddOrUpdateEntryL( TUint32& aId,
+ const CRCSEAudioCodecEntry& aEntry );
+
+
+ /**
+ * Convert xxx
+ * .
+ *
+ * @since S60 v3.2.
+ * @param aEntry
+ * @param aProperties
+ */
+ void ConvertPropertiesToEntryL( CRCSEAudioCodecEntry& aEntry,
+ RIpAppPropArray& aProperties );
+
+
+ /**
+ * Convert xxx
+ * .
+ *
+ * @since S60 v3.2.
+ * @param aEntry
+ * @param aProperties
+ */
+ void ConvertEntryToPropertiesL( const CRCSEAudioCodecEntry& aEntry,
+ RIpAppPropArray& properties );
+
+
+ // For testing
+ #ifdef TEST_EUNIT
+ friend class UT_CRCSEAudioCodecRegistry;
+ #endif
+
+ };
+
+#endif // CRCSEAUDIOCODECREGISTRY_H
+
+// End of File