LMMS
Loading...
Searching...
No Matches
AudioBufferView.h File Reference
#include <cassert>
#include <concepts>
#include <ranges>
#include <span>
#include <type_traits>
#include "LmmsTypes.h"
#include "SampleFrame.h"

Go to the source code of this file.

Classes

class  lmms::detail::BufferViewData< T, channelCount >
class  lmms::detail::BufferViewData< T, DynamicChannelCount >
class  lmms::detail::InterleavedFrameIteratorData< T, channelCount >
class  lmms::detail::InterleavedFrameIteratorData< T, DynamicChannelCount >
class  lmms::detail::InterleavedFrameIterator< T, channelCount >
class  lmms::InterleavedBufferView< T, channelCount >
class  lmms::PlanarBufferView< T, channelCount >

Namespaces

namespace  lmms
namespace  lmms::detail

Concepts

concept  lmms::SampleType
 Recognized sample types, either const or non-const.
concept  lmms::AudioBufferView
 Concept for any audio buffer view, interleaved or planar.

Functions

 lmms::InterleavedBufferView (const SampleFrame *, f_cnt_t) -> InterleavedBufferView< const float, 2 >
 lmms::InterleavedBufferView (SampleFrame *, f_cnt_t) -> InterleavedBufferView< float, 2 >
template<class T, ch_cnt_t inputs, ch_cnt_t outputs>
constexpr void lmms::toInterleaved (PlanarBufferView< T, inputs > src, InterleavedBufferView< std::remove_const_t< T >, outputs > dst)
 Converts planar buffers to interleaved buffers.
template<class T, ch_cnt_t inputs, ch_cnt_t outputs>
constexpr void lmms::toPlanar (InterleavedBufferView< T, inputs > src, PlanarBufferView< std::remove_const_t< T >, outputs > dst)
 Converts interleaved buffers to planar buffers.

Variables

constexpr auto lmms::DynamicChannelCount = static_cast<ch_cnt_t>(-1)
 Use when the number of channels is not known at compile time.
template<typename T, typename... AllowedTs>
constexpr bool lmms::detail::OneOf = (std::is_same_v<T, AllowedTs> || ...)