Revision: 201009 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 15 Mar 2010 12:40:08 +0200
branchRCL_3
changeset 11 ff8a573c0e2e
parent 10 04980be5c5fe
child 13 a184f3d659e6
Revision: 201009 Kit: 201010
mmsharing/mmshengine/bwins/musengineu.def
mmsharing/mmshengine/eabi/musengineu.def
mmsharing/mmshengine/group/musengine.mmp
mmsharing/mmshengine/inc/musengmcesession.h
mmsharing/mmshengine/inc/musengsession.h
mmsharing/mmshengine/inc/musengtelephoneutils.h
mmsharing/mmshengine/inc/musengvolumechangeobserver.h
mmsharing/mmshengine/src/musengmcesession.cpp
mmsharing/mmshengine/src/musengsession.cpp
mmsharing/mmshengine/src/musengtelephoneutils.cpp
mmsharing/mmshengine/tsrc/ut_engine/BWINS/ut_musengineU.DEF
mmsharing/mmshengine/tsrc/ut_engine/group/ut_musengine.mmp
mmsharing/mmshengine/tsrc/ut_engine/inc/musengstubs.h
mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengmcesession.h
mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengsession.h
mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengtelephoneutils.h
mmsharing/mmshengine/tsrc/ut_engine/src/musengstubs.cpp
mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengmcesession.cpp
mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengsession.cpp
mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengtelephoneutils.cpp
mmsharing/mmshui/inc/musuiappui.h
mmsharing/mmshui/inc/musuieventcontroller.h
mmsharing/mmshui/inc/musuigeneralview.h
mmsharing/mmshui/inc/musuilivesharingcontroller.h
mmsharing/mmshui/inc/musuisharingobserver.h
mmsharing/mmshui/inc/musuistatuspanehandler.h
mmsharing/mmshui/src/musuiappui.cpp
mmsharing/mmshui/src/musuiclipsharingcontroller.cpp
mmsharing/mmshui/src/musuieventcontroller.cpp
mmsharing/mmshui/src/musuigeneralview.cpp
mmsharing/mmshui/src/musuilivesharingcontroller.cpp
mmsharing/mmshui/src/musuilivesharingview.cpp
mmsharing/mmshui/src/musuilivesharingviewcontainer.cpp
mmsharing/mmshui/src/musuireceivecontroller.cpp
mmsharing/mmshui/src/musuistatuspanehandler.cpp
tsrc/centralrepositorystub/inc/cenrepnotifyhandler.h
tsrc/centralrepositorystub/src/cenrepnotifyhandlerstub.cpp
--- a/mmsharing/mmshengine/bwins/musengineu.def	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/bwins/musengineu.def	Mon Mar 15 12:40:08 2010 +0200
@@ -52,20 +52,22 @@
 	?GetSessionTime@CMusEngMceSession@@QBE?AVTTimeIntervalSeconds@@XZ @ 51 NONAME ; class TTimeIntervalSeconds CMusEngMceSession::GetSessionTime(void) const
 	?SetVolumeL@CMusEngMceSession@@UAEXH@Z @ 52 NONAME ; void CMusEngMceSession::SetVolumeL(int)
 	?Rect@CMusEngSession@@QBE?AVTRect@@XZ @ 53 NONAME ; class TRect CMusEngSession::Rect(void) const
-	?SetBrightnessL@CMusEngLiveSession@@QBEXH@Z @ 54 NONAME ; void CMusEngLiveSession::SetBrightnessL(int) const
-	?TranscodeL@CMusEngClipSession@@QAEXABV?$TBuf@$0BAA@@@@Z @ 55 NONAME ; void CMusEngClipSession::TranscodeL(class TBuf<256> const &)
-	?MaxZoomL@CMusEngLiveSession@@QBEHXZ @ 56 NONAME ; int CMusEngLiveSession::MaxZoomL(void) const
-	?VolumeDownL@CMusEngMceSession@@UAEXXZ @ 57 NONAME ; void CMusEngMceSession::VolumeDownL(void)
-	?ZoomOutL@CMusEngLiveSession@@QAEXXZ @ 58 NONAME ; void CMusEngLiveSession::ZoomOutL(void)
-	?ConnectionActive@CMusEngMceSession@@QBEHXZ @ 59 NONAME ; int CMusEngMceSession::ConnectionActive(void) const
-	?PositionL@CMusEngClipSession@@QAE?AVTTimeIntervalSeconds@@XZ @ 60 NONAME ; class TTimeIntervalSeconds CMusEngClipSession::PositionL(void)
-	?MuteMicL@CMusEngSession@@QAEXH@Z @ 61 NONAME ; void CMusEngSession::MuteMicL(int)
-	?NewL@CMusEngLiveSession@@SAPAV1@ABVTDesC16@@ABVTRect@@AAVMMusEngSessionObserver@@AAVMMusEngOutSessionObserver@@AAVMMusEngLiveSessionObserver@@I@Z @ 62 NONAME ; class CMusEngLiveSession * CMusEngLiveSession::NewL(class TDesC16 const &, class TRect const &, class MMusEngSessionObserver &, class MMusEngOutSessionObserver &, class MMusEngLiveSessionObserver &, unsigned int)
-	?EnableDisplayL@CMusEngMceSession@@UAEXH@Z @ 63 NONAME ; void CMusEngMceSession::EnableDisplayL(int)
-	?CurrentBrightnessL@CMusEngLiveSession@@QBEHXZ @ 64 NONAME ; int CMusEngLiveSession::CurrentBrightnessL(void) const
-	?RecordL@CMusEngLiveSession@@QAEXH@Z @ 65 NONAME ; void CMusEngLiveSession::RecordL(int)
-	?IsPlayingL@CMusEngLiveSession@@UAEHXZ @ 66 NONAME ; int CMusEngLiveSession::IsPlayingL(void)
-	?TerminateL@CMusEngMceSession@@QAEXXZ @ 67 NONAME ; void CMusEngMceSession::TerminateL(void)
-	?PlayL@CMusEngLiveSession@@UAEXXZ @ 68 NONAME ; void CMusEngLiveSession::PlayL(void)
-	?SetPositionL@CMusEngClipSession@@QAEXABVTTimeIntervalSeconds@@@Z @ 69 NONAME ; void CMusEngClipSession::SetPositionL(class TTimeIntervalSeconds const &)
+	?IsDisplayEnabledL@CMusEngMceSession@@QAEHXZ @ 54 NONAME ; int CMusEngMceSession::IsDisplayEnabledL(void)
+	?SetBrightnessL@CMusEngLiveSession@@QBEXH@Z @ 55 NONAME ; void CMusEngLiveSession::SetBrightnessL(int) const
+	?TranscodeL@CMusEngClipSession@@QAEXABV?$TBuf@$0BAA@@@@Z @ 56 NONAME ; void CMusEngClipSession::TranscodeL(class TBuf<256> const &)
+	?MaxZoomL@CMusEngLiveSession@@QBEHXZ @ 57 NONAME ; int CMusEngLiveSession::MaxZoomL(void) const
+	?VolumeDownL@CMusEngMceSession@@UAEXXZ @ 58 NONAME ; void CMusEngMceSession::VolumeDownL(void)
+	?ZoomOutL@CMusEngLiveSession@@QAEXXZ @ 59 NONAME ; void CMusEngLiveSession::ZoomOutL(void)
+	?ConnectionActive@CMusEngMceSession@@QBEHXZ @ 60 NONAME ; int CMusEngMceSession::ConnectionActive(void) const
+	?PositionL@CMusEngClipSession@@QAE?AVTTimeIntervalSeconds@@XZ @ 61 NONAME ; class TTimeIntervalSeconds CMusEngClipSession::PositionL(void)
+	?MuteMicL@CMusEngSession@@QAEXH@Z @ 62 NONAME ; void CMusEngSession::MuteMicL(int)
+	?NewL@CMusEngLiveSession@@SAPAV1@ABVTDesC16@@ABVTRect@@AAVMMusEngSessionObserver@@AAVMMusEngOutSessionObserver@@AAVMMusEngLiveSessionObserver@@I@Z @ 63 NONAME ; class CMusEngLiveSession * CMusEngLiveSession::NewL(class TDesC16 const &, class TRect const &, class MMusEngSessionObserver &, class MMusEngOutSessionObserver &, class MMusEngLiveSessionObserver &, unsigned int)
+	?EnableDisplayL@CMusEngMceSession@@UAEXH@Z @ 64 NONAME ; void CMusEngMceSession::EnableDisplayL(int)
+	?CurrentBrightnessL@CMusEngLiveSession@@QBEHXZ @ 65 NONAME ; int CMusEngLiveSession::CurrentBrightnessL(void) const
+	?RecordL@CMusEngLiveSession@@QAEXH@Z @ 66 NONAME ; void CMusEngLiveSession::RecordL(int)
+	?IsPlayingL@CMusEngLiveSession@@UAEHXZ @ 67 NONAME ; int CMusEngLiveSession::IsPlayingL(void)
+	?TerminateL@CMusEngMceSession@@QAEXXZ @ 68 NONAME ; void CMusEngMceSession::TerminateL(void)
+	?PlayL@CMusEngLiveSession@@UAEXXZ @ 69 NONAME ; void CMusEngLiveSession::PlayL(void)
+	?SetPositionL@CMusEngClipSession@@QAEXABVTTimeIntervalSeconds@@@Z @ 70 NONAME ; void CMusEngClipSession::SetPositionL(class TTimeIntervalSeconds const &)
+	?SetVolumeChangeObserver@CMusEngSession@@QAEXPAVMMusEngVolumeChangeObserver@@@Z @ 71 NONAME ; void CMusEngSession::SetVolumeChangeObserver(class MMusEngVolumeChangeObserver *)
 
--- a/mmsharing/mmshengine/eabi/musengineu.def	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/eabi/musengineu.def	Mon Mar 15 12:40:08 2010 +0200
@@ -4,87 +4,89 @@
 	_ZN14CMusEngSession11VolumeDownLEv @ 3 NONAME
 	_ZN14CMusEngSession18EnableLoudspeakerLEii @ 4 NONAME
 	_ZN14CMusEngSession23SetAudioRoutingObserverEP27MMusEngAudioRoutingObserver @ 5 NONAME
