vtuis/videotelui/src/cvtuidtmfbuffer.cpp
branchRCL_3
changeset 37 590f6f022902
parent 0 ed9695c8bcbe
child 40 7fb4a99d4b6b
--- a/vtuis/videotelui/src/cvtuidtmfbuffer.cpp	Wed Sep 01 12:29:12 2010 +0100
+++ b/vtuis/videotelui/src/cvtuidtmfbuffer.cpp	Tue Sep 14 21:23:32 2010 +0300
@@ -41,6 +41,21 @@
     }
 
 // ---------------------------------------------------------------------------
+// CVtUiDTMFBuffer::NewL
+// ---------------------------------------------------------------------------
+//
+CVtUiDTMFBuffer* CVtUiDTMFBuffer::NewL( const CCoeEnv& aCoeEnv, MVtUiDTMFBufferObserver* aObserver )
+    {
+    __VTPRINTENTER( "CVtUiDTMFBuffer.NewL" )
+    CVtUiDTMFBuffer* self = new ( ELeave ) CVtUiDTMFBuffer( aCoeEnv, aObserver );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); // self
+    __VTPRINTEXIT( "CVtUiDTMFBuffer.NewL" )
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
 // CVtUiDTMFBuffer::~CVtUiDTMFBuffer
 // ---------------------------------------------------------------------------
 //
@@ -67,6 +82,10 @@
             iBuffer = iBuffer.Right( 1 );
             }
         iBuffer.Append( aChar );
+        if ( iObserver )
+            {
+            iObserver->NotifyDTMFBufferChangedL();
+            }
         StartTimer();
         result = ETrue;
         }
@@ -169,6 +188,18 @@
     }
 
 // ---------------------------------------------------------------------------
+// CVtUiDTMFBuffer::CVtUiDTMFBuffer
+// ---------------------------------------------------------------------------
+//
+CVtUiDTMFBuffer::CVtUiDTMFBuffer( const CCoeEnv& aCoeEnv, MVtUiDTMFBufferObserver* aObserver ) :
+    CActive( EPriorityStandard ), iCoeEnv( aCoeEnv ), iObserver( aObserver )
+    {
+    __VTPRINTENTER( "CVtUiDTMFBuffer.ctor" )
+    CActiveScheduler::Add( this );
+    __VTPRINTEXIT( "CVtUiDTMFBuffer.ctor" )
+    }
+
+// ---------------------------------------------------------------------------
 // CVtUiDTMFBuffer::ConstructL
 // ---------------------------------------------------------------------------
 //
@@ -214,5 +245,9 @@
     {
     __VTPRINTENTER( "CVtUiDTMFBuffer.ResetBuffer" )
     iBuffer.Zero();
+    if ( iObserver )
+        {
+        iObserver->NotifyDTMFBufferChangedL();
+        }
     __VTPRINTEXIT( "CVtUiDTMFBuffer.ResetBuffer" )
     }