41#include <StormByte/clonable.hxx>
42#include <StormByte/iterable.hxx>
74 public StormByte::Clonable<Track, std::unique_ptr<Track>> {
117 virtual ~Track() noexcept override = default;
141 inline PointerType Clone()
const override {
142 return MakePointer<Track>(*
this);
149 inline PointerType
Move()
override {
150 return MakePointer<Track>(std::move(*
this));
170 inline int In() const noexcept {
179 return m_config.get();
189 std::unique_ptr<Config::Base> m_config;
203 protected StormByte::Iterable<std::vector<std::unique_ptr<Track>>> {
205 using size_type = StormByte::Iterable<std::vector<std::unique_ptr<Track>>>::size_type;
206 using const_iterator = StormByte::Iterable<std::vector<std::unique_ptr<Track>>>::const_iterator;
263 return Iterable::begin();
271 return Iterable::end();
279 return Iterable::cbegin();
287 return Iterable::cend();
296 return *Iterable::operator[](i);
304 return Iterable::size();
311 inline bool empty() const noexcept {
312 return Iterable::empty();
320 Iterable::add(track.
Clone());
328 Iterable::add(track.Move());
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition visibility.h:47