-	_ZN14CMusEngSession24AudioRoutingCanBeChangedEv @ 6 NONAME
-	_ZN14CMusEngSession8MuteMicLEi @ 7 NONAME
-	_ZN14CMusEngSession8SetRectLERK5TRect @ 8 NONAME
-	_ZN14CMusEngSession9VolumeUpLEv @ 9 NONAME
-	_ZN16TMusEngUriParser7UriTypeEv @ 10 NONAME
-	_ZN16TMusEngUriParser8GetUri8LEv @ 11 NONAME
-	_ZN16TMusEngUriParser9GetUri16LEi @ 12 NONAME
-	_ZN16TMusEngUriParser9ParseUriLEv @ 13 NONAME
-	_ZN16TMusEngUriParserC1ERK7TDesC16 @ 14 NONAME
-	_ZN16TMusEngUriParserC2ERK7TDesC16 @ 15 NONAME
-	_ZN17CMusEngMceSession10SetVolumeLEi @ 16 NONAME
-	_ZN17CMusEngMceSession10TerminateLEv @ 17 NONAME
-	_ZN17CMusEngMceSession11VolumeDownLEv @ 18 NONAME
-	_ZN17CMusEngMceSession12OrientationLEv @ 19 NONAME
-	_ZN17CMusEngMceSession14ContainsAudioLEv @ 20 NONAME
-	_ZN17CMusEngMceSession14EnableDisplayLEi @ 21 NONAME
-	_ZN17CMusEngMceSession15SetOrientationLENS_19TDisplayOrientationE @ 22 NONAME
-	_ZN17CMusEngMceSession5MuteLEv @ 23 NONAME
-	_ZN17CMusEngMceSession7UnmuteLEv @ 24 NONAME
-	_ZN17CMusEngMceSession8IsMutedLEv @ 25 NONAME
-	_ZN17CMusEngMceSession9VolumeUpLEv @ 26 NONAME
-	_ZN18CMusEngClipSession10IsPlayingLEv @ 27 NONAME
-	_ZN18CMusEngClipSession10TranscodeLERK4TBufILi256EE @ 28 NONAME
-	_ZN18CMusEngClipSession11FastRewindLEi @ 29 NONAME
-	_ZN18CMusEngClipSession12FastForwardLEi @ 30 NONAME
-	_ZN18CMusEngClipSession12SetPositionLERK20TTimeIntervalSeconds @ 31 NONAME
-	_ZN18CMusEngClipSession16CancelTranscodeLEv @ 32 NONAME
-	_ZN18CMusEngClipSession4NewLERK5TRectR22MMusEngSessionObserverR25MMusEngOutSessionObserverR26MMusEngClipSessionObserverj @ 33 NONAME
-	_ZN18CMusEngClipSession5PlayLEv @ 34 NONAME
-	_ZN18CMusEngClipSession6PauseLEv @ 35 NONAME
-	_ZN18CMusEngClipSession8SetClipLERK7TDesC16 @ 36 NONAME
-	_ZN18CMusEngClipSession9DurationLEv @ 37 NONAME
-	_ZN18CMusEngClipSession9PositionLEv @ 38 NONAME
-	_ZN18CMusEngLiveSession10IsPlayingLEv @ 39 NONAME
-	_ZN18CMusEngLiveSession11IsRecordingEv @ 40 NONAME
-	_ZN18CMusEngLiveSession12ZoomDefaultLEv @ 41 NONAME
-	_ZN18CMusEngLiveSession15BrightnessAutoLEv @ 42 NONAME
-	_ZN18CMusEngLiveSession18BrightnessDefaultLEv @ 43 NONAME
-	_ZN18CMusEngLiveSession19DecreaseBrightnessLEv @ 44 NONAME
-	_ZN18CMusEngLiveSession19IncreaseBrightnessLEv @ 45 NONAME
-	_ZN18CMusEngLiveSession4NewLERK5TRectR22MMusEngSessionObserverR25MMusEngOutSessionObserverR26MMusEngLiveSessionObserverj @ 46 NONAME
-	_ZN18CMusEngLiveSession4NewLERK7TDesC16RK5TRectR22MMusEngSessionObserverR25MMusEngOutSessionObserverR26MMusEngLiveSessionObserverj @ 47 NONAME
-	_ZN18CMusEngLiveSession5PlayLEv @ 48 NONAME
-	_ZN18CMusEngLiveSession6PauseLEv @ 49 NONAME
-	_ZN18CMusEngLiveSession7RecordLEi @ 50 NONAME
-	_ZN18CMusEngLiveSession7ZoomInLEv @ 51 NONAME
-	_ZN18CMusEngLiveSession8SetZoomLEi @ 52 NONAME
-	_ZN18CMusEngLiveSession8ZoomOutLEv @ 53 NONAME
-	_ZN20CMusEngMceOutSession13CancelInviteLEv @ 54 NONAME
-	_ZN20CMusEngMceOutSession27SetSupportedVideoCodecListLERK7TDesC16 @ 55 NONAME
-	_ZN20CMusEngMceOutSession7InviteLERK7TDesC16 @ 56 NONAME
-	_ZN21CMusEngReceiveSession17AcceptInvitationLERKi @ 57 NONAME
-	_ZN21CMusEngReceiveSession4NewLERK5TRectR22MMusEngSessionObserverR29MMusEngReceiveSessionObserver @ 58 NONAME
-	_ZNK14CMusEngSession20IsLoudSpeakerEnabledEv @ 59 NONAME
-	_ZNK14CMusEngSession4RectEv @ 60 NONAME
-	_ZNK14CMusEngSession7VolumeLEv @ 61 NONAME
-	_ZNK17CMusEngMceSession14GetSessionTimeEv @ 62 NONAME
-	_ZNK17CMusEngMceSession16ConnectionActiveEv @ 63 NONAME
-	_ZNK18CMusEngLiveSession12CurrentZoomLEv @ 64 NONAME
-	_ZNK18CMusEngLiveSession14MaxBrightnessLEv @ 65 NONAME
-	_ZNK18CMusEngLiveSession14MinBrightnessLEv @ 66 NONAME
-	_ZNK18CMusEngLiveSession14SetBrightnessLEi @ 67 NONAME
-	_ZNK18CMusEngLiveSession18CurrentBrightnessLEv @ 68 NONAME
-	_ZNK18CMusEngLiveSession8MaxZoomLEv @ 69 NONAME
-	_ZNK18CMusEngLiveSession8MinZoomLEv @ 70 NONAME
-	_ZTI14CMusEngSession @ 71 NONAME ; #<TI>#
-	_ZTI17CMusEngMceSession @ 72 NONAME ; #<TI>#
-	_ZTI18CMusEngClipSession @ 73 NONAME ; #<TI>#
-	_ZTI18CMusEngLiveSession @ 74 NONAME ; #<TI>#
-	_ZTI20CMusEngMceOutSession @ 75 NONAME ; #<TI>#
-	_ZTI21CMusEngReceiveSession @ 76 NONAME ; #<TI>#
-	_ZTI21CMusEngTelephoneUtils @ 77 NONAME ; #<TI>#
-	_ZTI21CMusSipProfileHandler @ 78 NONAME ; #<TI>#
-	_ZTI27CMusEngSessionDurationTimer @ 79 NONAME ; #<TI>#
-	_ZTV14CMusEngSession @ 80 NONAME ; #<VT>#
-	_ZTV17CMusEngMceSession @ 81 NONAME ; #<VT>#
-	_ZTV18CMusEngClipSession @ 82 NONAME ; #<VT>#
-	_ZTV18CMusEngLiveSession @ 83 NONAME ; #<VT>#
-	_ZTV20CMusEngMceOutSession @ 84 NONAME ; #<VT>#
-	_ZTV21CMusEngReceiveSession @ 85 NONAME ; #<VT>#
-	_ZTV21CMusEngTelephoneUtils @ 86 NONAME ; #<VT>#
-	_ZTV21CMusSipProfileHandler @ 87 NONAME ; #<VT>#
-	_ZTV27CMusEngSessionDurationTimer @ 88 NONAME ; #<VT>#
+	_ZN14CMusEngSession23SetVolumeChangeObserverEP27MMusEngVolumeChangeObserver @ 6 NONAME
+	_ZN14CMusEngSession24AudioRoutingCanBeChangedEv @ 7 NONAME
+	_ZN14CMusEngSession8MuteMicLEi @ 8 NONAME
+	_ZN14CMusEngSession8SetRectLERK5TRect @ 9 NONAME
+	_ZN14CMusEngSession9VolumeUpLEv @ 10 NONAME
+	_ZN16TMusEngUriParser7UriTypeEv @ 11 NONAME
+	_ZN16TMusEngUriParser8GetUri8LEv @ 12 NONAME
+	_ZN16TMusEngUriParser9GetUri16LEi @ 13 NONAME
+	_ZN16TMusEngUriParser9ParseUriLEv @ 14 NONAME
+	_ZN16TMusEngUriParserC1ERK7TDesC16 @ 15 NONAME
+	_ZN16TMusEngUriParserC2ERK7TDesC16 @ 16 NONAME
+	_ZN17CMusEngMceSession10SetVolumeLEi @ 17 NONAME
+	_ZN17CMusEngMceSession10TerminateLEv @ 18 NONAME
+	_ZN17CMusEngMceSession11VolumeDownLEv @ 19 NONAME
+	_ZN17CMusEngMceSession12OrientationLEv @ 20 NONAME
+	_ZN17CMusEngMceSession14ContainsAudioLEv @ 21 NONAME
+	_ZN17CMusEngMceSession14EnableDisplayLEi @ 22 NONAME
+	_ZN17CMusEngMceSession15SetOrientationLENS_19TDisplayOrientationE @ 23 NONAME
+	_ZN17CMusEngMceSession17IsDisplayEnabledLEv @ 24 NONAME
+	_ZN17CMusEngMceSession5MuteLEv @ 25 NONAME
+	_ZN17CMusEngMceSession7UnmuteLEv @ 26 NONAME
+	_ZN17CMusEngMceSession8IsMutedLEv @ 27 NONAME
+	_ZN17CMusEngMceSession9VolumeUpLEv @ 28 NONAME
+	_ZN18CMusEngClipSession10IsPlayingLEv @ 29 NONAME
+	_ZN18CMusEngClipSession10TranscodeLERK4TBufILi256EE @ 30 NONAME
+	_ZN18CMusEngClipSession11FastRewindLEi @ 31 NONAME
+	_ZN18CMusEngClipSession12FastForwardLEi @ 32 NONAME
+	_ZN18CMusEngClipSession12SetPositionLERK20TTimeIntervalSeconds @ 33 NONAME
+	_ZN18CMusEngClipSession16CancelTranscodeLEv @ 34 NONAME
+	_ZN18CMusEngClipSession4NewLERK5TRectR22MMusEngSessionObserverR25MMusEngOutSessionObserverR26MMusEngClipSessionObserverj @ 35 NONAME
+	_ZN18CMusEngClipSession5PlayLEv @ 36 NONAME
+	_ZN18CMusEngClipSession6PauseLEv @ 37 NONAME
+	_ZN18CMusEngClipSession8SetClipLERK7TDesC16 @ 38 NONAME
+	_ZN18CMusEngClipSession9DurationLEv @ 39 NONAME
+	_ZN18CMusEngClipSession9PositionLEv @ 40 NONAME
+	_ZN18CMusEngLiveSession10IsPlayingLEv @ 41 NONAME
+	_ZN18CMusEngLiveSession11IsRecordingEv @ 42 NONAME
+	_ZN18CMusEngLiveSession12ZoomDefaultLEv @ 43 NONAME
+	_ZN18CMusEngLiveSession15BrightnessAutoLEv @ 44 NONAME
+	_ZN18CMusEngLiveSession18BrightnessDefaultLEv @ 45 NONAME
+	_ZN18CMusEngLiveSession19DecreaseBrightnessLEv @ 46 NONAME
+	_ZN18CMusEngLiveSession19IncreaseBrightnessLEv @ 47 NONAME
+	_ZN18CMusEngLiveSession4NewLERK5TRectR22MMusEngSessionObserverR25MMusEngOutSessionObserverR26MMusEngLiveSessionObserverj @ 48 NONAME
+	_ZN18CMusEngLiveSession4NewLERK7TDesC16RK5TRectR22MMusEngSessionObserverR25MMusEngOutSessionObserverR26MMusEngLiveSessionObserverj @ 49 NONAME
+	_ZN18CMusEngLiveSession5PlayLEv @ 50 NONAME
+	_ZN18CMusEngLiveSession6PauseLEv @ 51 NONAME
+	_ZN18CMusEngLiveSession7RecordLEi @ 52 NONAME
+	_ZN18CMusEngLiveSession7ZoomInLEv @ 53 NONAME
+	_ZN18CMusEngLiveSession8SetZoomLEi @ 54 NONAME
+	_ZN18CMusEngLiveSession8ZoomOutLEv @ 55 NONAME
+	_ZN20CMusEngMceOutSession13CancelInviteLEv @ 56 NONAME
+	_ZN20CMusEngMceOutSession27SetSupportedVideoCodecListLERK7TDesC16 @ 57 NONAME
+	_ZN20CMusEngMceOutSession7InviteLERK7TDesC16 @ 58 NONAME
+	_ZN21CMusEngReceiveSession17AcceptInvitationLERKi @ 59 NONAME
+	_ZN21CMusEngReceiveSession4NewLERK5TRectR22MMusEngSessionObserverR29MMusEngReceiveSessionObserver @ 60 NONAME
+	_ZNK14CMusEngSession20IsLoudSpeakerEnabledEv @ 61 NONAME
+	_ZNK14CMusEngSession4RectEv @ 62 NONAME
+	_ZNK14CMusEngSession7VolumeLEv @ 63 NONAME
+	_ZNK17CMusEngMceSession14GetSessionTimeEv @ 64 NONAME
+	_ZNK17CMusEngMceSession16ConnectionActiveEv @ 65 NONAME
+	_ZNK18CMusEngLiveSession12CurrentZoomLEv @ 66 NONAME
+	_ZNK18CMusEngLiveSession14MaxBrightnessLEv @ 67 NONAME
+	_ZNK18CMusEngLiveSession14MinBrightnessLEv @ 68 NONAME
+	_ZNK18CMusEngLiveSession14SetBrightnessLEi @ 69 NONAME
+	_ZNK18CMusEngLiveSession18CurrentBrightnessLEv @ 70 NONAME
+	_ZNK18CMusEngLiveSession8MaxZoomLEv @ 71 NONAME
+	_ZNK18CMusEngLiveSession8MinZoomLEv @ 72 NONAME
+	_ZTI14CMusEngSession @ 73 NONAME
+	_ZTI17CMusEngMceSession @ 74 NONAME
+	_ZTI18CMusEngClipSession @ 75 NONAME
+	_ZTI18CMusEngLiveSession @ 76 NONAME
+	_ZTI20CMusEngMceOutSession @ 77 NONAME
+	_ZTI21CMusEngReceiveSession @ 78 NONAME
+	_ZTI21CMusEngTelephoneUtils @ 79 NONAME
+	_ZTI21CMusSipProfileHandler @ 80 NONAME
+	_ZTI27CMusEngSessionDurationTimer @ 81 NONAME
+	_ZTV14CMusEngSession @ 82 NONAME
+	_ZTV17CMusEngMceSession @ 83 NONAME
+	_ZTV18CMusEngClipSession @ 84 NONAME
+	_ZTV18CMusEngLiveSession @ 85 NONAME
+	_ZTV20CMusEngMceOutSession @ 86 NONAME
+	_ZTV21CMusEngReceiveSession @ 87 NONAME
+	_ZTV21CMusEngTelephoneUtils @ 88 NONAME
+	_ZTV21CMusSipProfileHandler @ 89 NONAME
+	_ZTV27CMusEngSessionDurationTimer @ 90 NONAME
 
--- a/mmsharing/mmshengine/group/musengine.mmp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/group/musengine.mmp	Mon Mar 15 12:40:08 2010 +0200
@@ -43,7 +43,7 @@
 SOURCE          musengreceivesession.cpp
 SOURCE      	musengtelephoneutils.cpp
 SOURCE      	musengsessiondurationtimer.cpp
-SOURCE			musengclipsession.cpp
+SOURCE          musengclipsession.cpp
 SOURCE          musenguriparser.cpp
 SOURCE          musengmceutils.cpp
 
@@ -61,17 +61,18 @@
 LIBRARY     euser.lib
 LIBRARY     bafl.lib
 LIBRARY     inetprotutil.lib
-LIBRARY		phoneclient.lib
-LIBRARY		centralrepository.lib
+LIBRARY	    phoneclient.lib
+LIBRARY	    centralrepository.lib
 
-LIBRARY		sipprofilecli.lib
-LIBRARY		sipclient.lib
-LIBRARY         sipcodec.lib
-LIBRARY 	mceclient.lib  
-LIBRARY 	drmcommon.lib
-LIBRARY		charconv.lib
+LIBRARY	    sipprofilecli.lib
+LIBRARY	    sipclient.lib
+LIBRARY     sipcodec.lib
+LIBRARY     mceclient.lib  
+LIBRARY     drmcommon.lib
+LIBRARY     charconv.lib
 LIBRARY     telephonyaudiorouting.lib
 LIBRARY     efsrv.lib
+LIBRARY     cenrepnotifhandler.lib	
 
 DEBUGLIBRARY		flogger.lib
 
--- a/mmsharing/mmshengine/inc/musengmcesession.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/inc/musengmcesession.h	Mon Mar 15 12:40:08 2010 +0200
@@ -162,6 +162,12 @@
         */
         IMPORT_C void SetOrientationL( TDisplayOrientation aOrientation );
         
+        /**
+        * Returns state of the screen device.
+        * 
+        * @pre Session is ongoing
+        */
+        IMPORT_C TBool IsDisplayEnabledL();
 
     public: // VIRTUAL API
 
