| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 | 398 |
| 399 dispatcher_->OnMessageReceived( | 399 dispatcher_->OnMessageReceived( |
| 400 MediaStreamMsg_DeviceStopped(kRouteId, label, handler_->video_device_)); | 400 MediaStreamMsg_DeviceStopped(kRouteId, label, handler_->video_device_)); |
| 401 // Verify that MediaStreamDispatcherEventHandler::OnDeviceStopped has been | 401 // Verify that MediaStreamDispatcherEventHandler::OnDeviceStopped has been |
| 402 // called. | 402 // called. |
| 403 EXPECT_EQ(label, handler_->device_stopped_label_); | 403 EXPECT_EQ(label, handler_->device_stopped_label_); |
| 404 EXPECT_EQ(dispatcher_->video_session_id(label, 0), | 404 EXPECT_EQ(dispatcher_->video_session_id(label, 0), |
| 405 StreamDeviceInfo::kNoId); | 405 StreamDeviceInfo::kNoId); |
| 406 } | 406 } |
| 407 | 407 |
| 408 TEST_F(MediaStreamDispatcherTest, CheckDuckingState) { | |
| 409 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL)); | |
| 410 scoped_ptr<MockMediaStreamDispatcherEventHandler> | |
| 411 handler(new MockMediaStreamDispatcherEventHandler); | |
| 412 StreamOptions components(true, false); // audio only. | |
| 413 int ipc_request_id1 = dispatcher->next_ipc_id_; | |
| 414 | |
| 415 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), | |
| 416 components, GURL()); | |
| 417 EXPECT_EQ(1u, dispatcher->requests_.size()); | |
| 418 | |
| 419 // Ducking isn't active at this point. | |
| 420 EXPECT_FALSE(dispatcher->IsAudioDuckingActive()); | |
| 421 | |
| 422 // Complete the creation of stream1 with a single audio track that has | |
| 423 // ducking enabled. | |
| 424 StreamDeviceInfoArray audio_device_array(1); | |
| 425 StreamDeviceInfo& audio_device_info = audio_device_array[0]; | |
| 426 audio_device_info.device.name = "Microphone"; | |
| 427 audio_device_info.device.type = kAudioType; | |
| 428 audio_device_info.session_id = kAudioSessionId; | |
| 429 audio_device_info.device.input.effects = media::AudioParameters::DUCKING; | |
| 430 | |
| 431 StreamDeviceInfoArray video_device_array; // Empty for this test. | |
| 432 | |
| 433 const char kStreamLabel[] = "stream1"; | |
| 434 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated( | |
| 435 kRouteId, ipc_request_id1, kStreamLabel, | |
| 436 audio_device_array, video_device_array)); | |
| 437 EXPECT_EQ(handler->request_id_, kRequestId1); | |
| 438 EXPECT_EQ(0u, dispatcher->requests_.size()); | |
| 439 | |
| 440 // Ducking should now be reported as active. | |
| 441 EXPECT_TRUE(dispatcher->IsAudioDuckingActive()); | |
| 442 | |
| 443 // Stop the device (removes the stream). | |
| 444 dispatcher->OnMessageReceived( | |
| 445 MediaStreamMsg_DeviceStopped(kRouteId, kStreamLabel, | |
| 446 handler->audio_device_)); | |
| 447 | |
| 448 // Ducking should now be reported as inactive again. | |
| 449 EXPECT_FALSE(dispatcher->IsAudioDuckingActive()); | |
| 450 | |
| 451 // Now do the same sort of test with the DUCKING flag off. | |
| 452 audio_device_info.device.input.effects = | |
| 453 media::AudioParameters::ECHO_CANCELLER; | |
| 454 | |
| 455 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated( | |
| 456 kRouteId, ipc_request_id1, kStreamLabel, | |
| 457 audio_device_array, video_device_array)); | |
| 458 EXPECT_EQ(handler->request_id_, kRequestId1); | |
| 459 EXPECT_EQ(0u, dispatcher->requests_.size()); | |
| 460 | |
| 461 // Ducking should still be reported as not active. | |
| 462 EXPECT_FALSE(dispatcher->IsAudioDuckingActive()); | |
| 463 | |
| 464 // Stop the device (removes the stream). | |
| 465 dispatcher->OnMessageReceived( | |
| 466 MediaStreamMsg_DeviceStopped(kRouteId, kStreamLabel, | |
| 467 handler->audio_device_)); | |
| 468 } | |
| 469 | |
| 470 } // namespace content | 408 } // namespace content |
| OLD | NEW |