Пример #1
0
void cSoundStreamRenderer::ClearDataBindings()
{
    for(unsigned int i = 0; i < m_DataBindings.size(); ++i)
        ClearBinding(m_DataBindings[i]);

    m_DataBindings.clear();
};
Пример #2
0
void cSoundStreamRenderer::RemoveUnmarkedBindings()
{
    for(unsigned int i = 0; i < m_DataBindings.size();)
    {
        if(!m_DataBindings[i].m_Marked)
        {
            ClearBinding(m_DataBindings[i]);
            m_DataBindings[i] = m_DataBindings.back();
            m_DataBindings.pop_back();
        }
        else
            ++i;
    }
};
Пример #3
0
void cSoundStreamRenderer::UpdateStreams()
{
    RemoveUnmarkedBindings();

    for(unsigned int i = 0; i < m_DataBindings.size(); ++i)
    {
        sStreamBinding &str = m_DataBindings[i];

        if(!str.m_Source || !str.m_Stream)
        {
            ClearBinding(str);
            continue;
        }

        while(OpenAL::Get().GetProcessedBuffersCount(str.m_Source->Get()) > 0)
        {
            ALuint buffer = OpenAL::Get().PopBufferQueue(str.m_Source->Get());
            str.m_RawBuffers.Return(buffer);
        }

        vSoundStreamProperties *props = dynamic_cast<vSoundStreamProperties*>(str.m_Stream->GetRenderingProperties());
        if(!props)
            continue;
    
        switch(props->GetWantedState())
        {
        case ESourceState::Playing: PlayStream(str); break;
        case ESourceState::Stopped: StopStream(str); break;
        case ESourceState::Paused:  PauseStream(str); break;
        default: break;
        }
    }


    for(unsigned int i = 0; i < m_DataBindings.size(); ++i)
    {
        sStreamBinding &str = m_DataBindings[i];
        vSoundStreamProperties *props = dynamic_cast<vSoundStreamProperties*>(str.m_Stream->GetRenderingProperties());

        props->SetState(OpenAL::Get().GetSourceState(str.m_Source->Get()));

        str.m_Stream->Synchronize(props);
    }
};
void CMixParam::ClearBindingDisplayDash()
{
	ClearBinding();
	::strlcpy(m_szAlternateLabel, "  --", sizeof(m_szAlternateLabel));
}