Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
HttpAudioFetcher.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/audio/online_streaming/IOnlineAudioFetcher.h"
7#include "mc/deps/core/threading/Async.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/platform/brstd/move_only_function.h"
10
11// auto generated forward declare list
12// clang-format off
13class TaskGroup;
14namespace Audio { class IOnlineAudioFetcherUpdateHandle; }
15namespace Audio { class OnlineAudioEncryptionData; }
16namespace Audio { class OnlineStreamedAudioBuffer; }
17namespace Audio { struct HttpRangeResponse; }
18namespace Audio { struct OnlineAudioFetchStartRequest; }
19namespace Audio { struct OnlineAudioFetcherSnapshot; }
20namespace Audio { struct OnlineStreamConfig; }
21// clang-format on
22
23namespace Audio {
24
25class HttpAudioFetcher : public ::Audio::IOnlineAudioFetcher {
26public:
27 // member variables
28 // NOLINTBEGIN
30 // NOLINTEND
31
32public:
33 // prevent constructor by default
34 HttpAudioFetcher& operator=(HttpAudioFetcher const&);
35 HttpAudioFetcher(HttpAudioFetcher const&);
36 HttpAudioFetcher();
37
38public:
39 // virtual functions
40 // NOLINTBEGIN
41 virtual ~HttpAudioFetcher() /*override*/ = default;
42
43 virtual void start(::Audio::OnlineAudioFetchStartRequest request) /*override*/;
44
45 virtual void stop() /*override*/;
46
47 virtual void notifyPlaybackStarted() /*override*/;
48
49 virtual ::Audio::OnlineAudioFetcherSnapshot getSnapshot() const /*override*/;
50
51 virtual ::std::shared_ptr<::Audio::IOnlineAudioFetcherUpdateHandle> getUpdateHandle() /*override*/;
52 // NOLINTEND
53
54public:
55 // static functions
56 // NOLINTBEGIN
57#ifdef LL_PLAT_C
58 MCNAPI static ::brstd::move_only_function<::std::unique_ptr<::Audio::IOnlineAudioFetcher>(
59 ::std::string const&,
60 ::std::shared_ptr<::Audio::OnlineStreamedAudioBuffer>,
62 ::std::optional<::Audio::OnlineAudioEncryptionData>
63 )> createFetcherFactory(::Bedrock::NotNullNonOwnerPtr<::TaskGroup> const& taskGroup);
64#endif
65 // NOLINTEND
66
67public:
68 // virtual function thunks
69 // NOLINTBEGIN
70#ifdef LL_PLAT_C
71 MCNAPI void $start(::Audio::OnlineAudioFetchStartRequest request);
72
73 MCNAPI void $stop();
74
75 MCNAPI void $notifyPlaybackStarted();
76
77 MCNAPI ::Audio::OnlineAudioFetcherSnapshot $getSnapshot() const;
78
79 MCNAPI ::std::shared_ptr<::Audio::IOnlineAudioFetcherUpdateHandle> $getUpdateHandle();
80#endif
81
82
83 // NOLINTEND
84};
85
86} // namespace Audio
Definition IOnlineAudioFetcherUpdateHandle.h:13
Definition IOnlineAudioFetcher.h:14
Definition OnlineAudioEncryptionData.h:7
Definition OnlineStreamedAudioBuffer.h:10
Definition TaskGroup.h:85
Definition HttpRangeResponse.h:7
Definition OnlineAudioFetchStartRequest.h:7
Definition OnlineAudioFetcherSnapshot.h:7
Definition OnlineStreamConfig.h:7
Definition Alias.h:14