mmsharing/mmshavailability/src/musavacapability.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 0 f0cf47e981f9
child 23 bc78a40cd63c
--- a/mmsharing/mmshavailability/src/musavacapability.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ b/mmsharing/mmshavailability/src/musavacapability.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -23,14 +23,11 @@
 #include "musavacapabilitycontext.h"
 #include "mmusavacapabilityqueryobserver.h"
 #include "mussettings.h"
-#include "mussettingskeys.h"
 
 #include <e32math.h>
 #include <uri8.h>
 #include <escapeutils.h>
-//#include <sip.h>
 #include <sipservertransaction.h>
-//#include <sipclienttransaction.h>
 #include <sipacceptcontactheader.h>
 #include <sipcontactheader.h>
 #include <siprequestelements.h>
@@ -209,6 +206,9 @@
     aResponseContent.AttributeFields().AppendL( type );
     CleanupStack::Pop( type );
     
+    //Add fast startup mode, if supported
+    AddFastModeL( aResponseContent );
+
     MUS_LOG( "mus: [MUSAVA] Adding media line to SDP" )
     //media line    
     CSdpMediaField* mediaLine = MediaLineLC( 
@@ -340,6 +340,54 @@
     return codecs;
     }
     
+// -----------------------------------------------------------------------------
+// CMusAvaCapability::ResolveFastModeL
+// -----------------------------------------------------------------------------
+// 
+MusSettingsKeys::TFastMode CMusAvaCapability::ResolveFastModeL( 
+        CSdpDocument& aSDP )
+    {
+    MUS_LOG( "mus: [MUSAVA]: -> CMusAvaCapability::ResolveFastModeL" )
+    MusSettingsKeys::TFastMode mode = MusSettingsKeys::EFastModeOff;
+    if ( MultimediaSharingSettings::FastStartupModeL() == 
+            MusSettingsKeys::EFastModeOn )
+        {
+        MUS_LOG( "mus: [MUSAVA] Checking if a=keywds:fastmode present..." )
+        const CSdpAttributeField* keywds = CMusAvaCapability::Attribute( 
+                    MusAvaCapabilityContext::SDPStringL( 
+                        SdpCodecStringConstants::EAttributeKeywds ),
+                    aSDP );
+        if ( keywds && 
+             keywds->Value().Compare( KCapabilitySDPAttributeFastMode ) == 0 )        
+            {
+            mode = MusSettingsKeys::EFastModeOn;
+            }
+        }
+    MUS_LOG( "mus: [MUSAVA]: <- CMusAvaCapability::ResolveFastModeL" )
+    return mode;
+    }
+
+// -----------------------------------------------------------------------------
+// CMusAvaCapability::ResolveFastModeL
+// -----------------------------------------------------------------------------
+// 
+void CMusAvaCapability::AddFastModeL( CSdpDocument& aSdp )
+    {
+    MUS_LOG( "mus: [MUSAVA]: -> CMusAvaCapability::AddFastModeL" )
+    if ( MultimediaSharingSettings::FastStartupModeL() == 
+            MusSettingsKeys::EFastModeOn )
+        {
+        CSdpAttributeField* fastmode = CSdpAttributeField::NewLC(
+             MusAvaCapabilityContext::SDPStringL( 
+                 SdpCodecStringConstants::EAttributeKeywds ), 
+             KCapabilitySDPAttributeFastMode );
+                                           
+        aSdp.AttributeFields().AppendL( fastmode );
+        CleanupStack::Pop( fastmode );
+        }    
+    MUS_LOG( "mus: [MUSAVA]: <- CMusAvaCapability::AddFastModeL" )        
+    }
+
 
 // -----------------------------------------------------------------------------
 // CMusAvaCapability::Attribute