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

Side by Side Diff: media/midi/midi_manager_alsa.cc

Issue 1160373004: Move safe_strerror to posix directory and the base namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 5 years, 6 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
« no previous file with comments | « chromecast/base/process_utils.cc ('k') | tools/android/forwarder2/command.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 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 "media/midi/midi_manager_alsa.h" 5 #include "media/midi/midi_manager_alsa.h"
6 6
7 #include <poll.h> 7 #include <poll.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 #include <algorithm> 9 #include <algorithm>
10 #include <string> 10 #include <string>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/json/json_string_value_serializer.h" 13 #include "base/json/json_string_value_serializer.h"
14 #include "base/logging.h" 14 #include "base/logging.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/posix/eintr_wrapper.h" 16 #include "base/posix/eintr_wrapper.h"
17 #include "base/safe_strerror_posix.h" 17 #include "base/posix/safe_strerror.h"
18 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
19 #include "base/strings/stringprintf.h" 19 #include "base/strings/stringprintf.h"
20 #include "base/time/time.h" 20 #include "base/time/time.h"
21 #include "crypto/sha2.h" 21 #include "crypto/sha2.h"
22 #include "media/midi/midi_port_info.h" 22 #include "media/midi/midi_port_info.h"
23 23
24 namespace media { 24 namespace media {
25 namespace midi { 25 namespace midi {
26 26
27 namespace { 27 namespace {
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 udev_monitor_.reset( 254 udev_monitor_.reset(
255 device::udev_monitor_new_from_netlink(udev_.get(), kUdev)); 255 device::udev_monitor_new_from_netlink(udev_.get(), kUdev));
256 if (!udev_monitor_.get()) { 256 if (!udev_monitor_.get()) {
257 VLOG(1) << "udev_monitor_new_from_netlink fails"; 257 VLOG(1) << "udev_monitor_new_from_netlink fails";
258 return CompleteInitialization(MIDI_INITIALIZATION_ERROR); 258 return CompleteInitialization(MIDI_INITIALIZATION_ERROR);
259 } 259 }
260 err = device::udev_monitor_filter_add_match_subsystem_devtype( 260 err = device::udev_monitor_filter_add_match_subsystem_devtype(
261 udev_monitor_.get(), kUdevSubsystemSound, nullptr); 261 udev_monitor_.get(), kUdevSubsystemSound, nullptr);
262 if (err != 0) { 262 if (err != 0) {
263 VLOG(1) << "udev_monitor_add_match_subsystem fails: " 263 VLOG(1) << "udev_monitor_add_match_subsystem fails: "
264 << safe_strerror(-err); 264 << base::safe_strerror(-err);
265 return CompleteInitialization(MIDI_INITIALIZATION_ERROR); 265 return CompleteInitialization(MIDI_INITIALIZATION_ERROR);
266 } 266 }
267 err = device::udev_monitor_enable_receiving(udev_monitor_.get()); 267 err = device::udev_monitor_enable_receiving(udev_monitor_.get());
268 if (err != 0) { 268 if (err != 0) {
269 VLOG(1) << "udev_monitor_enable_receiving fails: " << safe_strerror(-err); 269 VLOG(1) << "udev_monitor_enable_receiving fails: "
270 << base::safe_strerror(-err);
270 return CompleteInitialization(MIDI_INITIALIZATION_ERROR); 271 return CompleteInitialization(MIDI_INITIALIZATION_ERROR);
271 } 272 }
272 273
273 // Generate hotplug events for existing udev devices. 274 // Generate hotplug events for existing udev devices.
274 EnumerateUdevCards(); 275 EnumerateUdevCards();
275 276
276 // Start processing events. 277 // Start processing events.
277 event_thread_.Start(); 278 event_thread_.Start();
278 event_thread_.message_loop()->PostTask( 279 event_thread_.message_loop()->PostTask(
279 FROM_HERE, 280 FROM_HERE,
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 void MidiManagerAlsa::EventLoop() { 868 void MidiManagerAlsa::EventLoop() {
868 bool loop_again = true; 869 bool loop_again = true;
869 870
870 struct pollfd pfd[2]; 871 struct pollfd pfd[2];
871 snd_seq_poll_descriptors(in_client_, &pfd[0], 1, POLLIN); 872 snd_seq_poll_descriptors(in_client_, &pfd[0], 1, POLLIN);
872 pfd[1].fd = device::udev_monitor_get_fd(udev_monitor_.get()); 873 pfd[1].fd = device::udev_monitor_get_fd(udev_monitor_.get());
873 pfd[1].events = POLLIN; 874 pfd[1].events = POLLIN;
874 875
875 int err = HANDLE_EINTR(poll(pfd, arraysize(pfd), -1)); 876 int err = HANDLE_EINTR(poll(pfd, arraysize(pfd), -1));
876 if (err < 0) { 877 if (err < 0) {
877 VLOG(1) << "poll fails: " << safe_strerror(errno); 878 VLOG(1) << "poll fails: " << base::safe_strerror(errno);
878 loop_again = false; 879 loop_again = false;
879 } else { 880 } else {
880 if (pfd[0].revents & POLLIN) { 881 if (pfd[0].revents & POLLIN) {
881 // Read available incoming MIDI data. 882 // Read available incoming MIDI data.
882 int remaining; 883 int remaining;
883 double timestamp = 884 double timestamp =
884 (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF(); 885 (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF();
885 do { 886 do {
886 snd_seq_event_t* event; 887 snd_seq_event_t* event;
887 err = snd_seq_event_input(in_client_, &event); 888 err = snd_seq_event_input(in_client_, &event);
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 device::udev_enumerate_new(udev_.get())); 1262 device::udev_enumerate_new(udev_.get()));
1262 if (!enumerate.get()) { 1263 if (!enumerate.get()) {
1263 VLOG(1) << "udev_enumerate_new fails"; 1264 VLOG(1) << "udev_enumerate_new fails";
1264 return false; 1265 return false;
1265 } 1266 }
1266 1267
1267 err = device::udev_enumerate_add_match_subsystem(enumerate.get(), 1268 err = device::udev_enumerate_add_match_subsystem(enumerate.get(),
1268 kUdevSubsystemSound); 1269 kUdevSubsystemSound);
1269 if (err) { 1270 if (err) {
1270 VLOG(1) << "udev_enumerate_add_match_subsystem fails: " 1271 VLOG(1) << "udev_enumerate_add_match_subsystem fails: "
1271 << safe_strerror(-err); 1272 << base::safe_strerror(-err);
1272 return false; 1273 return false;
1273 } 1274 }
1274 1275
1275 err = device::udev_enumerate_scan_devices(enumerate.get()); 1276 err = device::udev_enumerate_scan_devices(enumerate.get());
1276 if (err) { 1277 if (err) {
1277 VLOG(1) << "udev_enumerate_scan_devices fails: " << safe_strerror(-err); 1278 VLOG(1) << "udev_enumerate_scan_devices fails: "
1279 << base::safe_strerror(-err);
1278 return false; 1280 return false;
1279 } 1281 }
1280 1282
1281 udev_list_entry* list_entry; 1283 udev_list_entry* list_entry;
1282 auto* devices = device::udev_enumerate_get_list_entry(enumerate.get()); 1284 auto* devices = device::udev_enumerate_get_list_entry(enumerate.get());
1283 udev_list_entry_foreach(list_entry, devices) { 1285 udev_list_entry_foreach(list_entry, devices) {
1284 const char* path = device::udev_list_entry_get_name(list_entry); 1286 const char* path = device::udev_list_entry_get_name(list_entry);
1285 device::ScopedUdevDevicePtr dev( 1287 device::ScopedUdevDevicePtr dev(
1286 device::udev_device_new_from_syspath(udev_.get(), path)); 1288 device::udev_device_new_from_syspath(udev_.get(), path));
1287 if (dev.get()) 1289 if (dev.get())
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 source_map_[AddrToInt(client_id, port_id)] = port_index; 1360 source_map_[AddrToInt(client_id, port_id)] = port_index;
1359 return true; 1361 return true;
1360 } 1362 }
1361 1363
1362 MidiManager* MidiManager::Create() { 1364 MidiManager* MidiManager::Create() {
1363 return new MidiManagerAlsa(); 1365 return new MidiManagerAlsa();
1364 } 1366 }
1365 1367
1366 } // namespace midi 1368 } // namespace midi
1367 } // namespace media 1369 } // namespace media
OLDNEW
« no previous file with comments | « chromecast/base/process_utils.cc ('k') | tools/android/forwarder2/command.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698