callcontinuity/vcchotrigger/src/vcchotrigger.cpp
changeset 2 7b872347d83b
parent 0 a4daefaec16c
child 10 ed1e38b404e5
equal deleted inserted replaced
1:bfb1de3eac8e 2:7b872347d83b
   304     // If the previous class is the same as the new one
   304     // If the previous class is the same as the new one
   305     // - do nothing.
   305     // - do nothing.
   306     
   306     
   307     if ( iPreviousWlanClass == iWlanClass )
   307     if ( iPreviousWlanClass == iWlanClass )
   308         {
   308         {
   309         RUBY_DEBUG0( "No change in WLAN signal class -> return" );
   309         if (iWlanClass == ESignalClassWeak)
   310     
   310             {
   311         return;
   311             RUBY_DEBUG0( "Signal is still weak try again to do HO" );
   312         }
   312             }
       
   313         else
       
   314             {
       
   315             RUBY_DEBUG0( "No change in WLAN signal class -> return" );
       
   316             return;
       
   317             }
       
   318           }
   313     else
   319     else
   314         {
   320         {
   315         iPreviousWlanClass = iWlanClass;
   321         iPreviousWlanClass = iWlanClass;
   316         }
   322         }
   317     
   323     
   358     RUBY_DEBUG0( "0 = GOOD, 1 = WEAK, 2 = UNDEFINED" );
   364     RUBY_DEBUG0( "0 = GOOD, 1 = WEAK, 2 = UNDEFINED" );
   359     
   365     
   360     // If the previous class is the same as the new one
   366     // If the previous class is the same as the new one
   361     // - do nothing.
   367     // - do nothing.
   362     
   368     
   363     if ( iPreviousGsmClass == iGsmClass )
   369     if ( iPreviousGsmClass == iGsmClass && iWlanClass != ESignalClassWeak  )
   364         {
   370         {
   365         RUBY_DEBUG0( "No change in GSM signal class -> return" );
   371         RUBY_DEBUG0( "No change in GSM signal class -> return" );
   366     
   372     
   367         return;
   373         return;
   368         }
   374         }
   568 		    return;
   574 		    return;
   569 		    }
   575 		    }
   570 		RUBY_DEBUG0( "VccHoTrigger::TriggerHo - no immediate HO" );
   576 		RUBY_DEBUG0( "VccHoTrigger::TriggerHo - no immediate HO" );
   571 		}
   577 		}
   572 	
   578 	
   573 	if ( iWlanClass == ESignalClassWeak &&
   579 	if ( ( iWlanClass == ESignalClassWeak || iCchServiceStatus == EServiceUnavailable )&&
   574 	     iGsmClass == ESignalClassNormal && 
   580 	        iGsmClass == ESignalClassNormal && 
   575 	     ( iPolicy.AllowedDirection() & EPsToCsAllowed  ))
   581 	     ( iPolicy.AllowedDirection() & EPsToCsAllowed  ))
   576 	    {
   582 	    {
   577 	    RUBY_DEBUG0( "VccHoTrigger::WlanSignalChanged - NotifySubscriberL" );
   583 	    RUBY_DEBUG0( "VccHoTrigger::WlanSignalChanged - NotifySubscriberL" );
   578 	        
   584 	        
   579 	    // First empty the key, so that director 
   585 	    // First empty the key, so that director 
   655             ret = ETrue;
   661             ret = ETrue;
   656             }
   662             }
   657 		}
   663 		}
   658 	
   664 	
   659 	else if ( (iPolicy.PreferredDomain() == EPsPreferred)  &&
   665 	else if ( (iPolicy.PreferredDomain() == EPsPreferred)  &&
   660 	      iWlanClass == ESignalClassNormal &&
   666 	      iWlanClass == ESignalClassNormal && iCchServiceStatus != EServiceUnavailable &&
   661 	      ( iPolicy.AllowedDirection() & ECsToPsAllowed  ) )
   667 	      ( iPolicy.AllowedDirection() & ECsToPsAllowed  ) )
   662         {
   668         {
   663         // Current call is CS, PS signal is ok, preferred domain is PS and 
   669         // Current call is CS, PS signal is ok, preferred domain is PS and 
   664 	    // immediate HO is requested -> HANDOVER to PS
   670 	    // immediate HO is requested -> HANDOVER to PS
   665 
   671