convergedcallengine/cce/src/cccedtmf.cpp
branchRCL_3
changeset 19 7d48bed6ce0c
parent 0 ff3b6d0fd310
child 20 987c9837762f
equal deleted inserted replaced
18:594d59766373 19:7d48bed6ce0c
    68 //
    68 //
    69 CCCEDtmf::~CCCEDtmf()
    69 CCCEDtmf::~CCCEDtmf()
    70     {
    70     {
    71     CCELOGSTRING("CCCEDtmf::~CCCEDtmf");
    71     CCELOGSTRING("CCCEDtmf::~CCCEDtmf");
    72 
    72 
    73 	while( iObservers.Count() )
    73     while( iObservers.Count() )
    74 		{
    74         {
    75     	CCELOGSTRING("CCCEDtmf::~CCCEDtmf: There are dtmf observers in the array. Should be removed before dtor!");
    75         CCELOGSTRING("CCCEDtmf::~CCCEDtmf: There are dtmf observers in the array. Should be removed before dtor!");
    76         iObservers.Remove ( 0 );
    76         iObservers.Remove ( 0 );
    77         iObservers.Compress();
    77         iObservers.Compress();
    78         }
    78         }
    79 
    79 
    80     iObservers.Close();
    80     iObservers.Close();
   101             &iPluginManager.DtmfProviderL( *this, calls[i]->ImplementationUid() );
   101             &iPluginManager.DtmfProviderL( *this, calls[i]->ImplementationUid() );
   102             );
   102             );
   103             
   103             
   104         if( !error && provider )
   104         if( !error && provider )
   105             {
   105             {
   106             aProviders.InsertInAddressOrder( provider );
   106             // Ref-to-Ptr -> ownership not transfered. 
       
   107             err = aProviders.InsertInAddressOrder( provider ); 
   107             }
   108             }
   108         }
   109         }
   109         
   110         
   110     calls.Close();
   111     calls.Close();
   111     
   112     
   246         iObservers.AppendL( &aObserver );
   247         iObservers.AppendL( &aObserver );
   247         }
   248         }
   248     else
   249     else
   249         {
   250         {
   250         // already added, ignore 
   251         // already added, ignore 
   251 	CCELOGSTRING("CCCEDtmf::AddObserverL. Observer to be added already existed. Operation ignored!");
   252     CCELOGSTRING("CCCEDtmf::AddObserverL. Observer to be added already existed. Operation ignored!");
   252         }    
   253         }    
   253     }    
   254     }    
   254 
   255 
   255 // -----------------------------------------------------------------------------
   256 // -----------------------------------------------------------------------------
   256 // CCCEDtmf::RemoveObserver( MCCEDtmfObserver& aObserver )
   257 // CCCEDtmf::RemoveObserver( MCCEDtmfObserver& aObserver )
   257 // -----------------------------------------------------------------------------
   258 // -----------------------------------------------------------------------------
   258 //
   259 //
   259 TInt CCCEDtmf::RemoveObserver( const MCCEDtmfObserver& aObserver )
   260 TInt CCCEDtmf::RemoveObserver( const MCCEDtmfObserver& aObserver )
   260     {
   261     {
   261     CCELOGSTRING("CCCEDtmf::RemoveObserver");
   262     CCELOGSTRING("CCCEDtmf::RemoveObserver");
   262     TInt index = iObservers.Find( &aObserver );	
   263     TInt index = iObservers.Find( &aObserver ); 
   263     
   264     
   264     if( index!=KErrNotFound )
   265     if( index!=KErrNotFound )
   265         {
   266         {
   266         iObservers.Remove ( index );
   267         iObservers.Remove ( index );
   267         iObservers.Compress();
   268         iObservers.Compress();
   268         }
   269         }
   269 	else
   270     else
   270 		{
   271         {
   271 		return KErrNotFound;
   272         return KErrNotFound;
   272 		}
   273         }
   273 
   274 
   274     return KErrNone;
   275     return KErrNone;
   275     } 
   276     } 
   276 
   277 
   277 // ---------------------------------------------------------------------------
   278 // ---------------------------------------------------------------------------
   287     CCELOGSTRING2 ("    HandleDTMFEvent, error = %d ",aError );
   288     CCELOGSTRING2 ("    HandleDTMFEvent, error = %d ",aError );
   288     CCELOGSTRING2 ("    HandleDTMFEvent, tone = %d ",(TInt)aTone );
   289     CCELOGSTRING2 ("    HandleDTMFEvent, tone = %d ",(TInt)aTone );
   289     
   290     
   290     MCCEDtmfObserver::TCCEDtmfEvent event = (MCCEDtmfObserver::TCCEDtmfEvent)(aEvent);
   291     MCCEDtmfObserver::TCCEDtmfEvent event = (MCCEDtmfObserver::TCCEDtmfEvent)(aEvent);
   291     
   292     
   292 	for( TInt i=0; i<iObservers.Count(); i++ )
   293     for( TInt i=0; i<iObservers.Count(); i++ )
   293 	    {
   294         {
   294 		// notify all observers
   295         // notify all observers
   295     		const_cast<MCCEDtmfObserver*>(iObservers[i])->HandleDTMFEvent( event,
   296             const_cast<MCCEDtmfObserver*>(iObservers[i])->HandleDTMFEvent( event,
   296         										 					   aError, 
   297                                                                        aError, 
   297         															   aTone );
   298                                                                        aTone );
   298         }
   299         }
   299     }
   300     }