First public contribution.
1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // File: BtDevSoundUtility.h
15 // Author: Vasudevan Ramachandraiah
16 // Date: July 16, 2002
17 // Class that provides API to list ECOM plugin implementation IDs
20 // Date: Author Description
24 #ifndef __MMFBTDEVSOUNDUTILITY_H
25 #define __MMFDEVSOUNDUTILITY_H
27 #include <ecom/ecom.h>
30 #include <mmf/common/mmfutilities.h> // For TFourCC
32 #define KFourCCLength 4
40 inline TPtr8& Package();
41 inline const TPtr8& Package() const;
43 TMMFRawPackage(TInt aDerivedSize);
44 inline void SetSize(TInt aDerivedSize);
50 class TMMFToneFixedSequenceNames : public TMMFRawPackage
56 inline TMMFToneFixedSequenceNames();
62 class HMMFToneFixedSequenceNames : public TMMFToneFixedSequenceNames
68 HMMFToneFixedSequenceNames();
69 HMMFToneFixedSequenceNames* AddNameL(const TDesC& aName);
73 class CMMFDevSoundUtility : public CBase
80 ~CMMFDevSoundUtility();
81 static CMMFDevSoundUtility* NewL();
82 static CMMFDevSoundUtility* NewLC();
84 void SeekUsingFourCCL(TUid aInterfaceUid, RImplInfoPtrArray& aPlugInArray, const TFourCC& aSrcDataType, const TFourCC& aDstDataType, const TDesC& aPreferredSupplier);
85 void SelectByPreference(RImplInfoPtrArray& aPlugInArray, const TDesC& aPreferredSupplier);
86 void SeekHwDevicePluginsL(RArray<TFourCC>& aSupportedDataTypes, TMMFState aState);
88 void InitializeFixedSequenceL(CPtrC8Array** aFixedSequences);
89 TBool RecognizeSequence(const TDesC8& aData);
90 const TDesC& FixedSequenceName(TInt aSequenceNumber);
93 CMMFDevSoundUtility();
95 TBool IsDataTypeMatch(CImplementationInformation* hwDeviceResourceEntry,const TDesC8& fourCCPtrPCM16, TMMFState aState);
98 HMMFToneFixedSequenceNames* iFixedSequenceNames;
102 #endif // __MMFBTDEVSOUNDUTILITY_H