diff -r cce62ebc198e -r 93c594350b9a radioapp/radioenginewrapper/src/radioenginehandler.cpp --- a/radioapp/radioenginewrapper/src/radioenginehandler.cpp Tue Aug 31 15:15:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,365 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// User includes -#include "cradioengine.h" -#include "cradioaudiorouter.h" -#include "cradiosystemeventcollector.h" -#include "cradiosettings.h" -#include "mradioenginesettings.h" -#include "mradiordsreceiver.h" -#include "radioenginehandler.h" -#include "mradioenginehandlerobserver.h" -#include "radio_global.h" -#include "radiologger.h" -#include "radioenummapper.h" - -/*! - * Map to translate seek direction enum from its definition in the engine to - * its definition in the ui and vice versa - */ -BEGIN_ENUM_MAP( KSeekDirectionMap ) - ENUM_MAP_ITEM( Seek::Down, RadioEngine::ERadioDown ), - ENUM_MAP_ITEM( Seek::Up, RadioEngine::ERadioUp ) -END_ENUM_MAP( KSeekDirectionMap ) - -/*! - * Convenience macro to do the mapping of seek directions - */ -#define MAP_FROM_UI_DIRECTION(ui_enum) MAP_FROM_UI_ENUM( RadioEngine::TRadioTuneDirection, ui_enum, KSeekDirectionMap ) - -/*! - * Map to translate radio region enum from its definition in the engine to - * its definition in the ui and vice versa - */ -BEGIN_ENUM_MAP( KRegionMap ) - ENUM_MAP_ITEM( RadioRegion::None, ERadioRegionNone ), - ENUM_MAP_ITEM( RadioRegion::Default, ERadioRegionDefault ), - ENUM_MAP_ITEM( RadioRegion::Japan, ERadioRegionJapan ), - ENUM_MAP_ITEM( RadioRegion::America, ERadioRegionAmerica ), - ENUM_MAP_ITEM( RadioRegion::Poland, ERadioRegionPoland ), -END_ENUM_MAP( KRegionMap ) - -/*! - * Convenience macros to do the mapping of radio regions - */ -#define MAP_FROM_UI_REGION(ui_enum) MAP_FROM_UI_ENUM( TRadioRegion, ui_enum, KRegionMap ) -#define MAP_TO_UI_REGION(engine_enum) MAP_TO_UI_ENUM( RadioRegion::Region, engine_enum, KRegionMap ) - -/*! - * Map to translate seeking state enum from its definition in the engine to - * its definition in the ui and vice versa - */ -BEGIN_ENUM_MAP( KSeekingStateMap ) - ENUM_MAP_ITEM( Seek::NotSeeking, RadioEngine::ERadioNotSeeking ), - ENUM_MAP_ITEM( Seek::SeekingUp, RadioEngine::ERadioSeekingUp ), - ENUM_MAP_ITEM( Seek::SeekingDown, RadioEngine::ERadioSeekingDown ) -END_ENUM_MAP( KSeekingStateMap ) - -/*! - * Convenience macro to do the mapping of seeking states - */ -#define MAP_TO_UI_SEEKING_STATE(ui_enum) MAP_TO_UI_ENUM( Seek::State, ui_enum, KSeekingStateMap ) - -/*! - * - */ -RadioEngineHandler::RadioEngineHandler( MRadioEngineHandlerObserver& observer ) - : mObserver( observer ) -{ -} - -/*! - * - */ -RadioEngineHandler::~RadioEngineHandler() -{ -} - -/*! - * Attempts to construct the radio engine - */ -bool RadioEngineHandler::constructEngine() -{ - LOG_METHOD; - - CRadioEngine* engine = NULL; - TRAPD( err, engine = CRadioEngine::NewL( *this ) ); - if ( err ) { - return false; - } - - mEngine.reset( engine ); - TRAP( err, - mEngine->SystemEventCollector().AddObserverL( &mObserver ); - mEngine->AddObserverL( &mObserver ); - ); - if ( err ) { - return false; - } - - mRegion = MAP_TO_UI_REGION( mEngine->Settings().EngineSettings().RegionId() ); - return true; -} - -/*! - * Sets the rds data observer - */ -void RadioEngineHandler::setRdsObserver( MRadioRdsDataObserver* observer ) -{ - TRAP_IGNORE( mEngine->RdsReceiver().AddObserverL( observer ) ); -} - -/*! - * Starts or stops receiving RDS data - */ -void RadioEngineHandler::setRdsEnabled( bool rdsEnabled ) -{ - if ( rdsEnabled ) { - mEngine->RdsReceiver().StartReceiver(); - } else { - mEngine->RdsReceiver().StopReceiver(); - } -} - -/*! - * Returns the radio status. - */ -bool RadioEngineHandler::isRadioOn() -{ - return mEngine->Settings().EngineSettings().IsPowerOn(); -} - -/*! - * Sets the manual seek status - */ -void RadioEngineHandler::setManualSeekMode( bool manualSeek ) -{ - mEngine->SetManualSeekMode( manualSeek ); -} - -/*! - * Returns the manual seek status - */ -bool RadioEngineHandler::isInManualSeekMode() const -{ - return mEngine->IsInManualSeekMode(); -} - -/*! - * Tune to the specified frequency - */ -void RadioEngineHandler::setFrequency( uint frequency ) -{ - mEngine->SetFrequency( frequency ); -} - -/*! - * Sets the audio mute state - */ -void RadioEngineHandler::setMute( const bool muted, const bool updateSettings ) -{ - mEngine->SetVolumeMuted( muted, updateSettings ); -} - -/*! - * Gets the audio mute state - */ -bool RadioEngineHandler::isMuted() const -{ - return mEngine->Settings().EngineSettings().IsVolMuted(); -} - -/*! - * Sets the volume level of the FM radio - */ -void RadioEngineHandler::setVolume( int newVolume ) -{ - if ( volume() != newVolume ) { - if ( newVolume > 0 ) { - mEngine->SetVolumeMuted( EFalse ); - } - - mEngine->SetVolume( newVolume ); - } -} - -/*! - * Gets the volumelevel. - */ -int RadioEngineHandler::volume() const -{ - return mEngine->Settings().EngineSettings().Volume(); -} - -/*! - * Gets the max volumelevel. - */ -int RadioEngineHandler::maxVolume() const -{ - return mEngine->MaxVolumeLevel(); -} - -/*! - * Increases the volume by one increment - */ -void RadioEngineHandler::increaseVolume() -{ - mEngine->AdjustVolume( RadioEngine::ERadioIncVolume ); -} - -/*! - * Decreases the volume by one increment - */ -void RadioEngineHandler::decreaseVolume() -{ - mEngine->AdjustVolume( RadioEngine::ERadioDecVolume ); -} - - -/*! - * Checks if the antenna is attached - */ -bool RadioEngineHandler::isAntennaAttached() const -{ - return mEngine->IsAntennaAttached(); -} - -/*! - * Retrieves the current frequency. - */ -uint RadioEngineHandler::currentFrequency() const -{ - return mEngine->Settings().EngineSettings().TunedFrequency(); -} - -/*! - * Returns the minimum allowed frequency in the current region - */ -uint RadioEngineHandler::minFrequency() const -{ - return mEngine->Settings().EngineSettings().MinFrequency(); -} - -/*! - * Returns the maximum allowed frequency in the current region - */ -uint RadioEngineHandler::maxFrequency() const -{ - return mEngine->Settings().EngineSettings().MaxFrequency(); -} - -/*! - * Checks if the given frequency is valid in the current region - */ -bool RadioEngineHandler::isFrequencyValid( uint frequency ) const -{ - return mEngine->IsFrequencyValid( frequency ); -} - -/*! - * Scan up to the next available frequency - */ -void RadioEngineHandler::seek( Seek::Direction direction ) -{ - LOG_TIMESTAMP( "Seek" ); - mEngine->Seek( MAP_FROM_UI_DIRECTION( direction ) ); -} - -/*! - * Cancel previously requested scan, and return to the already tuned frequency - */ -void RadioEngineHandler::cancelSeek() -{ - mEngine->CancelSeek(); -} - -/*! - * Returns the engine seeking state - */ -Seek::State RadioEngineHandler::seekingState() const -{ - return MAP_TO_UI_SEEKING_STATE( mEngine->Seeking() ); -} - -/*! - * return step size for tuning. - */ -uint RadioEngineHandler::frequencyStepSize() const -{ - return mEngine->Settings().EngineSettings().FrequencyStepSize(); -} - -/*! - * Returns the selected radio region - */ -RadioRegion::Region RadioEngineHandler::region() const -{ - return mRegion; -} - -/*! - * Sets whether or not audio should be routed to loudspeaker - */ -void RadioEngineHandler::setAudioRouteToLoudspeaker( bool loudspeaker ) -{ - TRAPD( err, mEngine->AudioRouter().SetAudioRouteL( loudspeaker ? RadioEngine::ERadioSpeaker - : RadioEngine::ERadioHeadset ) ); - if ( err ) { - LOG_FORMAT( "Failed to set audioroute: UseLoudspeadker: %d", loudspeaker ); - } -} - -/*! - * Checks if audio is routed to loudspeaker - */ -bool RadioEngineHandler::isAudioRoutedToLoudspeaker() const -{ - return mEngine->Settings().EngineSettings().AudioRoute() == RadioEngine::ERadioSpeaker; -} - -/*! - * Returns the repository manager. - */ -MRadioApplicationSettings& RadioEngineHandler::applicationSettings() const -{ - return mEngine->Settings().ApplicationSettings(); -} - -/*! - * \reimp - */ -CRadioAudioRouter* RadioEngineHandler::InitAudioRouterL() -{ - return CRadioAudioRouter::NewL( mObserver ); -} - -/*! - * \reimp - */ -CRadioSystemEventCollector* RadioEngineHandler::InitSystemEventCollectorL() -{ - return CRadioSystemEventCollector::NewL(); -} - -/*! - * \reimp - */ -CRadioSettings* RadioEngineHandler::InitSettingsL() -{ - return CRadioSettings::NewL(); -}