radioapp/radioenginewrapper/src/cradioenginehandler.cpp
branchGCC_SURGE
changeset 37 451b2e1545b2
parent 26 6bcf277166c1
parent 33 11b6825f0862
--- a/radioapp/radioenginewrapper/src/cradioenginehandler.cpp	Fri Jun 11 16:24:13 2010 +0100
+++ /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
-    }