Revision: 201016 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 11 May 2010 16:13:56 +0300
branchRCL_3
changeset 11 97dcae98e602
parent 9 0004e923f486
child 12 9f3ff466f56b
Revision: 201016 Kit: 201019
fmradio/fmradio/inc/fmradioalfmediaidle.h
fmradio/fmradio/inc/fmradioalfrdsviewer.h
fmradio/fmradio/inc/fmradioscanlocalstationsview.h
fmradio/fmradio/src/fmradioalfmediaidle.cpp
fmradio/fmradio/src/fmradioalfrdsviewer.cpp
fmradio/fmradio/src/fmradioscanlocalstationsview.cpp
fmradio/fmradioengine/bwins/fmradioengineacu.def
fmradio/fmradioengine/eabi/fmradioengineacu.def
fmradio/fmradioengine/group/fmradioengine.mmp
fmradio/fmradioengine/inc/fmradioaccessoryconnection.h
fmradio/fmradioengine/inc/fmradioaccessoryobserver.h
fmradio/fmradioengine/inc/fmradioengine.h
fmradio/fmradioengine/src/fmradioaccessoryconnection.cpp
fmradio/fmradioengine/src/fmradioaccessoryobserver.cpp
fmradio/fmradioengine/src/fmradioengine.cpp
fmradio/fmradiomcpplugin/inc/fmradiomcpplugin.h
fmradio/sis/fmradio_cenrep_updated/fmradiocenrep.pkg
fmradio/sis/fmradio_iad_update_test/package.pkg
--- 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"