diff -r 63aabac4416d -r f54ebcfc1b80 radioapp/radioenginewrapper/src/radioenginewrapper_p.cpp --- a/radioapp/radioenginewrapper/src/radioenginewrapper_p.cpp Fri Apr 16 14:58:55 2010 +0300 +++ b/radioapp/radioenginewrapper/src/radioenginewrapper_p.cpp Mon May 03 12:31:41 2010 +0300 @@ -24,7 +24,6 @@ #include "radiologger.h" #include "radio_global.h" #include "cradioenginehandler.h" -#include "radiofrequencyscanninghandler.h" #include "radiostationhandlerif.h" #include "cradiopubsub.h" #include "radiocontroleventlistener.h" @@ -38,17 +37,14 @@ * */ RadioEngineWrapperPrivate::RadioEngineWrapperPrivate( RadioEngineWrapper* wrapper, - RadioStationHandlerIf& stationHandler, - RadioEngineWrapperObserver& observer ) : + RadioStationHandlerIf& stationHandler ) : q_ptr( wrapper ), mStationHandler( stationHandler ), - mObserver( observer ), mEngineHandler( new CRadioEngineHandler( *this ) ), mControlEventListener( new RadioControlEventListener( *this ) ), mRdsListener ( new RadioRdsListener( mStationHandler, *this ) ), - mCommandSender( 0 ), - mUseLoudspeaker( false ), - mIsSeeking( false ) + mTuneReason( 0 ), + mUseLoudspeaker( false ) { } @@ -86,7 +82,7 @@ mUseLoudspeaker = mEngineHandler->IsAudioRoutedToLoudspeaker(); if ( !mUseLoudspeaker ) { - mObserver.audioRouteChanged( false ); + RUN_NOTIFY_LOOP( mObservers, audioRouteChanged( false ) ); } } @@ -121,36 +117,40 @@ /*! * Tunes to the given frequency */ -void RadioEngineWrapperPrivate::tuneFrequency( uint frequency, const int sender ) +void RadioEngineWrapperPrivate::tuneFrequency( uint frequency, const int reason ) { - mCommandSender = sender; - mEngineHandler->Tune( frequency ); + if ( mEngineHandler->TunedFrequency() != frequency ) { + mTuneReason = reason; + mEngineHandler->Tune( frequency ); + } } /*! * Tunes to the given frequency after a delay */ -void RadioEngineWrapperPrivate::tuneWithDelay( uint frequency, const int sender ) +void RadioEngineWrapperPrivate::tuneWithDelay( uint frequency, const int reason ) { - mCommandSender = sender; - mEngineHandler->TuneWithDelay( frequency ); + if ( mEngineHandler->TunedFrequency() != frequency ) { + mTuneReason = reason; + mEngineHandler->TuneWithDelay( frequency ); + } } /*! * */ -RadioEngineWrapperObserver& RadioEngineWrapperPrivate::observer() +ObserverList& RadioEngineWrapperPrivate::observers() { - return mObserver; + return mObservers; } /*! * */ -void RadioEngineWrapperPrivate::startSeeking( Seeking::Direction direction ) +void RadioEngineWrapperPrivate::startSeeking( Seeking::Direction direction, const int reason ) { + mTuneReason = reason; mEngineHandler->Seek( direction ); - mObserver.seekingStarted( direction ); } /*! @@ -159,8 +159,7 @@ void RadioEngineWrapperPrivate::PowerEventL( TBool aPowerState, TInt DEBUGVAR( aError ) ) { LOG_FORMAT( "RadioEngineWrapperPrivate::PowerEventL, PowerState: %d, Error: %d", aPowerState, aError ); - mObserver.radioStatusChanged( aPowerState ); - mEngineHandler->PubSub().PublishPowerState( aPowerState ); + RUN_NOTIFY_LOOP( mObservers, radioStatusChanged( aPowerState ) ); } /*! @@ -170,35 +169,12 @@ RadioEngine::TRadioFrequencyEventReason aReason, TInt aError ) { + Q_UNUSED( aReason ); LOG_FORMAT( "RadioEngineWrapperPrivate::FrequencyEventL - Frequency: %d, Reason: %d, Error: %d", aFrequency, aReason, aError ); - if ( mFrequencyScanningHandler ) - { - // frequencyevents not handled during scanning //TODO remove - return; - } - if ( !aError ) { const uint frequency = static_cast( aFrequency ); - - mStationHandler.setCurrentStation( frequency ); - - // Stations found by seeking (autotune) are saved as local stations - if ( aReason == RadioEngine::ERadioFrequencyEventReasonSeekUp - || aReason == RadioEngine::ERadioFrequencyEventReasonSeekDown ) - { - mStationHandler.addScannedFrequency( frequency ); - mCommandSender = 0; - } - - //mEngineHandler->SetMuted( EFalse ); - LOG_TIMESTAMP( "Channel change finished" ); - - mObserver.tunedToFrequency( frequency, mCommandSender ); - - mStationHandler.startDynamicPsCheck(); - - mEngineHandler->PubSub().PublishFrequency( aFrequency ); + RUN_NOTIFY_LOOP( mObservers, tunedToFrequency( frequency, mTuneReason ) ); } } @@ -208,8 +184,7 @@ void RadioEngineWrapperPrivate::VolumeEventL( TInt aVolume, TInt aError ) { Q_UNUSED( aError ); - mObserver.volumeChanged( aVolume ); - mEngineHandler->PubSub().PublishVolume( aVolume ); + RUN_NOTIFY_LOOP( mObservers, volumeChanged( aVolume ) ); } /*! @@ -218,8 +193,7 @@ void RadioEngineWrapperPrivate::MuteEventL( TBool aMuteState, TInt aError ) { Q_UNUSED( aError ); - mObserver.muteChanged( aMuteState ); - mEngineHandler->PubSub().PublishRadioMuteState( aMuteState ); + RUN_NOTIFY_LOOP( mObservers, muteChanged( aMuteState ) ); } /*! @@ -236,8 +210,7 @@ void RadioEngineWrapperPrivate::AntennaEventL( TBool aAntennaAttached, TInt aError ) { Q_UNUSED( aError ); - mObserver.headsetStatusChanged( aAntennaAttached ); -// doc->PubSubL().PublishHeadsetStatusL( EVRPSHeadsetConnected ); + RUN_NOTIFY_LOOP( mObservers, antennaStatusChanged( aAntennaAttached ) ); } /*! @@ -248,7 +221,6 @@ //TODO: Check how this event differs from AudioRoutingChangedL Q_UNUSED( aAudioDestination ) Q_UNUSED( aError ) -// doc->PubSubL().PublishLoudspeakerStatusL( EVRPSLoudspeakerNotInUse ); // Q_Q( RadioEngineWrapper ); // q->audioRouteChanged( aAudioDestination == RadioEngine::ERadioSpeaker ); } @@ -264,7 +236,6 @@ // // We only set the flag here. It is reset in the FrequencyEventL // mIsSeeking = true; // } -// Document()->PubSubL().PublishTuningStateL( EVRPSTuningStarted ); } /*! @@ -273,8 +244,6 @@ void RadioEngineWrapperPrivate::RegionEventL( TInt DEBUGVAR( aRegion ), TInt DEBUGVAR( aError ) ) { LOG_FORMAT( "RadioEngineWrapperPrivate::RegionEventL, aRegion: %d, Error: %d", aRegion, aError ); -// Document()->PubSubL().PublishFrequencyDecimalCountL( -// static_cast( Document()->RadioSettings()->DecimalCount() ) ); } /*! @@ -283,7 +252,7 @@ void RadioEngineWrapperPrivate::AudioRouteChangedL( RadioEngine::TRadioAudioRoute aRoute ) { mUseLoudspeaker = aRoute == RadioEngine::ERadioSpeaker; - mObserver.audioRouteChanged( mUseLoudspeaker ); + RUN_NOTIFY_LOOP( mObservers, audioRouteChanged( mUseLoudspeaker ) ); } /*! @@ -316,13 +285,3 @@ LOG( "RadioEngineWrapperPrivate::HandleRepositoryValueChangeL: Offline profile activated" ); } } - -/*! - * - */ -void RadioEngineWrapperPrivate::frequencyScannerFinished() -{ - RadioFrequencyScanningHandler* handler = mFrequencyScanningHandler.take(); // Nulls the pointer - handler->deleteLater(); - mObserver.scanAndSaveFinished(); -}