diff -r 000000000000 -r 40261b775718 devsound/a3facf/inc/a3fbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/devsound/a3facf/inc/a3fbase.h Tue Feb 02 01:56:55 2010 +0200 @@ -0,0 +1,239 @@ +// Copyright (c) 2006-2009 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: +// + + + +/** + @file + @publishedPartner + @released +*/ + + +#ifndef A3FBASE_H +#define A3FBASE_H + +#include + +/** +* Provides the process id of the original application. +*/ +class TClientContextSettings + { +public: + /** + * Application Process Id. + */ + TProcessId iProcessId; + }; + + +/** +* States of a stream. +*/ +enum TAudioState + { + /**Uninitialized state */ + EUninitialized = 0, + /**Initialized state */ + EInitialized, + /**Idle state */ + EIdle, + /**Primed state */ + EPrimed, + /**Active state */ + EActive, + /**Dead state */ + EDead + }; + +/** +* Audio type of a stream. +*/ +class TAudioTypeSettings + { +public: + /** + * Priority of client. + */ + TInt iPriority; + + /** + * The priority preference of client. + */ + TInt iPref; + }; + + +/** +* Mode setting available. +* +* "Mode" in this context refers to the number of channels (i.e. mono or stereo). +* The modes are given as UIDs. +* +*/ + +/** Mono data */ +const TInt KA3FModeMonoValue = 0x1028348D; +const TUid KA3FModeMono = {KA3FModeMonoValue}; +/** Stereo data, non-interleaved */ +const TInt KA3FModeStereoNonInterleavedValue = 0x1028348E; +const TUid KA3FModeStereoNonInterleaved = {KA3FModeStereoNonInterleavedValue}; +/** Interleaved Stereo data */ +const TInt KA3FModeStereoInterleavedValue = 0x1028348F; +const TUid KA3FModeStereoInterleaved = {KA3FModeStereoInterleavedValue}; +/** 5.1 encoded data */ +const TInt KA3FMode51Value = 0x10283490; +const TUid KA3FMode51 = {KA3FMode51Value}; + + +/** +* Type class for audio channel. +*/ +class TAudioChannelGain + { +public: + /** + * Location of the channel in degrees on a circle located on the same plane as the listener, + * with listener in the center of the circle. + * Negative values are used for channels the location of which is not important. + */ + TInt iLocation; + + /** + * Absolute gain value of channel. + * Allowed values are 0 - MaxGain(). + */ + TInt iGain; + + /** + * Mapping of common channels to location degrees. + */ + enum TStandardChannels + { + /** Low Frequency Effects Channels */ + ELowFrequencyEffects = -1, + /** Center Channels*/ + ECenter = 0, + /** Right Channels */ + ERight = 45, + /** Right Surround Channels */ + ERightSurround = 90, + /** Right Rear Channels */ + ERightRear = 135, + /** Rear Surround Channels */ + ERearSurround = 180, + /** Left Rear Channels */ + ELeftRear = 225, + /** Left Surround Channels */ + ELeftSurround = 270, + /** Left Channels */ + ELeft = 315 + }; + }; + + +/** +* KGainSawTooth – an explicit 0->aGain sweep, rising linearly. +* If the channel is active, the effective gain drops to 0 ASAP after the request. +* If used when the stream is not in EActive state, this acts as fade-in during the subsequent Activate() transistion. +*/ +const TInt KUidGainSawToothValue = 0x10285CDC; +const TUid KUidGainSawTooth = {KUidGainSawToothValue}; + +/** +* KGainFadeOut – drop from current to 0, +* dropping linearly over aRampDuration period. +*/ +const TInt KUidGainFadeOutValue = 0x10285CDD; +const TUid KUidGainFadeOut = {KUidGainFadeOutValue}; + +/** +* KGainRamped – (gradual) change from current gain values to those given in aGain over aRampDuration period +*/ +const TInt KUidGainRampedValue = 0x10285CDE; +const TUid KUidGainRamped = {KUidGainRampedValue}; + +/** +* KGainContinue – if a previous ramped operation is in progress, +* this continues but the concept of “target gain” is updated +* using the new values. aRampDuration is ignored +* – the previous ramp duration is reused, minus the time already spent ramping. +* The smoothness of this operation will depend on the implementation. +* If no ramped operation is in progress, this is the same as KNullUid. +* This is intended as a way of changing gain values without stopping an ongoing ramp operation. +*/ +const TInt KUidGainContinueValue = 0x10285CDF; +const TUid KUidGainContinue = {KUidGainContinueValue}; + + +const TInt KErrA3fUnsupportedRamp = (-12250); + +/** + * Represents an unique Id for a specific context at runtime. + */ +class TAudioContextId : public TObjectId + { +public: + /** + *Default constructor. + */ + TAudioContextId() {} + + /** + *Unique Id for a specific context at runtime. + *@param aId Unique id to be set. + */ + inline TAudioContextId(TUint64 aId) : TObjectId(aId) {} + }; + +/** + * Represents an unique Id for a specific audio processing unit at runtime. + */ +class TAudioComponentId : public TObjectId + { + public: + /** + * Default constructor. + */ + TAudioComponentId() {} + + /** + *Unique Id for a specific audio processing unit at runtime. + *@param aId Unique id to be set. + */ + inline TAudioComponentId(TUint64 aId) : TObjectId(aId) {} + }; + +/** + * Represents an unique Id for a specific audio stream unit at runtime. + */ +class TAudioStreamId : public TObjectId + { + public: + /** + * Default constructor. + */ + TAudioStreamId() {} + + /** + *Unique Id for a specific stream at runtime. + *@param aId Unique id to be set. + */ + inline TAudioStreamId(TUint64 aId) : TObjectId(aId) {} + }; + + +#endif // A3FBASE_H