blob: d8d85b62b6da3ce182bdb1fb49e578a3aa98bdbb [file] [log] [blame]
andrew@webrtc.orga7b57da2012-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
11#include "voice_engine/transmit_mixer.h"
12
13#include "gtest/gtest.h"
14#include "voice_engine/include/voe_external_media.h"
15
16namespace webrtc {
17namespace voe {
18namespace {
19
20class MediaCallback : public VoEMediaProcess {
21 public:
22 virtual void Process(const int channel, const ProcessingTypes type,
23 int16_t audio[], const int samples_per_channel,
24 const int sample_rate_hz, const bool is_stereo) {
25 }
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