EyeAI
Loading...
Searching...
No Matches
SpatialAudio.hpp
Go to the documentation of this file.
1#pragma once
2
6#include <AL/al.h>
7#include <AL/alc.h>
8#include <array>
9#include <span>
10#include <string>
11#include <thread>
12#include <unordered_map>
13#include <vector>
14
15/*
16SpatialAudio handles everything necessary for the spatial audio:
17- retreving the AI-Data
18- converting depthEstimationData into audio source positions
19- converting objectDetectionData into audio source positions
20- managing AudioMain instance
21*/
22
24 public:
25 SpatialAudio(const SpatialAudioSettings& audio_settings);
27
28 void getAIData(
29 std::span<float, static_cast<long>(256 * 256)> depth_estimation_data,
30 std::vector<ObjectTracker::TrackedBoundingBox> object_detection_data
31 );
34 bool getProcessingStatus() const;
35
36 // thread handling
37 std::thread depth_audio_thread;
38 std::atomic<bool> depth_audio_running{true};
40 std::atomic<bool> object_audio_running{true};
41
42 private:
43 // the ai data
44 std::array<float, static_cast<long>(256) * 256> depthEstimationData = {0};
45 std::vector<ObjectTracker::TrackedBoundingBox> objectDetectionData;
46
47 bool processingFinished = true;
48 AudioMain audio_main;
49
50 // global settings for spatial audio
51 const SpatialAudioSettings& audio_settings;
52
53 // handling the data of the objects
54 void readObjectLabelData();
55 std::unordered_map<std::string, std::array<int, 2>> object_label_data;
56 static std::string toLower(const std::string& s);
57 static std::string trim(const std::string& str);
58};
Definition SpatialAudioSettings.hpp:18
bool getProcessingStatus() const
Definition SpatialAudio.cpp:227
void getAIData(std::span< float, static_cast< long >(256 *256)> depth_estimation_data, std::vector< ObjectTracker::TrackedBoundingBox > object_detection_data)
Definition SpatialAudio.cpp:33
SpatialAudio(const SpatialAudioSettings &audio_settings)
Definition SpatialAudio.cpp:21
std::thread object_audio_thread
Definition SpatialAudio.hpp:39
std::atomic< bool > object_audio_running
Definition SpatialAudio.hpp:40
void processDepthEstimationData()
Definition SpatialAudio.cpp:50
std::atomic< bool > depth_audio_running
Definition SpatialAudio.hpp:38
void processObjectDetectionData()
Definition SpatialAudio.cpp:112
std::thread depth_audio_thread
Definition SpatialAudio.hpp:37
~SpatialAudio()
Definition SpatialAudio.cpp:229