@@ -315,7 +321,14 @@
         void Reject( CMceInSession& aSession,
                      const TDesC8& aReason = KNullDesC8(),
                      TUint32 aCode = 0 );
-                     
+
+    protected:  // from CMusEngSession
+	
+        /**
+        *
+        */
+        void VolumeChanged( TInt aVolume, TBool aAudioRouteChanged );
+             
     
     protected: // from MMceInSessionObserver
     
--- a/mmsharing/mmshengine/inc/musengsession.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/inc/musengsession.h	Mon Mar 15 12:40:08 2010 +0200
@@ -21,6 +21,7 @@
 
 // USER INCLUDES
 #include "musunittesting.h"
+#include "musengvolumechangeobserver.h"
 
 //SYSTEM INCLUDES
 #include <e32base.h>
@@ -31,6 +32,7 @@
 class CMusSipProfileHandler;
 class CRepository;
 class MMusEngAudioRoutingObserver;
+class MMusEngVolumeChangeObserver;
 
 // CLASS DECLARATION
 
@@ -43,7 +45,8 @@
 *
 * @lib musengine.lib
 */
-class CMusEngSession : public CBase
+class CMusEngSession : public CBase,
+                       public MMusEngVolumeChangeObserver
     {
     MUS_UNITTEST( UT_CMusEngSession )
     
@@ -116,6 +119,12 @@
         IMPORT_C void SetAudioRoutingObserver( 
                                     MMusEngAudioRoutingObserver* aObserver );
         
+        /**
+        * Sets volume level change observer. Can be set to NULL in order to indicate
+        * ending of observing changes in volume level.
+        */
+        IMPORT_C void SetVolumeChangeObserver( 
+                                    MMusEngVolumeChangeObserver* aObserver );
 
     public:  // VIRTUAL API FUNCTIONS
         
@@ -159,6 +168,9 @@
         virtual void RectChangedL() = 0;
 
 
+        //from MMusEngVolumeChangeObserver
+        virtual void VolumeChanged( TInt aVolume, TBool aAudioRouteChanged );
+        
     protected:
 
         /**
@@ -189,6 +201,11 @@
         * Telephone utilities.
         */
         CMusEngTelephoneUtils* iTelephoneUtils;
+        
+        /**
+        * Volume change observer
+        */
+        MMusEngVolumeChangeObserver* iVolumeObserver;
 
     };
 
--- a/mmsharing/mmshengine/inc/musengtelephoneutils.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/inc/musengtelephoneutils.h	Mon Mar 15 12:40:08 2010 +0200
@@ -27,19 +27,22 @@
 #include <MTelephonyAudioRoutingObserver.h>
 #include <TelephonyAudioRouting.h>
 #include <RPhCltServer.h>
+#include <cenrepnotifyhandler.h>
 
 // FORWARD DECLARATIONS
 class CRepository;
 class CTelephonyAudioRouting;
 class CPhCltCommandHandler;
 class MMusEngAudioRoutingObserver;
+class MMusEngVolumeChangeObserver;
 
 /**
 * Utility class to handle all phone related requests:
 * Audio routing, volume control and microphone muting.
 */
 class CMusEngTelephoneUtils : public CActive,
-                              public MTelephonyAudioRoutingObserver
+                              public MTelephonyAudioRoutingObserver,
+                              public MCenRepNotifyHandlerCallback
     {
     MUS_UNITTEST( UT_CMusEngTelephoneUtils )
     MUS_UNITTEST( UT_CMusEngSession )
@@ -79,10 +82,15 @@
 		TBool IsLoudSpeakerEnabled() const;
 		
 		/**
-   		*
+   		* Returns current CS call volume level from central repository
         */
 		TInt GetVolumeL() const;
 
+        /**
+        * Returns locally cached CS call volume level
+        */
+		TInt GetVolume() const;
+		
 		/**
    		*
         */
@@ -104,6 +112,11 @@
         */
         void SetAudioRoutingObserver( MMusEngAudioRoutingObserver* aObserver );
                                         
+        /**
+        * Sets volume level observer. Can be set to NULL in order to indicate
+        * ending of observing changes in volume level.
+        */
+        void SetVolumeChangeObserver( MMusEngVolumeChangeObserver* aObserver );
     
     private: // inherited from CActive
 
@@ -145,6 +158,10 @@
         */
         void DoSetOutputL( CTelephonyAudioRouting::TAudioOutput aAudioOutput );
         
+    private:// From MCenRepNotifyHandlerCallback
+        
+        void HandleNotifyGeneric( TUint32 aId );
+        
     private:
 
 		/**
@@ -167,7 +184,13 @@
         */
 		TInt ValidateVolume( const TInt aVolume ) const;
 		
-
+		/**
+		 * Checks current volume level and notifies observer, if volume changed
+		 * @param aAudioRouteChanged, ETrue if volume check should be done
+		 *        because of audio route change
+		 */
+		void UpdateCurrentVolume( TBool aAudioRouteChanged );
+		
     private: // DATA
 
         /**
@@ -197,6 +220,18 @@
 
         TBool iShowDialog;
         
+        /**
+         * Central repository notifier instance. Owned.
+         */
+        CCenRepNotifyHandler* iNotifier;
+       
+        /**
+         * Volume change observer
+         * Used to inform session about volume updates
+         */
+        MMusEngVolumeChangeObserver* iVolumeObserver;
+        
+        TInt iCurrentVolume;
     };
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshengine/inc/musengvolumechangeobserver.h	Mon Mar 15 12:40:08 2010 +0200
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2005 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: 
+*
+*/
+
+
+#ifndef MUSENGVOLUMECHANGEOBSERVER_H
+#define MUSENGVOLUMECHANGEOBSERVER_H
+
+// INCLUDES
+#include <e32def.h>
+
+// CLASS DECLARATION
+
+/**
+* An interface to be implemented by users of Multimedia Sharing Engine if 
+* they wish to be notified about volume level CenRep keys change
+*
+*/
+class MMusEngVolumeChangeObserver
+    {
+    public: 
+    
+        /**
+	    * Indicates that volume level was changed either by some other 
+	    * application or due to audio route change
+	    * @param aVolume new volume level
+	    * @param aAudioRouteChanged indicates whether volume level changed due
+	    *        to audio route change
+	    */
+        virtual void VolumeChanged( TInt aVolume, TBool aAudioRouteChanged ) = 0;        
+    };
+
+#endif
--- a/mmsharing/mmshengine/src/musengmcesession.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/src/musengmcesession.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -321,6 +321,17 @@
     MUS_LOG( "mus: [ENGINE]  <- CMusEngMceSession::EnableDisplay()")
     }
 
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CMusEngMceSession::IsDisplayEnabledL()
+    {
+    __ASSERT_ALWAYS( iSession, User::Leave( KErrNotReady ) );
+    CMceDisplaySink* display = MusEngMceUtils::GetDisplayL( *iSession );
+    return display->IsEnabled();
+    }
+
 
 // -----------------------------------------------------------------------------
 // Mutes playback of sended audio streams. Audio data is still streamed.
@@ -528,7 +539,7 @@
                 MusEngMceUtils::GetSpeaker( *( iSession->Streams()[i] ) );
 
             if ( speaker &&        
-                 aNewVolume >= 1 &&
+                 aNewVolume >= KMusEngMinVolume &&
                  aNewVolume <= KMusEngMaxVolume )
                 {
                 // MCE might have different scale for volume than MUS
@@ -1456,3 +1467,19 @@
         }    
     MUS_LOG( "mus: [ENGINE]  <- CMusEngMceSession::DoCodecConfigurationBasedRemovalL()" )
     }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+void CMusEngMceSession::VolumeChanged( TInt aVolume, TBool aAudioRouteChanged )
+    {
+    MUS_LOG1( "mus: [ENGINE]  -> CMusEngMceSession::VolumeChanged(): %d", aVolume )
+    if ( iSession )
+        {
+        CMusEngSession::VolumeChanged( aVolume, aAudioRouteChanged );
+        TRAP_IGNORE( SetSpeakerVolumeL( aVolume ) );
+        }
+
+    MUS_LOG( "mus: [ENGINE]  <- CMusEngMceSession::VolumeChanged()" )
+    }
--- a/mmsharing/mmshengine/src/musengsession.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/src/musengsession.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -113,7 +113,7 @@
 //
 EXPORT_C TInt CMusEngSession::VolumeL() const
     {
-    return iTelephoneUtils->GetVolumeL();
+    return iTelephoneUtils->GetVolume();
     }
 
 
@@ -147,6 +147,16 @@
     iTelephoneUtils->SetAudioRoutingObserver( aObserver );
     }
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::SetVolumeChangeObserver( 
+                                   MMusEngVolumeChangeObserver* aObserver )
+    {
+    iVolumeObserver = aObserver;
+    }
+
 
 // -----------------------------------------------------------------------------
 // Increases CS call volume level by one.
@@ -155,7 +165,7 @@
 //
 EXPORT_C void CMusEngSession::VolumeUpL( )
     {
-    TInt currentVolume = iTelephoneUtils->GetVolumeL();
+    TInt currentVolume = iTelephoneUtils->GetVolume();
     iTelephoneUtils->SetVolumeL( currentVolume  + 1 );
     }
 
@@ -167,7 +177,7 @@
 //
 EXPORT_C void CMusEngSession::VolumeDownL( )
     {
-    TInt currentVolume = iTelephoneUtils->GetVolumeL();
+    TInt currentVolume = iTelephoneUtils->GetVolume();
     iTelephoneUtils->SetVolumeL( currentVolume - 1 );
     }
 
@@ -200,7 +210,18 @@
     {
     MUS_LOG( "mus: [ENGINE]  -> CMusEngSession::ConstructL()" )
     iTelephoneUtils = CMusEngTelephoneUtils::NewL();
+    iTelephoneUtils->SetVolumeChangeObserver( this );
     MUS_LOG( "mus: [ENGINE]  <- CMusEngSession::ConstructL()" )
     }
 
-
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngSession::VolumeChanged( TInt aVolume, TBool aAudioRouteChanged )
+    {
+    if ( iVolumeObserver )         
+        {
+        iVolumeObserver->VolumeChanged( aVolume, aAudioRouteChanged );
+        }
+    }
--- a/mmsharing/mmshengine/src/musengtelephoneutils.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/src/musengtelephoneutils.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -20,6 +20,7 @@
 #include "musengtelephoneutils.h"
 #include "musengaudioroutingobserver.h"
 #include "musengmcesession.h"
+#include "musengvolumechangeobserver.h"
 #include "muslogger.h"
 
 // SYSTEM
@@ -30,7 +31,6 @@
 #include <CPhCltCommandHandler.h> // for CPhCltCommandHandler
 
 
-
 // -----------------------------------------------------------------------------
 //
 // -----------------------------------------------------------------------------
@@ -71,6 +71,12 @@
         	}
         }
 
+    if ( iNotifier )
+        {
+        iNotifier->StopListening();
+        delete iNotifier;
+        }    
+
     delete iRepository;
     delete iTelephonyAudioRouting;
     MUS_LOG( "mus: [ENGINE]  <- CMusEngTelephoneUtils::~CMusEngTelephoneUtils()" )
@@ -158,9 +164,17 @@
              CTelephonyAudioRouting::ELoudspeaker );
     }
 
-
+// -----------------------------------------------------------------------------
+// Returns locally cached the CS call volume level.
 // -----------------------------------------------------------------------------
-// Gets the CS call volume level.
+//
+TInt CMusEngTelephoneUtils::GetVolume() const
+    {
+    return iCurrentVolume;
+    }
+        
+// -----------------------------------------------------------------------------
+// Gets the CS call volume level from central repository.
 // Leaves if error occurs when accessing central repository.
 // -----------------------------------------------------------------------------
 //
@@ -190,8 +204,8 @@
 void CMusEngTelephoneUtils::SetVolumeL( TInt aVolume )
     {
     TInt newVolume = ValidateVolume( aVolume );
-
-    if ( GetVolumeL() != newVolume )
+    MUS_LOG1( "mus: [ENGINE]  -> CMusEngTelephoneUtils::SetVolumeL(), %d", newVolume )
+    if ( iCurrentVolume != newVolume )
         {
         if ( IsLoudSpeakerEnabled() )
             {
@@ -203,6 +217,7 @@
             User::LeaveIfError( iRepository->Set( KTelIncallEarVolume, 
                                                   newVolume ) );
             }
+        iCurrentVolume = newVolume;
         }
     }
 
@@ -257,7 +272,16 @@
     {
     iAudioRoutingObserver = aObserver;
     }
-    
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngTelephoneUtils::SetVolumeChangeObserver( 
+                                    MMusEngVolumeChangeObserver* aObserver )
+    {
+    iVolumeObserver = aObserver;
+    }
 
 // -----------------------------------------------------------------------------
 // 
@@ -323,7 +347,9 @@
         {
         iAudioRoutingObserver->AudioRoutingChanged( EFalse );
         }
-        
+    
+    UpdateCurrentVolume(ETrue);
+    
     MUS_LOG( "mus: [ENGINE]  <- CMusEngTelephoneUtils::OutputChanged()" )
     }
     
