♻️ Small sound / buzz refactor (#24520)
This commit is contained in:
@ -120,10 +120,11 @@ static void createChar_P(const char c, const byte * const ptr) {
|
||||
#endif
|
||||
|
||||
#if ENABLED(LCD_USE_I2C_BUZZER)
|
||||
|
||||
void MarlinUI::buzz(const long duration, const uint16_t freq) {
|
||||
if (!sound_on) return;
|
||||
lcd.buzz(duration, freq);
|
||||
if (sound_on) lcd.buzz(duration, freq);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void MarlinUI::set_custom_characters(const HD44780CharSet screen_charset/*=CHARSET_INFO*/) {
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include "../../marlinui.h"
|
||||
#include "../../../HAL/shared/Delay.h"
|
||||
|
||||
#if HAS_BUZZER
|
||||
#if HAS_SOUND
|
||||
#include "../../../libs/buzzer.h"
|
||||
#endif
|
||||
|
||||
@ -50,9 +50,7 @@ ENCODER_Rate EncoderRate;
|
||||
|
||||
// TODO: Replace with ui.quick_feedback
|
||||
void Encoder_tick() {
|
||||
#if PIN_EXISTS(BEEPER)
|
||||
if (ui.sound_on) buzzer.click(10);
|
||||
#endif
|
||||
TERN_(HAS_BEEPER, if (ui.sound_on) buzzer.click(10));
|
||||
}
|
||||
|
||||
// Encoder initialization
|
||||
@ -66,7 +64,7 @@ void Encoder_Configuration() {
|
||||
#if BUTTON_EXISTS(ENC)
|
||||
SET_INPUT_PULLUP(BTN_ENC);
|
||||
#endif
|
||||
#if PIN_EXISTS(BEEPER)
|
||||
#if HAS_BEEPER
|
||||
SET_OUTPUT(BEEPER_PIN); // TODO: Use buzzer.h which already inits this
|
||||
#endif
|
||||
}
|
||||
|
@ -2625,15 +2625,13 @@ void Draw_HomeOff_Menu() {
|
||||
#include "../../../libs/buzzer.h"
|
||||
|
||||
void HMI_AudioFeedback(const bool success=true) {
|
||||
#if HAS_BUZZER
|
||||
if (success) {
|
||||
buzzer.tone(100, 659);
|
||||
buzzer.tone(10, 0);
|
||||
buzzer.tone(100, 698);
|
||||
}
|
||||
else
|
||||
buzzer.tone(40, 440);
|
||||
#endif
|
||||
if (success) {
|
||||
BUZZ(100, 659);
|
||||
BUZZ(10, 0);
|
||||
BUZZ(100, 698);
|
||||
}
|
||||
else
|
||||
BUZZ(40, 440);
|
||||
}
|
||||
|
||||
// Prepare
|
||||
|
@ -119,17 +119,9 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
|
||||
bool MarlinUI::sound_on = ENABLED(SOUND_ON_DEFAULT);
|
||||
#endif
|
||||
|
||||
#if EITHER(PCA9632_BUZZER, HAS_BEEPER)
|
||||
#if ENABLED(PCA9632_BUZZER)
|
||||
#include "../feature/leds/pca9632.h"
|
||||
#endif
|
||||
#if ENABLED(PCA9632_BUZZER)
|
||||
void MarlinUI::buzz(const long duration, const uint16_t freq) {
|
||||
if (!sound_on) return;
|
||||
#if ENABLED(PCA9632_BUZZER)
|
||||
PCA9632_buzz(duration, freq);
|
||||
#elif HAS_BEEPER
|
||||
buzzer.tone(duration, freq);
|
||||
#endif
|
||||
if (sound_on) PCA9632_buzz(duration, freq);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -683,7 +675,7 @@ void MarlinUI::init() {
|
||||
if (old_frm != new_frm) {
|
||||
feedrate_percentage = new_frm;
|
||||
encoderPosition = 0;
|
||||
#if BOTH(HAS_BUZZER, BEEP_ON_FEEDRATE_CHANGE)
|
||||
#if BOTH(HAS_SOUND, BEEP_ON_FEEDRATE_CHANGE)
|
||||
static millis_t next_beep;
|
||||
#ifndef GOT_MS
|
||||
const millis_t ms = millis();
|
||||
@ -741,11 +733,12 @@ void MarlinUI::init() {
|
||||
UNUSED(clear_buttons);
|
||||
#endif
|
||||
|
||||
#if HAS_CHIRP
|
||||
chirp(); // Buzz and wait. Is the delay needed for buttons to settle?
|
||||
#if BOTH(HAS_MARLINUI_MENU, HAS_BEEPER)
|
||||
chirp(); // Buzz and wait. Is the delay needed for buttons to settle?
|
||||
|
||||
#if HAS_CHIRP && HAS_MARLINUI_MENU
|
||||
#if HAS_BEEPER
|
||||
for (int8_t i = 5; i--;) { buzzer.tick(); delay(2); }
|
||||
#elif HAS_MARLINUI_MENU
|
||||
#else
|
||||
delay(10);
|
||||
#endif
|
||||
#endif
|
||||
|
@ -225,12 +225,12 @@ public:
|
||||
static constexpr bool sound_on = true;
|
||||
#endif
|
||||
|
||||
#if HAS_BUZZER
|
||||
#if USE_MARLINUI_BUZZER
|
||||
static void buzz(const long duration, const uint16_t freq);
|
||||
#endif
|
||||
|
||||
FORCE_INLINE static void chirp() {
|
||||
TERN_(HAS_CHIRP, TERN(HAS_BUZZER, buzz, BUZZ)(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ));
|
||||
static void chirp() {
|
||||
TERN_(HAS_CHIRP, TERN(USE_MARLINUI_BUZZER, buzz, BUZZ)(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ));
|
||||
}
|
||||
|
||||
#if ENABLED(LCD_HAS_STATUS_INDICATORS)
|
||||
@ -453,7 +453,7 @@ public:
|
||||
#endif
|
||||
|
||||
static void quick_feedback(const bool clear_buttons=true);
|
||||
#if HAS_BUZZER
|
||||
#if HAS_SOUND
|
||||
static void completion_feedback(const bool good=true);
|
||||
#else
|
||||
static void completion_feedback(const bool=true) { TERN_(HAS_TOUCH_SLEEP, wakeup_screen()); }
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
//#define MUTE_GAMES
|
||||
|
||||
#if ENABLED(MUTE_GAMES) || !HAS_BUZZER
|
||||
#if ENABLED(MUTE_GAMES) || !HAS_SOUND
|
||||
#define _BUZZ(D,F) NOOP
|
||||
#else
|
||||
#define _BUZZ(D,F) BUZZ(D,F)
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "../../module/temperature.h"
|
||||
#include "../../gcode/queue.h"
|
||||
|
||||
#if HAS_BUZZER
|
||||
#if HAS_SOUND
|
||||
#include "../../libs/buzzer.h"
|
||||
#endif
|
||||
|
||||
@ -272,7 +272,7 @@ void scroll_screen(const uint8_t limit, const bool is_menu) {
|
||||
encoderTopLine = encoderLine;
|
||||
}
|
||||
|
||||
#if HAS_BUZZER
|
||||
#if HAS_SOUND
|
||||
void MarlinUI::completion_feedback(const bool good/*=true*/) {
|
||||
TERN_(HAS_TOUCH_SLEEP, wakeup_screen()); // Wake up on rotary encoder click...
|
||||
if (good) OKAY_BUZZ(); else ERR_BUZZ();
|
||||
|
Reference in New Issue
Block a user