vtprotocols/inc/cdatasinkproxy.h
branchRCL_3
changeset 40 7fb4a99d4b6b
parent 0 ed9695c8bcbe
child 49 8e703580edd3
--- a/vtprotocols/inc/cdatasinkproxy.h	Tue Sep 14 21:23:32 2010 +0300
+++ b/vtprotocols/inc/cdatasinkproxy.h	Wed Sep 15 12:15:42 2010 +0300
@@ -18,6 +18,9 @@
 
 #ifndef CDATASINKPROXY_H
 #define CDATASINKPROXY_H
+
+class CDisplaySinkProxy;
+
 NONSHARABLE_CLASS( CPVDisplaySinkNodeProxy ) : public CBase,
                                                public MVTVideoSource
     {
@@ -26,6 +29,11 @@
          * Constructor .
          */
         CPVDisplaySinkNodeProxy();
+        
+        /**
+         * destructor .
+         */
+        ~CPVDisplaySinkNodeProxy();//add for memory leak
         /**
          * Set new supplier.
          * @param aSupplier
@@ -48,6 +56,47 @@
         MPVDataSourceBase* iSupplier;
     };
 
+/**
+*  CVSVideoOutput
+*
+*  Base componentstate definition.
+*
+*  @since S60 v5.0
+*/
+
+NONSHARABLE_CLASS( CVSVideoOutput ) : public CBase, public MPVVideoOutput
+    {
+public: // Constructors and destructor
+
+    /**
+    * C++ default constructor.
+    * @param "aSink" Pointer to CDisplaySink object.
+    */
+    CVSVideoOutput( CDisplaySinkProxy* aSink );
+
+public: // Functions from base classes
+
+    /**
+    * From MPVVideoOutput. See MPVVideoOutput for description.
+    */
+    virtual void SetFormatL( const TDesC8& aFormat );
+
+    /**
+    * From MPVVideoOutput. See MPVVideoOutput for description.
+    */
+    virtual void SetVideoFrameSizeL( const TSize& aSize );
+
+    /**
+     * From MPVVideoOutput. See MPVVideoOutput for description.
+      */
+    virtual void GetVideoFrameSizeL( TSize& aSize ) const;
+
+private:    // Data
+
+    // Sink object to which calls are forwarded
+    CDisplaySinkProxy* iSink;
+};
+
 NONSHARABLE_CLASS( CDisplaySinkProxy ) : public CBase,
                                          public MPVDataSink,
                                          public MPVVideoOutput
@@ -239,6 +288,11 @@
         CDisplaySinkProxy(MVTVideoSink* aDisplaySink);
         
         /**
+         * destructor.
+         */
+        ~CDisplaySinkProxy();
+        
+        /**
          * ConstructL
          */
         void ConstructL();
@@ -255,6 +309,8 @@
     private:
         MVTVideoSink* iDisplaySink;
         CPVDisplaySinkNodeProxy* iDSNodeProxy;
+        // Extension interface for sink
+        CVSVideoOutput* iVideoOutputInterface;
         
     };