# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1273583636 -10800 # Node ID 97dcae98e602eee778185193e707b7aec172fcb1 # Parent 0004e923f486cb4b8f594075d9eca30d079a6545 Revision: 201016 Kit: 201019 diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradio/inc/fmradioalfmediaidle.h --- a/fmradio/fmradio/inc/fmradioalfmediaidle.h Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradio/inc/fmradioalfmediaidle.h Tue May 11 16:13:56 2010 +0300 @@ -245,20 +245,7 @@ * fades with defined fading duration */ void MediaIdleFadeOut( TBool aNow = EFalse ); - /** - * Sets and starts scrolling animation to CAlfTextVisual. - * The visual object is scrolled from current position to - * right side of the display - * @param aVisual a pointer to the visual object - */ - void ScrollToRight( CAlfTextVisual* aVisual ) const; - /** - * Sets and starts scrolling animation to CAlfTextVisual. - * The visual object is scrolled from current position to - * left side of the display - * @param aVisual a pointer to the visual object - */ - void ScrollToLeft( CAlfTextVisual* aVisual ) const; + /** * @param aVisual a pointer to the visual object * @param aTransitionTime Duration for reaching the target. @@ -302,46 +289,10 @@ * @param aTopLeftPosition Top left point of the rect * @param aBottomRightPosition Bottom right point of the rect */ - void SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TPoint& aTopLeftPosition, - const TPoint& aBottomRightPosition ); - /** - * Sets absolute rect of the anchor by top left and size of the rect. - * @param aAnchor Anchor layout for setting placement - * @param aOrdinal Index of visual element - * @param aTopLeftPosition Top left point of the rect - * @param aSize Size of the rect - */ - void SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TPoint& aTopLeftPosition, - const TSize& aSize ); - /** - * Sets relative rect of the anchor by top left and bottom right points. - * @param aAnchor Anchor layout for setting placement - * @param aOrdinal Index of visual element - * @param aTopLeftPosition Top left point of the rect - * @param aBottomRightPosition Bottom right point of the rect - */ - void SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TAlfRealPoint& aTopLeftPosition, - const TAlfRealPoint& aBottomRightPosition ); - /** - * Sets relative rect of the anchor by top left and size of the rect. - * @param aAnchor Anchor layout for setting placement - * @param aOrdinal Index of visual element - * @param aTopLeftPosition Top left point of the rect - * @param aSize Size of the rect - */ - void SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TAlfRealPoint& aTopLeftPosition, - const TAlfRealSize& aSize ); - - - + void SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, + TInt aOrdinal, + const TPoint& aTopLeftPosition, + const TPoint& aBottomRightPosition ); /* * Transformation end event received */ diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradio/inc/fmradioalfrdsviewer.h --- a/fmradio/fmradio/inc/fmradioalfrdsviewer.h Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradio/inc/fmradioalfrdsviewer.h Tue May 11 16:13:56 2010 +0300 @@ -154,39 +154,7 @@ TInt aOrdinal, const TPoint& aTopLeftPosition, const TPoint& aBottomRightPosition ); - /** - * Sets absolute rect of the anchor by top left and size of the rect. - * @param aAnchor Anchor layout for setting placement - * @param aOrdinal Index of visual element - * @param aTopLeftPosition Top left point of the rect - * @param aSize Size of the rect - */ - void SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TPoint& aTopLeftPosition, - const TSize& aSize ); - /** - * Sets relative rect of the anchor by top left and bottom right points. - * @param aAnchor Anchor layout for setting placement - * @param aOrdinal Index of visual element - * @param aTopLeftPosition Top left point of the rect - * @param aBottomRightPosition Bottom right point of the rect - */ - void SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TAlfRealPoint& aTopLeftPosition, - const TAlfRealPoint& aBottomRightPosition ); - /** - * Sets relative rect of the anchor by top left and size of the rect. - * @param aAnchor Anchor layout for setting placement - * @param aOrdinal Index of visual element - * @param aTopLeftPosition Top left point of the rect - * @param aSize Size of the rect - */ - void SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TAlfRealPoint& aTopLeftPosition, - const TAlfRealSize& aSize ); + /** * Creates the needed drawing layers and visual objects * for the indicator. diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradio/inc/fmradioscanlocalstationsview.h --- a/fmradio/fmradio/inc/fmradioscanlocalstationsview.h Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradio/inc/fmradioscanlocalstationsview.h Tue May 11 16:13:56 2010 +0300 @@ -165,7 +165,7 @@ /** * Restores the radio after scanning */ - void RestoreRadio( TBool aTuneInitialFrequency = ETrue, TBool aUnmute = ETrue ); + void RestoreRadio( TBool aTuneInitialFrequency = ETrue ); /** * Called when a new scan is activated. */ diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradio/src/fmradioalfmediaidle.cpp --- a/fmradio/fmradio/src/fmradioalfmediaidle.cpp Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradio/src/fmradioalfmediaidle.cpp Tue May 11 16:13:56 2010 +0300 @@ -62,6 +62,7 @@ const TInt KMediaIdleBackgroundTextScrollInterval = 12000; const TReal KMediaIdleBackgroundTextOpacity = 0.2f; const TInt KMediaIdleBackgroundTextSideToSideTransitionDurationTime = 25000; +const TInt KMediaIdleBackgroundTextYTransition = 10; //const TInt KMediaIdleModeChangeInterval = 20000; @@ -307,6 +308,7 @@ backgroundText->SetOpacity( TAlfTimedValue( KMediaIdleBackgroundTextOpacity ) ); backgroundText->EnableBrushesL(); backgroundText->EnableShadow( EFalse ); + backgroundText->SetFlag( EAlfVisualFlagManualSize ); SetScrollingToBackgroundText( backgroundText, KMediaIdleBackgroundTextSideToSideTransitionDurationTime, EMediaIdleBackgroundTextScrollEnd ); @@ -991,167 +993,56 @@ // --------------------------------------------------------------------------- // void CFMRadioAlfMediaIdle::SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TPoint& aTopLeftPosition, - const TPoint& aBottomRightPosition ) - { - if ( aAnchor ) - { - // Set top/left anchor. - aAnchor->Attach( aOrdinal, - EAlfAnchorTypeTopLeft, - TAlfXYMetric( TAlfMetric( aTopLeftPosition.iX ), TAlfMetric( aTopLeftPosition.iY ) ), - EAlfAnchorAttachmentOriginTopLeft ); - - - // Set bottom/right anchor. - aAnchor->Attach( aOrdinal, - EAlfAnchorTypeBottomRight, - TAlfXYMetric( TAlfMetric( aBottomRightPosition.iX ), TAlfMetric( aBottomRightPosition.iY ) ), - EAlfAnchorAttachmentOriginTopLeft ); - } - } - -// --------------------------------------------------------------------------- -// CFMRadioAlfMediaIdle::SetAbsoluteCornerAnchors -// Sets absolute rect of the anchor by top left point and size of the rect -// --------------------------------------------------------------------------- -// -void CFMRadioAlfMediaIdle::SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, TInt aOrdinal, const TPoint& aTopLeftPosition, const TSize& aSize ) - { - if( aAnchor ) - { - // set top left corner position - aAnchor->SetAnchor( EAlfAnchorTopLeft, aOrdinal, - EAlfAnchorOriginLeft, - EAlfAnchorOriginTop, - EAlfAnchorMetricAbsolute, - EAlfAnchorMetricAbsolute, - TAlfTimedPoint( aTopLeftPosition.iX, aTopLeftPosition.iY ) ); - // .. and set the bottom right corner also to fix the size - aAnchor->SetAnchor( EAlfAnchorBottomRight, aOrdinal, - EAlfAnchorOriginLeft, - EAlfAnchorOriginTop, - EAlfAnchorMetricAbsolute, - EAlfAnchorMetricAbsolute, - TAlfTimedPoint( aTopLeftPosition.iX + aSize.iWidth, aTopLeftPosition.iY + aSize.iHeight ) ); - } - } - -// --------------------------------------------------------------------------- -// CFMRadioAlfMediaIdle::SetRelativeCornerAnchors -// Sets relative rect of the anchor by top left and bottom right points. -// --------------------------------------------------------------------------- -// -void CFMRadioAlfMediaIdle::SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, TInt aOrdinal, const TAlfRealPoint& aTopLeftPosition, const TAlfRealPoint& aBottomRightPosition ) - { - if( aAnchor ) - { - aAnchor->SetRelativeAnchorRect( aOrdinal, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aTopLeftPosition, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aBottomRightPosition ); - } - } - -// --------------------------------------------------------------------------- -// CFMRadioAlfMediaIdle::SetRelativeCornerAnchors -// Sets relative rect of the anchor by top left point and size of the rect -// --------------------------------------------------------------------------- -// -void CFMRadioAlfMediaIdle::SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, TInt aOrdinal, const TAlfRealPoint& aTopLeftPosition, const TAlfRealSize& aSize ) - { - if( aAnchor ) - { - aAnchor->SetRelativeAnchorRect( aOrdinal, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aTopLeftPosition, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aTopLeftPosition + TAlfRealPoint( aSize.iWidth, aSize.iHeight ) ); - } - } + TInt aOrdinal, + const TPoint& aTopLeftPosition, + const TPoint& aBottomRightPosition ) + { + if ( aAnchor ) + { + // Set top/left anchor. + aAnchor->Attach( aOrdinal, + EAlfAnchorTypeTopLeft, + TAlfXYMetric( TAlfMetric( aTopLeftPosition.iX ), TAlfMetric( aTopLeftPosition.iY ) ), + EAlfAnchorAttachmentOriginTopLeft ); + + // Set bottom/right anchor. + aAnchor->Attach( aOrdinal, + EAlfAnchorTypeBottomRight, + TAlfXYMetric( TAlfMetric( aBottomRightPosition.iX ), TAlfMetric( aBottomRightPosition.iY ) ), + EAlfAnchorAttachmentOriginTopLeft ); + } + } // ---------------------------------------------------------------------------- // CFMRadioAlfMediaIdle::SetScrollingToBackgroundText // ---------------------------------------------------------------------------- // void CFMRadioAlfMediaIdle::SetScrollingToBackgroundText( CAlfTextVisual* aVisual, TInt aTransitionTime, TMediaIdleCustomEvent aEventAfterScrollingEnd ) - { - FTRACE( FPrint( _L("CFMRadioAlfMediaIdle::SetScrollingToBackgroundText(aTransitionTime=%d)"), aTransitionTime ) ); - - CAlfViewportLayout* mediaIdle = static_cast ( aVisual->Layout() ); - TInt mediaIdleItemWidth = aVisual->DisplayRect().Width(); - TInt mediaIdleItemHeight = aVisual->DisplayRect().Height(); - TInt mediaIdleWidth = mediaIdle->Size().IntTarget().iX; - - TAlfTimedValue targetPositionX; - if( iBackgroundTextScrollDirection == EScrollRightToLeft ) - { - targetPositionX.SetValueNow( -mediaIdleItemWidth ); - targetPositionX.SetTarget( mediaIdleWidth, aTransitionTime ); - iBackgroundTextScrollDirection = EScrollLeftToRight; - } - else - { - targetPositionX.SetValueNow( mediaIdleWidth ); - targetPositionX.SetTarget( -mediaIdleItemWidth, aTransitionTime ); - iBackgroundTextScrollDirection = EScrollRightToLeft; - } - Translate( aVisual, targetPositionX, TAlfTimedValue( -30 ) ); - Env().Send( TAlfCustomEventCommand( aEventAfterScrollingEnd, this ), - aTransitionTime + KMediaIdleBackgroundTextScrollInterval ); - } + { + FTRACE( FPrint( _L("CFMRadioAlfMediaIdle::SetScrollingToBackgroundText(aTransitionTime=%d)"), aTransitionTime ) ); + + CAlfViewportLayout* mediaIdle = static_cast ( aVisual->Layout() ); + TInt mediaIdleItemWidth = aVisual->DisplayRect().Width(); + TInt mediaIdleWidth = mediaIdle->Size().IntTarget().iX; + + TAlfTimedValue targetPositionX; + if ( iBackgroundTextScrollDirection == EScrollRightToLeft ) + { + targetPositionX.SetValueNow( -mediaIdleItemWidth ); + targetPositionX.SetTarget( mediaIdleWidth, aTransitionTime ); + iBackgroundTextScrollDirection = EScrollLeftToRight; + } + else + { + targetPositionX.SetValueNow( mediaIdleWidth ); + targetPositionX.SetTarget( -mediaIdleItemWidth, aTransitionTime ); + iBackgroundTextScrollDirection = EScrollRightToLeft; + } + Translate( aVisual, targetPositionX, TAlfTimedValue( KMediaIdleBackgroundTextYTransition ) ); + Env().Send( TAlfCustomEventCommand( aEventAfterScrollingEnd, this ), + aTransitionTime + KMediaIdleBackgroundTextScrollInterval ); + } -// ---------------------------------------------------------------------------- -// CFMRadioAlfMediaIdle::ScrollToLeft -// Sets and starts scrolling animation to CAlfTextVisual. -// The visual object is scrolled from current position to -// left side of the display -// ---------------------------------------------------------------------------- -// -void CFMRadioAlfMediaIdle::ScrollToLeft( CAlfTextVisual* aVisual ) const - { - FTRACE( FPrint( _L("CFMRadioAlfMediaIdle::ScrollToLeft(0x%x)"), aVisual ) ); - - if( aVisual ) - { - TInt visualWidth = aVisual->DisplayRect().Width(); - TInt textWidth = aVisual->TextExtents().iWidth; - TInt scrollValue = visualWidth; - if( textWidth > visualWidth ) - { - scrollValue += textWidth - visualWidth; - } - TAlfTimedPoint timedPosition = aVisual->Pos(); - TAlfRealPoint positionZero( 0, timedPosition.iY.ValueNow() ); - TAlfRealPoint positionLeft( - ( scrollValue ), timedPosition.iY.ValueNow() ); - aVisual->SetPos( positionZero ); - aVisual->SetPos( positionLeft, 1000 ); - } - } - -// ---------------------------------------------------------------------------- -// CFMRadioAlfMediaIdle::ScrollToRight -// Sets and starts scrolling animation to CAlfTextVisual. -// The visual object is scrolled from current position to -// right side of the display -// ---------------------------------------------------------------------------- -// -void CFMRadioAlfMediaIdle::ScrollToRight( CAlfTextVisual* aVisual ) const - { - FTRACE( FPrint( _L("CFMRadioAlfMediaIdle::ScrollToRight(0x%x)"), aVisual ) ); - - TInt visualWidth = aVisual->DisplayRect().Width(); - TInt textWidth = aVisual->TextExtents().iWidth; - TInt scrollValue = visualWidth; - if( textWidth > visualWidth ) - { - scrollValue += textWidth - visualWidth; - } - TAlfTimedPoint timedPosition = aVisual->Pos(); - TAlfRealPoint positionZero( 0, timedPosition.iY.ValueNow() ); - TAlfRealPoint positionRight( scrollValue, timedPosition.iY.ValueNow() ); - aVisual->SetPos( positionZero ); - aVisual->SetPos( positionRight, 1000 ); - } - // --------------------------------------------------------------------------- // CFMRadioAlfMediaIdle::FadeIn // Sets fade-in animation to the CAlfVisual. @@ -1271,4 +1162,5 @@ { StopAndFadeOutMediaIdle(); } -// End of File + +// End of File diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradio/src/fmradioalfrdsviewer.cpp --- a/fmradio/fmradio/src/fmradioalfrdsviewer.cpp Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradio/src/fmradioalfrdsviewer.cpp Tue May 11 16:13:56 2010 +0300 @@ -196,10 +196,13 @@ { iRect = aRect; TRAP_IGNORE( SetTextStyleL() ); - if( iIndicatorTextAnchor ) + if ( iIndicatorTextAnchor ) { SetAbsoluteCornerAnchors( iIndicatorTextAnchor, 0, iRect.iTl, iRect.iBr ); iIndicatorTextAnchor->UpdateChildrenLayout(); + // It seems that layout is not updated if the text is not changed + TRAP_IGNORE( iText->SetTextL( KNullDesC ); + iText->SetTextL( iRadioText ); ) } } @@ -210,29 +213,17 @@ // --------------------------------------------------------------------------- // void CFMRadioAlfRDSViewer::AddIndicatorLayerL() - { - // Create an anchor for the indicator layout - iIndicatorTextAnchor = CAlfAnchorLayout::AddNewL( *this ); - - // Create visual object for the indicator - iText = CAlfTextVisual::AddNewL( *this, iIndicatorTextAnchor ); - iText->SetColor( iTextColor ); - iText->SetAlign( EAlfAlignHCenter, EAlfAlignVCenter ); - iText->SetWrapping( CAlfTextVisual::ELineWrapBreak ); - iText->SetClipping( ETrue ); - - // shadow enablers - //iText->EnableDropShadowL( ETrue ); - //iText->EnableShadow( ETrue ); - - iText->EnableBrushesL(); - - /*CAlfGradientBrush* gradientBrush = CAlfGradientBrush::NewLC( Env() ); - gradientBrush->SetColor( KRgbBlack, 0.7f ); - iText->Brushes()->AppendL( gradientBrush, EAlfHasOwnership ); - CleanupStack::Pop( gradientBrush ); - */ - } + { + // Create an anchor for the indicator layout + iIndicatorTextAnchor = CAlfAnchorLayout::AddNewL( *this ); + + // Create visual object for the indicator + iText = CAlfTextVisual::AddNewL( *this, iIndicatorTextAnchor ); + iText->SetColor( iTextColor ); + iText->SetAlign( EAlfAlignHCenter, EAlfAlignVCenter ); + iText->SetWrapping( CAlfTextVisual::ELineWrapBreak ); + iText->SetClipping( ETrue ); + } // --------------------------------------------------------------------------- // CFMRadioAlfRDSViewer::SetTextStyleL @@ -309,7 +300,7 @@ // --------------------------------------------------------- // void CFMRadioAlfRDSViewer::Show() - { + { if ( !iIsRdsTextVisible ) { iIsRdsTextVisible = ETrue; @@ -372,91 +363,25 @@ // --------------------------------------------------------------------------- // void CFMRadioAlfRDSViewer::SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TPoint& aTopLeftPosition, - const TPoint& aBottomRightPosition ) - { - if ( aAnchor ) - { - // Set top/left anchor. - aAnchor->Attach( aOrdinal, - EAlfAnchorTypeTopLeft, - TAlfXYMetric( TAlfMetric( aTopLeftPosition.iX ), TAlfMetric( aTopLeftPosition.iY ) ), - EAlfAnchorAttachmentOriginTopLeft ); - - - // Set bottom/right anchor. - aAnchor->Attach( aOrdinal, - EAlfAnchorTypeBottomRight, - TAlfXYMetric( TAlfMetric( aBottomRightPosition.iX ), TAlfMetric( aBottomRightPosition.iY ) ), - EAlfAnchorAttachmentOriginTopLeft ); - } - } - -// --------------------------------------------------------------------------- -// CFMRadioAlfRDSViewer::SetAbsoluteCornerAnchors -// Sets absolute rect of the anchor by top left point and size of the rect -// --------------------------------------------------------------------------- -// -void CFMRadioAlfRDSViewer::SetAbsoluteCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TPoint& aTopLeftPosition, - const TSize& aSize ) - { - if( aAnchor ) - { - // set top left corner position - aAnchor->SetAnchor( EAlfAnchorTopLeft, aOrdinal, - EAlfAnchorOriginLeft, - EAlfAnchorOriginTop, - EAlfAnchorMetricAbsolute, - EAlfAnchorMetricAbsolute, - TAlfTimedPoint( aTopLeftPosition.iX, aTopLeftPosition.iY ) ); - // .. and set the bottom right corner also to fix the size - aAnchor->SetAnchor( EAlfAnchorBottomRight, aOrdinal, - EAlfAnchorOriginLeft, - EAlfAnchorOriginTop, - EAlfAnchorMetricAbsolute, - EAlfAnchorMetricAbsolute, - TAlfTimedPoint( aTopLeftPosition.iX + aSize.iWidth, aTopLeftPosition.iY + aSize.iHeight ) ); - } - } - -// --------------------------------------------------------------------------- -// CFMRadioAlfRDSViewer::SetRelativeCornerAnchors -// Sets relative rect of the anchor by top left and bottom right points. -// --------------------------------------------------------------------------- -// -void CFMRadioAlfRDSViewer::SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TAlfRealPoint& aTopLeftPosition, - const TAlfRealPoint& aBottomRightPosition ) - { - if( aAnchor ) - { - aAnchor->SetRelativeAnchorRect( aOrdinal, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aTopLeftPosition, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aBottomRightPosition ); - } - } - -// --------------------------------------------------------------------------- -// CFMRadioAlfRDSViewer::SetRelativeCornerAnchors -// Sets relative rect of the anchor by top left point and size of the rect -// --------------------------------------------------------------------------- -// -void CFMRadioAlfRDSViewer::SetRelativeCornerAnchors( CAlfAnchorLayout* aAnchor, - TInt aOrdinal, - const TAlfRealPoint& aTopLeftPosition, - const TAlfRealSize& aSize ) - { - if( aAnchor ) - { - aAnchor->SetRelativeAnchorRect( aOrdinal, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aTopLeftPosition, - EAlfAnchorOriginLeft, EAlfAnchorOriginTop, aTopLeftPosition + TAlfRealPoint( aSize.iWidth, aSize.iHeight ) ); - } - } + TInt aOrdinal, + const TPoint& aTopLeftPosition, + const TPoint& aBottomRightPosition ) + { + if ( aAnchor ) + { + // Set top/left anchor. + aAnchor->Attach( aOrdinal, + EAlfAnchorTypeTopLeft, + TAlfXYMetric( TAlfMetric( aTopLeftPosition.iX ), TAlfMetric( aTopLeftPosition.iY ) ), + EAlfAnchorAttachmentOriginTopLeft ); + + // Set bottom/right anchor. + aAnchor->Attach( aOrdinal, + EAlfAnchorTypeBottomRight, + TAlfXYMetric( TAlfMetric( aBottomRightPosition.iX ), TAlfMetric( aBottomRightPosition.iY ) ), + EAlfAnchorAttachmentOriginTopLeft ); + } + } // --------------------------------------------------------------------------- // CFMRadioAlfRDSViewer::Fade diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradio/src/fmradioscanlocalstationsview.cpp --- a/fmradio/fmradio/src/fmradioscanlocalstationsview.cpp Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradio/src/fmradioscanlocalstationsview.cpp Tue May 11 16:13:56 2010 +0300 @@ -822,6 +822,10 @@ { AppUi()->HandleCommandL( EFMRadioCmdScanLocalStationsScan ); } + else + { + iRadioEngine.SetMuteOn( EFalse ); + } } else if ( iScanAndSaveActivated ) { @@ -846,7 +850,7 @@ iScanAndSaveActivated = EFalse; RemoveScanningInProgressNoteL(); - RestoreRadio( EFalse ); + RestoreRadio(); appUi->AutoTuneInMainView(ETrue); ActivateMainViewL(); @@ -890,7 +894,7 @@ restoreFrequency = ETrue; } UpdateToolbar(); - RestoreRadio( restoreFrequency, EFalse ); + RestoreRadio( restoreFrequency ); // update now playing index if the tuning is triggered from accessory TInt frequencyIndex = FrequencyIndex( tunedFrequency ); @@ -912,7 +916,7 @@ // Restores the radio after scanning // ----------------------------------------------------------------------------------------------- // -void CFMRadioScanLocalStationsView::RestoreRadio( TBool aTuneInitialFrequency, TBool aUnmute ) +void CFMRadioScanLocalStationsView::RestoreRadio( TBool aTuneInitialFrequency ) { FTRACE( FPrint( _L("CFMRadioScanLocalStationsView::RestoreRadio") ) ); CFMRadioAppUi* appUi = static_cast( iCoeEnv->AppUi() ); @@ -924,10 +928,6 @@ iTuneRequested = ETrue; iRadioEngine.Tune( iInitialTunedFrequency ); } - if ( aUnmute ) // set mute off by default - { - iRadioEngine.SetMuteOn( EFalse ); - } iInitialTunedFrequency = 0; } appUi->SetStartupWizardRunning( EFalse ); @@ -991,10 +991,7 @@ PlayCurrentlySelectedChannelL(); iContainer->DrawDeferred(); } - - //unmute radio - iRadioEngine.SetMuteOn( EFalse ); - + CFMRadioAppUi* appUi = static_cast( iCoeEnv->AppUi() ); if ( appUi->IsStartupWizardRunning() ) @@ -1239,6 +1236,7 @@ { SetNowPlayingChannelL( selectedChannel ); SetLastListenedChannel( selectedChannel ); + iRadioEngine.SetMuteOn( EFalse ); } } } diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/bwins/fmradioengineacu.def --- a/fmradio/fmradioengine/bwins/fmradioengineacu.def Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradioengine/bwins/fmradioengineacu.def Tue May 11 16:13:56 2010 +0300 @@ -1,77 +1,77 @@ EXPORTS - ?SetCurrentPresetIndex@CRadioEngine@@QAEXH@Z @ 1 NONAME ; void CRadioEngine::SetCurrentPresetIndex(int) - ?PublishRDSProgramServiceL@CFMRadioPubSub@@QBEXABVTDesC16@@@Z @ 2 NONAME ; void CFMRadioPubSub::PublishRDSProgramServiceL(class TDesC16 const &) const - ?SetVolume@CRadioEngine@@QAEXH@Z @ 3 NONAME ; void CRadioEngine::SetVolume(int) - ?RdsReceiver@CRadioEngine@@QAEAAVCFMRadioRdsReceiverBase@@XZ @ 4 NONAME ; class CFMRadioRdsReceiverBase & CRadioEngine::RdsReceiver(void) - ?SetRegionIdL@CRadioEngine@@QBEXH@Z @ 5 NONAME ; void CRadioEngine::SetRegionIdL(int) const - ?SetMuteOn@CRadioEngine@@QAEXH@Z @ 6 NONAME ; void CRadioEngine::SetMuteOn(int) - ?GetAudioOutput@CRadioEngine@@QBE?AW4TFMRadioAudioOutput@1@XZ @ 7 NONAME ; enum CRadioEngine::TFMRadioAudioOutput CRadioEngine::GetAudioOutput(void) const - ?PublishPresetCountL@CFMRadioPubSub@@QBEXH@Z @ 8 NONAME ; void CFMRadioPubSub::PublishPresetCountL(int) const - ?RegionId@CRadioEngine@@QBEHXZ @ 9 NONAME ; int CRadioEngine::RegionId(void) const - ?GetVolume@CRadioEngine@@QBEHXZ @ 10 NONAME ; int CRadioEngine::GetVolume(void) const - ?PublishApplicationRunningStateL@CFMRadioPubSub@@QBEXW4TFMRadioPSApplicationRunningState@@@Z @ 11 NONAME ; void CFMRadioPubSub::PublishApplicationRunningStateL(enum TFMRadioPSApplicationRunningState) const - ?GetRTPlusSupportLevel@CRadioEngine@@QAE?AW4TFMRadioRTPlusLevel@@XZ @ 12 NONAME ; enum TFMRadioRTPlusLevel CRadioEngine::GetRTPlusSupportLevel(void) - ?GetPresetNameL@CRadioEngine@@QAEAAV?$TBuf@$0CA@@@H@Z @ 13 NONAME ; class TBuf<32> & CRadioEngine::GetPresetNameL(int) - ?IsMuteOn@CRadioEngine@@QBEHXZ @ 14 NONAME ; int CRadioEngine::IsMuteOn(void) const - ?GetMaxVolume@CRadioEngine@@QBEHXZ @ 15 NONAME ; int CRadioEngine::GetMaxVolume(void) const - ?SignalAvailable@CFMRadioRdsReceiverBase@@QBEHXZ @ 16 NONAME ; int CFMRadioRdsReceiverBase::SignalAvailable(void) const - ?SetRdsAfSearchEnable@CRadioEngine@@QAEXH@Z @ 17 NONAME ; void CRadioEngine::SetRdsAfSearchEnable(int) - ?RadioOn@CRadioEngine@@QAEXXZ @ 18 NONAME ; void CRadioEngine::RadioOn(void) - ?SetMusicStoreNoteDisplayed@CRadioEngine@@QAEXXZ @ 19 NONAME ; void CRadioEngine::SetMusicStoreNoteDisplayed(void) - ?RequestTunerControl@CRadioEngine@@QBEXXZ @ 20 NONAME ; void CRadioEngine::RequestTunerControl(void) const - ?CancelScanLocalStationsScan@CRadioEngine@@QAEXXZ @ 21 NONAME ; void CRadioEngine::CancelScanLocalStationsScan(void) - ?GetPresetNameAndFrequencyL@CRadioEngine@@QAEXHAAVTDes16@@AAH@Z @ 22 NONAME ; void CRadioEngine::GetPresetNameAndFrequencyL(int, class TDes16 &, int &) - ?GetRegionL@CRadioEngine@@QBE?AW4TFMRadioRegionSetting@@XZ @ 23 NONAME ; enum TFMRadioRegionSetting CRadioEngine::GetRegionL(void) const - ?GetPresetFrequencyL@CRadioEngine@@QBEHH@Z @ 24 NONAME ; int CRadioEngine::GetPresetFrequencyL(int) const - ?ProgrammeServiceNameType@CFMRadioRdsReceiverBase@@QBE?AW4TFMRadioProgrammeSeviceType@1@XZ @ 25 NONAME ; enum CFMRadioRdsReceiverBase::TFMRadioProgrammeSeviceType CFMRadioRdsReceiverBase::ProgrammeServiceNameType(void) const - ?GetFrequencyBandRange@CRadioEngine@@QAEHAAH0@Z @ 26 NONAME ; int CRadioEngine::GetFrequencyBandRange(int &, int &) - ?RegionIdAtIndex@CRadioEngine@@QBE?AW4TFMRadioRegionSetting@@H@Z @ 27 NONAME ; enum TFMRadioRegionSetting CRadioEngine::RegionIdAtIndex(int) const - ?SetPresetNameFrequencyL@CRadioEngine@@QAEXHABV?$TBuf@$0CA@@@H@Z @ 28 NONAME ; void CRadioEngine::SetPresetNameFrequencyL(int, class TBuf<32> const &, int) - ?FrequencyStepSize@CRadioEngine@@QBEKXZ @ 29 NONAME ; unsigned long CRadioEngine::FrequencyStepSize(void) const - ?PubSubL@CRadioEngine@@QBEAAVCFMRadioPubSub@@XZ @ 30 NONAME ; class CFMRadioPubSub & CRadioEngine::PubSubL(void) const - ?IsInCall@CRadioEngine@@QBEHXZ @ 31 NONAME ; int CRadioEngine::IsInCall(void) const - ?Tune@CRadioEngine@@QAEXHW4TRadioMode@1@@Z @ 32 NONAME ; void CRadioEngine::Tune(int, enum CRadioEngine::TRadioMode) - ?ScanDown@CRadioEngine@@QAEXXZ @ 33 NONAME ; void CRadioEngine::ScanDown(void) - ?CancelScan@CRadioEngine@@QAEXXZ @ 34 NONAME ; void CRadioEngine::CancelScan(void) - ?InitializeRadio@CRadioEngine@@QAEXXZ @ 35 NONAME ; void CRadioEngine::InitializeRadio(void) - ?ScanUp@CRadioEngine@@QAEXXZ @ 36 NONAME ; void CRadioEngine::ScanUp(void) - ?AddObserver@CFMRadioRdsReceiverBase@@QAEXPAVMFMRadioRdsObserver@@@Z @ 37 NONAME ; void CFMRadioRdsReceiverBase::AddObserver(class MFMRadioRdsObserver *) - ?IsRadioOn@CRadioEngine@@QAEHXZ @ 38 NONAME ; int CRadioEngine::IsRadioOn(void) - ?GetRadioMode@CRadioEngine@@QBE?AW4TRadioMode@1@XZ @ 39 NONAME ; enum CRadioEngine::TRadioMode CRadioEngine::GetRadioMode(void) const - ?NewL@CRadioEngine@@SAPAV1@AAVMRadioEngineStateChangeCallback@@@Z @ 40 NONAME ; class CRadioEngine * CRadioEngine::NewL(class MRadioEngineStateChangeCallback &) - ?SetControlEventObserver@CFMRadioPubSub@@QAEXPAVMFMRadioControlEventObserver@@@Z @ 41 NONAME ; void CFMRadioPubSub::SetControlEventObserver(class MFMRadioControlEventObserver *) - ?ProgrammeService@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 42 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::ProgrammeService(void) const - ?PublishStateL@CFMRadioPubSub@@QBEXH@Z @ 43 NONAME ; void CFMRadioPubSub::PublishStateL(int) const - ?IsHeadsetConnected@CRadioEngine@@QBEHXZ @ 44 NONAME ; int CRadioEngine::IsHeadsetConnected(void) const - ?RadioOff@CRadioEngine@@QAEXXZ @ 45 NONAME ; void CRadioEngine::RadioOff(void) - ?FrequencySetByRdsAf@CRadioEngine@@QBEHXZ @ 46 NONAME ; int CRadioEngine::FrequencySetByRdsAf(void) const - ?GetAudioMode@CRadioEngine@@QBEHXZ @ 47 NONAME ; int CRadioEngine::GetAudioMode(void) const - ?IsRdsAfSearchEnabled@TRadioSettings@@QAEHXZ @ 48 NONAME ; int TRadioSettings::IsRdsAfSearchEnabled(void) - ?PublishFrequencyL@CFMRadioPubSub@@QBEXK@Z @ 49 NONAME ; void CFMRadioPubSub::PublishFrequencyL(unsigned long) const - ?IsAudioRoutingPossible@CRadioEngine@@QBEHXZ @ 50 NONAME ; int CRadioEngine::IsAudioRoutingPossible(void) const - ?RtPlusAlbum@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 51 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusAlbum(void) const - ?RtPlusSong@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 52 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusSong(void) const - ?RtPlusArtist@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 53 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusArtist(void) const - ?MusicStoreNoteDisplayed@CRadioEngine@@QAEHXZ @ 54 NONAME ; int CRadioEngine::MusicStoreNoteDisplayed(void) - ?SetAudioMode@CRadioEngine@@QAEXW4TFMRadioAudioMode@1@@Z @ 55 NONAME ; void CRadioEngine::SetAudioMode(enum CRadioEngine::TFMRadioAudioMode) - ?SetAudioOutput@CRadioEngine@@QAEXW4TFMRadioAudioOutput@1@@Z @ 56 NONAME ; void CRadioEngine::SetAudioOutput(enum CRadioEngine::TFMRadioAudioOutput) + ?GetAudioMode@CRadioEngine@@QBEHXZ @ 1 NONAME ; int CRadioEngine::GetAudioMode(void) const + ?PublishChannelNameL@CFMRadioPubSub@@QBEXABVTDesC16@@@Z @ 2 NONAME ; void CFMRadioPubSub::PublishChannelNameL(class TDesC16 const &) const + ?IsFlightModeEnabled@CRadioEngine@@QBEHXZ @ 3 NONAME ; int CRadioEngine::IsFlightModeEnabled(void) const + ?GetTunedFrequency@CRadioEngine@@QBEHXZ @ 4 NONAME ; int CRadioEngine::GetTunedFrequency(void) const + ?RtPlusAlbum@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 5 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusAlbum(void) const + ?PublishApplicationRunningStateL@CFMRadioPubSub@@QBEXW4TFMRadioPSApplicationRunningState@@@Z @ 6 NONAME ; void CFMRadioPubSub::PublishApplicationRunningStateL(enum TFMRadioPSApplicationRunningState) const + ?SetRdsAfSearchEnable@CRadioEngine@@QAEXH@Z @ 7 NONAME ; void CRadioEngine::SetRdsAfSearchEnable(int) + ?SetAudioOutput@CRadioEngine@@QAEXW4TFMRadioAudioOutput@1@@Z @ 8 NONAME ; void CRadioEngine::SetAudioOutput(enum CRadioEngine::TFMRadioAudioOutput) + ?SetVolume@CRadioEngine@@QAEXH@Z @ 9 NONAME ; void CRadioEngine::SetVolume(int) + ?MusicStoreNoteDisplayed@CRadioEngine@@QAEHXZ @ 10 NONAME ; int CRadioEngine::MusicStoreNoteDisplayed(void) + ?ScanUp@CRadioEngine@@QAEXXZ @ 11 NONAME ; void CRadioEngine::ScanUp(void) + ?IsMuteOn@CRadioEngine@@QBEHXZ @ 12 NONAME ; int CRadioEngine::IsMuteOn(void) const + ?RegionIdAtIndex@CRadioEngine@@QBE?AW4TFMRadioRegionSetting@@H@Z @ 13 NONAME ; enum TFMRadioRegionSetting CRadioEngine::RegionIdAtIndex(int) const + ?GetRegionL@CRadioEngine@@QBE?AW4TFMRadioRegionSetting@@XZ @ 14 NONAME ; enum TFMRadioRegionSetting CRadioEngine::GetRegionL(void) const + ?TunePresetL@CRadioEngine@@QAEXH@Z @ 15 NONAME ; void CRadioEngine::TunePresetL(int) + ?Tune@CRadioEngine@@QAEXHW4TRadioMode@1@@Z @ 16 NONAME ; void CRadioEngine::Tune(int, enum CRadioEngine::TRadioMode) + ?IsRadioOn@CRadioEngine@@QAEHXZ @ 17 NONAME ; int CRadioEngine::IsRadioOn(void) + ?RemoveObserver@CFMRadioRdsReceiverBase@@QAEXPAVMFMRadioRdsObserver@@@Z @ 18 NONAME ; void CFMRadioRdsReceiverBase::RemoveObserver(class MFMRadioRdsObserver *) + ?GetAudioOutput@CRadioEngine@@QBE?AW4TFMRadioAudioOutput@1@XZ @ 19 NONAME ; enum CRadioEngine::TFMRadioAudioOutput CRadioEngine::GetAudioOutput(void) const + ?FrequencySetByRdsAf@CRadioEngine@@QBEHXZ @ 20 NONAME ; int CRadioEngine::FrequencySetByRdsAf(void) const + ?GetPresetNameAndFrequencyL@CRadioEngine@@QAEXHAAVTDes16@@AAH@Z @ 21 NONAME ; void CRadioEngine::GetPresetNameAndFrequencyL(int, class TDes16 &, int &) + ?DeletePresetL@CRadioEngine@@QAEXH@Z @ 22 NONAME ; void CRadioEngine::DeletePresetL(int) + ?AutomaticSwitchingEnabled@CFMRadioRdsReceiverBase@@QBEHXZ @ 23 NONAME ; int CFMRadioRdsReceiverBase::AutomaticSwitchingEnabled(void) const + ?SignalAvailable@CFMRadioRdsReceiverBase@@QBEHXZ @ 24 NONAME ; int CFMRadioRdsReceiverBase::SignalAvailable(void) const + ?PublishRDSRadioTextL@CFMRadioPubSub@@QBEXABVTDesC16@@@Z @ 25 NONAME ; void CFMRadioPubSub::PublishRDSRadioTextL(class TDesC16 const &) const + ?ProgrammeServiceNameType@CFMRadioRdsReceiverBase@@QBE?AW4TFMRadioProgrammeSeviceType@1@XZ @ 26 NONAME ; enum CFMRadioRdsReceiverBase::TFMRadioProgrammeSeviceType CFMRadioRdsReceiverBase::ProgrammeServiceNameType(void) const + ?AddObserver@CFMRadioRdsReceiverBase@@QAEXPAVMFMRadioRdsObserver@@@Z @ 27 NONAME ; void CFMRadioRdsReceiverBase::AddObserver(class MFMRadioRdsObserver *) + ?RadioOn@CRadioEngine@@QAEXXZ @ 28 NONAME ; void CRadioEngine::RadioOn(void) + ?IsInCall@CRadioEngine@@QBEHXZ @ 29 NONAME ; int CRadioEngine::IsInCall(void) const + ?FillListWithRegionDataL@CRadioEngine@@QBEXAAVCDesC16Array@@@Z @ 30 NONAME ; void CRadioEngine::FillListWithRegionDataL(class CDesC16Array &) const + ?SetControlEventObserver@CFMRadioPubSub@@QAEXPAVMFMRadioControlEventObserver@@@Z @ 31 NONAME ; void CFMRadioPubSub::SetControlEventObserver(class MFMRadioControlEventObserver *) + ?FrequencyStepSize@CRadioEngine@@QBEKXZ @ 32 NONAME ; unsigned long CRadioEngine::FrequencyStepSize(void) const + ?SetMuteOn@CRadioEngine@@QAEXH@Z @ 33 NONAME ; void CRadioEngine::SetMuteOn(int) + ?GetPresetNameL@CRadioEngine@@QAEAAV?$TBuf@$0CA@@@H@Z @ 34 NONAME ; class TBuf<32> & CRadioEngine::GetPresetNameL(int) + ?NewL@CRadioEngine@@SAPAV1@AAVMRadioEngineStateChangeCallback@@@Z @ 35 NONAME ; class CRadioEngine * CRadioEngine::NewL(class MRadioEngineStateChangeCallback &) + ?CancelScanLocalStationsScan@CRadioEngine@@QAEXXZ @ 36 NONAME ; void CRadioEngine::CancelScanLocalStationsScan(void) + ?GetRTPlusSupportLevel@CRadioEngine@@QAE?AW4TFMRadioRTPlusLevel@@XZ @ 37 NONAME ; enum TFMRadioRTPlusLevel CRadioEngine::GetRTPlusSupportLevel(void) + ?SetCurrentPresetIndex@CRadioEngine@@QAEXH@Z @ 38 NONAME ; void CRadioEngine::SetCurrentPresetIndex(int) + ?IsAudioRoutingPossible@CRadioEngine@@QBEHXZ @ 39 NONAME ; int CRadioEngine::IsAudioRoutingPossible(void) const + ?GetMaxVolume@CRadioEngine@@QBEHXZ @ 40 NONAME ; int CRadioEngine::GetMaxVolume(void) const + ?RtPlusSong@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 41 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusSong(void) const + ?UpdatedStartupCount@CRadioEngine@@QBEHXZ @ 42 NONAME ; int CRadioEngine::UpdatedStartupCount(void) const + ?RadioOff@CRadioEngine@@QAEXXZ @ 43 NONAME ; void CRadioEngine::RadioOff(void) + ?SetRegionIdL@CRadioEngine@@QBEXH@Z @ 44 NONAME ; void CRadioEngine::SetRegionIdL(int) const + ?PresetUrlL@CRadioEngine@@QAEHHAAVTDes16@@@Z @ 45 NONAME ; int CRadioEngine::PresetUrlL(int, class TDes16 &) + ?GetVolume@CRadioEngine@@QBEHXZ @ 46 NONAME ; int CRadioEngine::GetVolume(void) const + ?PublishStateL@CFMRadioPubSub@@QBEXH@Z @ 47 NONAME ; void CFMRadioPubSub::PublishStateL(int) const + ?RequestTunerControl@CRadioEngine@@QBEXXZ @ 48 NONAME ; void CRadioEngine::RequestTunerControl(void) const + ?PublishPresetCountL@CFMRadioPubSub@@QBEXH@Z @ 49 NONAME ; void CFMRadioPubSub::PublishPresetCountL(int) const + ?SetMusicStoreNoteDisplayed@CRadioEngine@@QAEXXZ @ 50 NONAME ; void CRadioEngine::SetMusicStoreNoteDisplayed(void) + ?PubSubL@CRadioEngine@@QBEAAVCFMRadioPubSub@@XZ @ 51 NONAME ; class CFMRadioPubSub & CRadioEngine::PubSubL(void) const + ?SetTunerModeOn@CRadioEngine@@QAEXXZ @ 52 NONAME ; void CRadioEngine::SetTunerModeOn(void) + ?IsOfflineProfileL@CRadioEngine@@QAEHXZ @ 53 NONAME ; int CRadioEngine::IsOfflineProfileL(void) + ??1CRadioEngine@@UAE@XZ @ 54 NONAME ; CRadioEngine::~CRadioEngine(void) + ?PublishFrequencyL@CFMRadioPubSub@@QBEXK@Z @ 55 NONAME ; void CFMRadioPubSub::PublishFrequencyL(unsigned long) const + ?RegionId@CRadioEngine@@QBEHXZ @ 56 NONAME ; int CRadioEngine::RegionId(void) const ?RadioSettings@CRadioEngine@@QAEAAVTRadioSettings@@XZ @ 57 NONAME ; class TRadioSettings & CRadioEngine::RadioSettings(void) - ?IsOfflineProfileL@CRadioEngine@@QAEHXZ @ 58 NONAME ; int CRadioEngine::IsOfflineProfileL(void) - ?GetTunedFrequency@CRadioEngine@@QBEHXZ @ 59 NONAME ; int CRadioEngine::GetTunedFrequency(void) const - ?DecimalCount@CRadioEngine@@QBEHXZ @ 60 NONAME ; int CRadioEngine::DecimalCount(void) const - ?PublishChannelNameL@CFMRadioPubSub@@QBEXABVTDesC16@@@Z @ 61 NONAME ; void CFMRadioPubSub::PublishChannelNameL(class TDesC16 const &) const - ?RemoveObserver@CFMRadioRdsReceiverBase@@QAEXPAVMFMRadioRdsObserver@@@Z @ 62 NONAME ; void CFMRadioRdsReceiverBase::RemoveObserver(class MFMRadioRdsObserver *) - ?IsFlightModeEnabled@CRadioEngine@@QBEHXZ @ 63 NONAME ; int CRadioEngine::IsFlightModeEnabled(void) const - ??1CRadioEngine@@UAE@XZ @ 64 NONAME ; CRadioEngine::~CRadioEngine(void) - ?UpdatedStartupCount@CRadioEngine@@QBEHXZ @ 65 NONAME ; int CRadioEngine::UpdatedStartupCount(void) const - ?TunePresetL@CRadioEngine@@QAEXH@Z @ 66 NONAME ; void CRadioEngine::TunePresetL(int) - ?FillListWithRegionDataL@CRadioEngine@@QBEXAAVCDesC16Array@@@Z @ 67 NONAME ; void CRadioEngine::FillListWithRegionDataL(class CDesC16Array &) const - ?AutomaticSwitchingEnabled@CFMRadioRdsReceiverBase@@QBEHXZ @ 68 NONAME ; int CFMRadioRdsReceiverBase::AutomaticSwitchingEnabled(void) const - ?GetPresetIndex@CRadioEngine@@QBEHXZ @ 69 NONAME ; int CRadioEngine::GetPresetIndex(void) const - ?PublishRDSRadioTextL@CFMRadioPubSub@@QBEXABVTDesC16@@@Z @ 70 NONAME ; void CFMRadioPubSub::PublishRDSRadioTextL(class TDesC16 const &) const - ?RtPlusProgramUrl@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 71 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusProgramUrl(void) const - ?SetTunerModeOn@CRadioEngine@@QAEXXZ @ 72 NONAME ; void CRadioEngine::SetTunerModeOn(void) - ?PresetUrlL@CRadioEngine@@QAEHHAAVTDes16@@@Z @ 73 NONAME ; int CRadioEngine::PresetUrlL(int, class TDes16 &) - ?DeletePresetL@CRadioEngine@@QAEXH@Z @ 74 NONAME ; void CRadioEngine::DeletePresetL(int) - ?SaveUrlToPresetL@CRadioEngine@@QAEXHABVTDesC16@@@Z @ 75 NONAME ; void CRadioEngine::SaveUrlToPresetL(int, class TDesC16 const &) + ?RtPlusArtist@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 58 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusArtist(void) const + ?GetRadioMode@CRadioEngine@@QBE?AW4TRadioMode@1@XZ @ 59 NONAME ; enum CRadioEngine::TRadioMode CRadioEngine::GetRadioMode(void) const + ?GetPresetIndex@CRadioEngine@@QBEHXZ @ 60 NONAME ; int CRadioEngine::GetPresetIndex(void) const + ?SetAudioMode@CRadioEngine@@QAEXW4TFMRadioAudioMode@1@@Z @ 61 NONAME ; void CRadioEngine::SetAudioMode(enum CRadioEngine::TFMRadioAudioMode) + ?DecimalCount@CRadioEngine@@QBEHXZ @ 62 NONAME ; int CRadioEngine::DecimalCount(void) const + ?ScanDown@CRadioEngine@@QAEXXZ @ 63 NONAME ; void CRadioEngine::ScanDown(void) + ?GetPresetFrequencyL@CRadioEngine@@QBEHH@Z @ 64 NONAME ; int CRadioEngine::GetPresetFrequencyL(int) const + ?SaveUrlToPresetL@CRadioEngine@@QAEXHABVTDesC16@@@Z @ 65 NONAME ; void CRadioEngine::SaveUrlToPresetL(int, class TDesC16 const &) + ?CancelScan@CRadioEngine@@QAEXXZ @ 66 NONAME ; void CRadioEngine::CancelScan(void) + ?IsRdsAfSearchEnabled@TRadioSettings@@QAEHXZ @ 67 NONAME ; int TRadioSettings::IsRdsAfSearchEnabled(void) + ?GetFrequencyBandRange@CRadioEngine@@QAEHAAH0@Z @ 68 NONAME ; int CRadioEngine::GetFrequencyBandRange(int &, int &) + ?SetPresetNameFrequencyL@CRadioEngine@@QAEXHABV?$TBuf@$0CA@@@H@Z @ 69 NONAME ; void CRadioEngine::SetPresetNameFrequencyL(int, class TBuf<32> const &, int) + ?InitializeRadio@CRadioEngine@@QAEXXZ @ 70 NONAME ; void CRadioEngine::InitializeRadio(void) + ?ProgrammeService@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 71 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::ProgrammeService(void) const + ?RtPlusProgramUrl@CFMRadioRdsReceiverBase@@QBEABVTDesC16@@XZ @ 72 NONAME ; class TDesC16 const & CFMRadioRdsReceiverBase::RtPlusProgramUrl(void) const + ?IsHeadsetConnected@CRadioEngine@@QBEHXZ @ 73 NONAME ; int CRadioEngine::IsHeadsetConnected(void) const + ?PublishRDSProgramServiceL@CFMRadioPubSub@@QBEXABVTDesC16@@@Z @ 74 NONAME ; void CFMRadioPubSub::PublishRDSProgramServiceL(class TDesC16 const &) const + ?RdsReceiver@CRadioEngine@@QAEAAVCFMRadioRdsReceiverBase@@XZ @ 75 NONAME ; class CFMRadioRdsReceiverBase & CRadioEngine::RdsReceiver(void) diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/eabi/fmradioengineacu.def --- a/fmradio/fmradioengine/eabi/fmradioengineacu.def Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradioengine/eabi/fmradioengineacu.def Tue May 11 16:13:56 2010 +0300 @@ -1,93 +1,91 @@ EXPORTS _ZN12CRadioEngine10CancelScanEv @ 1 NONAME - _ZN12CRadioEngine11RdsReceiverEv @ 2 NONAME - _ZN12CRadioEngine11TunePresetLEi @ 3 NONAME - _ZN12CRadioEngine12SetAudioModeENS_17TFMRadioAudioModeE @ 4 NONAME - _ZN12CRadioEngine13RadioSettingsEv @ 5 NONAME - _ZN12CRadioEngine14GetPresetNameLEi @ 6 NONAME - _ZN12CRadioEngine14SetAudioOutputENS_19TFMRadioAudioOutputE @ 7 NONAME - _ZN12CRadioEngine14SetTunerModeOnEv @ 8 NONAME - _ZN12CRadioEngine15InitializeRadioEv @ 9 NONAME - _ZN12CRadioEngine17IsOfflineProfileLEv @ 10 NONAME - _ZN12CRadioEngine20SetRdsAfSearchEnableEi @ 11 NONAME - _ZN12CRadioEngine21GetFrequencyBandRangeERiS0_ @ 12 NONAME - _ZN12CRadioEngine21GetRTPlusSupportLevelEv @ 13 NONAME - _ZN12CRadioEngine21SetCurrentPresetIndexEi @ 14 NONAME - _ZN12CRadioEngine23MusicStoreNoteDisplayedEv @ 15 NONAME - _ZN12CRadioEngine23SetPresetNameFrequencyLEiRK4TBufILi32EEi @ 16 NONAME - _ZN12CRadioEngine26GetPresetNameAndFrequencyLEiR6TDes16Ri @ 17 NONAME - _ZN12CRadioEngine26SetMusicStoreNoteDisplayedEv @ 18 NONAME - _ZN12CRadioEngine27CancelScanLocalStationsScanEv @ 19 NONAME - _ZN12CRadioEngine4NewLER31MRadioEngineStateChangeCallback @ 20 NONAME - _ZN12CRadioEngine4TuneEiNS_10TRadioModeE @ 21 NONAME - _ZN12CRadioEngine6ScanUpEv @ 22 NONAME - _ZN12CRadioEngine7RadioOnEv @ 23 NONAME - _ZN12CRadioEngine8RadioOffEv @ 24 NONAME - _ZN12CRadioEngine8ScanDownEv @ 25 NONAME - _ZN12CRadioEngine9IsRadioOnEv @ 26 NONAME - _ZN12CRadioEngine9SetMuteOnEi @ 27 NONAME - _ZN12CRadioEngine9SetVolumeEi @ 28 NONAME - _ZN12CRadioEngineD0Ev @ 29 NONAME - _ZN12CRadioEngineD1Ev @ 30 NONAME - _ZN12CRadioEngineD2Ev @ 31 NONAME - _ZN14CFMRadioPubSub23SetControlEventObserverEP28MFMRadioControlEventObserver @ 32 NONAME - _ZN14TRadioSettings20IsRdsAfSearchEnabledEv @ 33 NONAME - _ZN23CFMRadioRdsReceiverBase11AddObserverEP19MFMRadioRdsObserver @ 34 NONAME - _ZN23CFMRadioRdsReceiverBase14RemoveObserverEP19MFMRadioRdsObserver @ 35 NONAME - _ZNK12CRadioEngine10GetRegionLEv @ 36 NONAME - _ZNK12CRadioEngine12DecimalCountEv @ 37 NONAME - _ZNK12CRadioEngine12GetAudioModeEv @ 38 NONAME - _ZNK12CRadioEngine12GetMaxVolumeEv @ 39 NONAME - _ZNK12CRadioEngine12GetRadioModeEv @ 40 NONAME - _ZNK12CRadioEngine12SetRegionIdLEi @ 41 NONAME - _ZNK12CRadioEngine14GetAudioOutputEv @ 42 NONAME - _ZNK12CRadioEngine14GetPresetIndexEv @ 43 NONAME - _ZNK12CRadioEngine15RegionIdAtIndexEi @ 44 NONAME - _ZNK12CRadioEngine17FrequencyStepSizeEv @ 45 NONAME - _ZNK12CRadioEngine17GetTunedFrequencyEv @ 46 NONAME - _ZNK12CRadioEngine18IsHeadsetConnectedEv @ 47 NONAME - _ZNK12CRadioEngine19FrequencySetByRdsAfEv @ 48 NONAME - _ZNK12CRadioEngine19GetPresetFrequencyLEi @ 49 NONAME - _ZNK12CRadioEngine19IsFlightModeEnabledEv @ 50 NONAME - _ZNK12CRadioEngine19RequestTunerControlEv @ 51 NONAME - _ZNK12CRadioEngine19UpdatedStartupCountEv @ 52 NONAME - _ZNK12CRadioEngine22IsAudioRoutingPossibleEv @ 53 NONAME - _ZNK12CRadioEngine23FillListWithRegionDataLER12CDesC16Array @ 54 NONAME - _ZNK12CRadioEngine7PubSubLEv @ 55 NONAME - _ZNK12CRadioEngine8IsInCallEv @ 56 NONAME - _ZNK12CRadioEngine8IsMuteOnEv @ 57 NONAME - _ZNK12CRadioEngine8RegionIdEv @ 58 NONAME - _ZNK12CRadioEngine9GetVolumeEv @ 59 NONAME - _ZNK14CFMRadioPubSub13PublishStateLEi @ 60 NONAME - _ZNK14CFMRadioPubSub17PublishFrequencyLEm @ 61 NONAME - _ZNK14CFMRadioPubSub19PublishChannelNameLERK7TDesC16 @ 62 NONAME - _ZNK14CFMRadioPubSub19PublishPresetCountLEi @ 63 NONAME - _ZNK14CFMRadioPubSub20PublishRDSRadioTextLERK7TDesC16 @ 64 NONAME - _ZNK14CFMRadioPubSub25PublishRDSProgramServiceLERK7TDesC16 @ 65 NONAME - _ZNK14CFMRadioPubSub31PublishApplicationRunningStateLE33TFMRadioPSApplicationRunningState @ 66 NONAME - _ZNK23CFMRadioRdsReceiverBase10RtPlusSongEv @ 67 NONAME - _ZNK23CFMRadioRdsReceiverBase11RtPlusAlbumEv @ 68 NONAME - _ZNK23CFMRadioRdsReceiverBase12RtPlusArtistEv @ 69 NONAME - _ZNK23CFMRadioRdsReceiverBase15SignalAvailableEv @ 70 NONAME - _ZNK23CFMRadioRdsReceiverBase16ProgrammeServiceEv @ 71 NONAME - _ZNK23CFMRadioRdsReceiverBase16RtPlusProgramUrlEv @ 72 NONAME - _ZNK23CFMRadioRdsReceiverBase24ProgrammeServiceNameTypeEv @ 73 NONAME - _ZNK23CFMRadioRdsReceiverBase25AutomaticSwitchingEnabledEv @ 74 NONAME - _ZTI12CRadioEngine @ 75 NONAME - _ZTI14CFMRadioPubSub @ 76 NONAME - _ZTI18CRadioStateHandler @ 77 NONAME - _ZTI24CFMRadioPropertyObserver @ 78 NONAME - _ZTI25CCentralRepositoryHandler @ 79 NONAME - _ZTI25CFMRadioAccessoryObserver @ 80 NONAME - _ZTI27CFMRadioSystemEventDetector @ 81 NONAME - _ZTV12CRadioEngine @ 82 NONAME - _ZTV14CFMRadioPubSub @ 83 NONAME - _ZTV18CRadioStateHandler @ 84 NONAME - _ZTV24CFMRadioPropertyObserver @ 85 NONAME - _ZTV25CCentralRepositoryHandler @ 86 NONAME - _ZTV25CFMRadioAccessoryObserver @ 87 NONAME - _ZTV27CFMRadioSystemEventDetector @ 88 NONAME - _ZN12CRadioEngine10PresetUrlLEiR6TDes16 @ 89 NONAME - _ZN12CRadioEngine13DeletePresetLEi @ 90 NONAME - _ZN12CRadioEngine16SaveUrlToPresetLEiRK7TDesC16 @ 91 NONAME + _ZN12CRadioEngine10PresetUrlLEiR6TDes16 @ 2 NONAME + _ZN12CRadioEngine11RdsReceiverEv @ 3 NONAME + _ZN12CRadioEngine11TunePresetLEi @ 4 NONAME + _ZN12CRadioEngine12SetAudioModeENS_17TFMRadioAudioModeE @ 5 NONAME + _ZN12CRadioEngine13DeletePresetLEi @ 6 NONAME + _ZN12CRadioEngine13RadioSettingsEv @ 7 NONAME + _ZN12CRadioEngine14GetPresetNameLEi @ 8 NONAME + _ZN12CRadioEngine14SetAudioOutputENS_19TFMRadioAudioOutputE @ 9 NONAME + _ZN12CRadioEngine14SetTunerModeOnEv @ 10 NONAME + _ZN12CRadioEngine15InitializeRadioEv @ 11 NONAME + _ZN12CRadioEngine16SaveUrlToPresetLEiRK7TDesC16 @ 12 NONAME + _ZN12CRadioEngine17IsOfflineProfileLEv @ 13 NONAME + _ZN12CRadioEngine20SetRdsAfSearchEnableEi @ 14 NONAME + _ZN12CRadioEngine21GetFrequencyBandRangeERiS0_ @ 15 NONAME + _ZN12CRadioEngine21GetRTPlusSupportLevelEv @ 16 NONAME + _ZN12CRadioEngine21SetCurrentPresetIndexEi @ 17 NONAME + _ZN12CRadioEngine23MusicStoreNoteDisplayedEv @ 18 NONAME + _ZN12CRadioEngine23SetPresetNameFrequencyLEiRK4TBufILi32EEi @ 19 NONAME + _ZN12CRadioEngine26GetPresetNameAndFrequencyLEiR6TDes16Ri @ 20 NONAME + _ZN12CRadioEngine26SetMusicStoreNoteDisplayedEv @ 21 NONAME + _ZN12CRadioEngine27CancelScanLocalStationsScanEv @ 22 NONAME + _ZN12CRadioEngine4NewLER31MRadioEngineStateChangeCallback @ 23 NONAME + _ZN12CRadioEngine4TuneEiNS_10TRadioModeE @ 24 NONAME + _ZN12CRadioEngine6ScanUpEv @ 25 NONAME + _ZN12CRadioEngine7RadioOnEv @ 26 NONAME + _ZN12CRadioEngine8RadioOffEv @ 27 NONAME + _ZN12CRadioEngine8ScanDownEv @ 28 NONAME + _ZN12CRadioEngine9IsRadioOnEv @ 29 NONAME + _ZN12CRadioEngine9SetMuteOnEi @ 30 NONAME + _ZN12CRadioEngine9SetVolumeEi @ 31 NONAME + _ZN12CRadioEngineD0Ev @ 32 NONAME + _ZN12CRadioEngineD1Ev @ 33 NONAME + _ZN12CRadioEngineD2Ev @ 34 NONAME + _ZN14CFMRadioPubSub23SetControlEventObserverEP28MFMRadioControlEventObserver @ 35 NONAME + _ZN14TRadioSettings20IsRdsAfSearchEnabledEv @ 36 NONAME + _ZN23CFMRadioRdsReceiverBase11AddObserverEP19MFMRadioRdsObserver @ 37 NONAME + _ZN23CFMRadioRdsReceiverBase14RemoveObserverEP19MFMRadioRdsObserver @ 38 NONAME + _ZNK12CRadioEngine10GetRegionLEv @ 39 NONAME + _ZNK12CRadioEngine12DecimalCountEv @ 40 NONAME + _ZNK12CRadioEngine12GetAudioModeEv @ 41 NONAME + _ZNK12CRadioEngine12GetMaxVolumeEv @ 42 NONAME + _ZNK12CRadioEngine12GetRadioModeEv @ 43 NONAME + _ZNK12CRadioEngine12SetRegionIdLEi @ 44 NONAME + _ZNK12CRadioEngine14GetAudioOutputEv @ 45 NONAME + _ZNK12CRadioEngine14GetPresetIndexEv @ 46 NONAME + _ZNK12CRadioEngine15RegionIdAtIndexEi @ 47 NONAME + _ZNK12CRadioEngine17FrequencyStepSizeEv @ 48 NONAME + _ZNK12CRadioEngine17GetTunedFrequencyEv @ 49 NONAME + _ZNK12CRadioEngine18IsHeadsetConnectedEv @ 50 NONAME + _ZNK12CRadioEngine19FrequencySetByRdsAfEv @ 51 NONAME + _ZNK12CRadioEngine19GetPresetFrequencyLEi @ 52 NONAME + _ZNK12CRadioEngine19IsFlightModeEnabledEv @ 53 NONAME + _ZNK12CRadioEngine19RequestTunerControlEv @ 54 NONAME + _ZNK12CRadioEngine19UpdatedStartupCountEv @ 55 NONAME + _ZNK12CRadioEngine22IsAudioRoutingPossibleEv @ 56 NONAME + _ZNK12CRadioEngine23FillListWithRegionDataLER12CDesC16Array @ 57 NONAME + _ZNK12CRadioEngine7PubSubLEv @ 58 NONAME + _ZNK12CRadioEngine8IsInCallEv @ 59 NONAME + _ZNK12CRadioEngine8IsMuteOnEv @ 60 NONAME + _ZNK12CRadioEngine8RegionIdEv @ 61 NONAME + _ZNK12CRadioEngine9GetVolumeEv @ 62 NONAME + _ZNK14CFMRadioPubSub13PublishStateLEi @ 63 NONAME + _ZNK14CFMRadioPubSub17PublishFrequencyLEm @ 64 NONAME + _ZNK14CFMRadioPubSub19PublishChannelNameLERK7TDesC16 @ 65 NONAME + _ZNK14CFMRadioPubSub19PublishPresetCountLEi @ 66 NONAME + _ZNK14CFMRadioPubSub20PublishRDSRadioTextLERK7TDesC16 @ 67 NONAME + _ZNK14CFMRadioPubSub25PublishRDSProgramServiceLERK7TDesC16 @ 68 NONAME + _ZNK14CFMRadioPubSub31PublishApplicationRunningStateLE33TFMRadioPSApplicationRunningState @ 69 NONAME + _ZNK23CFMRadioRdsReceiverBase10RtPlusSongEv @ 70 NONAME + _ZNK23CFMRadioRdsReceiverBase11RtPlusAlbumEv @ 71 NONAME + _ZNK23CFMRadioRdsReceiverBase12RtPlusArtistEv @ 72 NONAME + _ZNK23CFMRadioRdsReceiverBase15SignalAvailableEv @ 73 NONAME + _ZNK23CFMRadioRdsReceiverBase16ProgrammeServiceEv @ 74 NONAME + _ZNK23CFMRadioRdsReceiverBase16RtPlusProgramUrlEv @ 75 NONAME + _ZNK23CFMRadioRdsReceiverBase24ProgrammeServiceNameTypeEv @ 76 NONAME + _ZNK23CFMRadioRdsReceiverBase25AutomaticSwitchingEnabledEv @ 77 NONAME + _ZTI12CRadioEngine @ 78 NONAME + _ZTI14CFMRadioPubSub @ 79 NONAME + _ZTI18CRadioStateHandler @ 80 NONAME + _ZTI24CFMRadioPropertyObserver @ 81 NONAME + _ZTI25CCentralRepositoryHandler @ 82 NONAME + _ZTI27CFMRadioSystemEventDetector @ 83 NONAME + _ZTV12CRadioEngine @ 84 NONAME + _ZTV14CFMRadioPubSub @ 85 NONAME + _ZTV18CRadioStateHandler @ 86 NONAME + _ZTV24CFMRadioPropertyObserver @ 87 NONAME + _ZTV25CCentralRepositoryHandler @ 88 NONAME + _ZTV27CFMRadioSystemEventDetector @ 89 NONAME diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/group/fmradioengine.mmp --- a/fmradio/fmradioengine/group/fmradioengine.mmp Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradioengine/group/fmradioengine.mmp Tue May 11 16:13:56 2010 +0300 @@ -39,7 +39,6 @@ SOURCEPATH ../src -SOURCE fmradioaccessoryobserver.cpp SOURCE fmradioengine.cpp SOURCE fmradioenginecentralrepositoryhandler.cpp SOURCE fmradioengineradiosettings.cpp @@ -52,6 +51,7 @@ SOURCE fmradiordsreceiversimulator.cpp SOURCE fmradioregion.cpp SOURCE fmradiosystemeventdetector.cpp +SOURCE fmradioaccessoryconnection.cpp #ifndef __ACCESSORY_FW SOURCE fmradioenginedosserverobserver.cpp @@ -82,6 +82,7 @@ LIBRARY etelmm.lib LIBRARY commsdat.lib LIBRARY accclient.lib +LIBRARY accpolicy.lib DEBUGLIBRARY flogger.lib diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/inc/fmradioaccessoryconnection.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fmradio/fmradioengine/inc/fmradioaccessoryconnection.h Tue May 11 16:13:56 2010 +0300 @@ -0,0 +1,99 @@ +/* +* Copyright (c) 2008 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: Observer of accessory connection. +* +*/ + +#ifndef CFMRADIOACCESSORYCONNECTION_H +#define CFMRADIOACCESSORYCONNECTION_H + +class TAccPolGenericIDArray; +class MFMRadioHeadsetEventObserver; + +#include // For CActive, link against: euser.lib +#include //For RAccessoryServer session +#include //For RAccessoryConnection subsession + +NONSHARABLE_CLASS( CFMRadioAccessoryConnection ) : public CActive + { +public: + // Cancel and destroy + ~CFMRadioAccessoryConnection(); + + // Two-phased constructor. + static CFMRadioAccessoryConnection* NewL(); + /** + * Sets observer. The observer will be notified when headset has been + * pressed or headset is connected/disconnected. + * + * @param aObserver Observer + */ + void SetObserver( MFMRadioHeadsetEventObserver* aObserver ); + + /** + * Public boolean getter, return ETrue if + * a wired headset is connected + */ + TBool WiredHeadsetConnected(); +private: + /** + * C++ default constructor. + */ + CFMRadioAccessoryConnection(); + + /** + * Static constructor. + */ + void ConstructL(); + + /** + * Private boolean getter, return ETrue if + * a wired headset is found in array of connected accessories + */ + TBool WiredHeadsetInArrayL(); + + /** + * Private boolean getter, return ETrue if + * a wired headset is found in first index of + * array of connected accessories. + */ + TBool WiredHeadsetFirstInArrayL(); + + /** + * From CActive + * + * @see CActive::RunL() + */ + void RunL(); + + /** + * From CActive + * + * @see CActive::DoCancel() + */ + void DoCancel(); + +private: + /** + * Instance that gets notifications of the headset state changes + */ + MFMRadioHeadsetEventObserver* iObserver; + TBool iWiredHeadsetConnected; + TInt iAccessoryCount; + RAccessoryServer iAccessoryServer; + RAccessoryConnection iAccessoryConnection; + TAccPolGenericIDArray iAccessoryArray; + }; +#endif // CFMRADIOACCESSORYCONNECTION_H + diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/inc/fmradioaccessoryobserver.h --- a/fmradio/fmradioengine/inc/fmradioaccessoryobserver.h Tue Apr 27 16:38:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -/* -* Copyright (c) 2008 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: Observer of accessory states. -* -*/ - - -#ifndef CFMRADIOACCESSORYOBSERVER_H -#define CFMRADIOACCESSORYOBSERVER_H - -#include -#include -#include - -class MFMRadioHeadsetEventObserver; - -/** - * Observer of accessory states. - * - * Instance of this class observes notifications of headset state changes. - * In its turn it sends notifications to its observer of those changes. - * - */ -class CFMRadioAccessoryObserver : public CActive - { -public: - - /** - * C++ default constructor. - */ - CFMRadioAccessoryObserver(); - - /** - * Static constructor. - */ - static CFMRadioAccessoryObserver* NewL(); - - /** - * Destructor. - */ - virtual ~CFMRadioAccessoryObserver(); - - /** - * Sets observer. The observer will be notified when headset has been - * pressed or headset is connected/disconnected. - * - * @param aObserver Observer - */ - void SetObserver( MFMRadioHeadsetEventObserver* aObserver ); - - /** - * Returns accessory connection state. - * - * @return ETrue if accessory is connected, - * EFalse otherwise - */ - TBool IsHeadsetAccessoryConnected() const; - - // from base class CActive - /** - * From CActive - * - * @see CActive::RunL() - */ - void RunL(); - - /** - * From CActive - * - * @see CActive::DoCancel() - */ - void DoCancel(); - -protected: - -private: - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - -public: - -protected: - - /** - * Instance that gets notifications of the headset state changes - */ - MFMRadioHeadsetEventObserver* iObserver; - -private: // Data - - /** - * Session for The Accessory Server. - */ - RAccessoryServer iAccessoryServer; - - /** - * Accessory Mode sub-session - */ - RAccessoryMode iAccessoryModeSession; - - - /** - * Accessory Mode structure, with active audio information. - */ - TAccPolAccessoryMode iAccPolAccessoryMode; - TAccPolAccessoryMode iPrevAccMode; - }; - -#endif // CFMRADIOACCESSORYOBSERVER_H - - diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/inc/fmradioengine.h --- a/fmradio/fmradioengine/inc/fmradioengine.h Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradioengine/inc/fmradioengine.h Tue May 11 16:13:56 2010 +0300 @@ -49,7 +49,7 @@ class CAudioOutput; class CCentralRepositoryHandler; class CDesC16Array; -class CFMRadioAccessoryObserver; +class CFMRadioAccessoryConnection; class CFMRadioContextPublisher; class CFMRadioMobileNetworkInfoListener; class CFMRadioPubSub; @@ -833,7 +833,7 @@ //P&S interaction interface for FMRadio actions. CFMRadioPubSub* iPubSub; // accessory observer - CFMRadioAccessoryObserver* iHeadsetObserver; + CFMRadioAccessoryConnection* iHeadsetObserver; // tel server session RTelServer iTelServer; // phone diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/src/fmradioaccessoryconnection.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fmradio/fmradioengine/src/fmradioaccessoryconnection.cpp Tue May 11 16:13:56 2010 +0300 @@ -0,0 +1,214 @@ +/* +* Copyright (c) 2008 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: Observer of accessory connection. +* +*/ +#include "fmradiovariant.hrh" // include first for variation +#include +#include +#include +#include +#include + +#include "fmradioaccessoryconnection.h" +#include "fmradioheadseteventobserver.h" +#include "debug.h" + +#ifdef __FMRADIO_ADVANCED_AUTO_RESUME // same flag can be used to determine correct mask +#include +const TUint KPhysicalConnectionBitmask = KPCNokiaAV | KPCWired; +#else +const TUint KPhysicalConnectionBitmask = KPCWired; +#endif // __FMRADIO_ADVANCED_AUTO_RESUME + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::CFMRadioAccessoryConnection +// --------------------------------------------------------------------------- +// +CFMRadioAccessoryConnection::CFMRadioAccessoryConnection() : + CActive(EPriorityStandard), iObserver ( NULL ), + iWiredHeadsetConnected ( EFalse ), iAccessoryCount( 0 ) + { + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::NewL +// --------------------------------------------------------------------------- +// +CFMRadioAccessoryConnection* CFMRadioAccessoryConnection::NewL() + { + CFMRadioAccessoryConnection* self = new (ELeave) CFMRadioAccessoryConnection(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self; + return self; + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::ConstructL +// --------------------------------------------------------------------------- +// +void CFMRadioAccessoryConnection::ConstructL() + { + FTRACE( FPrint(_L("CFMRadioAccessoryConnection::ConstructL() -- ENTER") ) ) + + // Creates a new session and sub-session. + User::LeaveIfError( iAccessoryServer.Connect() ); + User::LeaveIfError( iAccessoryConnection.CreateSubSession( iAccessoryServer ) ); + User::LeaveIfError( iAccessoryConnection.GetAccessoryConnectionStatus( iAccessoryArray ) ); + + iWiredHeadsetConnected = WiredHeadsetInArrayL(); + iAccessoryCount = iAccessoryArray.Count(); + CActiveScheduler::Add(this); // Add to scheduler + + iAccessoryConnection.NotifyAccessoryConnectionStatusChanged( iStatus, iAccessoryArray ); + SetActive(); // Tell scheduler a request is active + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::~CFMRadioAccessoryConnection +// --------------------------------------------------------------------------- +// +CFMRadioAccessoryConnection::~CFMRadioAccessoryConnection() + { + Cancel(); // Cancel any request, if outstanding + iAccessoryConnection.CloseSubSession(); + iAccessoryServer.Close(); + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::DoCancel +// --------------------------------------------------------------------------- +// +void CFMRadioAccessoryConnection::DoCancel() + { + iAccessoryConnection.CancelNotifyAccessoryConnectionStatusChanged(); + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::WiredHeadsetInArrayL +// --------------------------------------------------------------------------- +// +TBool CFMRadioAccessoryConnection::WiredHeadsetInArrayL() + { + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::WiredHeadsetInArray()-- ENTER"))); + TAccPolGenericID genId; + TUint32 devCaps; + TUint32 phyCaps; + + for ( TInt i = 0; i < iAccessoryArray.Count(); i++ ) + { + genId = iAccessoryArray.GetGenericIDL( i ); + devCaps = genId.DeviceTypeCaps(); + phyCaps = genId.PhysicalConnectionCaps(); + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::devCaps-- %u"), devCaps )); + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::phyCaps()-- %u"), phyCaps )); + + //we're explicitly interested about wired headset type, without extra caps masked in + if ( devCaps == KDTHeadset && phyCaps == KPhysicalConnectionBitmask ) + { + return ETrue; + } + } + return EFalse; + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::WiredHeadsetConnected +// --------------------------------------------------------------------------- +// +TBool CFMRadioAccessoryConnection::WiredHeadsetConnected() + { +#ifdef __WINS__ + return ETrue; +#else + return iWiredHeadsetConnected; +#endif + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::WiredHeadsetFirstInArray +// --------------------------------------------------------------------------- +// +TBool CFMRadioAccessoryConnection::WiredHeadsetFirstInArrayL() + { + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::WiredHeadsetFirstInArrayL()-- ENTER"))); + if ( iAccessoryArray.Count() > 0 ) + { + TAccPolGenericID genId = iAccessoryArray.GetGenericIDL( 0 ); + + TUint32 devCaps = genId.DeviceTypeCaps(); + TUint32 phyCaps = genId.PhysicalConnectionCaps(); + + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::devCaps-- %u"), devCaps )); + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::phyCaps-- %u"), phyCaps )); + + //we're explicitly interested about wired headset type, without extra caps masked in + if ( devCaps == KDTHeadset && phyCaps == KPhysicalConnectionBitmask ) + { + return ETrue; + } + } + return EFalse; + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::RunL +// --------------------------------------------------------------------------- +// +void CFMRadioAccessoryConnection::RunL() + { + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::RunL()-- ENTER"))); + if ( iStatus == KErrNone ) + { + if ( iAccessoryCount < iAccessoryArray.Count() ) + { //accessory has been added + if ( WiredHeadsetFirstInArrayL() ) //and it is a wired headset + { + iWiredHeadsetConnected = ETrue; + if ( iObserver ) + { + iObserver->HeadsetAccessoryConnectedCallbackL(); + } + } + } + else + { //accessory has been removed + if ( !WiredHeadsetInArrayL() ) // and it is a wired headset + { + iWiredHeadsetConnected = EFalse; + if ( iObserver ) + { + iObserver->HeadsetAccessoryDisconnectedCallbackL(); + } + } + } + iAccessoryCount = iAccessoryArray.Count(); + } + //reassign the notification request + iAccessoryConnection.NotifyAccessoryConnectionStatusChanged( iStatus, iAccessoryArray ); + SetActive(); // Tell scheduler a request is active + FTRACE(FPrint(_L("CFMRadioAccessoryConnection::RunL()-- EXIT"))); + } + +// --------------------------------------------------------------------------- +// CFMRadioAccessoryConnection::SetObserver +// --------------------------------------------------------------------------- +// +void CFMRadioAccessoryConnection::SetObserver( MFMRadioHeadsetEventObserver* aObserver ) + { + iObserver = aObserver; + } + +//end of file diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/src/fmradioaccessoryobserver.cpp --- a/fmradio/fmradioengine/src/fmradioaccessoryobserver.cpp Tue Apr 27 16:38:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 2008 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: accessory observer -* -*/ - - -#include - -#include "fmradioaccessoryobserver.h" -#include "fmradioheadseteventobserver.h" -#include "debug.h" - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CFMRadioAccessoryObserver::CFMRadioAccessoryObserver() : - CActive( CActive::EPriorityStandard ), - iObserver( NULL ) - { - FTRACE( FPrint(_L("CFMRadioAccessoryObserver::CFMRadioAccessoryObserver()") ) ); - } - - -// --------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------- -// -void CFMRadioAccessoryObserver::ConstructL() - { - FTRACE( FPrint(_L("CFMRadioAccessoryObserver::ConstructL() -- ENTER") ) ) - User::LeaveIfError( iAccessoryServer.Connect() ); - - // Creates a new sub-session within an existing session. - User::LeaveIfError( iAccessoryModeSession.CreateSubSession( iAccessoryServer ) ); - User::LeaveIfError( iAccessoryModeSession.GetAccessoryMode( iAccPolAccessoryMode ) ); - - iPrevAccMode = iAccPolAccessoryMode; - - CActiveScheduler::Add( this ); - // Accessory mode is always listened - iAccessoryModeSession.NotifyAccessoryModeChanged( iStatus, iAccPolAccessoryMode ); - SetActive(); - FTRACE( FPrint(_L("CFMRadioAccessoryObserver::ConstructL() -- EXIT") ) ) - } - - -// --------------------------------------------------------------------------- -// Static constructor. -// --------------------------------------------------------------------------- -// -CFMRadioAccessoryObserver* CFMRadioAccessoryObserver::NewL() - { - CFMRadioAccessoryObserver* self = new( ELeave ) CFMRadioAccessoryObserver; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CFMRadioAccessoryObserver::~CFMRadioAccessoryObserver() - { - Cancel(); - iAccessoryModeSession.CloseSubSession(); - iAccessoryServer.Close(); - } - - -// --------------------------------------------------------------------------- -// CFMRadioAccessoryObserver::IsHeadsetAccessoryConnected -// --------------------------------------------------------------------------- -// -TBool CFMRadioAccessoryObserver::IsHeadsetAccessoryConnected() const - { - TBool accessoryConnected; - -#ifdef __WINS__ - accessoryConnected = ETrue; -#else - switch ( iAccPolAccessoryMode.iAccessoryMode ) - { - case EAccModeWiredHeadset: // Falls through. - case EAccModeLoopset: // Falls through. - case EAccModeHeadphones: - case EAccModeMusicStand: - { - accessoryConnected = ETrue; - break; - } - default: - { - accessoryConnected = EFalse; - break; - } - } -#endif - return accessoryConnected; - } - - -// --------------------------------------------------------------------------- -// CFMRadioAccessoryObserver::SetObserver -// --------------------------------------------------------------------------- -// -void CFMRadioAccessoryObserver::SetObserver( MFMRadioHeadsetEventObserver* aObserver ) - { - iObserver = aObserver; - } - - -// --------------------------------------------------------------------------- -// From class CActive -// CFMRadioAccessoryObserver::RunL -// --------------------------------------------------------------------------- -// -void CFMRadioAccessoryObserver::RunL() - { - TRequestStatus status = iStatus; - if ( status == KErrNone ) - { - // Accessory mode may change when combined connection status changes - // or when audio routing status changes. - if ( iObserver ) - { - if ( iPrevAccMode.iAccessoryMode == iAccPolAccessoryMode.iAccessoryMode && - iPrevAccMode.iAudioOutputStatus != iAccPolAccessoryMode.iAudioOutputStatus ) - { - // do nothing since we don't want another callback from same event - } - else - { - if ( IsHeadsetAccessoryConnected() ) - { - iObserver->HeadsetAccessoryConnectedCallbackL(); - } - else - { - iObserver->HeadsetAccessoryDisconnectedCallbackL(); - } - } - iPrevAccMode = iAccPolAccessoryMode; - } - } - iAccessoryModeSession.NotifyAccessoryModeChanged( iStatus, iAccPolAccessoryMode ); - SetActive(); - } - -// --------------------------------------------------------------------------- -// From class CActive -// CFMRadioAccessoryObserver::DoCancel -// --------------------------------------------------------------------------- -// -void CFMRadioAccessoryObserver::DoCancel() - { - iAccessoryModeSession.CancelNotifyAccessoryModeChanged(); - } diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradioengine/src/fmradioengine.cpp --- a/fmradio/fmradioengine/src/fmradioengine.cpp Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradioengine/src/fmradioengine.cpp Tue May 11 16:13:56 2010 +0300 @@ -37,7 +37,8 @@ #include "fmradiopubsub.h" #include "fmradiordsreceiver.h" #include "fmradiordsreceiversimulator.h" -#include "fmradioaccessoryobserver.h" +#include "fmradioaccessoryconnection.h" + #ifndef __ACCESSORY_FW #include "fmradioenginedosserverobserver.h" #endif @@ -146,10 +147,10 @@ iInCall = ETrue; } // accessory observer - iHeadsetObserver = CFMRadioAccessoryObserver::NewL(); + iHeadsetObserver = CFMRadioAccessoryConnection::NewL(); iHeadsetObserver->SetObserver( this ); // Set audio output to current setting - if ( iHeadsetObserver->IsHeadsetAccessoryConnected() ) + if ( iHeadsetObserver->WiredHeadsetConnected() ) { SetAudioOutput( EFMRadioOutputHeadset ); } @@ -836,7 +837,7 @@ if ( KErrNone == tempError ) { - if ( !iHeadsetObserver->IsHeadsetAccessoryConnected() ) + if ( !iHeadsetObserver->WiredHeadsetConnected() ) { iRadioSettings->SetAudioOutput( EFMRadioOutputIHF ); } @@ -1898,7 +1899,7 @@ FTRACE( FPrint( _L("CRadioEngine::IsAudioRoutingPossible()" ) ) ); TBool isAudioRoutingPossible = EFalse; - TBool headsetConnected = iHeadsetObserver->IsHeadsetAccessoryConnected(); + TBool headsetConnected = iHeadsetObserver->WiredHeadsetConnected(); TBool radioOn = iRadioSettings->IsRadioOn(); if ( headsetConnected && radioOn ) diff -r 0004e923f486 -r 97dcae98e602 fmradio/fmradiomcpplugin/inc/fmradiomcpplugin.h --- a/fmradio/fmradiomcpplugin/inc/fmradiomcpplugin.h Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/fmradiomcpplugin/inc/fmradiomcpplugin.h Tue May 11 16:13:56 2010 +0300 @@ -30,7 +30,7 @@ /** * Music content publisher plugin for FM Radio. * -* Implements MCP plugin which publishes FM Radio state to affected parties. +* Implements plugin which publishes FM Radio state to affected parties. * * @lib fmradiomcpplugin100.lib * diff -r 0004e923f486 -r 97dcae98e602 fmradio/sis/fmradio_cenrep_updated/fmradiocenrep.pkg --- a/fmradio/sis/fmradio_cenrep_updated/fmradiocenrep.pkg Tue Apr 27 16:38:14 2010 +0300 +++ b/fmradio/sis/fmradio_cenrep_updated/fmradiocenrep.pkg Tue May 11 16:13:56 2010 +0300 @@ -29,5 +29,4 @@ ; FM Radio Central Repository File "..\..\fmradioengine\cenrep\2001B25E.cre" - "c:\private\10202be9\2001B25E.cre" -; NOTE: 2001B25E.cre is the binary version of 2001B25E.txt -; For more info, see link: http://s60wiki.nokia.com/S60Wiki/How_to_guide_for_installing_Central_Repository_ini_files#Installing_Central_Repository_ini_file_that_is_already_in_ROM \ No newline at end of file +; NOTE: 2001B25E.cre is the binary version of 2001B25E.txt \ No newline at end of file diff -r 0004e923f486 -r 97dcae98e602 fmradio/sis/fmradio_iad_update_test/package.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fmradio/sis/fmradio_iad_update_test/package.pkg Tue May 11 16:13:56 2010 +0300 @@ -0,0 +1,46 @@ +; +; 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: FMRadio packet file +; + +;Languages +&EN + +;packet-header (name, uid, major, minor, build, type) +#{"FMRadio"},(0x10207A89),3,9,9,TYPE=SA,RU + +; Localised vendor name +%{"Symbian"} + +; Unique Vendor name +:"Symbian" + +; EXE/DLL +"\epoc32\release\armv5\udeb\fmradio.exe" -"!:\sys\bin\fmradio.exe" +"\epoc32\release\armv5\udeb\fmradioengine.dll" -"!:\sys\bin\fmradioengine.dll" +"\epoc32\release\armv5\udeb\fmradioactiveidleengine200.dll" -"!:\sys\bin\fmradioactiveidleengine200.dll" +"\epoc32\release\armv5\udeb\fmradiomcpplugin100.dll" -"!:\sys\bin\fmradiomcpplugin100.dll" +"\epoc32\release\armv5\udeb\fmradioactionhandler.dll" -"!:\sys\bin\fmradioactionhandler.dll" + +; Resources +"\epoc32\data\z\private\10003a3f\import\apps\fmradio_reg.rsc" -"!:\private\10003a3f\import\apps\fmradio_reg.rsc" +"\epoc32\data\Z\resource\apps\fmradio.rsc" -"!:\resource\apps\fmradio.rsc" +"\epoc32\data\Z\resource\fmradioengine.rsc" -"!:\resource\fmradioengine.rsc" +"\epoc32\data\Z\resource\fmradiomcpplugin.rsc" -"!:\resource\fmradiomcpplugin.rsc" +"\epoc32\data\Z\resource\plugins\fmradiomcpplugin100.rsc" -"!:\resource\plugins\fmradiomcpplugin100.rsc" +"\epoc32\data\Z\resource\plugins\fmradioactionhandler.rsc" -"!:\resource\plugins\fmradioactionhandler.rsc" + +; Other files +"\epoc32\data\Z\resource\apps\fmradio_aif.mif" -"!:\resource\apps\fmradio_aif.mif" +"\epoc32\data\Z\resource\apps\fmradio.mif" -"!:\resource\apps\fmradio.mif"