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

Side by Side Diff: ppapi/examples/audio_input/audio_input.cc

Issue 9965080: Change the cpp wrappers of audio input/video capture to use CompletionCallbackWithOutput. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More changes in response to Brett's comments. Created 8 years, 8 months 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 | Annotate | Revision Log
« no previous file with comments | « ppapi/cpp/output_traits.h ('k') | ppapi/examples/video_capture/video_capture.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string.h> 5 #include <string.h>
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 if (!BindGraphics(device_context_)) 86 if (!BindGraphics(device_context_))
87 return; 87 return;
88 88
89 Paint(); 89 Paint();
90 } 90 }
91 91
92 virtual void HandleMessage(const pp::Var& message_data) { 92 virtual void HandleMessage(const pp::Var& message_data) {
93 if (message_data.is_string()) { 93 if (message_data.is_string()) {
94 std::string event = message_data.AsString(); 94 std::string event = message_data.AsString();
95 if (event == "PageInitialized") { 95 if (event == "PageInitialized") {
96 pp::CompletionCallback callback = callback_factory_.NewCallback( 96 pp::CompletionCallbackWithOutput<std::vector<pp::DeviceRef_Dev> >
97 &MyInstance::EnumerateDevicesFinished); 97 callback = callback_factory_.NewCallbackWithOutput(
98 int32_t result = audio_input_.EnumerateDevices(&devices_, callback); 98 &MyInstance::EnumerateDevicesFinished);
99 int32_t result = audio_input_.EnumerateDevices(callback);
99 if (result != PP_OK_COMPLETIONPENDING) 100 if (result != PP_OK_COMPLETIONPENDING)
100 PostMessage(pp::Var("EnumerationFailed")); 101 PostMessage(pp::Var("EnumerationFailed"));
101 } else if (event == "UseDefault") { 102 } else if (event == "UseDefault") {
102 Open(pp::DeviceRef_Dev()); 103 Open(pp::DeviceRef_Dev());
103 } else if (event == "UseDefault(v0.1)") { 104 } else if (event == "UseDefault(v0.1)") {
104 audio_input_0_1_ = audio_input_interface_0_1_->Create( 105 audio_input_0_1_ = audio_input_interface_0_1_->Create(
105 pp_instance(), audio_input_.config().pp_resource(), 106 pp_instance(), audio_input_.config().pp_resource(),
106 CaptureCallback, this); 107 CaptureCallback, this);
107 if (audio_input_0_1_ != 0) { 108 if (audio_input_0_1_ != 0) {
108 if (!audio_input_interface_0_1_->StartCapture(audio_input_0_1_)) 109 if (!audio_input_interface_0_1_->StartCapture(audio_input_0_1_))
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 void Start() { 235 void Start() {
235 if (!audio_input_.is_null()) { 236 if (!audio_input_.is_null()) {
236 if (!audio_input_.StartCapture()) 237 if (!audio_input_.StartCapture())
237 PostMessage(pp::Var("StartFailed")); 238 PostMessage(pp::Var("StartFailed"));
238 } else if (audio_input_0_1_ != 0) { 239 } else if (audio_input_0_1_ != 0) {
239 if (!audio_input_interface_0_1_->StartCapture(audio_input_0_1_)) 240 if (!audio_input_interface_0_1_->StartCapture(audio_input_0_1_))
240 PostMessage(pp::Var("StartFailed")); 241 PostMessage(pp::Var("StartFailed"));
241 } 242 }
242 } 243 }
243 244
244 void EnumerateDevicesFinished(int32_t result) { 245 void EnumerateDevicesFinished(int32_t result,
246 std::vector<pp::DeviceRef_Dev>& devices) {
245 static const char* const kDelimiter = "#__#"; 247 static const char* const kDelimiter = "#__#";
246 248
247 if (result == PP_OK) { 249 if (result == PP_OK) {
250 devices_.swap(devices);
248 std::string device_names; 251 std::string device_names;
249 for (size_t index = 0; index < devices_.size(); ++index) { 252 for (size_t index = 0; index < devices_.size(); ++index) {
250 pp::Var name = devices_[index].GetName(); 253 pp::Var name = devices_[index].GetName();
251 PP_DCHECK(name.is_string()); 254 PP_DCHECK(name.is_string());
252 255
253 if (index != 0) 256 if (index != 0)
254 device_names += kDelimiter; 257 device_names += kDelimiter;
255 device_names += name.AsString(); 258 device_names += name.AsString();
256 } 259 }
257 PostMessage(pp::Var(device_names)); 260 PostMessage(pp::Var(device_names));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 }; 302 };
300 303
301 namespace pp { 304 namespace pp {
302 305
303 // Factory function for your specialization of the Module object. 306 // Factory function for your specialization of the Module object.
304 Module* CreateModule() { 307 Module* CreateModule() {
305 return new MyModule(); 308 return new MyModule();
306 } 309 }
307 310
308 } // namespace pp 311 } // namespace pp
OLDNEW
« no previous file with comments | « ppapi/cpp/output_traits.h ('k') | ppapi/examples/video_capture/video_capture.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698