Move buzzing code to buzzr.h & buzzer.cpp (PR#2307)
at least the lcd independent part from Marlin_main.cpp.
This commit is contained in:
		
				
					committed by
					
						
						Richard Wackerbarth
					
				
			
			
				
	
			
			
			
						parent
						
							c461975140
						
					
				
				
					commit
					722829b058
				
			@@ -52,6 +52,7 @@
 | 
				
			|||||||
#include "language.h"
 | 
					#include "language.h"
 | 
				
			||||||
#include "pins_arduino.h"
 | 
					#include "pins_arduino.h"
 | 
				
			||||||
#include "math.h"
 | 
					#include "math.h"
 | 
				
			||||||
 | 
					#include "buzzer.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef BLINKM
 | 
					#ifdef BLINKM
 | 
				
			||||||
  #include "blinkm.h"
 | 
					  #include "blinkm.h"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										22
									
								
								Marlin/buzzer.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Marlin/buzzer.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#include "Marlin.h"
 | 
				
			||||||
 | 
					#include "buzzer.h"
 | 
				
			||||||
 | 
					#include "ultralcd.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if HAS_BUZZER
 | 
				
			||||||
 | 
					  void buzz(long duration, uint16_t freq) {
 | 
				
			||||||
 | 
					    if (freq > 0) {
 | 
				
			||||||
 | 
					      #ifdef LCD_USE_I2C_BUZZER
 | 
				
			||||||
 | 
					        lcd_buzz(duration, freq);
 | 
				
			||||||
 | 
					      #elif defined(BEEPER) && BEEPER >= 0 // on-board buzzers have no further condition
 | 
				
			||||||
 | 
					        SET_OUTPUT(BEEPER);
 | 
				
			||||||
 | 
					        tone(BEEPER, freq, duration);
 | 
				
			||||||
 | 
					        delay(duration);
 | 
				
			||||||
 | 
					      #else
 | 
				
			||||||
 | 
					        delay(duration);
 | 
				
			||||||
 | 
					      #endif
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
					      delay(duration);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										8
									
								
								Marlin/buzzer.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Marlin/buzzer.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					#ifndef BUZZER_H
 | 
				
			||||||
 | 
					  #define BUZZER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #if HAS_BUZZER
 | 
				
			||||||
 | 
					    void buzz(long duration,uint16_t freq);
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif BUZZER_H
 | 
				
			||||||
@@ -1302,6 +1302,13 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01)
 | 
				
			|||||||
 * Audio feedback for controller clicks
 | 
					 * Audio feedback for controller clicks
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LCD_USE_I2C_BUZZER
 | 
				
			||||||
 | 
					  void lcd_buzz(long duration, uint16_t freq) { // called from buzz() in Marlin_main.cpp where lcd is unknown
 | 
				
			||||||
 | 
					    lcd.buzz(duration, freq);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void lcd_quick_feedback() {
 | 
					void lcd_quick_feedback() {
 | 
				
			||||||
  lcdDrawUpdate = 2;
 | 
					  lcdDrawUpdate = 2;
 | 
				
			||||||
  next_button_update_ms = millis() + 500;
 | 
					  next_button_update_ms = millis() + 500;
 | 
				
			||||||
@@ -1313,7 +1320,7 @@ void lcd_quick_feedback() {
 | 
				
			|||||||
    #ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
 | 
					    #ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
 | 
				
			||||||
      #define LCD_FEEDBACK_FREQUENCY_DURATION_MS (1000/6)
 | 
					      #define LCD_FEEDBACK_FREQUENCY_DURATION_MS (1000/6)
 | 
				
			||||||
    #endif    
 | 
					    #endif    
 | 
				
			||||||
    buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ);
 | 
					    lcd.buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ);
 | 
				
			||||||
  #elif defined(BEEPER) && BEEPER >= 0
 | 
					  #elif defined(BEEPER) && BEEPER >= 0
 | 
				
			||||||
    #ifndef LCD_FEEDBACK_FREQUENCY_HZ
 | 
					    #ifndef LCD_FEEDBACK_FREQUENCY_HZ
 | 
				
			||||||
      #define LCD_FEEDBACK_FREQUENCY_HZ 5000
 | 
					      #define LCD_FEEDBACK_FREQUENCY_HZ 5000
 | 
				
			||||||
@@ -1749,25 +1756,6 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#endif // ULTIPANEL
 | 
					#endif // ULTIPANEL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if HAS_BUZZER
 | 
					 | 
				
			||||||
  void buzz(long duration, uint16_t freq) {
 | 
					 | 
				
			||||||
    if (freq > 0) {
 | 
					 | 
				
			||||||
      #ifdef LCD_USE_I2C_BUZZER
 | 
					 | 
				
			||||||
        lcd.buzz(duration, freq);
 | 
					 | 
				
			||||||
      #elif defined(BEEPER) && BEEPER >= 0
 | 
					 | 
				
			||||||
        SET_OUTPUT(BEEPER);
 | 
					 | 
				
			||||||
        tone(BEEPER, freq, duration);
 | 
					 | 
				
			||||||
        delay(duration);
 | 
					 | 
				
			||||||
      #else
 | 
					 | 
				
			||||||
        delay(duration);
 | 
					 | 
				
			||||||
      #endif
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
      delay(duration);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*********************************/
 | 
					/*********************************/
 | 
				
			||||||
/** Number to string conversion **/
 | 
					/** Number to string conversion **/
 | 
				
			||||||
/*********************************/
 | 
					/*********************************/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
#define ULTRALCD_H
 | 
					#define ULTRALCD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Marlin.h"
 | 
					#include "Marlin.h"
 | 
				
			||||||
 | 
					#include "buzzer.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ULTRA_LCD
 | 
					#ifdef ULTRA_LCD
 | 
				
			||||||
  int lcd_strlen(char *s);
 | 
					  int lcd_strlen(char *s);
 | 
				
			||||||
@@ -15,6 +16,10 @@
 | 
				
			|||||||
  void lcd_reset_alert_level();
 | 
					  void lcd_reset_alert_level();
 | 
				
			||||||
  bool lcd_detected(void);
 | 
					  bool lcd_detected(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #ifdef LCD_USE_I2C_BUZZER
 | 
				
			||||||
 | 
					    void lcd_buzz(long duration, uint16_t freq);
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #if defined(LCD_PROGRESS_BAR) && PROGRESS_MSG_EXPIRE > 0
 | 
					  #if defined(LCD_PROGRESS_BAR) && PROGRESS_MSG_EXPIRE > 0
 | 
				
			||||||
    void dontExpireStatus();
 | 
					    void dontExpireStatus();
 | 
				
			||||||
  #endif
 | 
					  #endif
 | 
				
			||||||
@@ -111,10 +116,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#endif //ULTRA_LCD
 | 
					#endif //ULTRA_LCD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if HAS_BUZZER
 | 
					 | 
				
			||||||
  void buzz(long duration,uint16_t freq);
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char *itostr2(const uint8_t &x);
 | 
					char *itostr2(const uint8_t &x);
 | 
				
			||||||
char *itostr31(const int &xx);
 | 
					char *itostr31(const int &xx);
 | 
				
			||||||
char *itostr3(const int &xx);
 | 
					char *itostr3(const int &xx);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user