void MIDIMapper::controller_received(int controller, int value_int)
{
int delta_value = value_int - 64; // For infinite controllers such as jog.
+ float value = map_controller_to_float(controller, value_int);
receiver->controller_changed(controller);
match_controller(controller, MIDIMappingProto::kJogFieldNumber, MIDIMappingProto::kJogBankFieldNumber,
delta_value, bind(&ControllerReceiver::jog, receiver, _1));
+
+ // Speed goes from 0.0 to 2.0 (the receiver will clamp).
+ match_controller(controller, MIDIMappingProto::kMasterSpeedFieldNumber, MIDIMappingProto::kMasterSpeedBankFieldNumber,
+ value * 2.0, bind(&ControllerReceiver::set_master_speed, receiver, _1));
}
void MIDIMapper::note_on_received(int note)
bind(&ControllerReceiver::queue, receiver));
match_button(note, MIDIMappingProto::kPlayFieldNumber, MIDIMappingProto::kPlayBankFieldNumber,
bind(&ControllerReceiver::play, receiver));
+ match_button(note, MIDIMappingProto::kToggleLockFieldNumber, MIDIMappingProto::kToggleLockBankFieldNumber,
+ bind(&ControllerReceiver::toggle_lock, receiver));
unsigned num_cameras = std::min(MAX_STREAMS, mapping_proto->camera_size());
for (unsigned camera_idx = 0; camera_idx < num_cameras; ++camera_idx) {
if (play_enabled_light) {
activate_mapped_light(*mapping_proto, MIDIMappingProto::kPlayEnabledFieldNumber, &active_lights);
}
+ if (locked_light) {
+ activate_mapped_light(*mapping_proto, MIDIMappingProto::kLockedFieldNumber, &active_lights);
+ }
if (current_highlighted_camera >= 0 && current_highlighted_camera < mapping_proto->camera_size()) {
const CameraMIDIMappingProto &camera = mapping_proto->camera(current_highlighted_camera);
activate_mapped_light(camera, CameraMIDIMappingProto::kIsCurrentFieldNumber, &active_lights);