sl@0: /* sl@0: * Copyright (c) 2002-2006 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: Used to configure the speech encoders. sl@0: * sl@0: */ sl@0: sl@0: sl@0: #ifndef CSPEECHENCODERCONFIG_H sl@0: #define CSPEECHENCODERCONFIG_H sl@0: sl@0: // INCLUDES sl@0: #include sl@0: sl@0: // CONSTANTS sl@0: const TUid KUidSpeechEncoderConfig = {0x10207AB2}; sl@0: sl@0: // MACROS sl@0: sl@0: // DATA TYPES sl@0: sl@0: // FUNCTION PROTOTYPES sl@0: sl@0: // FORWARD DECLARATIONS sl@0: class CMMFDevSound; sl@0: class CMdaAudioInputStream; sl@0: sl@0: // CLASS DECLARATION sl@0: sl@0: /** sl@0: * Interface for configuring speech encoders. sl@0: * Used to configure the speech encoders operting modes. sl@0: * This abstract class just provides the static NewL function for the creation sl@0: * of the proxy, and also defines the custom interface to be implemented by the sl@0: * proxy and the real custom interface implementation. sl@0: * sl@0: * @lib SpeechEncoderConfig.lib sl@0: * @since S60 3.0 sl@0: */ sl@0: class CSpeechEncoderConfig : public CBase sl@0: { sl@0: public: // Constructors and destructor sl@0: sl@0: /** sl@0: * Creates the interface. sl@0: */ sl@0: IMPORT_C static CSpeechEncoderConfig* sl@0: NewL(CMMFDevSound& aDevSound); sl@0: sl@0: /** sl@0: * Creates the interface. sl@0: */ sl@0: IMPORT_C static CSpeechEncoderConfig* sl@0: NewL(CMdaAudioInputStream& aUtility); sl@0: sl@0: public: // New functions sl@0: /** sl@0: * Retrieves the bitrates supported by the encoder. sl@0: * @since S60 3.0 sl@0: * @param aSupportedBitrates array returning the supported bitrates. sl@0: * @return status sl@0: */ sl@0: IMPORT_C virtual TInt GetSupportedBitrates( sl@0: RArray& aSupportedBitrates) = 0; sl@0: sl@0: /** sl@0: * Sets the bitrate for encoding. sl@0: * @since S60 3.0 sl@0: * @param aBitrate requested encoding bitrate. sl@0: * @return status sl@0: */ sl@0: IMPORT_C virtual TInt SetBitrate(TUint aBitrate) = 0; sl@0: sl@0: /** sl@0: * Retrieves the current encode bitrate. sl@0: * @since S60 3.0 sl@0: * @param aBitrate returns current encode bitrate. sl@0: * @return status sl@0: */ sl@0: IMPORT_C virtual TInt GetBitrate(TUint& aBitrate) = 0; sl@0: sl@0: /** sl@0: * Enables and disables the voice activity (VAD) mode. sl@0: * @since S60 3.0 sl@0: * @param aVadMode requested VAD mode. sl@0: * @return status sl@0: */ sl@0: IMPORT_C virtual TInt SetVadMode(TBool aVadMode) = 0; sl@0: sl@0: /** sl@0: * Retrieves the current state of VAD mode. sl@0: * @since S60 3.0 sl@0: * @param aVadMode returns current VAD mode. sl@0: * @return status sl@0: */ sl@0: IMPORT_C virtual TInt GetVadMode(TBool& aVadMode) = 0; sl@0: sl@0: public: // Functions from base classes sl@0: protected: // New functions sl@0: protected: // Functions from base classes sl@0: private: sl@0: sl@0: public: // Data sl@0: protected: // Data sl@0: private: // Data sl@0: public: // Friend classes sl@0: protected: // Friend classes sl@0: private: // Friend classes sl@0: sl@0: }; sl@0: sl@0: #endif // CSPEECHENCODERCONFIG_H sl@0: sl@0: // End of File