summaryrefslogtreecommitdiff
path: root/music/pokeredmusicdisasm/Octave.h
blob: c51ea7b103780984ee9f02123fabb71ccce1f5ee (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
38
39
40
41
42
43
#ifndef OCTAVE_H
#define OCTAVE_H

#include "AbstractData.h"

//Represents 1 octave value
class Octave : public AbstractData
{
public:
	// Constructors
	Octave();
	Octave(unsigned char* byte); // Parse Immidiately
    Octave(unsigned char octave, bool); // Set value

	// Direct Getters / Setters
	unsigned char GetOctave();
	void SetOctave(unsigned char value);

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

	std::string LookupOctString();

        enum OctaveCode : unsigned char
        {
            oct0 = 0xE7,
            oct1 = 0xE6,
            oct2 = 0xE5,
            oct3 = 0xE4,
            oct4 = 0xE3,
            oct5 = 0xE2,
            oct6 = 0xE1,
            oct7 = 0xE0
        };

private:
	unsigned char octave;
};

#endif