#include "audio_mixer.h"
#include "nageru_midi_mapping.pb.h"
+#include "shared/midi_device.h"
#include "shared/midi_mapper_util.h"
#include "shared/text_proto.h"
using namespace std;
using namespace std::placeholders;
-namespace {
-
-double map_controller_to_float(int val)
-{
- // Slightly hackish mapping so that we can represent exactly 0.0, 0.5 and 1.0.
- if (val <= 0) {
- return 0.0;
- } else if (val >= 127) {
- return 1.0;
- } else {
- return (val + 0.5) / 127.0;
- }
-}
-
-} // namespace
-
MIDIMapper::MIDIMapper(ControllerReceiver *receiver)
: receiver(receiver), mapping_proto(new MIDIMappingProto), midi_device(this)
{
void MIDIMapper::controller_received(int controller, int value_int)
{
- const float value = map_controller_to_float(value_int);
+ const float value = map_controller_to_float(controller, value_int);
receiver->controller_changed(controller);