1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/*
2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *
4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  Use of this source code is governed by a BSD-style license
5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  that can be found in the LICENSE file in the root of the source
6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  tree. An additional intellectual property rights grant can be found
7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  in the file PATENTS.  All contributing project authors may
8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  be found in the AUTHORS file in the root of the source tree.
9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */
10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_TB_INTERFACES_H_
12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_TB_INTERFACES_H_
13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#include <string>
15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
16774b3d38a4a0f1a8ec08972a3c543cb5d607ce13henrike@webrtc.org#include "webrtc/base/constructormagic.h"
17281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/common_types.h"
18281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/include/vie_base.h"
19281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/include/vie_capture.h"
20281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/include/vie_codec.h"
21281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/include/vie_image_process.h"
22281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/include/vie_network.h"
23281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/include/vie_render.h"
24281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/include/vie_rtp_rtcp.h"
25281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/vie_defines.h"
26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// This class deals with all the tedium of setting up video engine interfaces.
28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// It does its work in constructor and destructor, so keeping it in scope is
29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// enough. It also sets up tracing.
30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass TbInterfaces
31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{
32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgpublic:
33b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    // Sets up all interfaces and creates a trace file
34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    TbInterfaces(const std::string& test_name);
35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    ~TbInterfaces(void);
36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::VideoEngine* video_engine;
38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::ViEBase* base;
39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::ViECapture* capture;
40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::ViERender* render;
41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::ViERTP_RTCP* rtp_rtcp;
42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::ViECodec* codec;
43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::ViENetwork* network;
44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    webrtc::ViEImageProcess* image_process;
45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    int LastError() {
47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org        return base->LastError();
48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    }
49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgprivate:
51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    DISALLOW_COPY_AND_ASSIGN(TbInterfaces);
52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org};
53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif  // WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_TB_INTERFACES_H_
55