Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / components / audio_modem / public / modem.h
blob09ab399d5b40f151a0e8848a8fa4f9d5dc42d4c7
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
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_AUDIO_MODEM_PUBLIC_MODEM_H_
6 #define COMPONENTS_AUDIO_MODEM_PUBLIC_MODEM_H_
8 #include <string>
10 #include "base/memory/scoped_ptr.h"
11 #include "components/audio_modem/public/audio_modem_types.h"
13 namespace audio_modem {
15 class WhispernetClient;
17 class Modem {
18 public:
19 virtual ~Modem() {}
21 // Initializes the object. Do not use this object before calling this method.
22 virtual void Initialize(WhispernetClient* client,
23 const TokensCallback& tokens_cb) = 0;
25 virtual void StartPlaying(AudioType type) = 0;
26 virtual void StopPlaying(AudioType type) = 0;
28 virtual void StartRecording(AudioType type) = 0;
29 virtual void StopRecording(AudioType type) = 0;
31 virtual void SetToken(AudioType type,
32 const std::string& url_safe_token) = 0;
34 virtual const std::string GetToken(AudioType type) const = 0;
36 virtual bool IsPlayingTokenHeard(AudioType type) const = 0;
38 virtual void SetTokenParams(AudioType type,
39 const TokenParameters& params) = 0;
41 static scoped_ptr<Modem> Create();
44 } // namespace audio_modem
46 #endif // COMPONENTS_AUDIO_MODEM_PUBLIC_MODEM_H_