40 lines
		
	
	
		
			728 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			728 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 
								 | 
							
								require 'ceedling/plugin'
							 | 
						||
| 
								 | 
							
								require 'ceedling/constants'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Beep < Plugin
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  attr_reader :config
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def setup
							 | 
						||
| 
								 | 
							
								    @config = {
							 | 
						||
| 
								 | 
							
								      :on_done  => ((defined? TOOLS_BEEP_ON_DONE)  ? TOOLS_BEEP_ON_DONE  : :bell  ),
							 | 
						||
| 
								 | 
							
								      :on_error => ((defined? TOOLS_BEEP_ON_ERROR) ? TOOLS_BEEP_ON_ERROR : :bell  ),
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def post_build
							 | 
						||
| 
								 | 
							
								    beep @config[:on_done]
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def post_error
							 | 
						||
| 
								 | 
							
								    beep @config[:on_error]
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  private
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def beep(method = :none)
							 | 
						||
| 
								 | 
							
								    case method
							 | 
						||
| 
								 | 
							
								    when :bell
							 | 
						||
| 
								 | 
							
								      if (SystemWrapper.windows?)
							 | 
						||
| 
								 | 
							
								        puts "echo '\007'"
							 | 
						||
| 
								 | 
							
								      else
							 | 
						||
| 
								 | 
							
								        puts "echo -ne '\007'"
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								    when :speaker_test
							 | 
						||
| 
								 | 
							
								      `speaker-test -t sine -f 1000 -l 1`
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      #do nothing with illegal or :none
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								end
							 |