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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#ifndef __DRUMGIZMO_MESSAGE_H__
#define __DRUMGIZMO_MESSAGE_H__
#include <string>
#include "drumkitparser.h"
class MessageHandler;
class Message {
public:
typedef enum {
LoadStatus,
LoadStatusMidimap,
LoadDrumKit,
LoadMidimap,
EngineSettingsMessage,
ChangeSettingMessage,
DrumkitInfoMessage
} type_t;
typedef enum {
NormalProcessing,
FilterMultiple,
} processing_mode_t;
virtual ~Message() {}
virtual type_t type() = 0;
virtual processing_mode_t processing_mode() { return NormalProcessing; }
};
class LoadStatusMessage : public Message {
public:
type_t type() { return Message::LoadStatus; }
processing_mode_t processing_mode() { return FilterMultiple; }
unsigned int number_of_files;
unsigned int numer_of_files_loaded;
std::string current_file;
};
class LoadStatusMessageMidimap : public Message {
public:
type_t type() { return Message::LoadStatusMidimap; }
bool success;
};
class LoadDrumKitMessage : public Message {
public:
type_t type() { return Message::LoadDrumKit; }
std::string drumkitfile;
};
class LoadMidimapMessage : public Message {
public:
type_t type() { return Message::LoadMidimap; }
std::string midimapfile;
};
class DrumkitInfoMessage : public Message {
public:
type_t type() { return Message::DrumkitInfoMessage; }
MetaData metadata;
};
class EngineSettingsMessage : public Message {
public:
type_t type() { return Message::EngineSettingsMessage; }
std::string midimapfile;
bool midimap_loaded;
std::string drumkitfile;
bool drumkit_loaded;
float enable_velocity_modifier;
float velocity_modifier_falloff;
float velocity_modifier_weight;
float enable_velocity_randomiser;
float velocity_randomiser_weight;
};
class ChangeSettingMessage : public Message {
public:
typedef enum {
enable_velocity_modifier,
velocity_modifier_weight,
velocity_modifier_falloff,
} setting_name_t;
ChangeSettingMessage(setting_name_t n, float v) {
name = n;
value = v;
}
type_t type() { return Message::ChangeSettingMessage; }
setting_name_t name;
float value;
};
#endif
|