void cSoundStreamRenderer::ClearDataBindings() { for(unsigned int i = 0; i < m_DataBindings.size(); ++i) ClearBinding(m_DataBindings[i]); m_DataBindings.clear(); };
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; } };
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)); }