--- /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 <e32base.h>
+
+/**
+* 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