CommonLibSSE (powerof3)
BSIMusicTrack.h
Go to the documentation of this file.
1 #pragma once
2 
3 namespace RE
4 {
6  {
7  public:
8  inline static constexpr auto RTTI = RTTI_BSIMusicTrack;
9  inline static constexpr auto VTABLE = VTABLE_BSIMusicTrack;
10 
11  enum class TrackType : std::uint32_t
12  {
13  kSilentTrack = 0xA1A9C4D5,
14  kSingleTrack = 0x6ED7E048,
15  kPalette = 0x23F678C3
16  };
17 
18  enum class MUSIC_STATUS
19  {
20  kInactive = 0,
21  kPlaying = 1,
22  kPaused = 2,
23  kFinishing = 3,
24  kFinished = 4
25  };
26 
27  virtual ~BSIMusicTrack(); // 00
28 
29  // add
30  virtual void DoUpdate() = 0; // 01
31  virtual void DoPlay() = 0; // 02
32  virtual void DoPause() = 0; // 03
33  virtual void DoFinish(bool a_immediate, float a_fadeTime) = 0; // 04
34  [[nodiscard]] virtual float GetDurationImpl() const = 0; // 05
35  [[nodiscard]] virtual TrackType GetType() const = 0; // 06 - CRC32 hash of class name
36  [[nodiscard]] virtual bool TestCanPlay() const; // 07 - { return true; }
37  [[nodiscard]] virtual MUSIC_STATUS GetMusicStatus() const; // 08 - { return trackStatus; }
38  virtual void DoSetDuckingAttenuation(std::uint16_t a_ducking); // 09 - { return; }
39  virtual void DoClearDucking(); // 0A - { return; }
40 
41  // members
43  std::uint32_t pad0C; // 0C
44  };
45  static_assert(sizeof(BSIMusicTrack) == 0x10);
46 }
Definition: BSIMusicTrack.h:6
virtual void DoPause()=0
static constexpr auto RTTI
Definition: BSIMusicTrack.h:8
virtual bool TestCanPlay() const
virtual ~BSIMusicTrack()
virtual void DoClearDucking()
MUSIC_STATUS
Definition: BSIMusicTrack.h:19
virtual void DoUpdate()=0
virtual TrackType GetType() const =0
virtual float GetDurationImpl() const =0
virtual void DoPlay()=0
static constexpr auto VTABLE
Definition: BSIMusicTrack.h:9
REX::EnumSet< MUSIC_STATUS, std::uint32_t > trackStatus
Definition: BSIMusicTrack.h:42
std::uint32_t pad0C
Definition: BSIMusicTrack.h:43
TrackType
Definition: BSIMusicTrack.h:12
virtual MUSIC_STATUS GetMusicStatus() const
virtual void DoSetDuckingAttenuation(std::uint16_t a_ducking)
virtual void DoFinish(bool a_immediate, float a_fadeTime)=0
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSIMusicTrack
Definition: Offsets_VTABLE.h:9047
constexpr REL::ID RTTI_BSIMusicTrack(static_cast< std::uint64_t >(685259))