--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/inc/mmf/server/mmfurl.h Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,189 @@
+// Copyright (c) 2001-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:
+//
+
+
+#ifndef __MMFURL_H_
+#define __MMFURL_H_
+
+#include <mmf/server/mmfdatasource.h>
+#include <mmf/server/mmfdatasink.h>
+#include <s32mem.h>
+
+
+/**
+@publishedAll
+@released
+
+Concrete implementation of a URL data source.
+
+This class is used only to pass information regarding the URL and IAP into the
+controller plugin. IT CANNOT BE USED TO READ DATA FROM A URL. Each of the MDataSource
+APIs are implemented as either returning or leaving with KErrNotSupported as appropriate.
+
+The configuration data for this class is an externalized CMMFUrlParams object.
+
+@see CMMFUrlParams
+*/
+class CMMFUrlSource : public CBase, public MDataSource
+ {
+public:
+ static MDataSource* NewSourceL();
+
+ /**
+ Destructor.
+ */
+ virtual ~CMMFUrlSource();
+
+ /**
+ Returns the URL string.
+
+ For example:
+ @code
+ http://www.symbian.com/clip/mpg
+ @endcode
+
+ @return The URL string.
+ @since 7.0s
+ */
+ const TDesC& Url() const {return *iUrl;}
+
+ /**
+ Indicates whether the IAP ID should be used.
+
+ @return A boolean indicating if the supplied IAPId should be used. ETrue if the supplied IAPId
+ should be used. EFalse if the default IAPId should be used.
+
+ @since 7.0s
+ */
+ TBool UseIAPId() const {return iUseIAPId;}
+
+ /**
+ Returns the Internet Access Point ID.
+
+ @return The IAP ID.
+ @since 7.0s
+ */
+ TInt IAPId() const {return iIAPId;}
+
+ TFourCC SourceDataTypeCode(TMediaId aMediaId);
+ TInt SetSourceDataTypeCode(TFourCC /*aSourceFourCC*/, TMediaId /*aMediaId*/);
+ void FillBufferL(CMMFBuffer* aBuffer, MDataSink* aConsumer,TMediaId /*aMediaId*/);
+ void BufferEmptiedL(CMMFBuffer* aBuffer);
+ TBool CanCreateSourceBuffer();
+ CMMFBuffer* CreateSourceBufferL(TMediaId /*aMediaId*/, TBool &aReference);
+ CMMFBuffer* CreateSourceBufferL(TMediaId aMediaId, CMMFBuffer& /*aSinkBuffer*/, TBool &aReference);
+ TInt SourceThreadLogon(MAsyncEventHandler& /*aEventHandler*/);
+ void SourceThreadLogoff();
+ void NegotiateSourceL(MDataSink& /* aDataSink*/);
+ TBool SourceSampleConvert();
+ void SourcePrimeL();
+ void SourcePlayL();
+ void SourcePauseL();
+ void SourceStopL();
+ void SetSourcePrioritySettings(const TMMFPrioritySettings& /*aPrioritySettings*/);
+ void SourceCustomCommand(TMMFMessage& aMessage);
+
+private:
+ CMMFUrlSource();
+ void ConstructSourceL(const TDesC8& aInitData);
+private:
+ HBufC* iUrl;
+ TBool iUseIAPId;
+ TInt iIAPId;
+ };
+
+
+
+/**
+@publishedAll
+@released
+
+Concrete implementation of a URL data sink.
+
+This class is used only to pass information regarding the URL and IAP into the
+controller plugin. IT CANNOT BE USED TO WRITE DATA TO A URL. Each of the MDataSink
+APIs are implemented as either returning or leaving with KErrNotSupported as appropriate.
+
+The configuration data for this class is an externalized CMMFUrlParams object.
+
+@see CMMFUrlParams
+*/
+class CMMFUrlSink : public CBase, public MDataSink
+ {
+public:
+ static MDataSink* NewSinkL();
+ virtual ~CMMFUrlSink();
+
+ /**
+ Returns the URL string.
+
+ For example:
+ @code
+ http://www.symbian.com/clip/mpg
+ @endcode
+
+ @return The URL string.
+
+ @since 7.0s
+ */
+ const TDesC& Url() const {return *iUrl;}
+
+ /**
+ Indicates whether the IAP ID should be used.
+
+ @return A boolean indicating if the supplied IAP ID should be used. ETrue if the supplied ID
+ should be used, EFalse if the default IAP ID should be used.
+
+ @since 7.0s
+ */
+ TBool UseIAPId() const {return iUseIAPId;}
+
+ /**
+ Returns the Internet Access Point ID.
+
+ @return The IAP ID.
+
+ @since 7.0s
+ */
+ TInt IAPId() const {return iIAPId;}
+
+ TFourCC SinkDataTypeCode(TMediaId /*aMediaId*/);
+ TInt SetSinkDataTypeCode(TFourCC /*aSinkFourCC*/, TMediaId /*aMediaId*/);
+ void EmptyBufferL(CMMFBuffer* aBuffer, MDataSource* aSupplier, TMediaId /*aMediaId*/);
+ void BufferFilledL(CMMFBuffer* aBuffer);
+ TBool CanCreateSinkBuffer();
+ CMMFBuffer* CreateSinkBufferL(TMediaId /*aMediaId*/, TBool &aReference);
+ TInt SinkThreadLogon(MAsyncEventHandler& /*aEventHandler*/);
+ void SinkThreadLogoff();
+ void NegotiateL(MDataSource& /* aDataSource*/);
+ void SinkPrimeL();
+ void SinkPlayL();
+ void SinkPauseL();
+ void SinkStopL();
+ void SetSinkPrioritySettings(const TMMFPrioritySettings& /*aPrioritySettings*/);
+ void SinkCustomCommand(TMMFMessage& aMessage);
+
+private:
+ CMMFUrlSink();
+ void ConstructSinkL(const TDesC8& aInitData);
+private:
+ HBufC* iUrl;
+ TBool iUseIAPId;
+ TInt iIAPId;
+ };
+
+
+
+#endif