Skip to content
LeviMC
English
AutoLightDark
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; }
11namespace Audio { struct EncodedByteOffset; }
12namespace Audio { struct PcmFramePosition; }
13// clang-format on
14
15namespace Audio {
16
18public:
19 // virtual functions
20 // NOLINTBEGIN
21 virtual ~IAudioDecoder() = default;
22
23 virtual ::Bedrock::Result<void> initialize() = 0;
24
25 virtual ::Bedrock::Result<::gsl::span<float>> decodeInto(::Audio::AudioFrameBuffer& outputBuffer) = 0;
26
27 virtual ::Bedrock::Result<void> repositionCompressedInput(
28 ::Audio::EncodedByteOffset encodedByteOffset,
29 ::Audio::PcmFramePosition pcmFramePosition
30 ) = 0;
31
32 virtual uchar getChannels() const = 0;
33
34 virtual int getSampleRate() const = 0;
35
36 virtual int64 getCurrentFramePosition() const = 0;
37
38 virtual void setTotalSamples(uint64 totalSamples) = 0;
39
40 virtual ::std::optional<uint64> getTotalSamples() const = 0;
41
42 virtual bool isFinished() const = 0;
43
44 virtual uint64 getFileReadPosition() const = 0;
45
46 virtual uint64 getSafeConsumePosition() const = 0;
47 // NOLINTEND
48};
49
50} // namespace Audio
Definition AudioFrameBuffer.h:10
Definition IAudioDecoder.h:17
Definition EncodedByteOffset.h:10
Definition PcmFramePosition.h:10