@@ -338,22 +364,27 @@
     {
     MUS_LOG( "mus: [ENGINE]  -> CMusEngTelephoneUtils::SetOutputComplete()" )
 
-    if ( aError == KErrNone && iAudioRoutingObserver )
+    if ( aError == KErrNone )
         {
-        // If audio routing api didn't shown note and show dialog mode is on,
-        // we know that this completion is for such setoutput call for which
-        // we need to show the note. Show note mode is turned off only in that
-        // case.
-        TBool dialogShownByUs( EFalse );
-        TBool dialogShownByAudioRouting( EFalse );     
-        aError = iTelephonyAudioRouting->GetShowNote( dialogShownByAudioRouting );
-        if ( aError == KErrNone && !dialogShownByAudioRouting && iShowDialog )
+        if ( iAudioRoutingObserver )
             {
-            dialogShownByUs = iShowDialog;
-            iShowDialog = EFalse;
+            // If audio routing api didn't shown note and show dialog mode is on,
+            // we know that this completion is for such setoutput call for which
+            // we need to show the note. Show note mode is turned off only in that
+            // case.
+            TBool dialogShownByUs( EFalse );
+            TBool dialogShownByAudioRouting( EFalse );     
+            aError = iTelephonyAudioRouting->GetShowNote( dialogShownByAudioRouting );
+            if ( aError == KErrNone && !dialogShownByAudioRouting && iShowDialog )
+                {
+                dialogShownByUs = iShowDialog;
+                iShowDialog = EFalse;
+                }
+        
+            iAudioRoutingObserver->AudioRoutingChanged( dialogShownByUs );
             }
 
-        iAudioRoutingObserver->AudioRoutingChanged( dialogShownByUs );
+        UpdateCurrentVolume(ETrue);
         }
     
     MUS_LOG( "mus: [ENGINE]  <- CMusEngTelephoneUtils::SetOutputComplete()" )
@@ -364,6 +395,24 @@
 //
 // -----------------------------------------------------------------------------
 //
+void CMusEngTelephoneUtils::UpdateCurrentVolume( TBool aAudioRouteChanged )
+    {
+    TInt volume(0);
+    TRAPD(error, volume = GetVolumeL() );
+    if( (KErrNone == error) && (iCurrentVolume != volume) )
+         {
+         iCurrentVolume = volume;
+         if ( iVolumeObserver )
+             {
+             iVolumeObserver->VolumeChanged( volume, aAudioRouteChanged );
+             }
+         }
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 CMusEngTelephoneUtils::CMusEngTelephoneUtils() 
 	: CActive( CActive::EPriorityStandard )
     {
@@ -381,7 +430,10 @@
 
     // Volume control
     iRepository = CRepository::NewL( KCRUidInCallVolume );
-
+    
+    iNotifier = CCenRepNotifyHandler::NewL( *this, *iRepository );
+    iNotifier->StartListeningL();
+    
     // Audio routing control
     iTelephonyAudioRouting = CTelephonyAudioRouting::NewL( *this );
 
@@ -390,7 +442,9 @@
     // Phone
     MUS_LOG( "mus: [ENGINE]     Use static DLL" )
     iPhoneCommandHandler = CPhCltCommandHandler::NewL();
-        
+     
+    iCurrentVolume = GetVolumeL();
+    
     CActiveScheduler::Add( this );
 
     MUS_LOG( "mus: [ENGINE]  <- CMusEngTelephoneUtils::ConstructL()" )
@@ -439,3 +493,41 @@
     }
 
 
+// ---------------------------------------------------------------------------
+// CMusEngTelephoneUtils::HandleNotifyGeneric
+// ---------------------------------------------------------------------------
+//
+void CMusEngTelephoneUtils::HandleNotifyGeneric( TUint32 aId )
+    {
+    MUS_LOG( "mus: [ENGINE] -> CMusEngTelephoneUtils::HandleNotifyGeneric()" )
+    TInt error = KErrArgument;
+    TInt volume = 0;
+    if ( KTelIncallEarVolume == aId )
+        {
+        error = iRepository->Get( KTelIncallEarVolume, volume );        
+        MUS_LOG1( "mus: [ENGINE] EAR volume: %d", volume );
+        }
+    else if ( KTelIncallLoudspeakerVolume == aId )
+        {
+        error = iRepository->Get( KTelIncallLoudspeakerVolume, volume );        
+        MUS_LOG1( "mus: [ENGINE] Loudspeakers volume: %d", volume );
+        }
+    
+    volume = ValidateVolume(volume);
+    if ( (KErrNone == error) && (iCurrentVolume != volume) )
+        {
+        MUS_LOG1( "mus: [ENGINE] volume changed: %d!, notifying UI...", volume )
+        iCurrentVolume = volume;
+        if( iVolumeObserver  )
+            {
+            iVolumeObserver->VolumeChanged( volume, EFalse );
+            }
+        }
+    else
+        {
+        MUS_LOG( "mus: [ENGINE] volume hasn't changed!, do nothing..." )    
+        }
+        
+    MUS_LOG1( "mus: [ENGINE] <- CMusEngTelephoneUtils::HandleNotifyGeneric(), error:%d",
+            error );
+    }
--- a/mmsharing/mmshengine/tsrc/ut_engine/BWINS/ut_musengineU.DEF	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/BWINS/ut_musengineU.DEF	Mon Mar 15 12:40:08 2010 +0200
@@ -1,2 +1,159 @@
 EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	??1CRepository@@UAE@XZ @ 1 NONAME ; CRepository::~CRepository(void)
+	?StartTransaction@CRepository@@QAEHW4TTransactionMode@1@@Z @ 2 NONAME ; int CRepository::StartTransaction(enum CRepository::TTransactionMode)
+	?SetAudioRoutingObserver@CMusEngSession@@QAEXPAVMMusEngAudioRoutingObserver@@@Z @ 3 NONAME ; void CMusEngSession::SetAudioRoutingObserver(class MMusEngAudioRoutingObserver *)
+	?DigitalZoomFactorL@CMceCameraSource@@QAEHXZ @ 4 NONAME ; int CMceCameraSource::DigitalZoomFactorL(void)
+	?NewL@CCenRepNotifyHandler@@SAPAV1@AAVMCenRepNotifyHandlerCallback@@AAVCRepository@@@Z @ 5 NONAME ; class CCenRepNotifyHandler * CCenRepNotifyHandler::NewL(class MCenRepNotifyHandlerCallback &, class CRepository &)
+	?SetClipL@CMusEngClipSession@@QAEXABVTDesC16@@@Z @ 6 NONAME ; void CMusEngClipSession::SetClipL(class TDesC16 const &)
+	?GetCameraInfo@CMceCameraSource@@QBEXAAVTCameraInfo@@@Z @ 7 NONAME ; void CMceCameraSource::GetCameraInfo(class TCameraInfo &) const
+	?NewLC@CRepository@@SAPAV1@VTUid@@@Z @ 8 NONAME ; class CRepository * CRepository::NewLC(class TUid)
+	?IsMicMutedL@CMusEngSession@@QAEHXZ @ 9 NONAME ; int CMusEngSession::IsMicMutedL(void)
+	?FastRewindL@CMusEngClipSession@@QAEXH@Z @ 10 NONAME ; void CMusEngClipSession::FastRewindL(int)
+	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 11 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	?Create@CRepository@@QAEHKH@Z @ 12 NONAME ; int CRepository::Create(unsigned long, int)
+	?UriType@TMusEngUriParser@@QAE?AW4TMusEngUriType@1@XZ @ 13 NONAME ; enum TMusEngUriParser::TMusEngUriType TMusEngUriParser::UriType(void)
+	?ProfilesL@CSIPProfileRegistryBase@@QAEXABVTSIPProfileTypeInfo@@AAV?$RPointerArray@VCSIPProfile@@@@@Z @ 14 NONAME ; void CSIPProfileRegistryBase::ProfilesL(class TSIPProfileTypeInfo const &, class RPointerArray<class CSIPProfile> &)
+	?Type@CSIPProfile@@QBEABVTSIPProfileTypeInfo@@XZ @ 15 NONAME ; class TSIPProfileTypeInfo const & CSIPProfile::Type(void) const
+	?DurationL@CMusEngClipSession@@QAE?AVTTimeIntervalSeconds@@XZ @ 16 NONAME ; class TTimeIntervalSeconds CMusEngClipSession::DurationL(void)
+	?Type@CMceMediaSource@@QBEIXZ @ 17 NONAME ; unsigned int CMceMediaSource::Type(void) const
+	??0TMusEngUriParser@@QAE@ABVTDesC16@@@Z @ 18 NONAME ; TMusEngUriParser::TMusEngUriParser(class TDesC16 const &)
+	?BrightnessL@CMceCameraSource@@QAEHXZ @ 19 NONAME ; int CMceCameraSource::BrightnessL(void)
+	?Get@CRepository@@QAEHKAAVTDes16@@@Z @ 20 NONAME ; int CRepository::Get(unsigned long, class TDes16 &)
+	?GetUri8L@TMusEngUriParser@@QAEPAVHBufC8@@XZ @ 21 NONAME ; class HBufC8 * TMusEngUriParser::GetUri8L(void)
+	?NewLC@CSIPProfileRegistry@@SAPAV1@AAVCSIP@@AAVMSIPProfileRegistryObserver@@@Z @ 22 NONAME ; class CSIPProfileRegistry * CSIPProfileRegistry::NewLC(class CSIP &, class MSIPProfileRegistryObserver &)
+	?AudioRoutingCanBeChanged@CMusEngSession@@QAEHXZ @ 23 NONAME ; int CMusEngSession::AudioRoutingCanBeChanged(void)
+	?MaxBrightnessL@CMusEngLiveSession@@QBEHXZ @ 24 NONAME ; int CMusEngLiveSession::MaxBrightnessL(void) const
+	?OrientationL@CMusEngMceSession@@QAE?AW4TDisplayOrientation@1@XZ @ 25 NONAME ; enum CMusEngMceSession::TDisplayOrientation CMusEngMceSession::OrientationL(void)
+	?EnableL@CSIPProfileRegistry@@QAEXAAVCSIPProfile@@AAVMSIPConnectionObserver@@@Z @ 26 NONAME ; void CSIPProfileRegistry::EnableL(class CSIPProfile &, class MSIPConnectionObserver &)
+	?SetSupportedVideoCodecListL@CMusEngMceOutSession@@QAEXABVTDesC16@@@Z @ 27 NONAME ; void CMusEngMceOutSession::SetSupportedVideoCodecListL(class TDesC16 const &)
+	?CamerasAvailable@CMceCameraSource@@QBEHXZ @ 28 NONAME ; int CMceCameraSource::CamerasAvailable(void) const
+	?IsRecording@CMusEngLiveSession@@QAEHXZ @ 29 NONAME ; int CMusEngLiveSession::IsRecording(void)
+	?IsEnabled@CSIPProfileRegistry@@QBEHABVCSIPProfile@@@Z @ 30 NONAME ; int CSIPProfileRegistry::IsEnabled(class CSIPProfile const &) const
+	?NewL@DRMCommon@@SAPAV1@XZ @ 31 NONAME ; class DRMCommon * DRMCommon::NewL(void)
+	?DisableL@CMceCameraSource@@UAEXXZ @ 32 NONAME ; void CMceCameraSource::DisableL(void)
+	?IsProtectedFile@DRMCommon@@QAEHABVTDesC16@@AAH@Z @ 33 NONAME ; int DRMCommon::IsProtectedFile(class TDesC16 const &, int &)
+	?CancelTranscodeL@CMusEngClipSession@@QAEXXZ @ 34 NONAME ; void CMusEngClipSession::CancelTranscodeL(void)
+	?Disable@CSIPProfileRegistry@@QAEHAAVCSIPProfile@@@Z @ 35 NONAME ; int CSIPProfileRegistry::Disable(class CSIPProfile &)
+	?BrightnessDefaultL@CMusEngLiveSession@@QAEXXZ @ 36 NONAME ; void CMusEngLiveSession::BrightnessDefaultL(void)
+	?Delete@CRepository@@QAEHKKAAK@Z @ 37 NONAME ; int CRepository::Delete(unsigned long, unsigned long, unsigned long &)
+	?CommitTransaction@CRepository@@QAEHAAK@Z @ 38 NONAME ; int CRepository::CommitTransaction(unsigned long &)
+	?SetExposureL@CMceCameraSource@@QAEXW4TExposure@CCamera@@@Z @ 39 NONAME ; void CMceCameraSource::SetExposureL(enum CCamera::TExposure)
+	?FastForwardL@CMusEngClipSession@@QAEXH@Z @ 40 NONAME ; void CMusEngClipSession::FastForwardL(int)
+	?SetZoomL@CMusEngLiveSession@@QAEXH@Z @ 41 NONAME ; void CMusEngLiveSession::SetZoomL(int)
+	?Set@CRepository@@QAEHKABVTDesC8@@@Z @ 42 NONAME ; int CRepository::Set(unsigned long, class TDesC8 const &)
+	?NewL@CMusEngClipSession@@SAPAV1@ABVTRect@@AAVMMusEngSessionObserver@@AAVMMusEngOutSessionObserver@@AAVMMusEngClipSessionObserver@@I@Z @ 43 NONAME ; class CMusEngClipSession * CMusEngClipSession::NewL(class TRect const &, class MMusEngSessionObserver &, class MMusEngOutSessionObserver &, class MMusEngClipSessionObserver &, unsigned int)
+	?InviteL@CMusEngMceOutSession@@QAEXABVTDesC16@@@Z @ 44 NONAME ; void CMusEngMceOutSession::InviteL(class TDesC16 const &)
+	?GetParameter@CSIPProfile@@QBEHKAAPBVTDesC8@@@Z @ 45 NONAME ; int CSIPProfile::GetParameter(unsigned long, class TDesC8 const * &) const
+	?IsLoudSpeakerEnabled@CMusEngSession@@QBEHXZ @ 46 NONAME ; int CMusEngSession::IsLoudSpeakerEnabled(void) const
+	?StartListeningL@CCenRepNotifyHandler@@QAEXXZ @ 47 NONAME ; void CCenRepNotifyHandler::StartListeningL(void)
+	?NewL@CSIPProfileRegistry@@SAPAV1@AAVCSIP@@AAVMSIPProfileRegistryObserver@@@Z @ 48 NONAME ; class CSIPProfileRegistry * CSIPProfileRegistry::NewL(class CSIP &, class MSIPProfileRegistryObserver &)
+	?NewL@CMusEngReceiveSession@@SAPAV1@ABVTRect@@AAVMMusEngSessionObserver@@AAVMMusEngReceiveSessionObserver@@@Z @ 49 NONAME ; class CMusEngReceiveSession * CMusEngReceiveSession::NewL(class TRect const &, class MMusEngSessionObserver &, class MMusEngReceiveSessionObserver &)
+	?ContainsAudioL@CMusEngMceSession@@QAEHXZ @ 50 NONAME ; int CMusEngMceSession::ContainsAudioL(void)
+	?VolumeUpL@CMusEngMceSession@@UAEXXZ @ 51 NONAME ; void CMusEngMceSession::VolumeUpL(void)
+	?IsPlayingL@CMusEngClipSession@@UAEHXZ @ 52 NONAME ; int CMusEngClipSession::IsPlayingL(void)
+	?Get@CRepository@@QAEHKAAH@Z @ 53 NONAME ; int CRepository::Get(unsigned long, int &)
+	?SupportedSecurityMechanismsL@CSIP@@QBEPAVCDesC8Array@@XZ @ 54 NONAME ; class CDesC8Array * CSIP::SupportedSecurityMechanismsL(void) const
+	?PlayL@CMusEngClipSession@@UAEXXZ @ 55 NONAME ; void CMusEngClipSession::PlayL(void)
+	?PauseL@CMusEngLiveSession@@UAEXXZ @ 56 NONAME ; void CMusEngLiveSession::PauseL(void)
+	?GetSessionTime@CMusEngMceSession@@QBE?AVTTimeIntervalSeconds@@XZ @ 57 NONAME ; class TTimeIntervalSeconds CMusEngMceSession::GetSessionTime(void) const
+	?Rect@CMusEngSession@@QBE?AVTRect@@XZ @ 58 NONAME ; class TRect CMusEngSession::Rect(void) const
+	?Disconnect@DRMCommon@@QAEHXZ @ 59 NONAME ; int DRMCommon::Disconnect(void)
+	?FindL@CRepository@@QAEHKKAAV?$RArray@K@@@Z @ 60 NONAME ; int CRepository::FindL(unsigned long, unsigned long, class RArray<unsigned long> &)
+	?SetBrightnessL@CMusEngLiveSession@@QBEXH@Z @ 61 NONAME ; void CMusEngLiveSession::SetBrightnessL(int) const
+	?NewLC@CMceCameraSource@@SAPAV1@AAVCMceManager@@@Z @ 62 NONAME ; class CMceCameraSource * CMceCameraSource::NewLC(class CMceManager &)
+	?ProfilesL@CSIPProfileRegistryBase@@QAEXAAV?$RPointerArray@VCSIPProfile@@@@@Z @ 63 NONAME ; void CSIPProfileRegistryBase::ProfilesL(class RPointerArray<class CSIPProfile> &)
+	?ZoomOutL@CMusEngLiveSession@@QAEXXZ @ 64 NONAME ; void CMusEngLiveSession::ZoomOutL(void)
+	?ConnectionActive@CMusEngMceSession@@QBEHXZ @ 65 NONAME ; int CMusEngMceSession::ConnectionActive(void) const
+	?GetParameter@CSIPProfile@@QBEHKAAH@Z @ 66 NONAME ; int CSIPProfile::GetParameter(unsigned long, int &) const
+	?SetWhiteBalanceL@CMceCameraSource@@QAEXW4TWhiteBalance@CCamera@@@Z @ 67 NONAME ; void CMceCameraSource::SetWhiteBalanceL(enum CCamera::TWhiteBalance)
+	?RecordL@CMusEngLiveSession@@QAEXH@Z @ 68 NONAME ; void CMusEngLiveSession::RecordL(int)
+	??1CCenRepNotifyHandler@@UAE@XZ @ 69 NONAME ; CCenRepNotifyHandler::~CCenRepNotifyHandler(void)
+	?FindEqL@CRepository@@QAEHKKABVTDesC8@@AAV?$RArray@K@@@Z @ 70 NONAME ; int CRepository::FindEqL(unsigned long, unsigned long, class TDesC8 const &, class RArray<unsigned long> &)
+	?ZoomFactorL@CMceCameraSource@@QAEHXZ @ 71 NONAME ; int CMceCameraSource::ZoomFactorL(void)
+	?TerminateL@CMusEngMceSession@@QAEXXZ @ 72 NONAME ; void CMusEngMceSession::TerminateL(void)
+	?SetZoomFactorL@CMceCameraSource@@QAEXH@Z @ 73 NONAME ; void CMceCameraSource::SetZoomFactorL(int)
+	?SIP@CSIPProfileRegistry@@QBEAAVCSIP@@XZ @ 74 NONAME ; class CSIP & CSIPProfileRegistry::SIP(void) const
+	??1CMceMediaSource@@UAE@XZ @ 75 NONAME ; CMceMediaSource::~CMceMediaSource(void)
+	?ParseUriL@TMusEngUriParser@@QAEXXZ @ 76 NONAME ; void TMusEngUriParser::ParseUriL(void)
+	?ProfileL@CSIPProfileRegistryBase@@QAEPAVCSIPProfile@@K@Z @ 77 NONAME ; class CSIPProfile * CSIPProfileRegistryBase::ProfileL(unsigned long)
+	?EnableLoudspeakerL@CMusEngSession@@QAEXHH@Z @ 78 NONAME ; void CMusEngSession::EnableLoudspeakerL(int, int)
+	?CancelInviteL@CMusEngMceOutSession@@QAEXXZ @ 79 NONAME ; void CMusEngMceOutSession::CancelInviteL(void)
+	?VolumeL@CMusEngSession@@QBEHXZ @ 80 NONAME ; int CMusEngSession::VolumeL(void) const
+	?StopListening@CCenRepNotifyHandler@@QAEXXZ @ 81 NONAME ; void CCenRepNotifyHandler::StopListening(void)
+	??1CSIPProfileRegistryBase@@UAE@XZ @ 82 NONAME ; CSIPProfileRegistryBase::~CSIPProfileRegistryBase(void)
+	?ZoomDefaultL@CMusEngLiveSession@@QAEXXZ @ 83 NONAME ; void CMusEngLiveSession::ZoomDefaultL(void)
+	?GetUri16L@TMusEngUriParser@@QAEPAVHBufC16@@H@Z @ 84 NONAME ; class HBufC16 * TMusEngUriParser::GetUri16L(int)
+	?NewL@CSIP@@SAPAV1@ABVTUid@@AAVMSIPObserver@@@Z @ 85 NONAME ; class CSIP * CSIP::NewL(class TUid const &, class MSIPObserver &)
+	??1CMceCameraSource@@UAE@XZ @ 86 NONAME ; CMceCameraSource::~CMceCameraSource(void)
+	?EnableL@CMceCameraSource@@UAEXXZ @ 87 NONAME ; void CMceCameraSource::EnableL(void)
+	?VolumeUpL@CMusEngSession@@UAEXXZ @ 88 NONAME ; void CMusEngSession::VolumeUpL(void)
+	?GetParameter@CSIPProfile@@QBEHKAAPBVMDesC8Array@@@Z @ 89 NONAME ; int CSIPProfile::GetParameter(unsigned long, class MDesC8Array const * &) const
+	?NewL@CRepository@@SAPAV1@VTUid@@@Z @ 90 NONAME ; class CRepository * CRepository::NewL(class TUid)
+	?SetVolumeChangeObserver@CMusEngSession@@QAEXPAVMMusEngVolumeChangeObserver@@@Z @ 91 NONAME ; void CMusEngSession::SetVolumeChangeObserver(class MMusEngVolumeChangeObserver *)
+	?GetParameter@CSIPProfile@@QBEHKAAK@Z @ 92 NONAME ; int CSIPProfile::GetParameter(unsigned long, unsigned long &) const
+	?IsMutedL@CMusEngMceSession@@QAEHXZ @ 93 NONAME ; int CMusEngMceSession::IsMutedL(void)
+	??1CSIP@@UAE@XZ @ 94 NONAME ; CSIP::~CSIP(void)
+	?Set@CRepository@@QAEHKH@Z @ 95 NONAME ; int CRepository::Set(unsigned long, int)
+	?AcceptInvitationL@CMusEngReceiveSession@@QAEXABH@Z @ 96 NONAME ; void CMusEngReceiveSession::AcceptInvitationL(int const &)
+	?CurrentZoomL@CMusEngLiveSession@@QBEHXZ @ 97 NONAME ; int CMusEngLiveSession::CurrentZoomL(void) const
+	?DisallowMigrationL@CSipProfileAlrController@@QAEXKK@Z @ 98 NONAME ; void CSipProfileAlrController::DisallowMigrationL(unsigned long, unsigned long)
+	?MinBrightnessL@CMusEngLiveSession@@QBEHXZ @ 99 NONAME ; int CMusEngLiveSession::MinBrightnessL(void) const
+	??1CSIPProfile@@UAE@XZ @ 100 NONAME ; CSIPProfile::~CSIPProfile(void)
+	?NewL@CMusEngLiveSession@@SAPAV1@ABVTRect@@AAVMMusEngSessionObserver@@AAVMMusEngOutSessionObserver@@AAVMMusEngLiveSessionObserver@@I@Z @ 101 NONAME ; class CMusEngLiveSession * CMusEngLiveSession::NewL(class TRect const &, class MMusEngSessionObserver &, class MMusEngOutSessionObserver &, class MMusEngLiveSessionObserver &, unsigned int)
+	?UnmuteL@CMusEngMceSession@@UAEXXZ @ 102 NONAME ; void CMusEngMceSession::UnmuteL(void)
+	?Connect@DRMCommon@@QAEHXZ @ 103 NONAME ; int DRMCommon::Connect(void)
+	?NewL@CMceCameraSource@@SAPAV1@AAVCMceManager@@@Z @ 104 NONAME ; class CMceCameraSource * CMceCameraSource::NewL(class CMceManager &)
+	?MinZoomL@CMusEngLiveSession@@QBEHXZ @ 105 NONAME ; int CMusEngLiveSession::MinZoomL(void) const
+	?Set@CRepository@@QAEHKABVTDesC16@@@Z @ 106 NONAME ; int CRepository::Set(unsigned long, class TDesC16 const &)
+	?VolumeDownL@CMusEngSession@@UAEXXZ @ 107 NONAME ; void CMusEngSession::VolumeDownL(void)
+	?ExposureL@CMceCameraSource@@QAE?AW4TExposure@CCamera@@XZ @ 108 NONAME ; enum CCamera::TExposure CMceCameraSource::ExposureL(void)
+	?MuteL@CMusEngMceSession@@UAEXXZ @ 109 NONAME ; void CMusEngMceSession::MuteL(void)
+	?NewLC@CCenRepNotifyHandler@@SAPAV1@AAVMCenRepNotifyHandlerCallback@@AAVCRepository@@@Z @ 110 NONAME ; class CCenRepNotifyHandler * CCenRepNotifyHandler::NewLC(class MCenRepNotifyHandlerCallback &, class CRepository &)
+	?SetVolumeL@CMusEngSession@@UAEXH@Z @ 111 NONAME ; void CMusEngSession::SetVolumeL(int)
+	?DecreaseBrightnessL@CMusEngLiveSession@@QAEXXZ @ 112 NONAME ; void CMusEngLiveSession::DecreaseBrightnessL(void)
+	?LastRegistrationError@CSIPProfileRegistryBase@@QBEHABVCSIPProfile@@@Z @ 113 NONAME ; int CSIPProfileRegistryBase::LastRegistrationError(class CSIPProfile const &) const
+	?SetCameraIndexL@CMceCameraSource@@QAEXH@Z @ 114 NONAME ; void CMceCameraSource::SetCameraIndexL(int)
+	?PauseL@CMusEngClipSession@@UAEXXZ @ 115 NONAME ; void CMusEngClipSession::PauseL(void)
+	?Connection@CSIP@@QBEPAVCSIPConnection@@K@Z @ 116 NONAME ; class CSIPConnection * CSIP::Connection(unsigned long) const
+	?SetRectL@CMusEngSession@@QAEXABVTRect@@@Z @ 117 NONAME ; void CMusEngSession::SetRectL(class TRect const &)
+	?Create@CRepository@@QAEHKABVTDesC8@@@Z @ 118 NONAME ; int CRepository::Create(unsigned long, class TDesC8 const &)
+	?RefreshIapAvailabilityL@CSipProfileAlrController@@QAEXK@Z @ 119 NONAME ; void CSipProfileAlrController::RefreshIapAvailabilityL(unsigned long)
+	?DefaultProfileL@CSIPProfileRegistryBase@@QAEPAVCSIPProfile@@XZ @ 120 NONAME ; class CSIPProfile * CSIPProfileRegistryBase::DefaultProfileL(void)
+	?BrightnessAutoL@CMusEngLiveSession@@QAEXXZ @ 121 NONAME ; void CMusEngLiveSession::BrightnessAutoL(void)
+	?IncreaseBrightnessL@CMusEngLiveSession@@QAEXXZ @ 122 NONAME ; void CMusEngLiveSession::IncreaseBrightnessL(void)
+	?ProfilesL@CSIPProfileRegistryBase@@QAEXABVTDesC8@@AAV?$RPointerArray@VCSIPProfile@@@@@Z @ 123 NONAME ; void CSIPProfileRegistryBase::ProfilesL(class TDesC8 const &, class RPointerArray<class CSIPProfile> &)
+	??1CSIPProfileRegistry@@UAE@XZ @ 124 NONAME ; CSIPProfileRegistry::~CSIPProfileRegistry(void)
+	?SetOrientationL@CMusEngMceSession@@QAEXW4TDisplayOrientation@1@@Z @ 125 NONAME ; void CMusEngMceSession::SetOrientationL(enum CMusEngMceSession::TDisplayOrientation)
+	?Get@CRepository@@QAEHKAAVTDes8@@@Z @ 126 NONAME ; int CRepository::Get(unsigned long, class TDes8 &)
+	?ConstructL@DRMCommon@@IAEXXZ @ 127 NONAME ; void DRMCommon::ConstructL(void)
+	?ContrastL@CMceCameraSource@@QAEHXZ @ 128 NONAME ; int CMceCameraSource::ContrastL(void)
+	?NegotiatedSecurityMechanismL@CSIP@@QAEPAVHBufC8@@ABVTDesC8@@@Z @ 129 NONAME ; class HBufC8 * CSIP::NegotiatedSecurityMechanismL(class TDesC8 const &)
+	?ZoomInL@CMusEngLiveSession@@QAEXXZ @ 130 NONAME ; void CMusEngLiveSession::ZoomInL(void)
+	?NewL@CSipProfileAlrController@@SAPAV1@AAVCSIPProfileRegistryBase@@AAVMSipProfileAlrObserver@@@Z @ 131 NONAME ; class CSipProfileAlrController * CSipProfileAlrController::NewL(class CSIPProfileRegistryBase &, class MSipProfileAlrObserver &)
+	?SetVolumeL@CMusEngMceSession@@UAEXH@Z @ 132 NONAME ; void CMusEngMceSession::SetVolumeL(int)
+	?Stop@CActiveScheduler@@SAXXZ @ 133 NONAME ; void CActiveScheduler::Stop(void)
+	?IsDisplayEnabledL@CMusEngMceSession@@QAEHXZ @ 134 NONAME ; int CMusEngMceSession::IsDisplayEnabledL(void)
+	?TranscodeL@CMusEngClipSession@@QAEXABV?$TBuf@$0BAA@@@@Z @ 135 NONAME ; void CMusEngClipSession::TranscodeL(class TBuf<256> const &)
+	?MaxZoomL@CMusEngLiveSession@@QBEHXZ @ 136 NONAME ; int CMusEngLiveSession::MaxZoomL(void) const
+	?IsSigCompSupportedL@CSIP@@QBEHXZ @ 137 NONAME ; int CSIP::IsSigCompSupportedL(void) const
+	?NewLC@CSIP@@SAPAV1@ABVTUid@@AAVMSIPObserver@@@Z @ 138 NONAME ; class CSIP * CSIP::NewLC(class TUid const &, class MSIPObserver &)
+	?VolumeDownL@CMusEngMceSession@@UAEXXZ @ 139 NONAME ; void CMusEngMceSession::VolumeDownL(void)
+	?AllowMigrationL@CSipProfileAlrController@@QAEXKK@Z @ 140 NONAME ; void CSipProfileAlrController::AllowMigrationL(unsigned long, unsigned long)
+	?PositionL@CMusEngClipSession@@QAE?AVTTimeIntervalSeconds@@XZ @ 141 NONAME ; class TTimeIntervalSeconds CMusEngClipSession::PositionL(void)
+	?SetContrastL@CMceCameraSource@@QAEXH@Z @ 142 NONAME ; void CMceCameraSource::SetContrastL(int)
+	?WhiteBalanceL@CMceCameraSource@@QAE?AW4TWhiteBalance@CCamera@@XZ @ 143 NONAME ; enum CCamera::TWhiteBalance CMceCameraSource::WhiteBalanceL(void)
+	??1DRMCommon@@UAE@XZ @ 144 NONAME ; DRMCommon::~DRMCommon(void)
+	?MuteMicL@CMusEngSession@@QAEXH@Z @ 145 NONAME ; void CMusEngSession::MuteMicL(int)
+	?NewL@CMusEngLiveSession@@SAPAV1@ABVTDesC16@@ABVTRect@@AAVMMusEngSessionObserver@@AAVMMusEngOutSessionObserver@@AAVMMusEngLiveSessionObserver@@I@Z @ 146 NONAME ; class CMusEngLiveSession * CMusEngLiveSession::NewL(class TDesC16 const &, class TRect const &, class MMusEngSessionObserver &, class MMusEngOutSessionObserver &, class MMusEngLiveSessionObserver &, unsigned int)
+	?HandleNotifyGeneric@MCenRepNotifyHandlerCallback@@UAEXK@Z @ 147 NONAME ; void MCenRepNotifyHandlerCallback::HandleNotifyGeneric(unsigned long)
+	?EnableDisplayL@CMusEngMceSession@@UAEXH@Z @ 148 NONAME ; void CMusEngMceSession::EnableDisplayL(int)
+	??0DRMCommon@@IAE@XZ @ 149 NONAME ; DRMCommon::DRMCommon(void)
+	?CurrentBrightnessL@CMusEngLiveSession@@QBEHXZ @ 150 NONAME ; int CMusEngLiveSession::CurrentBrightnessL(void) const
+	?SupportedProfileTypesL@CSIPProfileRegistryBase@@QAEXAAV?$RArray@VTSIPProfileTypeInfo@@@@@Z @ 151 NONAME ; void CSIPProfileRegistryBase::SupportedProfileTypesL(class RArray<class TSIPProfileTypeInfo> &)
+	?Start@CActiveScheduler@@SAXXZ @ 152 NONAME ; void CActiveScheduler::Start(void)
+	?SetBrightnessL@CMceCameraSource@@QAEXH@Z @ 153 NONAME ; void CMceCameraSource::SetBrightnessL(int)
+	?SetDigitalZoomFactorL@CMceCameraSource@@QAEXH@Z @ 154 NONAME ; void CMceCameraSource::SetDigitalZoomFactorL(int)
+	?IsPlayingL@CMusEngLiveSession@@UAEHXZ @ 155 NONAME ; int CMusEngLiveSession::IsPlayingL(void)
+	?IsEnabled@CMceMediaSource@@QBEHXZ @ 156 NONAME ; int CMceMediaSource::IsEnabled(void) const
+	?PlayL@CMusEngLiveSession@@UAEXXZ @ 157 NONAME ; void CMusEngLiveSession::PlayL(void)
+	?SetPositionL@CMusEngClipSession@@QAEXABVTTimeIntervalSeconds@@@Z @ 158 NONAME ; void CMusEngClipSession::SetPositionL(class TTimeIntervalSeconds const &)
--- a/mmsharing/mmshengine/tsrc/ut_engine/group/ut_musengine.mmp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/group/ut_musengine.mmp	Mon Mar 15 12:40:08 2010 +0200
@@ -48,6 +48,7 @@
 
 SOURCEPATH              ../../../../../tsrc/centralrepositorystub/src
 SOURCE                  centralrepositorystub.cpp
+SOURCE                  cenrepnotifyhandlerstub.cpp
 
 SOURCEPATH              ../../../../../tsrc/drmstub/src
 SOURCE                  drmcommonstub.cpp
@@ -94,7 +95,7 @@
 USERINCLUDE             ../../../../inc
 USERINCLUDE             ../../../../../inc
 USERINCLUDE             ../../../../../tsrc/sipprofilestub/inc
-USERINCLUDE		../../../../../tsrc/centralrepositorystub/inc
+USERINCLUDE             ../../../../../tsrc/centralrepositorystub/inc
 
 // to replace SIP profiles with a stub
 SYSTEMINCLUDE           ../inc
--- a/mmsharing/mmshengine/tsrc/ut_engine/inc/musengstubs.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/inc/musengstubs.h	Mon Mar 15 12:40:08 2010 +0200
@@ -28,6 +28,7 @@
 #include "musengreceivesessionobserver.h"
 #include "musengsessiondurationtimerobserver.h"
 #include "musengaudioroutingobserver.h"
+#include "musengvolumechangeobserver.h"
 
 #include <e32base.h>
 
@@ -71,7 +72,8 @@
                             public MMusEngLiveSessionObserver,
                             public MMusEngClipSessionObserver,
                             public MMusEngReceiveSessionObserver,
-                            public MMusEngAudioRoutingObserver
+                            public MMusEngAudioRoutingObserver,
+                            public MMusEngVolumeChangeObserver
     {
     
     public:
@@ -145,7 +147,9 @@
         
         TBool AudioRouteChangeAllowed() const;
         
-    
+        // From MMusEngVolumeChangeObserver
+        void VolumeChanged( TInt aVolume, TBool aAudioRouteChanged );
+        
     public: // Helper
     
         /**
@@ -203,6 +207,7 @@
         TBool iSessionTemporarilyNotAvailable;
         HBufC* iIncomingSessionOriginator;
         
+        TInt iVolume;
     };
 
 
--- a/mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengmcesession.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengmcesession.h	Mon Mar 15 12:40:08 2010 +0200
@@ -31,6 +31,7 @@
 class CMusEngClipSession;
 class CMusEngObserverStub;
 class CMceSession;
+class CMusEngMceSession;
 
 //  CLASS DEFINITION
 /**
@@ -104,10 +105,14 @@
         void UT_CMusEngMceSession_SsrcRemovedL();
         void UT_CMusEngMceSession_UpdateTimerEventL();
         void UT_CMusEngMceSession_IsRoamingBetweenAPsAllowedL(); 
+        void UT_CMusEngMceSession_IsDisplayEnabledLL();
+        
+        void UT_CMusEngMceSession_VolumeChangedL();
     
     private:
         
         void SetMaxVolForSpeakersL(CMceSession& aSession, TInt aMaxVol);
+        TBool VerifySpeakersVolume(CMusEngMceSession& aSession, TInt aVolume);
         
     private:    // Data
 
--- a/mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengsession.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengsession.h	Mon Mar 15 12:40:08 2010 +0200
@@ -77,6 +77,7 @@
         void UT_VolumeUpLL();
         void UT_VolumeDownLL();
         void UT_SetVolumeLL();
+        void UT_SetVolumeChangeObserverL();
 
     private:    // Data
 
--- a/mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengtelephoneutils.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengtelephoneutils.h	Mon Mar 15 12:40:08 2010 +0200
@@ -72,6 +72,8 @@
         void UT_SetOutputCompleteL();
         void UT_ValidateVolumeL();
         void UT_DestructorL();
+        void UT_UpdateCurrentVolumeL();
+        void UT_HandleNotifyGenericL();
 
     private:    // Data
 
--- a/mmsharing/mmshengine/tsrc/ut_engine/src/musengstubs.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/src/musengstubs.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -395,7 +395,14 @@
     return iAudioRouteChangeAllowed;
     }
     
-    
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//    
+void CMusEngObserverStub::VolumeChanged( TInt aVolume, TBool /*aAudioRouteChanged*/ )
+    {
+    iVolume = aVolume;
+    }
 
 // ----- HELPERS ---------------------------------------------------------------
 
@@ -439,7 +446,8 @@
              !iSessionTemporarilyNotAvailable &&
              !iIncomingSessionOriginator &&
              !iShowNote &&
-             iAudioRouteChangeAllowed );
+             iAudioRouteChangeAllowed &&
+             !iVolume );
     }
 
 // -----------------------------------------------------------------------------
