radioengine/engine/src/cradioengineimp.cpp
changeset 54 a8ba0c289b44
parent 47 74b7c6e79031
child 57 21be958eb3ce
equal deleted inserted replaced
51:bbebb0235466 54:a8ba0c289b44
    86     , iFreqEventReason( RadioEngine::ERadioFrequencyEventReasonUnknown )
    86     , iFreqEventReason( RadioEngine::ERadioFrequencyEventReasonUnknown )
    87     {
    87     {
    88     LEVEL3( LOG_METHOD_AUTO );
    88     LEVEL3( LOG_METHOD_AUTO );
    89     }
    89     }
    90 
    90 
       
    91 
       
    92 // ---------------------------------------------------------------------------
       
    93 //
       
    94 // ---------------------------------------------------------------------------
       
    95 //
       
    96 CRadioEngineImp* CRadioEngineImp::NewL()
       
    97     {
       
    98     LEVEL3( LOG_METHOD_AUTO );
       
    99     
       
   100     // audiorouter is required for constructing engine so we need to create it and
       
   101     // radio system event collector as observer of audiorouter before creating the
       
   102     // actual engine.
       
   103     CRadioSystemEventCollector *eventCollector = CRadioSystemEventCollector::NewL();
       
   104     CleanupStack::PushL( eventCollector );
       
   105     
       
   106     MRadioAudioRoutingObserver* observer = 0;
       
   107     eventCollector->AsObserver( observer );
       
   108     User::LeaveIfNull( observer );
       
   109     
       
   110     CRadioAudioRouter* audioRouter = CRadioAudioRouter::NewL( *( observer ) );
       
   111     CleanupStack::PushL( audioRouter );
       
   112     
       
   113     CRadioEngineImp* self = new (ELeave) CRadioEngineImp( audioRouter );
       
   114     
       
   115     CleanupStack::Pop( audioRouter );
       
   116     CleanupStack::Pop( eventCollector );  
       
   117     
       
   118     self->iSystemEventCollector = eventCollector;
       
   119     self->ConstructL();
       
   120     return self;
       
   121     }
       
   122 
    91 // ---------------------------------------------------------------------------
   123 // ---------------------------------------------------------------------------
    92 //
   124 //
    93 // ---------------------------------------------------------------------------
   125 // ---------------------------------------------------------------------------
    94 //
   126 //
    95 void CRadioEngineImp::ConstructL()
   127 void CRadioEngineImp::ConstructL()
    96     {
   128     {
    97     LOG_METHOD_AUTO;
   129     LOG_METHOD_AUTO;
    98 
   130 
    99     if ( !iAudioRouter || !iSystemEventCollector || !iSettings )
   131     if ( !iAudioRouter || !iSystemEventCollector )
   100         {
   132         {
   101         User::Leave( KErrNotReady );
   133         User::Leave( KErrNotReady );
   102         }
   134         }
   103 
   135 
   104     iSystemEventCollector->AddObserverL( this );
   136     iSystemEventCollector->AddObserverL( this );
   105 
   137 
       
   138     iSettings = CRadioSettings::NewL();
       
   139     iSettings->RadioSetter().SetObserver( this );
       
   140     
   106     // Initial default values to be over by init
   141     // Initial default values to be over by init
   107     User::LeaveIfError( iSettings->RadioSetter().SetPowerOn( EFalse ) );
   142     User::LeaveIfError( iSettings->RadioSetter().SetPowerOn( EFalse ) );
   108 
   143 
   109     // The output source needs to be in headset when starting the radio.
   144     // The output source needs to be in headset when starting the radio.
   110     // But if the headset is not connected, audio cannot be heard if it is routed
   145     // But if the headset is not connected, audio cannot be heard if it is routed
   118 
   153 
   119     iRdsReceiver->AddObserverL( this );
   154     iRdsReceiver->AddObserverL( this );
   120 
   155 
   121     // Create timer that is used when polling for radio restart.
   156     // Create timer that is used when polling for radio restart.
   122     iRadioTimer = CPeriodic::NewL( CActive::EPriorityHigh );
   157     iRadioTimer = CPeriodic::NewL( CActive::EPriorityHigh );
       
   158     
       
   159     InitRadioL( DetermineRegion() );
       
   160     EnableAudio( ETrue );
   123     }
   161     }
   124 
   162 
   125 // ---------------------------------------------------------------------------
   163 // ---------------------------------------------------------------------------
   126 //
   164 //
   127 // ---------------------------------------------------------------------------
   165 // ---------------------------------------------------------------------------
   168         {
   206         {
   169         iSettings->RadioSetter().SetObserver( NULL );
   207         iSettings->RadioSetter().SetObserver( NULL );
   170         }
   208         }
   171     delete iSettings;
   209     delete iSettings;
   172 
   210 
   173     }
       
   174 
       
   175 // ---------------------------------------------------------------------------
       
   176 //
       
   177 // ---------------------------------------------------------------------------
       
   178 //
       
   179 void CRadioEngineImp::SetSystemEventCollector( CRadioSystemEventCollector* aCollector )
       
   180     {
       
   181     LEVEL3( LOG_METHOD_AUTO );
       
   182     iSystemEventCollector = aCollector;
       
   183     }
       
   184 
       
   185 // ---------------------------------------------------------------------------
       
   186 //
       
   187 // ---------------------------------------------------------------------------
       
   188 //
       
   189 void CRadioEngineImp::SetRadioSettings( CRadioSettings* aSettings )
       
   190     {
       
   191     LEVEL3( LOG_METHOD_AUTO );
       
   192     iSettings = aSettings;
       
   193     iSettings->RadioSetter().SetObserver( this );
       
   194     }
   211     }
   195 
   212 
   196 // ---------------------------------------------------------------------------
   213 // ---------------------------------------------------------------------------
   197 //
   214 //
   198 // ---------------------------------------------------------------------------
   215 // ---------------------------------------------------------------------------