8 #include <nap/resourceptr.h>
9 #include <nap/signalslot.h>
10 #include <sequenceplayeroutput.h>
11 #include <audio/node/outputnode.h>
12 #include <audio/resource/audiobufferresource.h>
13 #include <audio/service/audioservice.h>
14 #include <nap/signalslot.h>
15 #include <rtti/objectptr.h>
16 #include <audio/node/mixnode.h>
19 #include "sequenceplayeraudioadapter.h"
20 #include "multisamplebufferplayernode.h"
27 class SequenceService;
30 using BufferPlayerMap = std::unordered_map<std::string, audio::SafeOwner<audio::MultiSampleBufferPlayerNode>>;
64 void onDestroy()
override;
70 virtual const std::vector<rtti::ObjectPtr<audio::AudioBufferResource>>& getBuffers()
const;
97 int getChannelCount()
const;
108 bool mManualRouting =
false;
114 int mMaxChannels = 8;
120 void update(
double deltaTime)
override;
131 float playbackSpeed);
156 std::unordered_map<const SequencePlayerAudioAdapter*, BufferPlayerMap> mBufferPlayers;
159 std::vector<audio::SafeOwner<audio::OutputNode>> mOutputNodes;
162 std::vector<audio::SafeOwner<audio::MixNode>> mMixNodes;
166 std::mutex mBufferPlayersToDeleteMutex;
167 std::vector<audio::SafeOwner<audio::MultiSampleBufferPlayerNode>> mBufferPlayersToDelete;