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_
10 #include "base/memory/scoped_ptr.h"
11 #include "components/audio_modem/public/audio_modem_types.h"
13 namespace audio_modem
{
15 class WhispernetClient
;
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_