mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DataSourceAdapter/Inc/DataSourceAdapter.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DataSourceAdapter/Inc/DataSourceAdapter.h Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2004 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: Class definition for the SourceAdapter functions.
+*
+*/
+
+
+
+#ifndef CDATASOURCEADAPTER_H
+#define CDATASOURCEADAPTER_H
+
+// INCLUDES
+#include <mmfbuffer.h>
+#include <mmfutilities.h>
+#include <e32base.h>
+#include <mmfbase.h>
+#include <caf/manager.h>
+
+// CONSTANTS
+const TUid KS60AudioStreamingSourceUid = {0x10207AF3};
+const TUid KMmdsProgDLSourceUid = {0x10207B46};
+const TUid KMmdsStreamingSourceUid = {0x10207B7B};
+const TUid KOldProgDLSourceUid = {0x10207A7C};
+const TUid KMmdsFileSourceUid = {0x10207B89};
+const TUid KMmdsDescriptorSourceUid = {0x10207B8B};
+
+const TInt KErrSourceAdapter = -1001;
+
+// FORWARD DECLARATIONS
+class CMMFClip;
+class CMMFDataBuffer;
+class MDataSink;
+class MDataSource;
+class MAsyncEventHandler;
+class CConfigurationComponentsFactory;
+class CAudioOutputControlUtility;
+class CDRMConfigIntfc;
+class CMMFDevSound;
+class CMMFBuffer;
+class MMultimediaDataSourceObserver;
+class CMultimediaDataSource;
+class CAudioOutputControlUtility;
+// CLASS DEFINITIONS
+
+/**
+* This class provides CDataSourceAdapter functions.
+*
+* @lib CDataSourceAdapter.lib
+* @since 3.2
+*/
+class CDataSourceAdapter : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CDataSourceAdapter* NewL();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CDataSourceAdapter();
+
+ // New (like MDataSource)
+ IMPORT_C virtual TUid DataSourceType();
+ IMPORT_C virtual void FillBufferL(CMMFBuffer* aBuffer, MDataSink* aConsumer, TMediaId aMediaId);
+ IMPORT_C virtual void BufferEmptiedL(CMMFBuffer* aBuffer);
+ IMPORT_C virtual TBool CanCreateSourceBuffer();
+ IMPORT_C virtual CMMFBuffer* CreateSourceBufferL(TMediaId aMediaId, TBool &aReference);
+ IMPORT_C virtual TInt SourceThreadLogon(MAsyncEventHandler& aEventHandler);
+ IMPORT_C virtual void SourceThreadLogoff();
+ IMPORT_C virtual void SourcePrimeL();
+ IMPORT_C virtual void SourceStopL();
+ IMPORT_C virtual void SourcePlayL();
+ IMPORT_C virtual void Event(TUid aEvent);
+
+ // New
+ IMPORT_C virtual TInt SeekToPosition(TUint aPosition);
+ IMPORT_C virtual TInt SeekToTime(TUint aTimeMs);
+ IMPORT_C virtual TInt SeekToTime(TUint aTimeMs, TUint& aFoundTimeMs);
+ IMPORT_C virtual TBool IsTimeSeekable();
+ IMPORT_C virtual TBool IsPositonSeekable();
+ IMPORT_C virtual void SetDataSourceL(MDataSource* aDataSource,
+ MMultimediaDataSourceObserver* aMMultimediaDataSourceObserver,
+ MAsyncEventHandler* aMAsyncEventHandler);
+ IMPORT_C virtual TInt SourceSize();
+ IMPORT_C virtual TInt IsProtectedL();
+ IMPORT_C virtual void SetSourcePrioritySettings(const TMMFPrioritySettings& aPrioritySettings);
+ IMPORT_C virtual TInt ExecuteIntent(ContentAccess::TIntent aIntent);
+ IMPORT_C virtual TInt SetAgentProperty(ContentAccess::TAgentProperty aProperty, TInt aValue);
+ IMPORT_C virtual TInt EvaluateIntent(ContentAccess::TIntent aIntent);
+ IMPORT_C virtual TInt GetInterface(TUid aInterfaceId, TVersion& aVer, TAny*& aInterfaceImpl);
+ IMPORT_C virtual TBool OnlyHeaderPresent();
+
+ //sets the AudioOutputControlUtitlity reference and sets Datasource to AudioOutputContolUtility
+ IMPORT_C TInt SetAudioOutputControlUtil(CAudioOutputControlUtility* aAudioOutputControlUtility);
+ protected:
+
+ /**
+ * C++ default constructor.
+ */
+ IMPORT_C CDataSourceAdapter();
+
+ private:
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ protected:
+ class CAsyncProxyFillBuffer : public CActive
+ {
+ public: // may want to export constructor and fillbuffer for 3gpdatasourceadapter
+ CAsyncProxyFillBuffer(MDataSource* aDataSource);
+ ~CAsyncProxyFillBuffer();
+ void FillBuffer(CMMFBuffer* aBuffer, MDataSink* aConsumer, TMediaId aMediaId);
+ void Reset();
+
+ protected:
+ void RunL();
+ TInt RunError(TInt aError);
+ void DoCancel();
+
+ private:
+ TRequestStatus* iRequestStatus;
+ MDataSource* iDataSource;
+ CMMFBuffer* iBuffer;
+ MDataSink* iConsumer;
+ TMediaId iMediaId;
+ RPointerArray<CMMFBuffer> iQueuedAsyncBuffers;
+ TInt iReadPos;
+ };
+
+ protected: // Data
+
+ TUid iSourceType;
+ MDataSource* iDataSource;
+ CMultimediaDataSource* iMMDataSource;
+ MAsyncEventHandler* iAsyncEventHandler;
+ TInt iSourceSize;
+ TBool iPosSeekable;
+ TBool iTimeSeekable;
+ TBool iIsProtected;
+ CMMFDataBuffer* iZeroBuffer;
+ CMMFDataBuffer* iHdrBuffer;
+ CMMFClip* iClip;
+ CAsyncProxyFillBuffer* iAsyncProxyFillBuffer;
+ TBool iHeaderOnly;
+ CAudioOutputControlUtility* iAudioOutputControlUtility;
+ };
+
+#endif // CDATASOURCEADAPTER_H
+
+// End of File