/** * @brief Receive key presses and update the trim data * @note * @param key: Which trim key was pressed. * @retval None */ void mixer_input_trim(KEYPAD_KEY key) { uint8_t channel = 0; int8_t increment = 0; uint8_t endstop = 0; switch (key) { case KEY_CH1_UP: channel = 0; increment = 1; break; case KEY_CH2_UP: channel = 1; increment = 1; break; case KEY_CH3_UP: channel = 2; increment = 1; break; case KEY_CH4_UP: channel = 3; increment = 1; break; case KEY_CH1_DN: channel = 0; increment = -1; break; case KEY_CH2_DN: channel = 1; increment = -1; break; case KEY_CH3_DN: channel = 2; increment = -1; break; case KEY_CH4_DN: channel = 3; increment = -1; break; default: break; } if (increment > 0) { if (g_model.trim[channel] < MIXER_TRIM_LIMIT) g_model.trim[channel] += trim_increment; else endstop = 1; } else { if (g_model.trim[channel] > -MIXER_TRIM_LIMIT) g_model.trim[channel] -= trim_increment; else endstop = 1; } if (g_model.trim[channel] == 0) endstop = 1; if (endstop != 0) { keypad_cancel_repeat(); sound_play_tone(500 + 250*g_model.trim[channel]/MIXER_TRIM_LIMIT, 200); } else { sound_play_tone(500 + 250*g_model.trim[channel]/MIXER_TRIM_LIMIT, 100); } }
ER ev3_speaker_stop() { return sound_play_tone(0, 0); }
ER ev3_speaker_play_tone(uint16_t frequency, int32_t duration) { return sound_play_tone(frequency, duration); }