@@ -483,6 +491,7 @@
     iIncomingSessionOriginator = NULL;
     iShowNote = EFalse;
     iAudioRouteChangeAllowed = ETrue;
+    iVolume = 0;
     }
 
 
--- a/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengmcesession.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengmcesession.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -220,7 +220,26 @@
     EUNIT_ASSERT( sessionTime >= TTimeIntervalSeconds( 0 ) );
     }
     
+void UT_CMusEngMceSession::UT_CMusEngMceSession_IsDisplayEnabledLL()
+    {
+    TRAPD( error, iLiveSession->IsDisplayEnabledL() );
+    MUS_TEST_FORWARD_ALLOC_FAILURE( error );
+    EUNIT_ASSERT( error == KErrNotReady );
 
+    ESTABLISH_OUT_SESSION( iLiveSession );
+     
+    //Enable
+    CMceDisplaySink* display = 
+                    MusEngMceUtils::GetDisplayL( *(iLiveSession->iSession) );
+    display->iIsEnabled = ETrue;
+    EUNIT_ASSERT( iLiveSession->IsDisplayEnabledL() );
+    
+    //Disable
+    display->iIsEnabled = EFalse;
+    EUNIT_ASSERT( !iLiveSession->IsDisplayEnabledL() );
+    }
+	
+	
 // -----------------------------------------------------------------------------
 //
 // -----------------------------------------------------------------------------
