예제 #1
0
// -----------------------------------------------------------------------------
// CMccResourcePool::SetEnableRtcpL
// -----------------------------------------------------------------------------
//   
void CMccResourcePool::SetEnableRtcpL( TUint32 aStreamId, TBool aEnableRtcp )
    {
    CMccResourceContainer* container = FindResourceContainer( aStreamId );
    __ASSERT_ALWAYS( container, User::Leave( KErrNotFound ) );
    
    container->SetEnableRtcp( aEnableRtcp );
    }
예제 #2
0
void Expression::AddResource(EntityContext &aContext)
{
	unsigned int name(Expression::Read<unsigned int>(aContext));
	float value(Expression::Evaluate<float>(aContext));
	unsigned int id = FindResourceContainer(aContext.mId, name);
	if (Resource *resource = Database::resource.Get(id).Get(name))
		resource->Add(aContext.mId, value);
}
예제 #3
0
// -----------------------------------------------------------------------------
// CMccResourcePool::ReserveResourcesL
// -----------------------------------------------------------------------------
//      
void CMccResourcePool::ReserveResourcesL( const TMccResourceParams& aParams )
    {
    __CONTROLLER( "CMccResourcePool::ReserveResourcesL" )
    
    __ASSERT_ALWAYS( iSinkCandidate && iSourceCandidate, 
                     User::Leave( KErrNotReady ) );
                   
    CMccResourceContainer* container = FindResourceContainer( aParams.iStreamId );
    __ASSERT_ALWAYS( !container, User::Leave( KErrAlreadyExists ) );
    
    CheckStandbyPropertiesL( aParams, *iSinkCandidate, *iSourceCandidate );
    
    CheckResourceAvailabilityL( *iSinkCandidate, *iSourceCandidate );
    
    CMccResourceItem* sinkItem = FindResourceItem( iSinkCandidateEndpointId );
    if ( !sinkItem )
        {
        sinkItem = CMccResourceItem::NewLC( aParams.iStreamId,
                                            iSinkCandidate, 
                                            0,
                                            iSinkCandidateEndpointId );
                                            
        iEndpoints.AppendL( sinkItem );
        CleanupStack::Pop( sinkItem );
        }
    
    CMccResourceItem* sourceItem = FindResourceItem( iSourceCandidateEndpointId );
    if ( !sourceItem )
        {
        sourceItem = CMccResourceItem::NewLC( aParams.iStreamId,
                                              0,
                                              iSourceCandidate, 
                                              iSourceCandidateEndpointId );
                                              
        iEndpoints.AppendL( sourceItem );
        CleanupStack::Pop( sourceItem );
        
        if ( iSourceCandidate->DataSourceType() == KMccVideoSourceUid )
            {
            static_cast<CMccVideoSource*>( iSourceCandidate )->SetCameraHandler( *iCameraHandler );
            }
        }
    
    container = CMccResourceContainer::NewL( aParams, iEndpoints );  
    CleanupStack::PushL( container ); 
    iResources.AppendL( container );
    CleanupStack::Pop( container );

    container->AddResourceItemL( aParams, sourceItem );
 
    container->AddResourceItemL( aParams, sinkItem );
    
    ClearCandidates();
    
    __CONTROLLER( "CMccResourcePool::ReserveResourcesL, exit" )
    }
예제 #4
0
// -----------------------------------------------------------------------------
// CMccResourcePool::EnableRtcp
// -----------------------------------------------------------------------------
//   
TBool CMccResourcePool::EnableRtcp( TUint32 aStreamId )
    {
    TBool enableRtcp( EFalse );
    CMccResourceContainer* container = FindResourceContainer( aStreamId );
    if ( container )
        {
        enableRtcp = container->EnableRtcp();
        }
    return enableRtcp;
    }
예제 #5
0
// -----------------------------------------------------------------------------
// CMccResourcePool::SetResourceStateL
// -----------------------------------------------------------------------------
//                                    
void CMccResourcePool::SetResourceStateL( 
    TUint32 aStreamId,
    TUint32 aEndpointId, 
    TResourceState aState,
    TBool& aControlNetworkResources,
    RArray<TUint32>& aControlledEndpoints,
    RArray<TUint32>& aUncontrolledEndpoints )
    {
    __CONTROLLER( "CMccResourcePool::SetResourceStateL" )
    
    CMccResourceContainer* container = FindResourceContainer( aStreamId );
    __ASSERT_ALWAYS( container, User::Leave( KErrNotFound ) );
    
    container->SetResourceStateL( aEndpointId, 
                                  aState, 
                                  aControlNetworkResources,
                                  aControlledEndpoints,
                                  aUncontrolledEndpoints );

    __CONTROLLER( "CMccResourcePool::SetResourceStateL, exit" )
    }