| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_CONSTANTS_H_ | 5 #ifndef COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_CONSTANTS_H_ |
| 6 #define COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_CONSTANTS_H_ | 6 #define COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_CONSTANTS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/callback_forward.h" | 11 #include "base/callback_forward.h" |
| 12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 13 #include "components/copresence/tokens.h" | |
| 14 #include "media/base/channel_layout.h" | 13 #include "media/base/channel_layout.h" |
| 15 | 14 |
| 16 namespace media { | 15 namespace media { |
| 17 class AudioBusRefCounted; | 16 class AudioBusRefCounted; |
| 18 } | 17 } |
| 19 | 18 |
| 20 namespace copresence { | 19 namespace copresence { |
| 21 | 20 |
| 22 class Directive; | |
| 23 | |
| 24 // Audio constants. Currently used from the AudioPlayer/AudioRecorder. | 21 // Audio constants. Currently used from the AudioPlayer/AudioRecorder. |
| 25 // TODO(rkc): Make these values configurable then remove them from here. | 22 // TODO(rkc): Make these values configurable then remove them from here. |
| 26 // Number of repetitions of the audio token in one sequence of samples. | 23 // Number of repetitions of the audio token in one sequence of samples. |
| 27 extern const int kDefaultRepetitions; | 24 extern const int kDefaultRepetitions; |
| 28 | 25 |
| 29 // The default sample rate. We need to ensure that both the recorder and the | 26 // The default sample rate. We need to ensure that both the recorder and the |
| 30 // player on _all platforms use the same rate. | 27 // player on _all platforms use the same rate. |
| 31 extern const float kDefaultSampleRate; | 28 extern const float kDefaultSampleRate; |
| 32 extern const int kDefaultBitsPerSample; | 29 extern const int kDefaultBitsPerSample; |
| 33 | 30 |
| 34 // 18500 for ultrasound, needs to be consistent between platforms. | 31 // 18500 for ultrasound, needs to be consistent between platforms. |
| 35 extern const float kDefaultCarrierFrequency; | 32 extern const float kDefaultCarrierFrequency; |
| 36 | 33 |
| 37 // The next two really need to be configurable since they don't need to be | 34 // The next two really need to be configurable since they don't need to be |
| 38 // consistent across platforms, or even playing/recording. | 35 // consistent across platforms, or even playing/recording. |
| 39 extern const int kDefaultChannels; | 36 extern const int kDefaultChannels; |
| 40 extern const media::ChannelLayout kDefaultChannelLayout; | 37 extern const media::ChannelLayout kDefaultChannelLayout; |
| 41 | 38 |
| 42 | |
| 43 // These constants are used from everywhere. | 39 // These constants are used from everywhere. |
| 44 // Particularly, these are used to index the directive lists in the | 40 // Particularly, these are used to index the directive lists in the |
| 45 // audio manager, so do not change these enums without changing | 41 // audio manager, so do not change these enums without changing |
| 46 // audio_directive_list.[h|cc]. | 42 // audio_directive_list.[h|cc]. |
| 47 enum AudioType { | 43 enum AudioType { |
| 48 AUDIBLE = 0, | 44 AUDIBLE = 0, |
| 49 INAUDIBLE = 1, | 45 INAUDIBLE = 1, |
| 50 BOTH = 2, | 46 BOTH = 2, |
| 51 AUDIO_TYPE_UNKNOWN = 3, | 47 AUDIO_TYPE_UNKNOWN = 3, |
| 52 }; | 48 }; |
| 53 | 49 |
| 50 struct AudioToken { |
| 51 AudioToken(const std::string& token, bool audible) |
| 52 : token(token), audible(audible) {} |
| 53 std::string token; |
| 54 bool audible; |
| 55 }; |
| 54 | 56 |
| 55 // These callbacks are used from various places in Copresence. | 57 // These callbacks are used from various places in Copresence. |
| 56 | 58 |
| 57 // Generic callback to indicate a boolean success or failure. | 59 // Generic callback to indicate a boolean success or failure. |
| 58 using SuccessCallback = base::Callback<void(bool)>; | 60 using SuccessCallback = base::Callback<void(bool)>; |
| 59 | 61 |
| 60 // Callback to pass around found tokens. | 62 // Callback to pass around found tokens. |
| 63 // Arguments: |
| 64 // const std::vector<AudioToken>& tokens - List of found tokens. |
| 61 using TokensCallback = base::Callback<void(const std::vector<AudioToken>&)>; | 65 using TokensCallback = base::Callback<void(const std::vector<AudioToken>&)>; |
| 62 | 66 |
| 63 // Callback to receive encoded samples from Whispernet. | 67 // Callback to receive encoded samples from Whispernet. |
| 64 // AudioType type: Type of audio encoding - AUDIBLE or INAUDIBLE. | 68 // AudioType type: Type of audio encoding - AUDIBLE or INAUDIBLE. |
| 65 // const std::string& token: The token that we encoded. | 69 // const std::string& token: The token that we encoded. |
| 66 // const scoped_refptr<media::AudioBusRefCounted>& samples - Encoded samples. | 70 // const scoped_refptr<media::AudioBusRefCounted>& samples - Encoded samples. |
| 67 using SamplesCallback = | 71 using SamplesCallback = |
| 68 base::Callback<void(AudioType, | 72 base::Callback<void(AudioType, |
| 69 const std::string&, | 73 const std::string&, |
| 70 const scoped_refptr<media::AudioBusRefCounted>&)>; | 74 const scoped_refptr<media::AudioBusRefCounted>&)>; |
| 71 | |
| 72 // Callback to pass a list of directives back to CopresenceState. | |
| 73 using DirectivesCallback = base::Callback<void(const std::vector<Directive>&)>; | |
| 74 | |
| 75 } // namespace copresence | 75 } // namespace copresence |
| 76 | 76 |
| 77 #endif // COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_CONSTANTS_H_ | 77 #endif // COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_CONSTANTS_H_ |
| OLD | NEW |