LeviLamina
Loading...
Searching...
No Matches
IAudioDecoder.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/platform/Result.h"
7
8// auto generated forward declare list
9// clang-format off
10namespace Audio { class AudioFrameBuffer; }
11// clang-format on
12
13namespace Audio {
14
16public:
17 // virtual functions
18 // NOLINTBEGIN
19 virtual ~IAudioDecoder() = default;
20
21 virtual ::Bedrock::Result<void> initialize() = 0;
22
23 virtual ::Bedrock::Result<::gsl::span<float>> decodeInto(::Audio::AudioFrameBuffer& outputBuffer) = 0;
24
25 virtual uchar getChannels() const = 0;
26
27 virtual int getSampleRate() const = 0;
28
29 virtual int64 getCurrentFramePosition() const = 0;
30
31 virtual void setTotalSamples(uint64 totalSamples) = 0;
32
33 virtual ::std::optional<uint64> getTotalSamples() const = 0;
34
35 virtual bool isFinished() const = 0;
36
37 virtual uint64 getFileReadPosition() const = 0;
38
39 virtual uint64 getSafeConsumePosition() const = 0;
40 // NOLINTEND
41};
42
43} // namespace Audio
Definition AudioFrameBuffer.h:10
Definition IAudioDecoder.h:15