--- a/mmsharing/mmshmanagersrv/src/musmanagerservercore.cpp Thu Aug 19 09:51:39 2010 +0300
+++ b/mmsharing/mmshmanagersrv/src/musmanagerservercore.cpp Tue Aug 31 15:12:07 2010 +0300
@@ -25,10 +25,13 @@
#include "muslogger.h"
#include "musmanagerservercoreobserver.h"
#include "musmanager.h"
+#include "musmanagerservercommon.h"
using namespace MultimediaSharing;
// CONSTANTS
+_LIT8( KMusEngineName, "MultimediaSharing" );
+
// -----------------------------------------------------------------------------
// CMusManagerServerCore::NewL
@@ -81,6 +84,8 @@
iApplicationManager = CMusApplicationManager::NewL();
+ iApplicationManager->ResolvePluginNameL( iPluginName );
+
iPluginManager = CMusAvailabilityPluginManager::NewL( *this, *iApplicationManager );
MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::ConstructL" );
@@ -115,7 +120,7 @@
{
MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::AvailabilityQueryL" );
MultimediaSharing::TMusAvailabilityStatus status
- = iPluginManager->Availability();
+ = Availability();
MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::AvailabilityQueryL" );
return status;
@@ -127,7 +132,8 @@
void CMusManagerServerCore::CommandL( MultimediaSharing::TCommandType aCommandType )
{
MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::CommandL" );
- if ( aCommandType == MultimediaSharing::ECommandManualActivation )
+ if ( aCommandType == MultimediaSharing::ECommandManualActivation &&
+ IsMusEnginePlugin() )
{
MUS_LOG( "mus: [MUSSRV] Manual Activation is started" )
iPluginManager->ManualQueryL();
@@ -142,7 +148,10 @@
void CMusManagerServerCore::InvestigateAvailabilityL()
{
MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::InvestigateAvailabilityL" );
- iPluginManager->InvestigateAvailabilityL();
+ if ( IsMusEnginePlugin() )
+ {
+ iPluginManager->InvestigateAvailabilityL();
+ }
MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::InvestigateAvailabilityL" );
}
@@ -157,23 +166,41 @@
TInt uid = aChannelId.iUid;
if( uid == CMusManager::ESipInviteDesired &&
- iPluginManager->ApplicationAllowed() )
- {
+ ApplicationAllowed() )
+ {
+ PrepareForReceivedInviteL();
+
// write session boundary values
- iApplicationManager->WriteSessionPropertiesL(
- MultimediaSharing::EMusReceive,
- iPluginManager->Availability(),
- iPluginManager->SessionParametersL() );
+ WriteSessionPropertiesL(
+ MultimediaSharing::EMusReceive,
+ Availability(),
+ iPluginManager->SessionParametersL() );
iApplicationManager->StartApplicationL();
}
- else if( uid == CMusManager::ESipInviteNotDesired )
+ else if( uid == CMusManager::ESipInviteDesired2WayVideo &&
+ ApplicationAllowed() )
{
- iPluginManager->InvitationReceivedL();
+ PrepareForReceivedInviteL();
+
+ // write session boundary values
+ WriteSessionPropertiesL(
+ MultimediaSharing::EMusReceiveTwoWayVideo,
+ Availability(),
+ iPluginManager->SessionParametersL() );
+
+ iApplicationManager->StartApplicationL();
}
- else
+ else if ( IsMusEnginePlugin() )
{
- User::Leave( KErrNotReady );
+ if( uid == CMusManager::ESipInviteNotDesired )
+ {
+ iPluginManager->InvitationReceivedL();
+ }
+ else
+ {
+ User::Leave( KErrNotReady );
+ }
}
MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::InvitationReceivedL" );
@@ -186,7 +213,10 @@
void CMusManagerServerCore::OptionsReceivedL( TUid /*aChannelId*/ )
{
MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::OptionsReceivedL" );
- iPluginManager->OptionsReceivedL();
+ if ( IsMusEnginePlugin() )
+ {
+ iPluginManager->OptionsReceivedL();
+ }
MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::OptionsReceivedL" );
}
@@ -198,13 +228,13 @@
{
MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::StartMultimediaSharingL" );
if( !iApplicationManager->ApplicationRunning() &&
- iPluginManager->ApplicationAllowed() )
+ ApplicationAllowed() )
{
// write session boundary values
- iApplicationManager->WriteSessionPropertiesL(
- aUseCase,
- iPluginManager->Availability(),
- iPluginManager->SessionParametersL() );
+ WriteSessionPropertiesL(
+ aUseCase,
+ Availability(),
+ iPluginManager->SessionParametersL() );
// start actual application
iApplicationManager->StartApplicationL();
@@ -234,10 +264,13 @@
void CMusManagerServerCore::EventNoSessions()
{
MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::EventNoSessions" );
- TRAPD( error, iPluginManager->StopPluginL() );
- if( error )
+ if ( IsMusEnginePlugin() )
{
- // iObserver.StopServer();
+ TRAPD( error, iPluginManager->StopPluginL() );
+ if( error )
+ {
+ // iObserver.StopServer();
+ }
}
iObserver.StopServer();
MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::EventNoSessions" );
@@ -266,11 +299,18 @@
{
MUS_LOG1( "mus: [MUSSRV] -> CMusManagerServerCore::AvailabilityChangedL( %d )",
aAvailability );
+
+ if ( !IsMusEnginePlugin() )
+ {
+ MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::AvailabilityChangedL - \
+ non-MuS plugin");
+ return;
+ }
// inform ui via application manager (via session api)
- iApplicationManager->WriteSessionPropertiesL(
- aAvailability,
- iPluginManager->SessionParametersL() );
+ WriteSessionPropertiesL(
+ aAvailability,
+ iPluginManager->SessionParametersL() );
if( iAvailabilityMonitors.Count() )
{
@@ -337,9 +377,15 @@
// Starts live video sharing.
// -----------------------------------------------------------------------------
//
-void CMusManagerServerCore::StartLiveSharingL()
+void CMusManagerServerCore::StartSharingWithUseCaseL(
+ MultimediaSharing::TMusUseCase aUseCase )
{
- StartMultimediaSharingL( MultimediaSharing::EMusLiveVideo );
+ MUS_LOG1( "mus: [MUSSRV] -> CMusManagerServerCore::StartSharingWithUseCaseL:%d",
+ aUseCase );
+
+ StartMultimediaSharingL( aUseCase );
+
+ MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::StartSharingWithUseCaseL" );
}
// -----------------------------------------------------------------------------
@@ -357,4 +403,99 @@
}
}
+// -----------------------------------------------------------------------------
+// CMusManagerServerCore::IsMusEnginePlugin
+// -----------------------------------------------------------------------------
+//
+TBool CMusManagerServerCore::IsMusEnginePlugin()
+ {
+ TBool isMus( EFalse );
+ if ( !iPluginName.Compare( KMusEngineName ) )
+ {
+ isMus = ETrue;
+ }
+ return isMus;
+ }
+
+// -----------------------------------------------------------------------------
+// CMusManagerServerCore::Availability
+// -----------------------------------------------------------------------------
+//
+MultimediaSharing::TMusAvailabilityStatus CMusManagerServerCore::Availability()
+ {
+ MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerCore::Availability" );
+ if ( IsMusEnginePlugin() )
+ {
+ MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::Availability - MuS plugin" );
+ return iPluginManager->Availability();
+ }
+ else
+ {
+ MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerCore::Availability - non-MuS plugin" );
+ return EMultimediaSharingAvailable;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMusManagerServerCore::ApplicationAllowed
+// -----------------------------------------------------------------------------
+//
+TBool CMusManagerServerCore::ApplicationAllowed()
+ {
+ if ( IsMusEnginePlugin() )
+ {
+ return iPluginManager->ApplicationAllowed();
+ }
+ else
+ {
+ return ETrue;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMusManagerServerCore::PrepareForReceivedInviteL
+// -----------------------------------------------------------------------------
+//
+void CMusManagerServerCore::PrepareForReceivedInviteL()
+ {
+ if ( IsMusEnginePlugin() )
+ {
+ iPluginManager->PrepareForReceivedInviteL();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMusManagerServerCore::WriteSessionPropertiesL
+// -----------------------------------------------------------------------------
+//
+void CMusManagerServerCore::WriteSessionPropertiesL(
+ MultimediaSharing::TMusUseCase aUseCase,
+ MultimediaSharing::TMusAvailabilityStatus aStatus,
+ MDesCArray& aSessionParameters )
+ {
+ if ( IsMusEnginePlugin() )
+ {
+ iApplicationManager->WriteSessionPropertiesL(
+ aUseCase,
+ aStatus,
+ aSessionParameters );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMusManagerServerCore::WriteSessionPropertiesL
+// -----------------------------------------------------------------------------
+//
+void CMusManagerServerCore::WriteSessionPropertiesL(
+ MultimediaSharing::TMusAvailabilityStatus aStatus,
+ MDesCArray& aSessionParameters )
+ {
+ if ( IsMusEnginePlugin() )
+ {
+ iApplicationManager->WriteSessionPropertiesL(
+ aStatus,
+ aSessionParameters );
+ }
+ }
+
// End of File