sl@0: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // File: BtDevSoundUtility.h sl@0: // Author: Vasudevan Ramachandraiah sl@0: // Date: July 16, 2002 sl@0: // Class that provides API to list ECOM plugin implementation IDs sl@0: // (c) Nokia Inc. sl@0: // Revisions: sl@0: // Date: Author Description sl@0: // sl@0: // sl@0: sl@0: #ifndef __MMFBTDEVSOUNDUTILITY_H sl@0: #define __MMFDEVSOUNDUTILITY_H sl@0: sl@0: #include sl@0: #include sl@0: sl@0: #include // For TFourCC sl@0: sl@0: #define KFourCCLength 4 sl@0: sl@0: class TMMFRawPackage sl@0: /** sl@0: *@internalTechnology sl@0: */ sl@0: { sl@0: public: sl@0: inline TPtr8& Package(); sl@0: inline const TPtr8& Package() const; sl@0: protected: sl@0: TMMFRawPackage(TInt aDerivedSize); sl@0: inline void SetSize(TInt aDerivedSize); sl@0: protected: sl@0: TPtr8 iThis; sl@0: }; sl@0: sl@0: sl@0: class TMMFToneFixedSequenceNames : public TMMFRawPackage sl@0: /** sl@0: *@internalTechnology sl@0: */ sl@0: { sl@0: public: sl@0: inline TMMFToneFixedSequenceNames(); sl@0: public: sl@0: TInt iCount; sl@0: }; sl@0: sl@0: sl@0: class HMMFToneFixedSequenceNames : public TMMFToneFixedSequenceNames sl@0: /** sl@0: *@internalTechnology sl@0: */ sl@0: { sl@0: public: sl@0: HMMFToneFixedSequenceNames(); sl@0: HMMFToneFixedSequenceNames* AddNameL(const TDesC& aName); sl@0: }; sl@0: sl@0: sl@0: class CMMFDevSoundUtility : public CBase sl@0: /** sl@0: *internalTechnology sl@0: */ sl@0: { sl@0: public: sl@0: // Destructor sl@0: ~CMMFDevSoundUtility(); sl@0: static CMMFDevSoundUtility* NewL(); sl@0: static CMMFDevSoundUtility* NewLC(); sl@0: sl@0: void SeekUsingFourCCL(TUid aInterfaceUid, RImplInfoPtrArray& aPlugInArray, const TFourCC& aSrcDataType, const TFourCC& aDstDataType, const TDesC& aPreferredSupplier); sl@0: void SelectByPreference(RImplInfoPtrArray& aPlugInArray, const TDesC& aPreferredSupplier); sl@0: void SeekHwDevicePluginsL(RArray& aSupportedDataTypes, TMMFState aState); sl@0: sl@0: void InitializeFixedSequenceL(CPtrC8Array** aFixedSequences); sl@0: TBool RecognizeSequence(const TDesC8& aData); sl@0: const TDesC& FixedSequenceName(TInt aSequenceNumber); sl@0: sl@0: private: sl@0: CMMFDevSoundUtility(); sl@0: void ConstructL(); sl@0: TBool IsDataTypeMatch(CImplementationInformation* hwDeviceResourceEntry,const TDesC8& fourCCPtrPCM16, TMMFState aState); sl@0: sl@0: private: sl@0: HMMFToneFixedSequenceNames* iFixedSequenceNames; sl@0: HBufC8* iInfo; sl@0: } ; sl@0: sl@0: #endif // __MMFBTDEVSOUNDUTILITY_H