--- a/radioapp/radioenginewrapper/src/cradioenginehandler.cpp Fri May 14 15:52:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,461 +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 "cradiopubsub.h"
-#include "cradiorepositorymanager.h"
-#include "mradiordsreceiver.h"
-#include "cradioenginehandler.h"
-#include "mradioenginehandlerobserver.h"
-#include "radio_global.h"
-#include "radiologger.h"
-#include "radioenummapper.h"
-
-/**
- * Delayed tuning delay
- */
-const TInt KTuneDelay = 100000;
-
-/*!
- * 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( Seeking::Down, RadioEngine::ERadioDown ),
- ENUM_MAP_ITEM( Seeking::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( Seeking::NotSeeking, RadioEngine::ERadioNotSeeking ),
- ENUM_MAP_ITEM( Seeking::SeekingUp, RadioEngine::ERadioSeekingUp ),
- ENUM_MAP_ITEM( Seeking::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( Seeking::State, ui_enum, KSeekingStateMap )
-
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CRadioEngineHandler::CRadioEngineHandler( MRadioEngineHandlerObserver& aObserver )
- : iObserver( aObserver )
- {
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CRadioEngineHandler::~CRadioEngineHandler()
- {
- if ( iEngine ) {
- iEngine->Settings().Repository().RemoveObserver( &iObserver );
- }
-
- delete iEngine;
- delete iDelayTimer;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::ConstructL()
- {
- LOG_METHOD;
-
- iDelayTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-
- iEngine = CRadioEngine::NewL( *this );
-
- iEngine->SystemEventCollector().AddObserverL( &iObserver );
- iEngine->Settings().Repository().AddObserverL( &iObserver );
- iEngine->AudioRouter().SetAudioRouteL( RadioEngine::ERadioHeadset );
- iEngine->AddObserverL( &iObserver );
-
- iRegion = MAP_TO_UI_REGION( iEngine->Settings().EngineSettings().RegionId() );
-
-// iEngineHolder->PubSub().SetControlEventObserver( &iObserver );
-
-// iRadioEngine->SetVolumeMuted( EFalse );
-// iRadioEngine->SetVolume( MaxVolume() );
-
-// CVRRepositoryManager::GetRepositoryValueL( KVRCRUid, KVRCRLaunchCount, usageCount );
-// CVRRepositoryManager::SetRepositoryValueL( KVRCRUid, KVRCRLaunchCount, ++usageCount );
-// iControlEventObserver = CVRControlEventObserverImpl::NewL( *this );
-// doc->PubSubL().SetControlEventObserver( iControlEventObserver );
- }
-
-// ---------------------------------------------------------------------------
-// Sets the rds data observer
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::SetRdsObserver( MRadioRdsDataObserver* aObserver )
- {
- TRAP_IGNORE( iEngine->RdsReceiver().AddObserverL( aObserver ) );
- }
-
-// ---------------------------------------------------------------------------
-// Returns the radio status.
-// ---------------------------------------------------------------------------
-//
-TBool CRadioEngineHandler::IsRadioOn()
- {
- return iEngine->Settings().EngineSettings().IsPowerOn();
- }
-
-// ---------------------------------------------------------------------------
-// Tune to the specified frequency
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::Tune( TUint aFrequency )
- {
- iEngine->SetFrequency( aFrequency );
- }
-
-// ---------------------------------------------------------------------------
-// Tune to the specified frequency after a delay
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::TuneWithDelay( TUint aFrequency )
- {
- iFrequency = aFrequency;
- iDelayTimer->Cancel();
- iDelayTimer->Start( KTuneDelay, KTuneDelay, TCallBack( TuneDelayCallback, this ) );
- }
-
-// ---------------------------------------------------------------------------
-// Sets the audio mute state
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::SetMuted( const TBool aMuted )
- {
- iEngine->SetVolumeMuted( aMuted );
- }
-
-// ---------------------------------------------------------------------------
-// Gets the audio mute state
-// ---------------------------------------------------------------------------
-//
-TBool CRadioEngineHandler::IsMuted() const
- {
- return iEngine->Settings().EngineSettings().IsVolMuted();
- }
-
-// ---------------------------------------------------------------------------
-// Sets the volume level of the FM radio
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::SetVolume( TInt aVolume )
- {
- if ( Volume() != aVolume )
- {
- if ( aVolume > 0 )
- {
- iEngine->SetVolumeMuted( EFalse );
- }
-
- iEngine->SetVolume( aVolume );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Gets the volumelevel.
-// ---------------------------------------------------------------------------
-//
-TInt CRadioEngineHandler::Volume() const
- {
- return iEngine->Settings().EngineSettings().Volume();
- }
-
-// ---------------------------------------------------------------------------
-// Gets the max volumelevel.
-// ---------------------------------------------------------------------------
-//
-TInt CRadioEngineHandler::MaxVolume() const
- {
- return iEngine->MaxVolumeLevel();
- }
-
-// ---------------------------------------------------------------------------
-// Increases the volume by one increment
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::IncreaseVolume()
- {
- iEngine->AdjustVolume( RadioEngine::ERadioIncVolume );
- }
-
-// ---------------------------------------------------------------------------
-// Decreases the volume by one increment
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::DecreaseVolume()
- {
- iEngine->AdjustVolume( RadioEngine::ERadioDecVolume );
- }
-
-// ---------------------------------------------------------------------------
-// Checks if the antenna is attached
-// ---------------------------------------------------------------------------
-//
-TBool CRadioEngineHandler::IsAntennaAttached() const
- {
- return iEngine->IsAntennaAttached();
- }
-
-// ---------------------------------------------------------------------------
-// Retrieves the current frequency.
-// ---------------------------------------------------------------------------
-//
-TUint CRadioEngineHandler::TunedFrequency() const
- {
- return iEngine->Settings().EngineSettings().TunedFrequency();
- }
-
-// ---------------------------------------------------------------------------
-// Returns the minimum allowed frequency in the current region
-// ---------------------------------------------------------------------------
-//
-TUint CRadioEngineHandler::MinFrequency() const
- {
- return iEngine->Settings().EngineSettings().MinFrequency();
- }
-
-// ---------------------------------------------------------------------------
-// Returns the maximum allowed frequency in the current region
-// ---------------------------------------------------------------------------
-//
-TUint CRadioEngineHandler::MaxFrequency() const
- {
- return iEngine->Settings().EngineSettings().MaxFrequency();
- }
-
-// ---------------------------------------------------------------------------
-// Checks if the given frequency is valid in the current region
-// ---------------------------------------------------------------------------
-//
-TBool CRadioEngineHandler::IsFrequencyValid( TUint aFrequency ) const
- {
- return iEngine->IsFrequencyValid( aFrequency );
- }
-
-// ---------------------------------------------------------------------------
-// Scan up to the next available frequency
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::Seek( Seeking::Direction direction )
- {
- LOG_TIMESTAMP( "Seek" );
- iEngine->Seek( MAP_FROM_UI_DIRECTION( direction ) );
- }
-
-// ---------------------------------------------------------------------------
-// Cancel previously requested scan, and return to the
-// already tuned frequency
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::CancelSeek()
- {
- iEngine->CancelSeek();
- }
-
-// ---------------------------------------------------------------------------
-// Returns the engine seeking state
-// ---------------------------------------------------------------------------
-//
-Seeking::State CRadioEngineHandler::SeekingState() const
- {
- return MAP_TO_UI_SEEKING_STATE( iEngine->Seeking() );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::StartScan( MRadioScanObserver& aObserver )
- {
- iEngine->StartScan( aObserver );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::StopScan( TInt aError )
- {
- iEngine->StopScan( aError );
- }
-
-// ---------------------------------------------------------------------------
-// return step size for tuning.
-// ---------------------------------------------------------------------------
-//
-TUint32 CRadioEngineHandler::FrequencyStepSize() const
- {
- return iEngine->Settings().EngineSettings().FrequencyStepSize();
- }
-
-// ----------------------------------------------------------------------------------------------------
-// Returns the selected radio region
-// ----------------------------------------------------------------------------------------------------
-//
-RadioRegion::Region CRadioEngineHandler::Region() const
- {
- return iRegion;
- }
-
-// ---------------------------------------------------------------------------
-// Sets whether or not audio should be routed to loudspeaker
-// ---------------------------------------------------------------------------
-//
-void CRadioEngineHandler::SetAudioRouteToLoudspeaker( TBool aLoudspeaker )
- {
- TRAPD( err, iEngine->AudioRouter().SetAudioRouteL( aLoudspeaker ? RadioEngine::ERadioSpeaker
- : RadioEngine::ERadioHeadset ) );
- if ( err )
- {
- LOG_FORMAT( "Failed to set audioroute: UseLoudspeadker: %d", aLoudspeaker );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Checks if audio is routed to loudspeaker
-// ---------------------------------------------------------------------------
-//
-TBool CRadioEngineHandler::IsAudioRoutedToLoudspeaker() const
- {
- return iEngine->Settings().EngineSettings().AudioRoute() == RadioEngine::ERadioSpeaker;
- }
-
-// ---------------------------------------------------------------------------
-// Returns ar reference to the publish & subscribe handler
-// ---------------------------------------------------------------------------
-//
-CRadioPubSub& CRadioEngineHandler::PubSub()
- {
- return *iEngine->PubSub();
- }
-
-// ---------------------------------------------------------------------------
-// Returns the repository manager.
-// ---------------------------------------------------------------------------
-//
-CRadioRepositoryManager& CRadioEngineHandler::Repository() const
- {
- return iEngine->Settings().Repository();
- }
-
-// ---------------------------------------------------------------------------
-// Returns the repository manager.
-// ---------------------------------------------------------------------------
-//
-MRadioApplicationSettings& CRadioEngineHandler::ApplicationSettings() const
- {
- return iEngine->Settings().ApplicationSettings();
- }
-
-// ---------------------------------------------------------------------------
-// From MRadioEngineInitializer
-//
-// ---------------------------------------------------------------------------
-//
-CRadioAudioRouter* CRadioEngineHandler::InitAudioRouterL()
- {
- return CRadioAudioRouter::NewL( iObserver );
- }
-
-// ---------------------------------------------------------------------------
-// From MRadioEngineInitializer
-//
-// ---------------------------------------------------------------------------
-//
-CRadioSystemEventCollector* CRadioEngineHandler::InitSystemEventCollectorL()
- {
- return CRadioSystemEventCollector::NewL();
- }
-
-// ---------------------------------------------------------------------------
-// From MRadioEngineInitializer
-//
-// ---------------------------------------------------------------------------
-//
-CRadioSettings* CRadioEngineHandler::InitSettingsL()
- {
- return CRadioSettings::NewL();
- }
-
-// ---------------------------------------------------------------------------
-// From MRadioEngineInitializer
-//
-// ---------------------------------------------------------------------------
-//
-CRadioPubSub* CRadioEngineHandler::InitPubSubL()
- {
- return CRadioPubSub::NewL();
- }
-
-// --------------------------------------------------------------------------------
-// Static callback function to be used by the tune delay timer
-// --------------------------------------------------------------------------------
-//
-TInt CRadioEngineHandler::TuneDelayCallback( TAny* aSelf )
- {
- CRadioEngineHandler* self = static_cast<CRadioEngineHandler*>( aSelf );
- self->iDelayTimer->Cancel();
- self->Tune( self->iFrequency );
- return 0; // Not used by CPeriodic
- }