@@ -1732,7 +1751,61 @@
     EUNIT_ASSERT( iLiveSession->IsRoamingBetweenAPsAllowed() )
     }
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngMceSession::UT_CMusEngMceSession_VolumeChangedL()
+    {
+    // Try without session, nothing happens
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
+    iLiveSession->VolumeChanged( 1, EFalse );
+    EUNIT_ASSERT( !VerifySpeakersVolume(*iLiveSession, 1) )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
+
+    // Establish session
+    ESTABLISH_OUT_SESSION( iClipSession )
+    
+    // Try without observer
+    iClipSession->VolumeChanged( 2, EFalse );
+    EUNIT_ASSERT( VerifySpeakersVolume(*iClipSession, 2) )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
+    
+    
+    // Try with observer set
+    iClipSession->SetVolumeChangeObserver( iObserver );
+    iClipSession->VolumeChanged( 3, EFalse );
+    EUNIT_ASSERT( VerifySpeakersVolume(*iClipSession, 3) )
+    EUNIT_ASSERT( iObserver->iVolume == 3 );
+    
+    }
+
 // HELPERS
+TBool UT_CMusEngMceSession::VerifySpeakersVolume(CMusEngMceSession& aSession, TInt aVolume)
+    {
+    TBool result = EFalse;
+    
+    CMceSpeakerSink* speaker = NULL;    
+    CMceSession* session = aSession.iSession;
+    
+    if ( session ) 
+        {
+        for ( TInt i = 0; i < session->Streams().Count(); ++i )
+            {
+            for ( TInt j = 0; j < session->Streams()[i]->Sinks().Count(); ++j )
+                {
+                if ( session->Streams()[i]->Sinks()[j]->Type() == KMceSpeakerSink )
+                    {
+                    speaker = static_cast<CMceSpeakerSink*>(
+                                              session->Streams()[i]->Sinks()[j] );
+                    result = ( speaker->VolumeL() == aVolume );
+                    }
+                }
+            } 
+        }
+    return result;
+    }
+
 
 // -----------------------------------------------------------------------------
 //
@@ -1991,6 +2064,12 @@
     "SsrcRemoved",
     "FUNCTIONALITY",
     SetupL, UT_CMusEngMceSession_SsrcRemovedL, Teardown)         
