blob: eed1f5720519ea154211fbde29fc8c197ef897bf [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_DISPATCHER_H_
#define CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_DISPATCHER_H_
#include <string>
#include "content/renderer/media/media_stream_dispatcher.h"
#include "url/gurl.h"
namespace content {
// This class is a mock implementation of MediaStreamDispatcher.
class MockMediaStreamDispatcher : public MediaStreamDispatcher {
public:
MockMediaStreamDispatcher();
virtual ~MockMediaStreamDispatcher();
virtual void GenerateStream(
int request_id,
const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
const StreamOptions& components,
const GURL& url) OVERRIDE;
virtual void CancelGenerateStream(
int request_id,
const base::WeakPtr<MediaStreamDispatcherEventHandler>&
event_handler) OVERRIDE;
virtual void EnumerateDevices(
int request_id,
const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
MediaStreamType type,
const GURL& security_origin,
bool hide_labels_if_no_access) OVERRIDE;
virtual void StopStreamDevice(const StreamDeviceInfo& device_info) OVERRIDE;
virtual bool IsStream(const std::string& label) OVERRIDE;
virtual int video_session_id(const std::string& label, int index) OVERRIDE;
virtual int audio_session_id(const std::string& label, int index) OVERRIDE;
int audio_input_request_id() const { return audio_input_request_id_; }
int audio_output_request_id() const { return audio_output_request_id_; }
int video_request_id() const { return video_request_id_; }
int request_stream_counter() const { return request_stream_counter_; }
void IncrementSessionId() { ++session_id_; }
int stop_audio_device_counter() const { return stop_audio_device_counter_; }
int stop_video_device_counter() const { return stop_video_device_counter_; }
const std::string& stream_label() const { return stream_label_;}
const StreamDeviceInfoArray& audio_input_array() const {
return audio_input_array_;
}
const StreamDeviceInfoArray& audio_output_array() const {
return audio_output_array_;
}
const StreamDeviceInfoArray& video_array() const { return video_array_; }
private:
void AddAudioInputDeviceToArray(bool matched_output);
void AddAudioOutputDeviceToArray();
void AddVideoDeviceToArray();
int audio_input_request_id_;
int audio_output_request_id_; // Only used for EnumerateDevices.
int video_request_id_; // Only used for EnumerateDevices.
base::WeakPtr<MediaStreamDispatcherEventHandler> event_handler_;
int request_stream_counter_;
int stop_audio_device_counter_;
int stop_video_device_counter_;
std::string stream_label_;
int session_id_;
StreamDeviceInfoArray audio_input_array_;
StreamDeviceInfoArray audio_output_array_;
StreamDeviceInfoArray video_array_;
DISALLOW_COPY_AND_ASSIGN(MockMediaStreamDispatcher);
};
} // namespace content
#endif // CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_DISPATCHER_H_