| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
 |   2 // Use of this source code is governed by a BSD-style license that can be | 
 |   3 // found in the LICENSE file. | 
 |   4  | 
 |   5 #include "content/shell/renderer/test_runner/mock_webrtc_dtmf_sender_handler.h" | 
 |   6  | 
 |   7 #include "base/logging.h" | 
 |   8 #include "content/shell/renderer/test_runner/WebTestDelegate.h" | 
 |   9 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 
 |  10 #include "third_party/WebKit/public/platform/WebRTCDTMFSenderHandlerClient.h" | 
 |  11  | 
 |  12 using namespace blink; | 
 |  13  | 
 |  14 namespace content { | 
 |  15  | 
 |  16 class DTMFSenderToneTask : public WebMethodTask<MockWebRTCDTMFSenderHandler> { | 
 |  17  public: | 
 |  18   DTMFSenderToneTask(MockWebRTCDTMFSenderHandler* object, | 
 |  19                      WebRTCDTMFSenderHandlerClient* client) | 
 |  20       : WebMethodTask<MockWebRTCDTMFSenderHandler>(object), client_(client) {} | 
 |  21  | 
 |  22   virtual void runIfValid() OVERRIDE { | 
 |  23     WebString tones = m_object->currentToneBuffer(); | 
 |  24     m_object->ClearToneBuffer(); | 
 |  25     client_->didPlayTone(tones); | 
 |  26   } | 
 |  27  | 
 |  28  private: | 
 |  29   WebRTCDTMFSenderHandlerClient* client_; | 
 |  30 }; | 
 |  31  | 
 |  32 ///////////////////// | 
 |  33  | 
 |  34 MockWebRTCDTMFSenderHandler::MockWebRTCDTMFSenderHandler( | 
 |  35     const WebMediaStreamTrack& track, | 
 |  36     WebTestDelegate* delegate) | 
 |  37     : client_(0), track_(track), delegate_(delegate) { | 
 |  38 } | 
 |  39  | 
 |  40 void MockWebRTCDTMFSenderHandler::setClient( | 
 |  41     WebRTCDTMFSenderHandlerClient* client) { | 
 |  42   client_ = client; | 
 |  43 } | 
 |  44  | 
 |  45 WebString MockWebRTCDTMFSenderHandler::currentToneBuffer() { | 
 |  46   return tone_buffer_; | 
 |  47 } | 
 |  48  | 
 |  49 bool MockWebRTCDTMFSenderHandler::canInsertDTMF() { | 
 |  50   DCHECK(client_ && !track_.isNull()); | 
 |  51   return track_.source().type() == WebMediaStreamSource::TypeAudio && | 
 |  52          track_.isEnabled() && | 
 |  53          track_.source().readyState() == WebMediaStreamSource::ReadyStateLive; | 
 |  54 } | 
 |  55  | 
 |  56 bool MockWebRTCDTMFSenderHandler::insertDTMF(const WebString& tones, | 
 |  57                                              long duration, | 
 |  58                                              long inter_tone_gap) { | 
 |  59   DCHECK(client_); | 
 |  60   if (!canInsertDTMF()) | 
 |  61     return false; | 
 |  62  | 
 |  63   tone_buffer_ = tones; | 
 |  64   delegate_->postTask(new DTMFSenderToneTask(this, client_)); | 
 |  65   delegate_->postTask(new DTMFSenderToneTask(this, client_)); | 
 |  66   return true; | 
 |  67 } | 
 |  68  | 
 |  69 }  // namespace content | 
| OLD | NEW |