blob: 5fb982b1fc33c503f284528fa7f731b0b099b75c [file] [log] [blame]
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +00001/*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
pbos@webrtc.org471ae722013-05-21 13:52:32 +000011#include "webrtc/voice_engine/transmit_mixer.h"
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000012
pbos@webrtc.org471ae722013-05-21 13:52:32 +000013#include "testing/gtest/include/gtest/gtest.h"
14#include "webrtc/voice_engine/include/voe_external_media.h"
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000015
16namespace webrtc {
17namespace voe {
18namespace {
19
20class MediaCallback : public VoEMediaProcess {
21 public:
pbos@webrtc.orgca7a9a22013-05-14 08:31:39 +000022 virtual void Process(int channel, ProcessingTypes type,
23 int16_t audio[], int samples_per_channel,
24 int sample_rate_hz, bool is_stereo) {
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000025 }
26};
27
28// TODO(andrew): Mock VoEMediaProcess, and verify the behavior when calling
29// PrepareDemux().
30TEST(TransmitMixerTest, RegisterExternalMediaCallback) {
31 TransmitMixer* tm = NULL;
32 ASSERT_EQ(0, TransmitMixer::Create(tm, 0));
33 ASSERT_TRUE(tm != NULL);
34 MediaCallback callback;
35 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(NULL,
36 kRecordingPreprocessing));
37 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(&callback,
38 kPlaybackPerChannel));
39 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(&callback,
40 kPlaybackAllChannelsMixed));
41 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(&callback,
42 kRecordingPerChannel));
43 EXPECT_EQ(0, tm->RegisterExternalMediaProcessing(&callback,
44 kRecordingAllChannelsMixed));
45 EXPECT_EQ(0, tm->RegisterExternalMediaProcessing(&callback,
46 kRecordingPreprocessing));
47 EXPECT_EQ(-1, tm->DeRegisterExternalMediaProcessing(kPlaybackPerChannel));
48 EXPECT_EQ(-1, tm->DeRegisterExternalMediaProcessing(
49 kPlaybackAllChannelsMixed));
50 EXPECT_EQ(-1, tm->DeRegisterExternalMediaProcessing(kRecordingPerChannel));
51 EXPECT_EQ(0, tm->DeRegisterExternalMediaProcessing(
52 kRecordingAllChannelsMixed));
53 EXPECT_EQ(0, tm->DeRegisterExternalMediaProcessing(kRecordingPreprocessing));
54 TransmitMixer::Destroy(tm);
55}
56
57} // namespace
58} // namespace voe
59} // namespace webrtc