+EUNIT_TEST(
+    "IsDisplayEnabledL - test ",
+    "CMusEngMceSession",
+    "IsDisplayEnabledL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngMceSession_IsDisplayEnabledLL, Teardown)  	
 
 EUNIT_TEST(
     "UpdateTimerEvent - test ",
@@ -2006,6 +2085,14 @@
     "FUNCTIONALITY",
     SetupL, UT_CMusEngMceSession_IsRoamingBetweenAPsAllowedL, Teardown)
         
+EUNIT_TEST(
+    "VolumeChanged - test ",
+    "CMusEngMceSession",
+    "VolumeChanged",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngMceSession_VolumeChangedL, Teardown)
+    
+
 EUNIT_END_TEST_TABLE
 
 //  END OF FILE
--- a/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengsession.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengsession.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -439,6 +439,23 @@
     }
 
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSession::UT_SetVolumeChangeObserverL()
+    {
+    EUNIT_ASSERT( !iLiveSession->iVolumeObserver )
+    
+    iLiveSession->SetVolumeChangeObserver( iObserver );
+    
+    EUNIT_ASSERT_EQUALS( iLiveSession->iVolumeObserver, iObserver )
+    
+    iObserver->VolumeChanged( 2, EFalse );
+    EUNIT_ASSERT( iObserver->iVolume == 2 );
+    }
+
+
 //  TEST TABLE
 
 EUNIT_BEGIN_TEST_TABLE(
@@ -530,6 +547,14 @@
     "FUNCTIONALITY",
     SetupL, UT_SetVolumeLL, Teardown) 
     
+EUNIT_TEST(
+    "SetVolumeChangeObserver - test ",
+    "CMusEngSession",
+    "SetVolumeChangeObserver",
+    "FUNCTIONALITY",
+    SetupL, UT_SetVolumeChangeObserverL, Teardown) 
+
+
 EUNIT_END_TEST_TABLE
 
 //  END OF FILE
--- a/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengtelephoneutils.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengtelephoneutils.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -326,21 +326,29 @@
     
     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput = 
                                         CTelephonyAudioRouting::ELoudspeaker;
+    iTelephoneUtils->iRepository->Set( KTelIncallLoudspeakerVolume, 8 );
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
     
     iTelephoneUtils->OutputChanged( *iTelephoneUtils->iTelephonyAudioRouting );
                                                                 
     EUNIT_ASSERT_EQUALS( iTelephoneUtils->iAudioOutputAtStartup, 
                          CTelephonyAudioRouting::ELoudspeaker )
     
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 8 )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
     // Test observer
     
     iTelephoneUtils->SetAudioRoutingObserver( iObserver );
+    iTelephoneUtils->SetVolumeChangeObserver(iObserver);
     
     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput = 
                                         CTelephonyAudioRouting::EHandset;
     
     iTelephoneUtils->OutputChanged( *iTelephoneUtils->iTelephonyAudioRouting );
-                                                                
+    
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
+    EUNIT_ASSERT( iObserver->iVolume == 4 );                                                               
     EUNIT_ASSERT_EQUALS( iTelephoneUtils->iAudioOutputAtStartup,
                          CTelephonyAudioRouting::EHandset )
     
@@ -355,17 +363,22 @@
 void UT_CMusEngTelephoneUtils::UT_SetOutputCompleteL()
     {
     iTelephoneUtils->SetAudioRoutingObserver( iObserver );
-    
+    iTelephoneUtils->SetVolumeChangeObserver(iObserver);
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
+
     // Setoutput fails
     iTelephoneUtils->SetOutputComplete( 
                             *iTelephoneUtils->iTelephonyAudioRouting,
                             KErrGeneral );
                             
     EUNIT_ASSERT( !iObserver->iAudioRoutingChangedCalled )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
     
     // Setoutput succesful and note is shown by audiorouting api
     // There's already next pending setoutput for which we are going to
     // show note -> that cannot be forgotten
+    iTelephoneUtils->iRepository->Set( KTelIncallEarVolume, 5 );
     iTelephoneUtils->iShowDialog = ETrue;
     iTelephoneUtils->iTelephonyAudioRouting->SetShowNote( ETrue );
     iTelephoneUtils->SetOutputComplete( 
@@ -374,6 +387,8 @@
     EUNIT_ASSERT( iObserver->iAudioRoutingChangedCalled == ETrue )
     EUNIT_ASSERT( iObserver->iShowNote == EFalse )
     EUNIT_ASSERT( iTelephoneUtils->iShowDialog == ETrue )
+    EUNIT_ASSERT( iObserver->iVolume == 5 );
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 5 )
     
     iObserver->Reset();
     
@@ -454,6 +469,58 @@
     // Cannot really assert anything
     }
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngTelephoneUtils::UT_UpdateCurrentVolumeL()
+    {    
+    //Volume changed, no observer
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
+    iTelephoneUtils->iRepository->Set( KTelIncallEarVolume, 5 );
+    iTelephoneUtils->UpdateCurrentVolume(EFalse);
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 5 )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
+
+    //Volume changed, observer set
+    iTelephoneUtils->SetVolumeChangeObserver(iObserver);
+    iTelephoneUtils->iRepository->Set( KTelIncallEarVolume, 6 );
+    iTelephoneUtils->UpdateCurrentVolume(EFalse);
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 6 )
+    EUNIT_ASSERT( iObserver->iVolume == 6 );
+
+    //Volume didn't change, observer not notified
+    iObserver->iVolume = 0;
+    iTelephoneUtils->UpdateCurrentVolume(EFalse);
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 6 )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );    
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngTelephoneUtils::UT_HandleNotifyGenericL()
+    {
+    //Loudspeakers volume changed, no observer
+    iTelephoneUtils->iRepository->Set( KTelIncallLoudspeakerVolume, 8 );
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
+    iTelephoneUtils->HandleNotifyGeneric(KTelIncallLoudspeakerVolume);    
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 8 )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
+    
+    //Ear volume changed, observer set => observer notified
+    iTelephoneUtils->SetVolumeChangeObserver(iObserver);
+    iTelephoneUtils->HandleNotifyGeneric(KTelIncallEarVolume);    
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
+    EUNIT_ASSERT( iObserver->iVolume == 4 );
+    
+    //Volume hasn't changed => observer not notifies
+    iObserver->iVolume = 0;
+    iTelephoneUtils->HandleNotifyGeneric(KTelIncallEarVolume);    
+    EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
+    EUNIT_ASSERT( iObserver->iVolume == 0 );
+    }
 
 
 //  TEST TABLE
@@ -540,7 +607,20 @@
     "FUNCTIONALITY",
     SetupL, UT_DestructorL, Teardown)
 
-     
+EUNIT_TEST(
+    "UpdateCurrentVolume - test ",
+    "UpdateCurrentVolume",
+    "Destructor",
+    "FUNCTIONALITY",
+    SetupL, UT_UpdateCurrentVolumeL, Teardown)
+    
+EUNIT_TEST(
+    "HandleNotifyGeneric - test ",
+    "CMusEngTelephoneUtils",
+    "HandleNotifyGeneric",
+    "FUNCTIONALITY",
+    SetupL, UT_HandleNotifyGenericL, Teardown)
+
     
 EUNIT_END_TEST_TABLE
 
--- a/mmsharing/mmshui/inc/musuiappui.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/inc/musuiappui.h	Mon Mar 15 12:40:08 2010 +0200
@@ -28,6 +28,7 @@
 #include <coeccntx.h>
 #include <aknViewAppUi.h>
 #include <remconcoreapitargetobserver.h>
+#include <coecobs.h>
 
 class CMusUiStatusPaneHandler;
 class CMusUiActiveQueryDialog;
@@ -42,7 +43,8 @@
 class CMusUiAppUi : public CAknViewAppUi, 
                     public MMusUiEventObserver,
                     public MMusUiQueryObserver,
