11bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org/*
21bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org *  Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
31bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org *
41bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org *  Use of this source code is governed by a BSD-style license
51bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org *  that can be found in the LICENSE file in the root of the source
61bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org *  tree. An additional intellectual property rights grant can be found
71bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org *  in the file PATENTS.  All contributing project authors may
81bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org *  be found in the AUTHORS file in the root of the source tree.
91bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org */
101bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_MOCK_MOCK_VIDEO_CAPTURE_H_
111bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org#define WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_MOCK_MOCK_VIDEO_CAPTURE_H_
121bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org
131bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org#include "webrtc/modules/video_capture/include/video_capture.h"
141bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org#include "testing/gmock/include/gmock/gmock.h"
151bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org
161bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.orgnamespace webrtc {
171bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org
181bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.orgclass MockVideoCaptureModule : public VideoCaptureModule {
191bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org public:
201bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  // from Module
211bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(TimeUntilNextProcess, int32_t());
221bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(Process, int32_t());
231bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org
241bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  // from RefCountedModule
251bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(AddRef, int32_t());
261bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(Release, int32_t());
271bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org
281bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  // from VideoCaptureModule
291bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(RegisterCaptureDataCallback,
301bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org      void(VideoCaptureDataCallback& dataCallback));
311bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(DeRegisterCaptureDataCallback, void());
321bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(RegisterCaptureCallback, void(VideoCaptureFeedBack& callBack));
331bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(DeRegisterCaptureCallback, void());
341bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(StartCapture, int32_t(const VideoCaptureCapability& capability));
351bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(StopCapture, int32_t());
361bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_CONST_METHOD0(CurrentDeviceName, const char*());
371bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(CaptureStarted, bool());
381bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(CaptureSettings, int32_t(VideoCaptureCapability& settings));
391bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(SetCaptureDelay, void(int32_t delayMS));
401bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD0(CaptureDelay, int32_t());
411bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(SetCaptureRotation, int32_t(VideoCaptureRotation rotation));
421bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(GetEncodeInterface,
431bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org               VideoCaptureEncodeInterface*(const VideoCodec& codec));
441bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(EnableFrameRateCallback, void(const bool enable));
451bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org  MOCK_METHOD1(EnableNoPictureAlarm, void(const bool enable));
461bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org};
471bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org
481bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org}  // namespace webrtc
491bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org
501bdf186e6ae8d2f1a7d055237a75c0d7fd189624wuchengli@chromium.org#endif  // WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_MOCK_MOCK_VIDEO_CAPTURE_H_
51