summaryrefslogtreecommitdiff
path: root/libs/revolution/src/homebuttonLib/nw4hbm/snd/DisposeCallbackManager.h
blob: 38e117366f7b5b1e46a08cbfdd142bf82508837d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef NW4HBM_SND_DISPOSE_CALLBACK_MANAGER_H
#define NW4HBM_SND_DISPOSE_CALLBACK_MANAGER_H

#include "DisposeCallback.h"

namespace nw4hbm {
    namespace snd {
        namespace detail {
            class DisposeCallbackManager {
            public:
                static DisposeCallbackManager& GetInstance();

                void RegisterDisposeCallback(DisposeCallbackBase* callback);
                void UnregisterDisposeCallback(DisposeCallbackBase* callback);

                static void Dispose(void* mem, u32 size, void* arg);
                static void DisposeWave(void* mem, u32 size, void* arg);

            private:
                DisposeCallbackManager();

                /* 0x00 */ DisposeCallbackList mCallbackList;
            };
        }  // namespace detail
    }  // namespace snd
}  // namespace nw4hbm

#endif