-                    public MRemConCoreApiTargetObserver
+                    public MRemConCoreApiTargetObserver,
+                    public MCoeControlObserver
     {
 
 public:  // constructors and destructor
@@ -145,6 +147,11 @@
     
     // Help context from CCoeAppUi
     CArrayFix<TCoeHelpContext>* HelpContextL() const;
+    
+private:
+    
+    //from MCoeControlObserver
+    void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
 
 private:
     
--- a/mmsharing/mmshui/inc/musuieventcontroller.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/inc/musuieventcontroller.h	Mon Mar 15 12:40:08 2010 +0200
@@ -30,6 +30,7 @@
 
 #include "musengsessionobserver.h"
 #include "musengaudioroutingobserver.h"
+#include "musengvolumechangeobserver.h"
 
 #include <aknappui.h>        // CAknAppUiBase::TAppUiOrientation
 
@@ -57,7 +58,8 @@
                               public MMusUiCallbackObserver,
                               public MMusUiMmcObserver,
                               public MMusEngSessionObserver,
-                              public MMusEngAudioRoutingObserver
+                              public MMusEngAudioRoutingObserver,
+                              public MMusEngVolumeChangeObserver
     {
 
 public: // enumerations
@@ -157,6 +159,14 @@
     */
     virtual TBool AudioRouteChangeAllowed() const;
     
+public: // From MMusEngVolumeChangeObserver
+    
+    /**
+    * Indicates that some other application has changed volume level.
+    *
+    */
+    virtual void VolumeChanged( TInt aVolume, TBool aAudioRouteChanged );
+    
 
 public:	// New functions
 	
@@ -295,6 +305,11 @@
     * 
     */
     virtual void DeleteEngineSession() = 0;
+      
+    /**
+    * 
+    */
+    TBool IsDisplayEnabledL();
     
 
 protected:    // New functions
--- a/mmsharing/mmshui/inc/musuigeneralview.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/inc/musuigeneralview.h	Mon Mar 15 12:40:08 2010 +0200
@@ -147,7 +147,7 @@
 
     virtual void EnableMiddleSoftkeyL( TInt aResourceId );
 
-    virtual void ActivateVolumeControlL( TInt aValue );  
+    virtual void ActivateVolumeControlL( TInt aValue, TBool aOnlyIfVisible = EFalse );  
     
     virtual void HighlightSelectedToolbarItem( TInt aCommand );
     
--- a/mmsharing/mmshui/inc/musuilivesharingcontroller.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/inc/musuilivesharingcontroller.h	Mon Mar 15 12:40:08 2010 +0200
@@ -110,6 +110,11 @@
     TBool ToolbarZoomSelected();
 
     TBool ToolbarBrightnessSelected();
+    
+    /**
+    * 
+    */
+    void RefreshCameraOrientationL();
 
 
 private:	// new functions:
--- a/mmsharing/mmshui/inc/musuisharingobserver.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/inc/musuisharingobserver.h	Mon Mar 15 12:40:08 2010 +0200
@@ -67,7 +67,7 @@
         */
         virtual void EnableMiddleSoftkeyL( TInt aResourceId ) = 0;   
 	    
-        virtual void ActivateVolumeControlL( TInt aValue ) = 0;  
+        virtual void ActivateVolumeControlL( TInt aValue, TBool aOnlyIfVisible = EFalse ) = 0;  
         
         virtual void HighlightSelectedToolbarItem( TInt aCommand ) = 0;
         
--- a/mmsharing/mmshui/inc/musuistatuspanehandler.h	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/inc/musuistatuspanehandler.h	Mon Mar 15 12:40:08 2010 +0200
@@ -113,7 +113,7 @@
      *
      * @return Volume controller.
      */
-    void ActivateVolumeControlL( TInt aVolume );
+    void ActivateVolumeControlL( TInt aVolume, TBool aOnlyIfVisible );
 
     /**
      * Activate media navi pane.
@@ -163,10 +163,6 @@
     CAknVolumePopup*                    iVolumePopup;
     // Navi pane media control
     CAknNavigationDecorator*            iMediaControl;
-
-    // Volume level of the volume control
-    TInt                                iVolume;
-
     };
 
 #endif // MUSUISTATUSPANEHANDLER_H
--- a/mmsharing/mmshui/src/musuiappui.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuiappui.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -86,6 +86,8 @@
                             EMbmMusuiQgn_menu_mus_app_cxt,
                             EMbmMusuiQgn_menu_mus_app_cxt_mask );
 
+    iStatusPaneHandler->GetVolumePopup()->SetObserver(this);
+    
     AknsUtils::InitSkinSupportL();
     AknsUtils::SetAvkonSkinEnabledL( ETrue );
 
@@ -169,16 +171,7 @@
         MUS_LOG( "mus: [MUSUI ]  <- CMusUiAppUi::HandleWsEventL, view is NULL" );
         return;
         }
-    
-    if ( type == EEventPointer &&
-         iStatusPaneHandler->GetVolumePopup()->IsVisible() )
-        {
-        MUS_LOG( "mus: [MUSUI ]  EMusuiCmdViewVolumeChanged" );
-        CMusUiGeneralView* activatedView = 
-                                   static_cast<CMusUiGeneralView*>( iView );
-        activatedView->HandleCommandL( EMusuiCmdViewVolumeChanged );
-        }
-   
+
     if( type == EEventKeyUp )
         {
         static_cast<CMusUiGeneralView*>
@@ -744,4 +737,23 @@
     MUS_LOG( "mus: [MUSUI ]  <- CMusUiAppUi::FindWindowGroupIdentifiersL" );
     }
 
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+void CMusUiAppUi::HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType)
+    {
+    CAknVolumePopup* popup = iStatusPaneHandler->GetVolumePopup();
+    if ( popup && popup->IsVisible() && (popup == aControl) && 
+         (aEventType == MCoeControlObserver::EEventStateChanged) )
+        {
+        MUS_LOG1( "mus: [MUSUI ]  CMusUiAppUi::HandleControlEventL(): volume[%d]",
+                popup->Value() );
+        CMusUiGeneralView* activatedView = 
+                               static_cast<CMusUiGeneralView*>( iView );
+        activatedView->HandleCommandL( EMusuiCmdViewVolumeChanged );
+        }
+
+    }
 // end of file
--- a/mmsharing/mmshui/src/musuiclipsharingcontroller.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuiclipsharingcontroller.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -113,6 +113,7 @@
                                          *this,
                                          iSipProfileId );
     iSession->SetAudioRoutingObserver( this );
+    iSession->SetVolumeChangeObserver( this );
     
     if ( iSession->AudioRoutingCanBeChanged() )
         {
--- a/mmsharing/mmshui/src/musuieventcontroller.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuieventcontroller.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -331,6 +331,18 @@
 //
 // -----------------------------------------------------------------------------
 //
+void CMusUiEventController::VolumeChanged( TInt aVolume, TBool aAudioRouteChanged )
+    {
+    // Set Volume:
+    //If volume changed due to audio route change, we want to update volume
+    //popup control only if it is already visible
+    TBool onlyIfVisible = aAudioRouteChanged;
+    TRAP_IGNORE( iSharingObserver.ActivateVolumeControlL(aVolume, onlyIfVisible) );
+    }
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 void CMusUiEventController::SetRect(const TRect& aRect)
     {
     MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::SetRect" );
@@ -691,6 +703,22 @@
     MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::ChangeOrientationL" );
     }
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+TBool CMusUiEventController::IsDisplayEnabledL()
+    {
+    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::IsDisplayEnabledL" );
+    TBool ret = EFalse;
+    if ( EngineSession() )
+        {
+        ret = EngineSession()->IsDisplayEnabledL();
+        }
+    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiEventController::IsDisplayEnabledL, %d", ret );
+    return ret;   
+    }
+
 
 // -----------------------------------------------------------------------------
 //
@@ -872,9 +900,8 @@
             // Set Volume:
             __ASSERT_ALWAYS( EngineSession(), User::Leave( KErrNotReady ) );
             EngineSession()->VolumeUpL();
-            // Update the status pane:
-            iSharingObserver.ActivateVolumeControlL( 
-                                            EngineSession()->VolumeL() );
+            // Status pane update will be done later. When we get 
+			// VolumeChanged() callback
             break;
             }
         case EMusuiCmdViewVolumeDown:
@@ -882,9 +909,8 @@
             // Set Volume:
             __ASSERT_ALWAYS( EngineSession(), User::Leave( KErrNotReady ) );
             EngineSession()->VolumeDownL();
-            // Update the status pane:
-            iSharingObserver.ActivateVolumeControlL( 
-                                            EngineSession()->VolumeL() );
+            // Status pane update will be done later. When we get 
+			// VolumeChanged() callback
             break;
             }
         case EMusuiCmdViewVolumeChanged:
--- a/mmsharing/mmshui/src/musuigeneralview.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuigeneralview.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -370,11 +370,10 @@
 //
 // -----------------------------------------------------------------------------
 //
-void CMusUiGeneralView::ActivateVolumeControlL( TInt aValue )
+void CMusUiGeneralView::ActivateVolumeControlL( TInt aValue, TBool aOnlyIfVisible )
     {
     MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::ActivateVolumeControlL" );
-    
-    MusAppUi()->MusStatusPane()->ActivateVolumeControlL( aValue );
+    MusAppUi()->MusStatusPane()->ActivateVolumeControlL( aValue, aOnlyIfVisible );
     
     MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::ActivateVolumeControlL" );
     }
--- a/mmsharing/mmshui/src/musuilivesharingcontroller.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuilivesharingcontroller.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -42,6 +42,7 @@
 using namespace MusSettingsKeys;
 
 
+const TInt KMusUiIntervalToPlay = 5000000;
 // -----------------------------------------------------------------------------
 //
 // -----------------------------------------------------------------------------
@@ -110,6 +111,7 @@
                                          iSipProfileId );
 
     iSession->SetAudioRoutingObserver( this );
+    iSession->SetVolumeChangeObserver( this );
         
     if ( iSession->AudioRoutingCanBeChanged() )
         {
@@ -142,6 +144,42 @@
 
 
 // -----------------------------------------------------------------------------
+// When orientation changed , Camera instances has to be recreated inorder
+// to receive proper orientated frames.
+// -----------------------------------------------------------------------------
+//
+void CMusUiLiveSharingController::RefreshCameraOrientationL()
+    {
+    MUS_LOG( "mus: [MUSUI ]  -> CMusUiLiveSharingController::RefreshCameraOrientationL" );
+    if ( IsPlayingL() )
+         {
+         MUS_LOG( "mus: [MUSUI ]  -> Playing, pause/stop to restart camera" );
+         TTimeIntervalMicroSeconds32 interval( KMusUiIntervalToPlay ); 
+         PauseL();
+         EnableDisplayL(false);
+         EnableDisplayL(true);
+         User::After( interval );
+         PlayL();
+         } 
+     else
+         {
+         MUS_LOG( "mus: [MUSUI ]  -> Not Playing, try display to restart camera");
+         if ( IsDisplayEnabledL() )
+             {
+             //Disabling of display will cause disabling of viewfinder and in its 
+             //turn releasing of camera, enabling of display will recreate a camera
+             //with new orientation
+             MUS_LOG( "mus: [MUSUI ]  -> display is enabled, disable/enable it");
+             EnableDisplayL(false);
+             EnableDisplayL(true);
+             }
+         else
+             {
+             MUS_LOG( "mus: [MUSUI ]  -> Not refreshing ");
+             }
+         }
+    MUS_LOG( "mus: [MUSUI ]  <- CMusUiLiveSharingController::RefreshCameraOrientationL" );
+    }
 //
 // -----------------------------------------------------------------------------
 //
--- a/mmsharing/mmshui/src/musuilivesharingview.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuilivesharingview.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -709,8 +709,11 @@
 void CMusUiLiveSharingView::RefreshCameraOrientationL(TRect& aNewRect)
     {
     MUS_LOG( "mus: [MUSUI ]  -> CMusUiLiveSharingView::RefreshCameraOrientation" );
-    if( iController && iController->IsPlayingL() )
+    if ( !iController || !iController->EngineSession() )
         {        
+        MUS_LOG( "mus: [MUSUI ]  <- CMusUiLiveSharingView::RefreshCameraOrientation, no session" );
+        return;
+        }
         TRect oldRect = iController->EngineSession()->Rect();
         MUS_LOG2( "mus: [MUSUI ]  -> Old Rect (width = %d,height=%d)",oldRect.Width(),oldRect.Height() );
         MUS_LOG2( "mus: [MUSUI ]  -> New Rect (width = %d,height=%d)",aNewRect.Width(),aNewRect.Height() );
@@ -726,18 +729,14 @@
            )
            {
            MUS_LOG( "mus: [MUSUI ]  -> Orientation Changed.Restart Camera" );
-           iController->PauseL();
-           iController->PlayL();        
+           iController->RefreshCameraOrientationL();
            }  
         else
            {
            MUS_LOG( "mus: [MUSUI ]  -> Orientation Not changed. dont restart camera");    
            }          
-        }        
-    else
-        {
-        MUS_LOG( "mus: [MUSUI ]  -> Not Playing");
-        }
+       
+
 
     MUS_LOG( "mus: [MUSUI ]  <- CMusUiLiveSharingView::RefreshCameraOrientation" );
     }
--- a/mmsharing/mmshui/src/musuilivesharingviewcontainer.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuilivesharingviewcontainer.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -245,12 +245,10 @@
 void CMusUiLiveSharingViewContainer::HandlePointerEventL( 
                                             const TPointerEvent& aPointerEvent)
     {
-    if ( Rect().Contains( aPointerEvent.iPosition ) )
-        {
         // Forward to base class in order to use slider
         CCoeControl::HandlePointerEventL( aPointerEvent );
-        }
-    else
+	    
+	if ( !Rect().Contains( aPointerEvent.iPosition ) )
         {
         MakeVisible( EFalse );
         }
--- a/mmsharing/mmshui/src/musuireceivecontroller.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuireceivecontroller.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Application's UI class.
-*  Version     : %version:  75.1.10 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version:  75.1.11 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -118,6 +118,7 @@
     // construct an engine session
     iSession = CMusEngReceiveSession::NewL( aRect, *this, *this );
     iSession->SetAudioRoutingObserver( this );
+    iSession->SetVolumeChangeObserver( this );
         
     iTimer = CMusUiActiveTimer::NewL( this );
     iTimer->After( KMusReceiveTimeout );
--- a/mmsharing/mmshui/src/musuistatuspanehandler.cpp	Fri Mar 12 15:42:21 2010 +0200
+++ b/mmsharing/mmshui/src/musuistatuspanehandler.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -204,7 +204,7 @@
 // Activates volume control.
 // -----------------------------------------------------------------------------
 //
-void CMusUiStatusPaneHandler::ActivateVolumeControlL( TInt aVolume )
+void CMusUiStatusPaneHandler::ActivateVolumeControlL( TInt aVolume, TBool aOnlyIfVisible )
     {
     MUS_LOG( "mus: [MUSUI ]  -> CMusUiStatusPaneHandler::ActivateVolumeControlL" );
 
@@ -213,10 +213,12 @@
         MUS_LOG( "mus: [MUSUI ]  <- CMusUiStatusPaneHandler::SetVolumeControlValue: returning" );
         return;
         }
-        
-    iVolumePopup->SetValue( aVolume );
-    iVolumePopup->ShowVolumePopupL();
-    
+
+    if ( !aOnlyIfVisible || (aOnlyIfVisible && iVolumePopup->IsVisible()) )
+        {
+        iVolumePopup->SetValue( aVolume );
+        iVolumePopup->ShowVolumePopupL();
+        }
     MUS_LOG( "mus: [MUSUI ]  <- CMusUiStatusPaneHandler::ActivateVolumeControlL" );
     }
     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/centralrepositorystub/inc/cenrepnotifyhandler.h	Mon Mar 15 12:40:08 2010 +0200
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+
+
+#ifndef CENREPNOTIFYHANDLER_H
+#define CENREPNOTIFYHANDLER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class MCenRepNotifyHandlerCallback;
+class CRepository;
+
+
+
+class CCenRepNotifyHandler : public CBase//CActive
+    {
+    public:
+        /**
+        * Defines different key types. Enumeration is used to indicate the 
+        * key type that is listened to. 
+        */
+        enum TCenRepKeyType
+        {
+            EIntKey,    ///< Key holds a TInt value.
+            ERealKey,   ///< Key holds a TReal value.
+            EStringKey, ///< Key holds a TDesC16 value.
+            EBinaryKey  ///< Key holds a TDesC8 value.
+        };
+
+        IMPORT_C static CCenRepNotifyHandler* NewL( MCenRepNotifyHandlerCallback& aCallback, 
+                                                    CRepository& aSession );
+
+        IMPORT_C static CCenRepNotifyHandler* NewLC( MCenRepNotifyHandlerCallback& aCallback, 
+                                                     CRepository& aSession );
+        IMPORT_C void StartListeningL();
+
+        IMPORT_C void StopListening();
+
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CCenRepNotifyHandler();
+/*
+    protected:
+
+        void RunL();
+    
+        TInt RunError( TInt aError );
+
+        void DoCancel();
+*/
+    private:
+                                                   
+        CCenRepNotifyHandler( MCenRepNotifyHandlerCallback& aCallback, 
+                              CRepository& aSession );
+       
+    private:
+        
+        CRepository& iSession;  // not owned by this class
+        MCenRepNotifyHandlerCallback& iCallback; // not owned by this class
+//        TCenRepKeyType iKeyType;
+//        TUint32 iId;        
+//        TBool iWholeRepository;  // The flag to indicate if listening is for whole repository
+    };
+
+
+/**
+* Class provides a callback interface for handling the notifification
+* events from the Central Repository. The Client derives a class 
+* from this interface and implements the HandleNotify-methods that 
+* interest it.
+* An empty default implementation is provided for all of the methods.
+* In debug build the default implementations print out a debug trace.
+*
+* @publishedPartner
+* @released
+*/
+class MCenRepNotifyHandlerCallback
+    {
+
+    public:
+
+    /** 
+    * This callback method is used to notify the client about
+    * changes in keys when the whole repository is listened for.
+    *
+    * Note: It is not guaranteed that a notification will be received
+    *       for all keys, if multiple keys are changed in rapid succession
+    *       by multiple threads or when the whole repository is reset,
+    *       therefore only listen for whole repository if this is not an issue.
+    *
+    * @param aId Id of the key that has changed. If multiple keys were changed by
+    *            whole repository reset, value will be KInvalidNotificationId.
+    * @capability Dependent Capability required depends on implementation of override.
+    */
+    IMPORT_C virtual void HandleNotifyGeneric( TUint32 aId );
+
+    };
+
+#endif      // CENREPNOTIFYHANDLER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/centralrepositorystub/src/cenrepnotifyhandlerstub.cpp	Mon Mar 15 12:40:08 2010 +0200
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 2005 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: 
+*
+*/
+
+
+#include "cenrepnotifyhandler.h"
+#include "centralrepository.h"
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+CCenRepNotifyHandler::CCenRepNotifyHandler(
+     MCenRepNotifyHandlerCallback& aCallback, 
+     CRepository& aSession)
+     : iSession(aSession), iCallback(aCallback)
+    {
+    } 
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CCenRepNotifyHandler* CCenRepNotifyHandler::NewL(
+     MCenRepNotifyHandlerCallback& aCallback, 
+     CRepository& aSession)
+    {
+    CCenRepNotifyHandler* newInstance = NewLC(aCallback, aSession);
+    CleanupStack::Pop();
+    return newInstance;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CCenRepNotifyHandler* CCenRepNotifyHandler::NewLC(
+     MCenRepNotifyHandlerCallback& aCallback, 
+     CRepository& aSession)
+    {
+    CCenRepNotifyHandler* newInstance = new (ELeave) CCenRepNotifyHandler(aCallback, aSession);
+    CleanupStack::PushL( newInstance );
+    
+    return newInstance;
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CCenRepNotifyHandler::~CCenRepNotifyHandler()
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CCenRepNotifyHandler::StartListeningL()
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CCenRepNotifyHandler::StopListening()
+    {
+    
+    }
+
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void MCenRepNotifyHandlerCallback::HandleNotifyGeneric(TUint32 /*aId*/)
+    {
+    
+    }