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

Side by Side Diff: chrome/browser/extensions/api/copresence_private/copresence_private_api.cc

Issue 637223011: Redesign the copresence audio handlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: Created 6 years, 1 month 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
OLDNEW
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 #include "chrome/browser/extensions/api/copresence_private/copresence_private_ap i.h" 5 #include "chrome/browser/extensions/api/copresence_private/copresence_private_ap i.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "chrome/browser/copresence/chrome_whispernet_client.h" 11 #include "chrome/browser/copresence/chrome_whispernet_client.h"
12 #include "chrome/browser/extensions/api/copresence/copresence_api.h" 12 #include "chrome/browser/extensions/api/copresence/copresence_api.h"
13 #include "chrome/common/extensions/api/copresence_private.h" 13 #include "chrome/common/extensions/api/copresence_private.h"
14 #include "components/copresence/public/copresence_constants.h"
14 #include "components/copresence/public/whispernet_client.h" 15 #include "components/copresence/public/whispernet_client.h"
15 #include "media/base/audio_bus.h" 16 #include "media/base/audio_bus.h"
16 17
17 namespace extensions { 18 namespace extensions {
18 19
19 // Copresence Private functions. 20 // Copresence Private functions.
20 21
21 copresence::WhispernetClient* CopresencePrivateFunction::GetWhispernetClient() { 22 copresence::WhispernetClient* CopresencePrivateFunction::GetWhispernetClient() {
22 CopresenceService* service = 23 CopresenceService* service =
23 CopresenceService::GetFactoryInstance()->Get(browser_context()); 24 CopresenceService::GetFactoryInstance()->Get(browser_context());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 57
57 scoped_refptr<media::AudioBusRefCounted> samples = 58 scoped_refptr<media::AudioBusRefCounted> samples =
58 media::AudioBusRefCounted::Create(1, 59 media::AudioBusRefCounted::Create(1,
59 params->samples.size() / sizeof(float)); 60 params->samples.size() / sizeof(float));
60 61
61 memcpy(samples->channel(0), 62 memcpy(samples->channel(0),
62 string_as_array(&params->samples), 63 string_as_array(&params->samples),
63 params->samples.size()); 64 params->samples.size());
64 65
65 GetWhispernetClient()->GetSamplesCallback().Run( 66 GetWhispernetClient()->GetSamplesCallback().Run(
66 params->token.token, params->token.audible, samples); 67 params->token.token,
68 params->token.audible ? copresence::AUDIBLE : copresence::INAUDIBLE,
69 samples);
67 return RespondNow(NoArguments()); 70 return RespondNow(NoArguments());
68 } 71 }
69 72
70 // CopresenceSendDetectFunction implementation: 73 // CopresenceSendDetectFunction implementation:
71 ExtensionFunction::ResponseAction CopresencePrivateSendDetectFunction::Run() { 74 ExtensionFunction::ResponseAction CopresencePrivateSendDetectFunction::Run() {
72 if (!GetWhispernetClient() || 75 if (!GetWhispernetClient() ||
73 GetWhispernetClient()->GetDetectBroadcastCallback().is_null()) { 76 GetWhispernetClient()->GetDetectBroadcastCallback().is_null()) {
74 return RespondNow(NoArguments()); 77 return RespondNow(NoArguments());
75 } 78 }
76 79
(...skipping 15 matching lines...) Expand all
92 95
93 scoped_ptr<api::copresence_private::SendInitialized::Params> params( 96 scoped_ptr<api::copresence_private::SendInitialized::Params> params(
94 api::copresence_private::SendInitialized::Params::Create(*args_)); 97 api::copresence_private::SendInitialized::Params::Create(*args_));
95 EXTENSION_FUNCTION_VALIDATE(params.get()); 98 EXTENSION_FUNCTION_VALIDATE(params.get());
96 99
97 GetWhispernetClient()->GetInitializedCallback().Run(params->success); 100 GetWhispernetClient()->GetInitializedCallback().Run(params->success);
98 return RespondNow(NoArguments()); 101 return RespondNow(NoArguments());
99 } 102 }
100 103
101 } // namespace extensions 104 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698