OSSIA
Open Scenario System for Interactive Application
media.hpp
1 #pragma once
2 
3 #include <ossia/detail/small_vector.hpp>
4 #include <ossia/detail/span.hpp>
5 
6 #include <memory>
7 #include <string>
8 
9 namespace ossia
10 {
11 // Used in nodes
12 using audio_channel = ossia::pod_vector<double>;
13 using audio_vector = ossia::small_vector<audio_channel, 2>;
14 
15 // Used for audio files
16 using audio_sample = float;
17 using audio_array = ossia::small_vector<ossia::pod_vector<audio_sample>, 2>;
18 template <typename T>
19 using audio_span = ossia::small_vector<tcb::span<const T>, 8>;
20 template <typename T>
21 using mutable_audio_span = ossia::small_vector<tcb::span<T>, 8>;
22 
23 struct audio_data
24 {
25  audio_array data;
26  std::string path;
27  int rate{};
28 };
29 
30 #if BOOST_VERSION >= 107200
31 static_assert(noexcept(audio_data{}));
32 #endif
33 
34 using audio_handle = std::shared_ptr<audio_data>;
35 struct drwav_handle;
36 /*
37 struct video_data
38 {
39 };
40 
41 struct mmap_audio_handle
42 {
43  drwav* data{};
44 };
45 
46 struct media_data
47 {
48  std::string file_path;
49  ossia::variant<audio_handle, mmap_audio_handle> media;
50 };*/
51 }
Definition: git_info.h:7