multimediacommsengine/mmcesrv/mmcemediamanager/src/mcemessagesdpcodec.cpp
author vnuitven <>
Mon, 06 Sep 2010 17:32:13 +0530
branchrcs
changeset 49 64c62431ac08
child 50 1d8943dd8be6
permissions -rw-r--r--
RCS feature support in MCE/MCC. Provides APIs to do RCS chat and file transfer as per RCS specificaitons. For both os these MCE uses the MSRP protocol.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     1
/*
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     2
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     3
* All rights reserved.
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     8
*
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
     9
* Initial Contributors:
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    11
*
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    12
* Contributors:
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    13
*
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    14
* Description:  
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    15
*
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    16
*/
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    17
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    18
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    19
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    20
// INCLUDE FILES
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    21
#include <e32base.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    22
#include <e32std.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    23
#include <e32def.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    24
#include <stringpool.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    25
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    26
#include <sdpdocument.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    27
#include <sdpcodecstringconstants.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    28
#include <sdpcodecstringpool.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    29
#include <sdpmediafield.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    30
#include <sdpattributefield.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    31
#include <sdprtpmapvalue.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    32
#include <sdpfmtattributefield.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    33
#include <sdporiginfield.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    34
#include <e32err.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    35
#include <uricommon.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    36
#include <uri8.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    37
#include <uriutils.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    38
#include <SdpConnectionField.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    39
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    40
#include "mcemediadefs.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    41
#include "mcemessagesdpcodec.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    42
#include "mcecommessagestream.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    43
#include "mcemessagestream.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    44
#include "mcecommessagecodec.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    45
#include "mcemediadefs.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    46
#include "mcecomfactory.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    47
#include "mcemmlogs.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    48
#include "mcecommsrpsource.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    49
#include "mcecomexternalsink.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    50
#include "mcecomexternalsource.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    51
#include "mcecommsrpsink.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    52
#include "mcecommediasource.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    53
#include "mcedefs.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    54
#include "mcecomendpoint.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    55
#include <mcemsrpsink.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    56
#include <mcemsrpsource.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    57
#include <mcemessagesink.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    58
#include <mcemessagesource.h>
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    59
#include "mcecommessagesink.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    60
#include "mcecommessagesource.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    61
#include "mcemsrpsink.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    62
#include "mceexternalsource.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    63
#include "mceexternalsink.h"
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    64
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    65
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    66
// ================= MEMBER FUNCTIONS =======================
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    67
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    68
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    69
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    70
// CMceMessageSdpCodec::NewL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    71
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    72
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    73
CMceMessageSdpCodec* CMceMessageSdpCodec::NewL()
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    74
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    75
    MCEMM_DEBUG( "CMceMessageSdpCodec::CMceMessageSdpCodec::NewL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    76
    RStringF message = MCE_SDP_STRING_MESSAGEL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    77
    /*
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    78
    RStringPool sPool;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    79
    RStringF message =sPool.OpenFStringL(KMceMediaMessage);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    80
    */    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    81
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    82
    CMceMessageSdpCodec* self = new (ELeave) CMceMessageSdpCodec( message );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    83
    CleanupStack::PushL( self );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    84
    self->ConstructL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    85
    CleanupStack::Pop( self );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    86
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    87
    MCEMM_DEBUG( "CMceMessageSdpCodec::CMceMessageSdpCodec::NewL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    88
    return self;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    89
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    90
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    91
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    92
// CMceMessageSdpCodec::CMceMessageSdpCodec
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    93
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    94
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    95
CMceMessageSdpCodec::CMceMessageSdpCodec( RStringF aMedia )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    96
    : CMceMediaSdpCodec( aMedia )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    97
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    98
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
    99
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   100
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   101
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   102
// CMceMessageSdpCodec::~CMceMessageSdpCodec
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   103
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   104
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   105
CMceMessageSdpCodec::~CMceMessageSdpCodec()
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   106
    { 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   107
    MCEMM_DEBUG( "CMceMessageSdpCodec::~CMceMessageSdpCodec, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   108
    iNetType.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   109
    iAddressType.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   110
    iAcceptTypesStr.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   111
    iPathStr.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   112
    iAcceptWrappedTypesStr.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   113
    iFileSelectorStr.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   114
    iFileTransferidStr.Close();  
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   115
    iFileDispositionStr.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   116
    iConnectionStr.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   117
    MCEMM_DEBUG( "CMceMessageSdpCodec::~CMceMessageSdpCodec, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   118
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   119
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   120
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   121
// CMceMessageSdpCodec::Encodes
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   122
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   123
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   124
TBool CMceMessageSdpCodec::Encodes( const CMceComMediaStream& aStream ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   125
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   126
    return aStream.iStreamType != CMceComMediaStream::ELocalStream &&
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   127
           aStream.iType == KMceMessage;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   128
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   129
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   130
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   131
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   132
// CMceMessageSdpCodec::EncodeRtpmapAttributeLC
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   133
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   134
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   135
CSdpFmtAttributeField* CMceMessageSdpCodec::EncodeRtpmapAttributeLC( CMceComCodec& /*aCodec*/ ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   136
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   137
    MCEMM_DEBUG( "CMceMessageSdpCodec::EncodeRtpmapAttributeLC(), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   138
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   139
    CSdpFmtAttributeField* rtpmapAttribute = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   140
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   141
    CleanupStack::PushL( rtpmapAttribute );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   142
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   143
    MCEMM_DEBUG( "CMceMessageSdpCodec::EncodeRtpmapAttributeLC(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   144
    return rtpmapAttribute;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   145
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   146
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   147
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   148
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   149
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   150
// CMceMessageSdpCodec::EncodeMessageMediaAttributesL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   151
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   152
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   153
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   154
void CMceMessageSdpCodec::EncodeMessageMediaAttributesL( CMceComMessageStream& aStream, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   155
                                                            CSdpMediaField& aMediaLine)                                             
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   156
     {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   157
     // Message stream level attributes will be set through client SDP attributes.
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   158
    MCEMM_DEBUG( "CMceMessageSdpCodec::EncodeMessageMediaAttributesL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   159
     CMceComMsrpSource* msrpSource = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   160
     CMceComMsrpSink* msrpSink = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   161
     if ( (aStream.iStreamType == CMceComMediaStream::ESendOnlyStream) ||
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   162
             (aStream.iStreamType == CMceComMediaStream::ESendStream))
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   163
         {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   164
         for(TInt i=0; i<aStream.Sinks().Count(); i++)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   165
             {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   166
             if ( (aStream.Sinks())[i]->iType == KMceMSRPSink)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   167
                 {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   168
                 msrpSink = dynamic_cast<CMceComMsrpSink*>( aStream.Sinks()[i]);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   169
                 break;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   170
                 }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   171
             }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   172
         }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   173
        else  //it meamsn it is sendrecv stream so the parameters are expected to be set to msrpSink
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   174
         {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   175
         __ASSERT_ALWAYS(aStream.Source()->iType == KMceMSRPSource, User::Leave(KErrArgument));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   176
         msrpSource = dynamic_cast<CMceComMsrpSource*>( aStream.Source());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   177
         }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   178
     
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   179
     __ASSERT_ALWAYS(msrpSource!=NULL || msrpSink!= NULL, User::Leave(KErrNotFound));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   180
     
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   181
     RPointerArray<CMceComMediaSink> &sinks = aStream.Sinks(); //== KMceMessageSink
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   182
     
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   183
     if( (aStream.iSource->iType == KMceMSRPSource && sinks[0]->iType == KMceMessageSink) || aStream.iSource->iType == KMceMessageSource) // down link
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   184
         {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   185
         if(aStream.iLocalMsrpPath.Length() && ( aStream.Session()->Streams().Count() != 2 || aStream.iStreamType != CMceComMediaStream::ESendOnlyStream) )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   186
             {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   187
             if (iPathStr.DesC().Length() == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   188
                 {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   189
                 iPathStr = SdpCodecStringPool::StringPoolL().OpenFStringL(KMceSDPNamePath);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   190
                 CleanupClosePushL( iPathStr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   191
                 }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   192
             
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   193
             HBufC16* localPath = HBufC16::NewLC(256);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   194
             localPath->Des().Copy(aStream.iLocalMsrpPath);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   195
             CUri8* uri = UriUtils::CreateUriL(*localPath);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   196
             
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   197
             // if the realy is supported then the last entry will always indicates its own MSRP URI
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   198
             SetHostAddrFromPathAttrL(uri->Uri(), aMediaLine); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   199
             // Set local port number from the msrp path
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   200
             //SetPortFromPathAttrL((TUriC8&)uri->Uri(), aStream);            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   201
             // Create the path SDP attr and append this to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   202
             CSdpAttributeField* pathAttr = CSdpAttributeField::NewLC( iPathStr, aStream.iLocalMsrpPath);                     
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   203
             MCEMM_DEBUG_SVALUE( "path Attribute value from MSRP stack:", aStream.iLocalMsrpPath )         
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   204
             aMediaLine.AttributeFields().AppendL( pathAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   205
             CleanupStack::Pop(pathAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   206
             CleanupStack::PopAndDestroy(localPath);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   207
             if (iPathStr.DesC().Length() != 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   208
                 CleanupStack::PopAndDestroy(&iPathStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   209
             
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   210
             delete uri;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   211
             }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   212
         }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   213
     else if(aStream.iSource->iType == KMceMessageSource && msrpSink->iType == KMceMSRPSink) // message uplink
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   214
         {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   215
         //NOP
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   216
         }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   217
     else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   218
         {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   219
         SetPathAttributeL(aStream, msrpSource, msrpSink, aMediaLine);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   220
         }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   221
    // EncodeFileAttributeL( aStream, aMediaLine );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   222
     SetAcceptTypesAttributeL(msrpSource, msrpSink, aMediaLine);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   223
     SetAcceptWrappedAttributeL(msrpSource, msrpSink, aMediaLine);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   224
     SetFileShareAttributeL(msrpSource, msrpSink, aMediaLine);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   225
     
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   226
     // Set Information attribute
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   227
     HBufC8* infoPtr = msrpSource!=NULL ? msrpSource->iSessInfo : msrpSink->iSessInfo;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   228
     if (infoPtr != NULL)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   229
         aMediaLine.SetInfoL(infoPtr->Des());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   230
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   231
     // set msrp conneciton attribute
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   232
     SetConnectionAttributeL(aStream, aMediaLine);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   233
     MCEMM_DEBUG( "CMceMessageSdpCodec::EncodeMessageMediaAttributesL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   234
     }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   235
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   236
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   237
// CMceMessageSdpCodec::EncodeMediaAttributesL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   238
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   239
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   240
void CMceMessageSdpCodec::EncodeMediaAttributesL( CMceComCodec& /*aCodec*/, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   241
                                                CSdpMediaField& /*aMediaLine*/, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   242
                                                CSdpFmtAttributeField& /*aRtpmap*/ ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   243
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   244
    MCEMM_DEBUG( "CMceMessageSdpCodec::EncodeMediaAttributesL(), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   245
    MCEMM_DEBUG( "CMceMessageSdpCodec::EncodeMediaAttributesL(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   246
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   247
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   248
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   249
// CMceMessageSdpCodec::DecodeMediaAttributesL 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   250
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   251
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   252
void CMceMessageSdpCodec::DecodeMediaAttributesL(
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   253
    CSdpMediaField& /*aMediaLine*/, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   254
    CMceComCodec& /*aCodec*/,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   255
    CSdpFmtAttributeField& /*aRtpmap*/ ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   256
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   257
    MCEMM_DEBUG( "CMceMessageSdpCodec::DecodeMediaAttributesL(), Entry ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   258
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   259
    MCEMM_DEBUG("CMceMessageSdpCodec::DecodeMediaAttributesL(), Exit ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   260
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   261
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   262
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   263
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   264
// CMceMessageSdpCodec::CreateStreamLC
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   265
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   266
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   267
CMceComMediaStream* CMceMessageSdpCodec::CreateStreamLC( TInt aType ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   268
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   269
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateStreamLC(), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   270
   CMceComMessageStream* messagestream = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   271
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   272
    if( aType == SdpCodecStringConstants::EAttributeSendonly )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   273
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   274
        // downlink
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   275
        MCEMM_DEBUG( "create downlink" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   276
        messagestream = CreateDownlinkStreamL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   277
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   278
    else if( aType == SdpCodecStringConstants::EAttributeRecvonly )        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   279
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   280
        // uplink 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   281
        MCEMM_DEBUG( "create uplink" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   282
        messagestream = CreateUplinkStreamL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   283
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   284
    else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   285
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   286
        // sendrcv 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   287
        // create two way stream
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   288
        // create downlink
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   289
        MCEMM_DEBUG( "create two-way stream" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   290
        messagestream = CreateDownlinkStreamL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   291
        CleanupStack::PushL( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   292
        // create bounded uplink
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   293
       CMceComMessageStream *boundUplink = CreateUplinkStreamL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   294
        CleanupStack::PushL( boundUplink );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   295
        messagestream->BindL( boundUplink );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   296
        CleanupStack::Pop( boundUplink ); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   297
        CleanupStack::Pop( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   298
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   299
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   300
    CleanupStack::PushL( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   301
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   302
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateStreamLC(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   303
    return messagestream;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   304
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   305
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   306
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   307
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   308
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   309
// CMceMessageSdpCodec::UpdateStreamL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   310
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   311
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   312
void CMceMessageSdpCodec::UpdateStreamL( CMceComMediaStream& aStream, TInt aDirection ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   313
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   314
    MCEMM_DEBUG( "CMceMessageSdpCodec::UpdateStreamL(), Entry ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   315
    MCE_DEFINE_AUDIO( stream, aStream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   316
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   317
   CMceComMessageStream* messagestream = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   318
   CMceComMessageStream& amessagestream = (CMceComMessageStream&)( aStream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   319
    TInt streamType = stream.SdpStreamType();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   320
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   321
    if ( aDirection != SdpCodecStringConstants::EAttributeInactive )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   322
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   323
        switch( streamType )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   324
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   325
            case SdpCodecStringConstants::EAttributeRecvonly:
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   326
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   327
                //if direction is changed
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   328
                if ( aDirection != SdpCodecStringConstants::EAttributeSendonly )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   329
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   330
                    MCEMM_DEBUG( "update from recvonly to send" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   331
                    MCEMM_DEBUG( "create uplink" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   332
                    messagestream = CreateUplinkStreamL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   333
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   334
                break;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   335
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   336
            case SdpCodecStringConstants::EAttributeSendonly:
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   337
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   338
                //if direction is changed
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   339
                if ( aDirection != SdpCodecStringConstants::EAttributeRecvonly )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   340
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   341
                    MCEMM_DEBUG( "update from sendonly to recv" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   342
                    MCEMM_DEBUG( "create downlink" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   343
                    messagestream = CreateDownlinkStreamL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   344
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   345
                break;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   346
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   347
            case SdpCodecStringConstants::EAttributeSendrecv:
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   348
            default:
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   349
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   350
                break;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   351
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   352
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   353
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   354
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   355
    if ( messagestream )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   356
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   357
        CleanupStack::PushL( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   358
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   359
        MCEMM_DEBUG( "cloning codecs" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   360
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   361
        for( TInt index = 0; index < amessagestream.CodecCount(); ++index )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   362
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   363
            // No ceodecs for message stream presently
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   364
            CMceComMessageCodec* codec = static_cast<CMceComMessageCodec*>( amessagestream.CodecL( index )->CloneL() );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   365
            CleanupStack::PushL( codec );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   366
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   367
            MCEMM_DEBUG_SVALUE( "cloned codec", codec->iSdpName )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   368
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   369
            messagestream->AddCodecL( codec );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   370
            CleanupStack::Pop( codec );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   371
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   372
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   373
        amessagestream.BindL( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   374
        messagestream->InitializeL( *amessagestream.Session() );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   375
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   376
        MCEMM_DEBUG( "binded stream created" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   377
        CleanupStack::Pop( messagestream ); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   378
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   379
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   380
    MCEMM_DEBUG( "CMceMessageSdpCodec::UpdateStreamL(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   381
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   382
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   383
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   384
// CMceMessageSdpCodec::CreateCodecLC
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   385
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   386
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   387
CMceComCodec* CMceMessageSdpCodec::CreateCodecLC( CSdpFmtAttributeField& /*aRtpmap*/ ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   388
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   389
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateCodecLC(), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   390
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   391
    CMceComCodec* codec = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   392
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   393
    TPtrC8 codecName(KMceSDPNameMsrp);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   394
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   395
    TMceComMessageCodecFactory factory;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   396
    codec =  factory.CreateLC( codecName );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   397
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   398
    //Junk Value for dummy msrp codec
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   399
    codec->iPayloadType = 90;  // dummy payload type + using unassigned value
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   400
    MCEMM_DEBUG_SVALUE( "created codec", codecName )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   401
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   402
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateCodecLC(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   403
    return codec;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   404
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   405
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   406
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   407
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   408
// CMceMessageSdpCodec::CreateCodecLC
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   409
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   410
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   411
CMceComCodec* CMceMessageSdpCodec::CreateCodecLC( TUint /*aPayload*/, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   412
                                                CSdpMediaField& /*aMediaLine*/ ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   413
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   414
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateCodecLC( payload ), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   415
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   416
    TMceComMessageCodecFactory factory;  
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   417
    CMceComMessageCodec* codec = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   418
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   419
    TUint aPayload = 90;  // dummy payload type + using unassigned value
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   420
    codec = factory.CreateCodecLC( aPayload );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   421
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateCodecLC( payload ), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   422
   
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   423
    return codec;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   424
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   425
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   426
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   427
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   428
// CMceMessageSdpCodec::DecodeSessionMediaAttributesL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   429
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   430
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   431
void CMceMessageSdpCodec::DecodeSessionMediaAttributesL( CMceComMediaStream& /*aStream*/, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   432
                                                       CSdpDocument& /*aSdpDocument*/ ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   433
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   434
    MCEMM_DEBUG( "CMceMessageSdpCodec::DecodeSessionMediaAttributesL(), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   435
    MCEMM_DEBUG( "CMceMessageSdpCodec::DecodeSessionMediaAttributesL(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   436
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   437
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   438
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   439
// CMceMessageSdpCodec::CreateUplinkStreamL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   440
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   441
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   442
CMceComMessageStream* CMceMessageSdpCodec::CreateUplinkStreamL() const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   443
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   444
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateUplinkStreamL(), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   445
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   446
   CMceComMessageStream *messagestream =CMceComMessageStream::NewL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   447
    CleanupStack::PushL( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   448
    // uplink           
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   449
    CMceComMessageSource* messageSource = CMceComMessageSource::NewL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   450
    CleanupStack::PushL( messageSource );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   451
    //messageSource->InitializeL( static_cast<CMceComMessageStream&> ( *messagestream ) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   452
    messageSource->InitializeL( *messagestream);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   453
    messagestream->SetSourceL( messageSource );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   454
    CleanupStack::Pop( messageSource );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   455
    CMceComMsrpSink* msrpSink = CMceComMsrpSink::NewL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   456
    CleanupStack::PushL( msrpSink );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   457
    msrpSink->InitializeL( *messagestream);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   458
    messagestream->AddSinkL( msrpSink );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   459
    CleanupStack::Pop( msrpSink ); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   460
    CleanupStack::Pop( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   461
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   462
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateUplinkStreamL(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   463
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   464
    return messagestream;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   465
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   466
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   467
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   468
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   469
// CMceMessageSdpCodec::CodecsL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   470
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   471
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   472
const RPointerArray<CMceComCodec>& CMceMessageSdpCodec::CodecsL( CMceComMediaStream& aStream ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   473
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   474
    __ASSERT_ALWAYS( aStream.iType == KMceMessage, User::Leave( KErrArgument ) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   475
    MCE_DEFINE_MESSAGE( stream, aStream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   476
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   477
    return reinterpret_cast< const RPointerArray< CMceComCodec >& >( stream.Codecs() );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   478
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   479
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   480
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   481
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   482
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   483
// CMceMessageSdpCodec::CreateDownlinkStreamL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   484
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   485
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   486
CMceComMessageStream* CMceMessageSdpCodec::CreateDownlinkStreamL() const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   487
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   488
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateDownlinkStreamL(), Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   489
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   490
   CMceComMessageStream *messagestream =CMceComMessageStream::NewL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   491
    CleanupStack::PushL( messagestream ); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   492
    // downlink         
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   493
    CMceComMsrpSource* msrpSource = CMceComMsrpSource::NewL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   494
    CleanupStack::PushL( msrpSource );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   495
    //msrpSource->InitializeL( static_cast<CMceComMessageStream&> ( *messagestream ) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   496
    msrpSource->InitializeL( ( *messagestream ) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   497
    messagestream->SetSourceL( msrpSource );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   498
    CleanupStack::Pop( msrpSource );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   499
    CMceComMessageSink* sink = CMceComMessageSink::NewL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   500
    CleanupStack::PushL( sink );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   501
    sink->InitializeL( ( *messagestream ) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   502
    messagestream->AddSinkL( sink );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   503
    CleanupStack::Pop( sink ); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   504
    CleanupStack::Pop( messagestream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   505
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   506
    MCEMM_DEBUG( "CMceMessageSdpCodec::CreateDownlinkStreamL(), Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   507
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   508
    return messagestream;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   509
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   510
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   511
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   512
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   513
// CMceMessageSdpCodec::SetHostAddrFromPathAttrL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   514
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   515
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   516
void CMceMessageSdpCodec::SetHostAddrFromPathAttrL(const TUriC8& aMsrpUri, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   517
        CSdpMediaField& aMediaLine)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   518
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   519
    MCEMM_DEBUG("\n CMceMessageSdpCodec::SetHostAddrPortFromPathAttr : Entry");
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   520
    TUriParser8 parser;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   521
    TInt parseValue = parser.Parse(aMsrpUri.UriDes()); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   522
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   523
    MCEMM_DEBUG_DVALUE("\n CMceMessageSdpCodec::SetHostAddrPortFromPathAttr: Parsed return value for MSRP URI: ", 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   524
            parseValue);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   525
    User::LeaveIfError(parseValue);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   526
    TBuf8<50> host = parser.Extract(EUriHost);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   527
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   528
    // check the type of the host and create the conneciton filed and insert it into the media field
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   529
    CSdpConnectionField* ConnFld = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   530
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   531
    iNetType = SdpCodecStringPool::StringPoolL().StringF(SdpCodecStringConstants::ENetType,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   532
                    SdpCodecStringPool::StringTableL());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   533
    CleanupClosePushL(iNetType);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   534
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   535
    if (UriUtils::HostType( host ) == UriUtils::ETextHost) // it is in www.example.com format
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   536
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   537
        iAddressType = SdpCodecStringPool::StringPoolL().StringF(SdpCodecStringConstants::EAddressTypeIP4, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   538
                SdpCodecStringPool::StringTableL());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   539
        CleanupClosePushL(iAddressType);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   540
        ConnFld = CSdpConnectionField::NewL(iNetType, iAddressType, host);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   541
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   542
    else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   543
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   544
        if (UriUtils::HostType( host ) == UriUtils::EIPv6Host)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   545
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   546
            iAddressType = SdpCodecStringPool::StringPoolL().StringF(SdpCodecStringConstants::EAddressType, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   547
                    SdpCodecStringPool::StringTableL());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   548
            CleanupClosePushL(iAddressType);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   549
            ConnFld = CSdpConnectionField::NewL(iNetType, iAddressType, host);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   550
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   551
        else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   552
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   553
            iAddressType = SdpCodecStringPool::StringPoolL().StringF(SdpCodecStringConstants::EAddressTypeIP4, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   554
                            SdpCodecStringPool::StringTableL());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   555
            CleanupClosePushL(iAddressType);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   556
            ConnFld = CSdpConnectionField::NewL(iNetType, iAddressType, host);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   557
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   558
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   559
    __ASSERT_ALWAYS(ConnFld!=NULL, User::Leave(KErrArgument));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   560
    CleanupStack::PushL(ConnFld);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   561
    // clear the connecitons fileds if exists
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   562
    if (aMediaLine.ConnectionFields().Count() > 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   563
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   564
        CSdpConnectionField* connField = aMediaLine.ConnectionFields()[0];
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   565
        __ASSERT_ALWAYS(connField!=NULL, User::Leave(KErrArgument));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   566
        connField->SetAddressL(iNetType, iAddressType, host);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   567
        CleanupStack::PopAndDestroy(ConnFld);    // delete the created conneciton filed as the parameters are set in above line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   568
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   569
    else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   570
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   571
        aMediaLine.ConnectionFields().AppendL(ConnFld);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   572
        CleanupStack::Pop(ConnFld);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   573
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   574
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   575
    if (iAddressType.DesC().Length()!=0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   576
            CleanupStack::PopAndDestroy(&iAddressType);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   577
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   578
    if (iNetType.DesC().Length() != 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   579
        CleanupStack::PopAndDestroy(&iNetType);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   580
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   581
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   582
    MCEMM_DEBUG("\n CMceMessageSdpCodec::SetHostAddrPortFromPathAttr : Exit");
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   583
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   584
	
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   585
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   586
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   587
// CMceMessageSdpCodec::SetAcceptTypesAttributeL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   588
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   589
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   590
void CMceMessageSdpCodec::SetAcceptTypesAttributeL(CMceComMsrpSource* msrpSource, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   591
        CMceComMsrpSink* msrpSink, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   592
        CSdpMediaField& aMediaLine)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   593
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   594
    MCEMM_DEBUG( "CMceMessageSdpCodec::SetAcceptTypesAttributeL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   595
    if (iAcceptTypesStr.DesC().Length() == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   596
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   597
        iAcceptTypesStr = SdpCodecStringPool::StringPoolL().
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   598
                OpenFStringL(KMceSDPNameAcceptTypes);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   599
        CleanupClosePushL(iAcceptTypesStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   600
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   601
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   602
    // Set accept-types attribute. 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   603
    // If no value is provided then add * as a default value for this attribute 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   604
    TBuf8<100> mediaTypes;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   605
    TInt acceptTypescount = 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   606
    msrpSource!=NULL ? msrpSource->iAcceptTypes.MdcaCount(): msrpSink->iAcceptTypes.MdcaCount();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   607
    if (acceptTypescount == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   608
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   609
        // Default value is * . Means the applicaiton receives any type of media
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   610
        _LIT8(KStar,"*");
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   611
        mediaTypes.Append(KStar);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   612
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   613
    else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   614
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   615
        for (TInt i=0; i<acceptTypescount;i++)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   616
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   617
            mediaTypes.Append(
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   618
                    msrpSource!=NULL? (msrpSource->iAcceptTypes).MdcaPoint(i) : (msrpSink->iAcceptTypes).MdcaPoint(i));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   619
            if (i+1 < acceptTypescount)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   620
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   621
                mediaTypes.Append(_L8(" "));           
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   622
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   623
            } 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   624
        }         
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   625
    // Create the accept-types SDP attr and append this to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   626
    CSdpAttributeField* acceptTypesAttr = CSdpAttributeField::NewLC( iAcceptTypesStr, mediaTypes);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   627
    MCEMM_DEBUG_SVALUE( "accept-types Attribute :",  mediaTypes)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   628
    aMediaLine.AttributeFields().AppendL( acceptTypesAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   629
    CleanupStack::Pop(acceptTypesAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   630
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   631
    if (iAcceptTypesStr.DesC().Length() != 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   632
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   633
        CleanupStack::PopAndDestroy(&iAcceptTypesStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   634
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   635
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   636
    MCEMM_DEBUG( "CMceMessageSdpCodec::SetAcceptTypesAttributeL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   637
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   638
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   639
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   640
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   641
// CMceMessageSdpCodec::SetPathAttributeL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   642
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   643
//     
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   644
void CMceMessageSdpCodec::SetPathAttributeL(CMceComMessageStream& aStream, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   645
        CMceComMsrpSource* msrpSource, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   646
        CMceComMsrpSink* msrpSink,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   647
        CSdpMediaField& aMediaLine)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   648
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   649
    MCEMM_DEBUG( "CMceMessageSdpCodec::SetPathAttributeL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   650
    // check if pathstr is initialized or not. if ot initialized then initialize it..
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   651
    if (iPathStr.DesC().Length() == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   652
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   653
        iPathStr = SdpCodecStringPool::StringPoolL().OpenFStringL(KMceSDPNamePath);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   654
        CleanupClosePushL(iPathStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   655
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   656
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   657
    TInt MsrpUriCount =  msrpSource!=NULL? msrpSource->iPath.Count():msrpSink->iPath.Count(); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   658
         
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   659
    // Set path attribute
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   660
    HBufC8* pathValue1 = HBufC8::NewLC(200);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   661
    TUriC8 *uri = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   662
         
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   663
    for (TInt i=0; i<MsrpUriCount;i++)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   664
        { 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   665
        if (msrpSource!=NULL)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   666
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   667
            uri = msrpSource->iPath[i];
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   668
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   669
        else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   670
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   671
            uri = msrpSink->iPath[i];
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   672
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   673
        pathValue1->Des().Append( uri->UriDes());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   674
                 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   675
        if (i+1 < MsrpUriCount)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   676
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   677
            pathValue1->Des().Append(_L8(" "));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   678
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   679
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   680
    if (uri != NULL)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   681
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   682
        // extract the host address only if the user configured to use the path attr for this purpose
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   683
        if (aStream.iUseMsrpPathAttrForHostAddrAndPort)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   684
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   685
            // if the realy is supported then the last entry will always indicates its own MSRP URI
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   686
            SetHostAddrFromPathAttrL(*uri, aMediaLine); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   687
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   688
        // Create the path SDP attr and append this to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   689
        CSdpAttributeField* pathAttr = CSdpAttributeField::NewLC( iPathStr, *pathValue1);                     
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   690
        MCEMM_DEBUG_SVALUE( "path Attribute value:", pathValue1->Des() )         
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   691
        aMediaLine.AttributeFields().AppendL( pathAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   692
        CleanupStack::Pop(pathAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   693
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   694
    CleanupStack::PopAndDestroy(pathValue1);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   695
    if (iPathStr.DesC().Length() != 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   696
                CleanupStack::PopAndDestroy(&iPathStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   697
    MCEMM_DEBUG( "CMceMessageSdpCodec::SetPathAttributeL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   698
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   699
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   700
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   701
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   702
// CMceMessageSdpCodec::SetAcceptWrappedAttributeL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   703
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   704
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   705
void CMceMessageSdpCodec::SetAcceptWrappedAttributeL(CMceComMsrpSource* msrpSource, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   706
        CMceComMsrpSink* msrpSink,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   707
        CSdpMediaField& aMediaLine)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   708
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   709
    MCEMM_DEBUG( " CMceMessageSdpCodec::SetAcceptWrappedAttributeL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   710
    if (iAcceptWrappedTypesStr.DesC().Length() == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   711
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   712
        iAcceptWrappedTypesStr = SdpCodecStringPool::StringPoolL().
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   713
                OpenFStringL(KMceSDPNameAcceptWrappedTypes);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   714
        CleanupClosePushL(iAcceptWrappedTypesStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   715
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   716
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   717
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   718
    //Set Accept-Wrapped-Types attribute if its setted by client.
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   719
    TBool temp = msrpSource!=NULL? msrpSource->iWrappedTypes : msrpSink->iWrappedTypes;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   720
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   721
    if (temp)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   722
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   723
        TBuf8<50> wrappedTypes;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   724
        if (msrpSource!=NULL)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   725
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   726
            wrappedTypes.Copy(msrpSource->iAcceptWrappedTypes);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   727
            }else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   728
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   729
                wrappedTypes.Copy(msrpSink->iAcceptWrappedTypes);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   730
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   731
        // Create the accept-wrapped-types SDP attr and append this to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   732
        CSdpAttributeField* acceptTypesAttr = CSdpAttributeField::NewLC( iAcceptWrappedTypesStr, wrappedTypes);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   733
        MCEMM_DEBUG_SVALUE( "accept-wrapped-types Attribute :",  wrappedTypes)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   734
        aMediaLine.AttributeFields().AppendL( acceptTypesAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   735
        CleanupStack::Pop(acceptTypesAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   736
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   737
    if (iAcceptWrappedTypesStr.DesC().Length() != 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   738
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   739
        CleanupStack::PopAndDestroy(&iAcceptWrappedTypesStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   740
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   741
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   742
    MCEMM_DEBUG( " CMceMessageSdpCodec::SetAcceptWrappedAttributeL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   743
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   744
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   745
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   746
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   747
// CMceMessageSdpCodec::SetConnectionAttributeL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   748
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   749
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   750
void CMceMessageSdpCodec::SetConnectionAttributeL(CMceComMessageStream& aStream,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   751
        CSdpMediaField& aMediaLine)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   752
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   753
    MCEMM_DEBUG( " CMceMessageSdpCodec::SetConnectionAttributeL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   754
    __ASSERT_ALWAYS(aStream.iType == KMceMessage, User::Leave(KErrArgument));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   755
    if (iConnectionStr.DesC().Length() == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   756
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   757
        iConnectionStr = SdpCodecStringPool::StringPoolL().
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   758
            OpenFStringL(KMceSDPNameConnection);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   759
        CleanupClosePushL(iConnectionStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   760
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   761
    TBuf8<30> connAttr;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   762
    aStream.iMsrpConnUsage ? connAttr.Append(_L8("existing")) : connAttr.Append(_L8("new"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   763
    // Create the connection SDP attr and append this to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   764
    CSdpAttributeField* connectionAttr = CSdpAttributeField::NewLC( iConnectionStr, connAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   765
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   766
    aMediaLine.AttributeFields().AppendL( connectionAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   767
    CleanupStack::Pop(connectionAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   768
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   769
    if (iConnectionStr.DesC().Length() != 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   770
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   771
        CleanupStack::PopAndDestroy(&iConnectionStr);   
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   772
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   773
    MCEMM_DEBUG( " CMceMessageSdpCodec::SetConnectionAttributeL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   774
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   775
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   776
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   777
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   778
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   779
// CMceMessageSdpCodec::SetFileShareAttributeL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   780
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   781
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   782
void CMceMessageSdpCodec::SetFileShareAttributeL(CMceComMsrpSource* msrpSource, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   783
        CMceComMsrpSink* msrpSink,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   784
        CSdpMediaField& aMediaLine)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   785
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   786
    MCEMM_DEBUG( " CMceMessageSdpCodec::SetFileShareAttributeL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   787
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   788
    //Set File sharing Negotiation attributes if its called by Client.iFileShare
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   789
    if(msrpSource!=NULL ? msrpSource->iFileShare : msrpSink->iFileShare)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   790
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   791
        if ( iFileSelectorStr.DesC().Length() == 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   792
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   793
            iFileSelectorStr = SdpCodecStringPool::StringPoolL().OpenFStringL(KMCESDPNameFileselector);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   794
            CleanupClosePushL(iFileSelectorStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   795
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   796
        // file-selector : 'name' attribute
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   797
        HBufC16* fileName = msrpSource!=NULL ? msrpSource->iFileName : msrpSink->iFileName;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   798
        if (NULL != fileName && fileName->Des().Length())
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   799
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   800
            HBufC8* fileSelector = HBufC8::NewLC(350);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   801
            fileSelector->Des().Append(KMceSDPFileName);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   802
            fileSelector->Des().Append('"');
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   803
            fileSelector->Des().Append(fileName->Des());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   804
            fileSelector->Des().Append('"');
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   805
           
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   806
            TInt fileSize = 0;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   807
            fileSize = msrpSource!=NULL ? msrpSource->iFileSize : msrpSink->iFileSize;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   808
            if (fileSize == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   809
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   810
                // find file size
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   811
                RFs fs;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   812
                User::LeaveIfError(fs.Connect()); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   813
                TEntry entry;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   814
                //TBuf16<256> filenameDes;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   815
                //filenameDes.Copy( fileName->Des());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   816
                User::LeaveIfError(fs.Entry(fileName->Des(), entry));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   817
                fileSize = entry.iSize; 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   818
                fs.Close();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   819
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   820
            fileSelector->Des().Append(KMceSDPFileSize); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   821
            fileSelector->Des().AppendNum(fileSize);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   822
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   823
            // default file disposition value is attachment.
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   824
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   825
            // file-selector : 'type' attribute
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   826
            HBufC8* fileType = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   827
            fileType = msrpSource!=NULL ? msrpSource->iFileType : msrpSink->iFileType;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   828
            if (fileType->Des().Length())
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   829
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   830
                fileSelector->Des().Append(KMceSDPFileType);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   831
                fileSelector->Des().Append(fileType->Des());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   832
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   833
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   834
            // Create the file-selector SDP attribute and append this to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   835
            CSdpAttributeField* fileSelectorAttr = CSdpAttributeField::NewLC( iFileSelectorStr, *fileSelector);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   836
            MCEMM_DEBUG_SVALUE( "file-selector-types Attribute :",  fileSelector->Des())
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   837
            aMediaLine.AttributeFields().AppendL( fileSelectorAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   838
            CleanupStack::Pop(fileSelectorAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   839
            CleanupStack::PopAndDestroy(fileSelector);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   840
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   841
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   842
        // Set file-disposition attribute
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   843
        TBuf8<25>  dispositionValue;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   844
        if (msrpSource!=NULL)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   845
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   846
            dispositionValue.Copy(msrpSource->iDispositionValue);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   847
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   848
        else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   849
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   850
            dispositionValue.Copy(msrpSink->iDispositionValue);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   851
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   852
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   853
        if (dispositionValue != KNullDesC8 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   854
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   855
            if ( iFileDispositionStr.DesC().Length() == 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   856
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   857
                iFileDispositionStr = SdpCodecStringPool::StringPoolL().OpenFStringL(KMCESDPNameFiledisposition);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   858
                CleanupClosePushL(iFileDispositionStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   859
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   860
            // Create the file-disposition-types SDP attr and append this to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   861
            CSdpAttributeField* filedispAttr = CSdpAttributeField::NewLC( iFileDispositionStr, dispositionValue);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   862
            MCEMM_DEBUG_SVALUE( "file-disposition-types Attribute :",  dispositionValue)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   863
            aMediaLine.AttributeFields().AppendL( filedispAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   864
            CleanupStack::Pop(filedispAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   865
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   866
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   867
        // Set file-transfer-id attribute
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   868
        TBuf8<32> fileTransferid;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   869
        fileTransferid = msrpSource!=NULL?msrpSource->iFileTransferid:msrpSink->iFileTransferid;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   870
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   871
        if ( fileTransferid != KNullDesC8 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   872
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   873
            if (iFileTransferidStr.DesC().Length() == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   874
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   875
                iFileTransferidStr = SdpCodecStringPool::StringPoolL().
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   876
                    OpenFStringL(KMCESDPNameFiletransferid);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   877
                CleanupClosePushL(iFileTransferidStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   878
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   879
            // Create the file-transfer-id SDP attribute and append to media line
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   880
            CSdpAttributeField* filetransferAttr = CSdpAttributeField::NewLC( iFileTransferidStr, fileTransferid);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   881
            MCEMM_DEBUG_SVALUE( "file-transfer-id Attribute :",  fileTransferid)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   882
            aMediaLine.AttributeFields().AppendL( filetransferAttr );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   883
            CleanupStack::Pop(filetransferAttr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   884
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   885
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   886
        if (iFileTransferidStr.DesC().Length() != 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   887
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   888
            CleanupStack::PopAndDestroy(&iFileTransferidStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   889
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   890
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   891
        if ( iFileDispositionStr.DesC().Length() != 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   892
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   893
            CleanupStack::PopAndDestroy(&iFileDispositionStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   894
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   895
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   896
        if ( iFileSelectorStr.DesC().Length() != 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   897
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   898
            CleanupStack::PopAndDestroy(&iFileSelectorStr);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   899
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   900
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   901
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   902
    MCEMM_DEBUG( " CMceMessageSdpCodec::SetFileShareAttributeL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   903
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   904
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   905
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   906
// CMceMediaSdpCodec::DecodeClientAttributesL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   907
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   908
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   909
void CMceMessageSdpCodec::DecodeClientAttributesL( 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   910
    CSdpMediaField& aMediaLine, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   911
    CMceComMediaStream& aStream ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   912
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   913
    MCEMM_DEBUG("CMceMessageSdpCodec::DecodeClientAttributesL, Entry" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   914
    __ASSERT_ALWAYS(aStream.iType == KMceMessage, User::Leave(KErrArgument));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   915
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   916
    CMceMediaSdpCodec::DecodeClientAttributesL(aMediaLine, aStream);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   917
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   918
    CMceComMessageStream* msgStrm =(CMceComMessageStream*) (&aStream);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   919
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   920
    CMceComMsrpSource* msrpSource = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   921
    CMceComMsrpSink* msrpSink = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   922
             
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   923
    //Decode client specific attributes and populate the source/sinks accordingly
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   924
    if (IS_RECEIVESTREAM(msgStrm))
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   925
        msrpSource = (CMceComMsrpSource*)(msgStrm->Source());
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   926
    else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   927
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   928
        for(TInt i=0; i<aStream.Sinks().Count(); i++)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   929
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   930
            if ( (aStream.Sinks())[i]->iType == KMceMSRPSink)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   931
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   932
                msrpSink = (CMceComMsrpSink*)( aStream.Sinks()[i]);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   933
                break;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   934
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   935
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   936
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   937
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   938
    CBufFlat* encodeBuf = NULL;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   939
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   940
    for ( TInt i = 0; i < aMediaLine.AttributeFields().Count(); i++ )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   941
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   942
        encodeBuf = CBufFlat::NewL( KMceExternalizeBufferExpandSize );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   943
        CleanupStack::PushL( encodeBuf );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   944
        RBufWriteStream writeStream( *encodeBuf, 0 );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   945
        writeStream.PushL();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   946
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   947
        // extract the MSRP path attribute if it exists 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   948
        aMediaLine.AttributeFields()[ i ]->EncodeL( writeStream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   949
        MCEMM_DEBUG_SVALUE( "found attribute", encodeBuf->Ptr( 0 ) )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   950
        TInt aPath = encodeBuf->Ptr(0).FindC(_L8("Path:"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   951
        if(aPath != KErrNotFound)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   952
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   953
            TInt length = encodeBuf->Ptr(0).Size();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   954
            aStream.iRemoteMsrpPath = encodeBuf->Ptr(0).Mid(aPath+5, length-aPath-5-2);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   955
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   956
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   957
        // Extracts the connection setup accribute and set it if it exists
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   958
        TInt aSetup = encodeBuf->Ptr(0).FindC(_L8("setup:"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   959
        if(aSetup != KErrNotFound)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   960
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   961
            TInt length = encodeBuf->Ptr(0).Size();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   962
            aStream.iConnStatus = encodeBuf->Ptr(0).Mid(aSetup+6, length-aSetup-6-2);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   963
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   964
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   965
        //extract the file sharing attributes and set them accordingly
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   966
        TInt fileSelectorId = encodeBuf->Ptr(0).FindC(_L8("file-selector:"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   967
        if ( fileSelectorId != KErrNotFound)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   968
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   969
            HBufC16* fileName = HBufC::NewL(256);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   970
            TBuf8<50> fileSize;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   971
            HBufC8* fileType = HBufC8::NewL(256);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   972
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   973
            // Get file name, file size and file type.
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   974
            // look for name, type and size parameters
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   975
            TPtr8 fileSelectorData =  encodeBuf->Ptr(14);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   976
            TInt nameIndex = encodeBuf->Ptr(0).FindC(_L8("name:"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   977
            if (nameIndex >= 0)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   978
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   979
                TPtr8 nameBuf = encodeBuf->Ptr(nameIndex);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   980
                //nameBuf.Copy (encodeBuf->Ptr(nameIndex) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   981
                TInt spaceOffset = nameBuf.Locate(' ') ;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   982
                if (spaceOffset != KErrNotFound )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   983
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   984
                    fileName->Des().Copy(nameBuf.Mid(6, (spaceOffset-6-1 ))/*, (spaceOffset-6-1 )*/ );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   985
                    }else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   986
                        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   987
                        TInt crlfOffset = nameBuf.FindC(_L8("\r\n") ) ;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   988
                        if (crlfOffset != KErrNotFound )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   989
                            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   990
                            fileName->Des().Copy(nameBuf.Mid(6, (crlfOffset-6-1 ))/*, (crlfOffset-6-1 )*/);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   991
                            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   992
                        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   993
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   994
            // Find the file size if exists in the file selector
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   995
            TInt fileSizeIndex =  encodeBuf->Ptr(0).FindC(_L8("size:"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   996
            if (fileSizeIndex >= 0 && fileSizeIndex < encodeBuf->Size())
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   997
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   998
                TPtr8 sizeBuf = encodeBuf->Ptr(fileSizeIndex);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
   999
                TInt spaceOffset = sizeBuf.Locate(' ') ;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1000
                if (spaceOffset != KErrNotFound)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1001
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1002
                    fileSize.Copy( sizeBuf.Mid(5, spaceOffset-5));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1003
                    }else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1004
                        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1005
                        TInt crlfOffset = sizeBuf.FindC(_L8("\r\n") ) ;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1006
                        if (crlfOffset != KErrNotFound )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1007
                            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1008
                            fileSize.Copy(sizeBuf.Mid(5, (crlfOffset-5 )));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1009
                            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1010
                        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1011
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1012
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1013
            // Find the file type if exists in file selector
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1014
            TInt fileTypeIndex =  encodeBuf->Ptr(0).FindC(_L8("type:"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1015
            if (fileTypeIndex >=0 && fileTypeIndex < encodeBuf->Size())
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1016
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1017
                TPtr8 typeBuf = encodeBuf->Ptr(fileTypeIndex);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1018
                TInt spaceOffset = typeBuf.Locate(' ') ;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1019
                if (spaceOffset != KErrNotFound)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1020
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1021
                    fileType->Des().Copy(typeBuf.Mid(5, spaceOffset-5));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1022
                    }else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1023
                        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1024
                        TInt crlfOffset = typeBuf.FindC(_L8("\r\n") ) ;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1025
                        if (crlfOffset != KErrNotFound )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1026
                            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1027
                            fileType->Des().Copy( typeBuf.Mid(5, (crlfOffset-5 )) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1028
                            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1029
                        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1030
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1031
                if (NULL != msrpSource )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1032
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1033
                    msrpSource->iFileName = fileName;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1034
                    msrpSource->iFileType = fileType;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1035
                    TLex8 lex(fileSize);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1036
                    lex.Val(msrpSource->iFileSize);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1037
                    msrpSource->iFileShare = ETrue;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1038
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1039
                else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1040
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1041
                    msrpSink->iFileName = fileName;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1042
                    msrpSink->iFileType =  fileType;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1043
                    TLex8 lex(fileSize);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1044
                    lex.Val(msrpSink->iFileSize);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1045
                    msrpSink->iFileShare = ETrue;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1046
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1047
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1048
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1049
        // look for the file-transfer-id
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1050
        TInt fileTransferID= encodeBuf->Ptr(0).FindC(_L8("file-transfer-id:"));
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1051
        if ( fileTransferID != KErrNotFound)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1052
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1053
            TBuf8<32> fileTransferid;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1054
            
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1055
            TInt length = encodeBuf->Ptr(0).Size();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1056
            fileTransferid = encodeBuf->Ptr(0).Mid(fileTransferID+17, length-fileTransferID-17-2);
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1057
            // the code is pending
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1058
            if (NULL != msrpSource)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1059
                msrpSource->iFileTransferid = fileTransferid;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1060
            else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1061
                msrpSink->iFileTransferid = fileTransferid;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1062
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1063
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1064
        CleanupStack::PopAndDestroy(); // writeStream
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1065
        CleanupStack::PopAndDestroy( encodeBuf ); // encodeBuf
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1066
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1067
    MCEMM_DEBUG("CMceMessageSdpCodec::DecodeClientAttributesL, Exit" )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1068
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1069
	
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1070
	
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1071
	// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1072
// CMceMessageSdpCodec::CreateFormatListL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1073
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1074
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1075
HBufC8* CMceMessageSdpCodec::CreateFormatListL( CMceComCodec::TIterator& /*aCodecs*/ ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1076
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1077
    MCEMM_DEBUG("CMceMessageSdpCodec::CreateFmtListL(), Entry ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1078
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1079
    HBufC8* fmtList = HBufC8::NewL( KMceSdpFormatListLength );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1080
    TPtr8 fmtListPtr( fmtList->Des() );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1081
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1082
    // codecs can be NULL if the data path is being taken care by the applicaiton
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1083
    // irrespective of codecs the format list for message stream should be *
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1084
    _LIT8(KSdpFmtListValueStar,"*");
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1085
    fmtListPtr.Append(KSdpFmtListValueStar); 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1086
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1087
    MCEMM_DEBUG("CMceMessageSdpCodec::CreateFmtListL(), Exit ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1088
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1089
    return fmtList;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1090
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1091
	
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1092
	// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1093
// CMceMessageSdpCodec::DecodeStaticPayloadsL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1094
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1095
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1096
TInt CMceMessageSdpCodec::DecodeStaticPayloadsL( CSdpMediaField& aMediaLine,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1097
                CMceComMediaStream& aStream,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1098
                RArray<TUint>& aPayloadTypes,
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1099
                TMceNegotiationRole aRole ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1100
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1101
    MCEMM_DEBUG("CMceMediaSdpCodec::DecodeStaticPayloadsL(), Entry ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1102
    TInt decoded = 0;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1103
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1104
    DecodeFormatListL( aMediaLine, aPayloadTypes );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1105
    TInt index = 0;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1106
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1107
    if ( IS_SENDSTREAM(&aStream))
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1108
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1109
                if ( (aStream.Source()->Type() == KMceExternalSource) ||
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1110
                        (aStream.Source()->Type() == KMceMessageSource)  )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1111
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1112
                    decoded++;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1113
                    return decoded;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1114
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1115
                }else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1116
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1117
                    for (TInt i=0; i<aStream.Sinks().Count();i++)
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1118
                        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1119
                        if ( (aStream.Sinks()[i]->Type() == KMceExternalSink) ||
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1120
                                (aStream.Sinks()[i]->Type() == KMceMSRPSink) )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1121
                            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1122
                            decoded++;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1123
                            return decoded;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1124
                            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1125
                        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1126
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1127
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1128
    while( index < aPayloadTypes.Count() )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1129
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1130
        TUint payload = aPayloadTypes[ index++ ];
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1131
        if ( payload < KMinDynamicPT )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1132
            {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1133
            CMceComCodec* codec = FindCodec( payload, aStream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1134
            if ( aRole == EMceRoleAnswerer )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1135
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1136
                if ( !codec )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1137
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1138
                    codec = CreateCodecLC( payload, aMediaLine );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1139
                    if ( codec )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1140
                        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1141
                        codec->InitializeL( aStream );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1142
                        codec->iIsNegotiated = ETrue;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1143
                        MCEMM_DEBUG_SVALUE("adding codec", codec->iSdpName )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1144
                        aStream.AddCodecL( codec );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1145
                        CleanupStack::Pop( codec );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1146
                        decoded++;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1147
                        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1148
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1149
                else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1150
                    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1151
                    codec->iIsNegotiated = ETrue;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1152
                    decoded++;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1153
                    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1154
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1155
            else if ( codec && aRole == EMceRoleOfferer )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1156
                {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1157
                codec->iIsNegotiated = ETrue;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1158
                decoded++;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1159
                }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1160
            }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1161
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1162
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1163
    MCEMM_DEBUG_DVALUE("decoded codecs", decoded )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1164
    MCEMM_DEBUG("CMceMediaSdpCodec::DecodeStaticPayloadsL(), Exit ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1165
    return decoded;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1166
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1167
	
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1168
	// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1169
// CMceMediaSdpCodec::DecodeFormatListL
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1170
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1171
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1172
void CMceMessageSdpCodec::DecodeFormatListL( 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1173
    CSdpMediaField& aMedia, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1174
    RArray<TUint>& aPayloadTypes ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1175
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1176
    MCEMM_DEBUG("CMceMessageSdpCodec::DecodeFormatListL(), Entry ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1177
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1178
    User::LeaveIfError( DecodeFormatList( aMedia, aPayloadTypes ) );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1179
        
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1180
    MCEMM_DEBUG("CMceMessageSdpCodec::DecodeFormatListL(), Exit ")   
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1181
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1182
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1183
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1184
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1185
// CMceMessageSdpCodec::DecodeFormatList
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1186
// -----------------------------------------------------------------------------
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1187
//
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1188
TInt CMceMessageSdpCodec::DecodeFormatList( CSdpMediaField& aMedia, 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1189
                               RArray<TUint>& aPayloadTypes ) const
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1190
    {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1191
    MCEMM_DEBUG("CMceMessageSdpCodec::DecodeFormatList(), Entry ")
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1192
    
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1193
    const TDesC8& payloadlist = aMedia.FormatList();
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1194
    MCEMM_DEBUG_SVALUE( "decoded format list", payloadlist )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1195
    TLex8 payloads( payloadlist );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1196
    TInt error = KErrNone;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1197
    //  Validate the formalist list if it is *
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1198
    if (payloadlist.Compare(_L8("*")) == 0 )
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1199
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1200
        TUint msrpPayloadtype = 90; // dummy payload type + using unassigned value
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1201
        error = aPayloadTypes.Append( msrpPayloadtype );
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1202
        MCEMM_DEBUG("CMceMessageSdpCodec::DecodeFormatList(), Exit ") 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1203
        return error;   
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1204
        } 
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1205
    else
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1206
        {
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1207
        return KErrNotSupported;
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1208
        }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1209
    }
64c62431ac08 RCS feature support in MCE/MCC.
vnuitven <>
parents:
diff changeset
  1210