summaryrefslogtreecommitdiff
path: root/music/pokeredmusicdisasm/Modulation.h
blob: 38c84791b58287ec47639f1a69469f8182e7dcad (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 MODULATION_H
#define MODULATION_H

#include "AbstractData.h"

//Represents 1 modulation value
class Modulation : public AbstractData
{
public:
	// Constructors
	Modulation();
	Modulation(unsigned char* byte); // Parse Immidiately
    Modulation(unsigned char delay, unsigned char depth, unsigned char rate, bool); // Set value

	// Direct Getter/Setter Functions
    unsigned char GetDelay();
    void SetDelay(unsigned char value);

	unsigned char GetDepth();
    void SetDepth(unsigned char value);

	unsigned char GetRate();
    void SetRate(unsigned char value);

	// Re-implemented
	virtual std::string GenAsm();
	virtual bool IsValid(unsigned char* byte);
	virtual bool Parse(unsigned char* byte);
	virtual unsigned int Arguments();

private:
	unsigned char delay;
	unsigned char depth;
	unsigned char rate;
};

#endif