Index: components/audio_modem/modem_impl.h |
diff --git a/components/audio_modem/modem_impl.h b/components/audio_modem/modem_impl.h |
deleted file mode 100644 |
index ec6beb529999ecfe0161e34164e18c0eefa2d8c1..0000000000000000000000000000000000000000 |
--- a/components/audio_modem/modem_impl.h |
+++ /dev/null |
@@ -1,127 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef COMPONENTS_AUDIO_MODEM_MODEM_IMPL_H_ |
-#define COMPONENTS_AUDIO_MODEM_MODEM_IMPL_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/callback.h" |
-#include "base/cancelable_callback.h" |
-#include "base/containers/mru_cache.h" |
-#include "base/files/file_path.h" |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_vector.h" |
-#include "components/audio_modem/public/audio_modem_types.h" |
-#include "components/audio_modem/public/modem.h" |
-#include "media/base/audio_bus.h" |
- |
-namespace base { |
-class Time; |
-} |
- |
-namespace audio_modem { |
- |
-class AudioPlayer; |
-class AudioRecorder; |
-class WhispernetClient; |
- |
-// The ModemImpl class manages the playback and recording of tokens. |
-// Clients should not necessary expect the modem to play or record continuously. |
-// In the future, it may timeslice multiple tokens, or implement carrier sense. |
-class ModemImpl final : public Modem { |
- public: |
- ModemImpl(); |
- ~ModemImpl() override; |
- |
- // Modem overrides: |
- void Initialize(WhispernetClient* client, |
- const TokensCallback& tokens_cb) override; |
- void StartPlaying(AudioType type) override; |
- void StopPlaying(AudioType type) override; |
- void StartRecording(AudioType type) override; |
- void StopRecording(AudioType type) override; |
- void SetToken(AudioType type, const std::string& url_safe_token) override; |
- const std::string GetToken(AudioType type) const override; |
- bool IsPlayingTokenHeard(AudioType type) const override; |
- void SetTokenParams(AudioType type, const TokenParameters& params) override; |
- |
- void set_player_for_testing(AudioType type, AudioPlayer* player) { |
- player_[type] = player; |
- } |
- void set_recorder_for_testing(AudioRecorder* recorder) { |
- recorder_ = recorder; |
- } |
- |
- private: |
- using SamplesMap = base::MRUCache<std::string, |
- scoped_refptr<media::AudioBusRefCounted>>; |
- |
- // Receives the audio samples from encoding a token. |
- void OnTokenEncoded(AudioType type, |
- const std::string& token, |
- const scoped_refptr<media::AudioBusRefCounted>& samples); |
- |
- // Receives any tokens found by decoding audio samples. |
- void OnTokensFound(const std::vector<AudioToken>& tokens); |
- |
- // Update our currently playing token with the new token. Change the playing |
- // samples if needed. Prerequisite: Samples corresponding to this token |
- // should already be in the samples cache. |
- void UpdateToken(AudioType type, const std::string& token); |
- |
- void RestartPlaying(AudioType type); |
- |
- void DecodeSamplesConnector(const std::string& samples); |
- |
- void DumpToken(AudioType audio_type, |
- const std::string& token, |
- const media::AudioBus* samples); |
- |
- WhispernetClient* client_; |
- |
- // Callbacks to send tokens back to the client. |
- TokensCallback tokens_cb_; |
- |
- // This cancelable callback is passed to the recorder. The recorder's |
- // destruction will happen on the audio thread, so it can outlive us. |
- base::CancelableCallback<void(const std::string&)> decode_cancelable_cb_; |
- |
- // We use the AudioType enum to index into all our data structures that work |
- // on values for both audible and inaudible. |
- static_assert(AUDIBLE == 0, "AudioType::AUDIBLE should be 0."); |
- static_assert(INAUDIBLE == 1, "AudioType::INAUDIBLE should be 1."); |
- |
- // Indexed using enum AudioType. |
- bool player_enabled_[2]; |
- bool should_be_playing_[2]; |
- bool should_be_recording_[2]; |
- |
- // AudioPlayer and AudioRecorder objects are self-deleting. When we call |
- // Finalize on them, they clean themselves up on the Audio thread. |
- // Indexed using enum AudioType. |
- AudioPlayer* player_[2]; |
- AudioRecorder* recorder_; |
- |
- // Indexed using enum AudioType. |
- std::string playing_token_[2]; |
- TokenParameters token_params_[2]; |
- base::Time started_playing_[2]; |
- base::Time heard_own_token_[2]; |
- |
- // Cache that holds the encoded samples. After reaching its limit, the cache |
- // expires the oldest samples first. |
- // Indexed using enum AudioType. |
- ScopedVector<SamplesMap> samples_caches_; |
- |
- base::FilePath dump_tokens_dir_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ModemImpl); |
-}; |
- |
-} // namespace audio_modem |
- |
-#endif // COMPONENTS_AUDIO_MODEM_MODEM_IMPL_H_ |