Class: Punchblock::Translator::DTMFRecognizer

Inherits:
Object
  • Object
show all
Defined in:
lib/punchblock/translator/dtmf_recognizer.rb

Instance Method Summary collapse

Constructor Details

#initialize(responder, grammar, initial_timeout = nil, inter_digit_timeout = nil) ⇒ DTMFRecognizer

Returns a new instance of DTMFRecognizer.



6
7
8
9
10
11
12
13
14
15
# File 'lib/punchblock/translator/dtmf_recognizer.rb', line 6

def initialize(responder, grammar, initial_timeout = nil, inter_digit_timeout = nil)
  @responder = responder
  self.grammar = grammar
  self.initial_timeout = initial_timeout || -1
  self.inter_digit_timeout = inter_digit_timeout || -1

  @buffer = ""

  begin_initial_timer @initial_timeout/1000 unless @initial_timeout == -1
end

Instance Method Details

#<<(digit) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/punchblock/translator/dtmf_recognizer.rb', line 17

def <<(digit)
  @buffer << digit
  cancel_initial_timer
  case (match = @grammar.match @buffer.dup)
  when RubySpeech::GRXML::Match
    @responder.match match.mode, match.confidence, match.utterance, match.interpretation
  when RubySpeech::GRXML::NoMatch
    @responder.nomatch
  when RubySpeech::GRXML::PotentialMatch
    reset_inter_digit_timer
  end
end

#finalizeObject



30
31
32
33
# File 'lib/punchblock/translator/dtmf_recognizer.rb', line 30

def finalize
  cancel_initial_timer
  cancel_inter_digit_timer
end