Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Side by Side Diff: chromecast/media/cma/backend/alsa/mock_alsa_wrapper.cc

Issue 1578983003: [Chromecast] Store ALSA Mixer test data as uint32_t. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Comment update, sizeof => size_t Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chromecast/media/cma/backend/alsa/stream_mixer_alsa_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "chromecast/media/cma/backend/alsa/mock_alsa_wrapper.h" 5 #include "chromecast/media/cma/backend/alsa/mock_alsa_wrapper.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 8
9 // Define dummy structs here to avoid linking in the ALSA lib. 9 // Define dummy structs here to avoid linking in the ALSA lib.
10 struct _snd_pcm_hw_params {}; 10 struct _snd_pcm_hw_params {};
11 struct _snd_pcm {}; 11 struct _snd_pcm {};
12 12
13 namespace chromecast { 13 namespace chromecast {
14 namespace media { 14 namespace media {
15 15
16 const size_t kBytesPerSample = sizeof(int32_t);
17 const int kNumChannels = 2;
18
16 // This class keeps basic state to ensure that ALSA is being used correctly. 19 // This class keeps basic state to ensure that ALSA is being used correctly.
17 // Calls from MockAlsaWrapper are delegated to an instance of this class in 20 // Calls from MockAlsaWrapper are delegated to an instance of this class in
18 // cases where internal ALSA state change occurs, or where a valid value needs 21 // cases where internal ALSA state change occurs, or where a valid value needs
19 // to be returned to the caller. 22 // to be returned to the caller.
20 class MockAlsaWrapper::FakeAlsaWrapper : public AlsaWrapper { 23 class MockAlsaWrapper::FakeAlsaWrapper : public AlsaWrapper {
21 public: 24 public:
22 FakeAlsaWrapper() 25 FakeAlsaWrapper()
23 : state_(SND_PCM_STATE_RUNNING), 26 : state_(SND_PCM_STATE_RUNNING),
24 fake_handle_(nullptr), 27 fake_handle_(nullptr),
25 fake_pcm_hw_params_(nullptr) {} 28 fake_pcm_hw_params_(nullptr) {}
(...skipping 24 matching lines...) Expand all
50 *handle = fake_handle_; 53 *handle = fake_handle_;
51 return 0; 54 return 0;
52 } 55 }
53 56
54 snd_pcm_sframes_t PcmWritei(snd_pcm_t* handle, 57 snd_pcm_sframes_t PcmWritei(snd_pcm_t* handle,
55 const void* buffer, 58 const void* buffer,
56 snd_pcm_uframes_t size) override { 59 snd_pcm_uframes_t size) override {
57 CHECK_EQ(fake_handle_, handle); 60 CHECK_EQ(fake_handle_, handle);
58 CHECK(buffer); 61 CHECK(buffer);
59 const uint8_t* ptr = reinterpret_cast<const uint8_t*>(buffer); 62 const uint8_t* ptr = reinterpret_cast<const uint8_t*>(buffer);
60 int len = size * 2 * 4; 63 int len = size * kNumChannels * kBytesPerSample;
61 data_.assign(ptr, ptr + len); 64 data_.assign(ptr, ptr + len);
62 return size; 65 return size;
63 } 66 }
64 67
65 int PcmHwParamsMalloc(snd_pcm_hw_params_t** ptr) override { 68 int PcmHwParamsMalloc(snd_pcm_hw_params_t** ptr) override {
66 fake_pcm_hw_params_ = new snd_pcm_hw_params_t(); 69 fake_pcm_hw_params_ = new snd_pcm_hw_params_t();
67 CHECK(fake_pcm_hw_params_); 70 CHECK(fake_pcm_hw_params_);
68 *ptr = fake_pcm_hw_params_; 71 *ptr = fake_pcm_hw_params_;
69 return 0; 72 return 0;
70 } 73 }
71 74
72 ssize_t PcmFormatSize(snd_pcm_format_t format, size_t samples) override { 75 ssize_t PcmFormatSize(snd_pcm_format_t format, size_t samples) override {
73 return 4 * samples; 76 return kBytesPerSample * samples;
74 }; 77 };
75 78
76 snd_pcm_state_t state() { return state_; } 79 snd_pcm_state_t state() { return state_; }
77 std::vector<uint8_t>& data() { return data_; } 80 std::vector<uint8_t>& data() { return data_; }
78 81
79 private: 82 private:
80 snd_pcm_state_t state_; 83 snd_pcm_state_t state_;
81 snd_pcm_t* fake_handle_; 84 snd_pcm_t* fake_handle_;
82 snd_pcm_hw_params_t* fake_pcm_hw_params_; 85 snd_pcm_hw_params_t* fake_pcm_hw_params_;
83 std::vector<uint8_t> data_; 86 std::vector<uint8_t> data_;
(...skipping 27 matching lines...) Expand all
111 snd_pcm_state_t MockAlsaWrapper::state() { 114 snd_pcm_state_t MockAlsaWrapper::state() {
112 return fake_->state(); 115 return fake_->state();
113 } 116 }
114 117
115 const std::vector<uint8_t>& MockAlsaWrapper::data() { 118 const std::vector<uint8_t>& MockAlsaWrapper::data() {
116 return fake_->data(); 119 return fake_->data();
117 } 120 }
118 121
119 } // namespace media 122 } // namespace media
120 } // namespace chromecast 123 } // namespace chromecast
OLDNEW
« no previous file with comments | « no previous file | chromecast/media/cma/backend/alsa/stream_mixer_alsa_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698