// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromecast/media/audio/cast_audio_bus.h"
#include <cstring>
#include "base/memory/ptr_util.h"
namespace chromecast {
namespace media {
CastAudioBus::CastAudioBus(int channels, int frames) : frames_(frames) {
data_.reset(new float[channels * frames]);
channel_data_.reserve(channels);
for (int i = 0; i < channels; ++i)
channel_data_.push_back(data_.get() + i * frames);
}
CastAudioBus::~CastAudioBus() = default;
// static
std::unique_ptr<CastAudioBus> CastAudioBus::Create(int channels, int frames) {
return base::WrapUnique(new CastAudioBus(channels, frames));
}
void CastAudioBus::Zero() {
std::fill_n(data_.get(), frames() * channels(), 0);
}
} // namespace media
} // namespace chromecast