summaryrefslogtreecommitdiff
path: root/include/JSystem/JAudio2/JASBank.h
blob: b68f7103ecfa14f1cc69bfc45a7a9c74db8fe919 (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
29
30
31
32
33
34
35
36
37
#ifndef JASBANK_H
#define JASBANK_H

#include "dolphin/types.h"

class JASChannel;
class JASInstParam;
class JASWaveBank;

namespace JASDsp {
    class TChannel;
}

/**
 * @ingroup jsystem-jaudio
 * 
 */
class JASBank {
public:
    JASBank() { mWaveBank = NULL; }
    virtual ~JASBank() {};
    virtual bool getInstParam(int, int, int, JASInstParam*) const = 0;
    virtual u32 getType() const = 0;

    JASWaveBank* getWaveBank() const { return mWaveBank; }
    void assignWaveBank(JASWaveBank* param_0) { mWaveBank = param_0; }

    /* 80297930 */ static JASChannel* noteOn(JASBank const*, int, u8, u8, u16,
                                void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
    /* 80297C40 */ static JASChannel* noteOnOsc(int, u8, u8, u16,
                                void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);

private:
    /* 0x04 */ JASWaveBank* mWaveBank;
};

#endif /* JASBANK_H */