sequencer
track_parameter.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 #include <cstdint>
6 #include <vector>
7 
8 namespace sequencer::midi
9 {
11  {
12  using parameters_type = std::vector< copyable_atomic< std::int16_t > >;
13  using container_type = std::vector< parameters_type >;
14  using size_type = container_type::size_type;
15 
16  track_parameter_t() = default;
17 
18  explicit track_parameter_t( size_type section_count, size_type parameter_count = 0 )
19  : values{section_count, std::vector< copyable_atomic< std::int16_t > >{parameter_count}}
20  {
21  }
22 
23  auto& operator[]( size_type i ) noexcept
24  {
25  return values[ i ];
26  }
27 
28  const auto& operator[]( size_type i ) const noexcept
29  {
30  return values[ i ];
31  }
32 
33  size_type size() const noexcept
34  {
35  return values.size();
36  }
37 
38  void resize( size_type size ) noexcept
39  {
40  values.resize( size );
41  }
42 
44  };
45 } // namespace sequencer::midi
auto & operator[](size_type i) noexcept
Definition: track_parameter.hpp:23
container_type values
Definition: track_parameter.hpp:43
std::vector< parameters_type > container_type
Definition: track_parameter.hpp:13
std::vector< copyable_atomic< std::int16_t > > parameters_type
Definition: track_parameter.hpp:12
track_parameter_t(size_type section_count, size_type parameter_count=0)
Definition: track_parameter.hpp:18
void resize(size_type size) noexcept
Definition: track_parameter.hpp:38
Definition: clock.hpp:13
Definition: track_parameter.hpp:10
size_type size() const noexcept
Definition: track_parameter.hpp:33
const auto & operator[](size_type i) const noexcept
Definition: track_parameter.hpp:28
container_type::size_type size_type
Definition: track_parameter.hpp:14