--- 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
*/
--- 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.
--- 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.
*/
--- 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<CAlfViewportLayout*> ( 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<CAlfViewportLayout*> ( 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
--- 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
--- 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<CFMRadioAppUi*>( 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<CFMRadioAppUi*>( iCoeEnv->AppUi() );
if ( appUi->IsStartupWizardRunning() )
@@ -1239,6 +1236,7 @@
{
SetNowPlayingChannelL( selectedChannel );
SetLastListenedChannel( selectedChannel );
+ iRadioEngine.SetMuteOn( EFalse );
}
}
}
--- 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)
--- 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
--- 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
--- /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 <e32base.h> // For CActive, link against: euser.lib
+#include <AccessoryServer.h> //For RAccessoryServer session
+#include <AccessoryConnection.h> //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
+
--- 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 <AccessoryServer.h>
-#include <AccessoryMode.h>
-#include <AccPolAccessoryMode.h>
-
-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 <code>ETrue </code> if accessory is connected,
- * <code>EFalse</code> 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
-
-
--- 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
--- /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 <AccessoryServer.h>
+#include <AccessoryConnection.h>
+#include <AccPolGenericid.h>
+#include <AccPolGenericIDArray.h>
+#include <AccPolGenericIDDefinitions.h>
+
+#include "fmradioaccessoryconnection.h"
+#include "fmradioheadseteventobserver.h"
+#include "debug.h"
+
+#ifdef __FMRADIO_ADVANCED_AUTO_RESUME // same flag can be used to determine correct mask
+#include <internal/accpolpropgenericid.h>
+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
--- 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 <AccPolGenericID.h>
-
-#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();
- }
--- 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 )
--- 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
*
--- 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
--- /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"