internetradio2.0/mediaengineinc/irmediaengineinterface.h
changeset 0 09774dfdd46b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/mediaengineinc/irmediaengineinterface.h	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2006-2007 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:  ?Description
+*
+*/
+
+
+#ifndef IRMEDIAENGINEINTERFACE_H
+#define IRMEDIAENGINEINTERFACE_H
+
+#include <ecom.h>
+#include <mdaaudiooutputstream.h>
+
+class CIRCtrlCmdObserver;
+class TConfig;
+
+// UID of this interface
+const TUid KMediaEngineInterfaceUid = {0x200087E8};
+
+//========================================class declaration CIRMediaEngineInterface============================================
+
+/**
+ *
+ * This is interface class for media engine, This has pure virtual function 
+ * which the player implementation in the media engine should have. The default 
+ * data typically can be mime type like audio/mpeg etc. 
+ * It has virtual implementation like
+ * Play() for play implementation
+ * Stop() for stop implemtation 
+ * SetVolume(TInt aVolume) for setting implementation
+ * Volume() for setting the volume
+ * MaxVolume() for setting the maximum volume
+ * BufferFilled() is call back to intimate buffer is filled
+ * Intialize(TConfig& ,TUint8* ,CIRCtrlCmdObserver* )
+ * TConfig is structure the congfiguration data if required is supposed to pass
+ * by this way, TUint8* refers to buffer and CIRCtrlCmdObserver* is instance to
+ * CIRCtrlCmdObserver defined in IRCommandChannel.lib
+ * and also functions like StopPlayerBuffering() and StartPlayerBuffering() to 
+ * start and stop buffering.
+ *
+ */
+
+
+class CIRMediaEngineInterface : public CBase
+      {
+												//Member Function
+public:
+
+	/**
+	 * Function : NewL
+	 * function to creates an instance of CIRMediaEngineInterface
+	 * Two phase constructor
+	 * @param matching string
+	 */	
+	static CIRMediaEngineInterface* NewL(const TDesC8& aMatchString);
+
+	/**
+	 * Function : ~CIRMediaEngineInterface
+	 * Default Destructor
+	 */
+	~CIRMediaEngineInterface();
+
+	// Pure interface method
+
+	/**
+	 * Function : Play
+	 * function to which intiate the player
+	 */
+	virtual void Play() = 0;
+
+	/**
+	 * Function : Stop
+	 * function to which stop the player
+	 */
+	virtual void Stop() = 0; 
+	
+	/**
+	 * Function : SetVolume
+	 * function to set the volume 
+	 * @param integer level of volume is the input
+	 */		
+	virtual void SetVolume(TInt aVolume) = 0;
+
+	/**
+	 * Function : Volume
+	 * function to returns the volume, integer level of voume is the Output
+	 * @return integer value is the Output
+	 */
+	virtual TInt Volume() const = 0;
+	 
+	/**
+	 * Function : MaxVolume
+	 * function to returns the maximum volume 
+	 * @return integer value is the Output 
+	 */
+	virtual	TInt MaxVolume() const = 0;
+
+	/**
+	 * Function: Intialize
+	 * Set the codec type and sampling rate channel of stream
+	 * This is set to initial settings which is required to start the player
+	 * @param configuration infomation and instance of stream source
+	 * @param instance of data buffer, whose size is defined in IRMediaEngineBuffer.h
+	 * @param instance of the channel through with information is sent to UI
+	 */			
+	virtual void Intialize(TConfig& aConfig,TUint8* aInitParams,CIRCtrlCmdObserver* aChannel) = 0;
+						
+	/**
+	 * Function: BufferFilled
+	 * Function which is called when network gets the buffer filled with data
+	 */
+	virtual void BufferFilled() = 0;
+	
+	/**
+	 * Function: StopPlayerBuffering
+	 * Function is used to stop bufferring 
+	 */
+	virtual void StopPlayerBuffering() = 0;
+	
+	/**
+	 * Function: GetAudioPlayer()
+	 * Function is used to Return the Current Audio Player 
+	 */
+	virtual CMdaAudioOutputStream* GetAudioPlayer() = 0;
+									//Data Members
+protected:
+	//Default c'tor
+	inline CIRMediaEngineInterface();
+
+protected:
+
+    /* Size of a play buffer. */
+    TInt iPlayBufferSize;
+
+    /* Total size of input buffer(s). */
+    TInt iInputBufferSize;
+
+    /* Offset address of the buffers. */
+    TInt iBufferOffset;
+
+    /* The level of current volume */
+    TInt iCurrentVolume;
+ 
+private:
+	// Unique instance identifier key
+	TUid iDtor_ID_Key;
+	};
+
+#include "irmediaengineinterface.inl"
+
+#endif//IRMEDIAENGINEINTERFACE_H
+