Home | History | Annotate | Download | only in media
      1 // Copyright (c) 2012 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 #ifndef CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_DISPATCHER_H_
      6 #define CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_DISPATCHER_H_
      7 
      8 #include <string>
      9 
     10 #include "content/renderer/media/media_stream_dispatcher.h"
     11 #include "url/gurl.h"
     12 
     13 namespace content {
     14 
     15 // This class is a mock implementation of MediaStreamDispatcher.
     16 class MockMediaStreamDispatcher : public MediaStreamDispatcher {
     17  public:
     18   MockMediaStreamDispatcher();
     19   virtual ~MockMediaStreamDispatcher();
     20 
     21   virtual void GenerateStream(
     22       int request_id,
     23       const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
     24       const StreamOptions& components,
     25       const GURL& url) OVERRIDE;
     26   virtual void CancelGenerateStream(
     27       int request_id,
     28       const base::WeakPtr<MediaStreamDispatcherEventHandler>&
     29           event_handler) OVERRIDE;
     30   virtual void EnumerateDevices(
     31       int request_id,
     32       const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
     33       MediaStreamType type,
     34       const GURL& security_origin) OVERRIDE;
     35   virtual void StopStreamDevice(const StreamDeviceInfo& device_info) OVERRIDE;
     36   virtual bool IsStream(const std::string& label) OVERRIDE;
     37   virtual int video_session_id(const std::string& label, int index) OVERRIDE;
     38   virtual int audio_session_id(const std::string& label, int index) OVERRIDE;
     39 
     40   int audio_input_request_id() const { return audio_input_request_id_; }
     41   int audio_output_request_id() const { return audio_output_request_id_; }
     42   int video_request_id() const { return video_request_id_; }
     43   int request_stream_counter() const { return request_stream_counter_; }
     44   void IncrementSessionId() { ++session_id_; }
     45 
     46   int stop_audio_device_counter() const { return stop_audio_device_counter_; }
     47   int stop_video_device_counter() const { return stop_video_device_counter_; }
     48 
     49   const std::string& stream_label() const { return stream_label_;}
     50   const StreamDeviceInfoArray& audio_input_array() const {
     51     return audio_input_array_;
     52   }
     53   const StreamDeviceInfoArray& audio_output_array() const {
     54     return audio_output_array_;
     55   }
     56   const StreamDeviceInfoArray& video_array() const { return video_array_; }
     57 
     58  private:
     59   void AddAudioInputDeviceToArray(bool matched_output);
     60   void AddAudioOutputDeviceToArray();
     61   void AddVideoDeviceToArray(bool facing_user);
     62 
     63   int audio_input_request_id_;
     64   int audio_output_request_id_;  // Only used for EnumerateDevices.
     65   int video_request_id_;  // Only used for EnumerateDevices.
     66   base::WeakPtr<MediaStreamDispatcherEventHandler> event_handler_;
     67   int request_stream_counter_;
     68   int stop_audio_device_counter_;
     69   int stop_video_device_counter_;
     70 
     71   std::string stream_label_;
     72   int session_id_;
     73   StreamDeviceInfoArray audio_input_array_;
     74   StreamDeviceInfoArray audio_output_array_;
     75   StreamDeviceInfoArray video_array_;
     76 
     77   DISALLOW_COPY_AND_ASSIGN(MockMediaStreamDispatcher);
     78 };
     79 
     80 }  // namespace content
     81 
     82 #endif  // CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_DISPATCHER_H_
     83