# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268649608 -7200 # Node ID ff8a573c0e2e94648e7f5a66f37b179dcea03bb6 # Parent 04980be5c5fe5891a535fad472d01445c0a9479c Revision: 201009 Kit: 201010 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/bwins/musengineu.def --- 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 *) diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/eabi/musengineu.def --- 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 ; ## - _ZTI17CMusEngMceSession @ 72 NONAME ; ## - _ZTI18CMusEngClipSession @ 73 NONAME ; ## - _ZTI18CMusEngLiveSession @ 74 NONAME ; ## - _ZTI20CMusEngMceOutSession @ 75 NONAME ; ## - _ZTI21CMusEngReceiveSession @ 76 NONAME ; ## - _ZTI21CMusEngTelephoneUtils @ 77 NONAME ; ## - _ZTI21CMusSipProfileHandler @ 78 NONAME ; ## - _ZTI27CMusEngSessionDurationTimer @ 79 NONAME ; ## - _ZTV14CMusEngSession @ 80 NONAME ; ## - _ZTV17CMusEngMceSession @ 81 NONAME ; ## - _ZTV18CMusEngClipSession @ 82 NONAME ; ## - _ZTV18CMusEngLiveSession @ 83 NONAME ; ## - _ZTV20CMusEngMceOutSession @ 84 NONAME ; ## - _ZTV21CMusEngReceiveSession @ 85 NONAME ; ## - _ZTV21CMusEngTelephoneUtils @ 86 NONAME ; ## - _ZTV21CMusSipProfileHandler @ 87 NONAME ; ## - _ZTV27CMusEngSessionDurationTimer @ 88 NONAME ; ## + _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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/group/musengine.mmp --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/inc/musengmcesession.h --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/inc/musengsession.h --- 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 @@ -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; }; diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/inc/musengtelephoneutils.h --- 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 #include #include +#include // 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; }; diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/inc/musengvolumechangeobserver.h --- /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 + +// 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/src/musengmcesession.cpp --- 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()" ) + } diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/src/musengsession.cpp --- 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 ); + } + } diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/src/musengtelephoneutils.cpp --- 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 // 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 ); + } diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/BWINS/ut_musengineU.DEF --- 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 &) + ?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 &) + ?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 &) + ?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 &) + ?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 &) + ??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 &) + ?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 &) diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/group/ut_musengine.mmp --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/inc/musengstubs.h --- 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 @@ -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; }; diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengmcesession.h --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengsession.h --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/inc/ut_musengtelephoneutils.h --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/src/musengstubs.cpp --- 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; } diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengmcesession.cpp --- 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( + 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengsession.cpp --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengtelephoneutils.cpp --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/inc/musuiappui.h --- 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 #include #include +#include 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* HelpContextL() const; + +private: + + //from MCoeControlObserver + void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType); private: diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/inc/musuieventcontroller.h --- 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 // 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/inc/musuigeneralview.h --- 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 ); diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/inc/musuilivesharingcontroller.h --- 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: diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/inc/musuisharingobserver.h --- 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; diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/inc/musuistatuspanehandler.h --- 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 diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuiappui.cpp --- 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( iView ); - activatedView->HandleCommandL( EMusuiCmdViewVolumeChanged ); - } - + if( type == EEventKeyUp ) { static_cast @@ -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( iView ); + activatedView->HandleCommandL( EMusuiCmdViewVolumeChanged ); + } + + } // end of file diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuiclipsharingcontroller.cpp --- 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() ) { diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuieventcontroller.cpp --- 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: diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuigeneralview.cpp --- 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" ); } diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuilivesharingcontroller.cpp --- 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" ); + } // // ----------------------------------------------------------------------------- // diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuilivesharingview.cpp --- 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" ); } diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuilivesharingviewcontainer.cpp --- 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 ); } diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuireceivecontroller.cpp --- 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 ); diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshui/src/musuistatuspanehandler.cpp --- 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" ); } diff -r 04980be5c5fe -r ff8a573c0e2e tsrc/centralrepositorystub/inc/cenrepnotifyhandler.h --- /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 +#include + +// 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 diff -r 04980be5c5fe -r ff8a573c0e2e tsrc/centralrepositorystub/src/cenrepnotifyhandlerstub.cpp --- /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*/) + { + + }