summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-26 06:10:46 +0000
committertoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-26 06:10:46 +0000
commitb4cfaa2253999d87e9129e73ac8c645803e3b9c2 (patch)
tree53277d8cd12f7b1af9b460a8c5e6cdd4e3e8beda
parenta53303264c495bad7fab21c704ebb94504d886cd (diff)
downloadchromium_src-b4cfaa2253999d87e9129e73ac8c645803e3b9c2.zip
chromium_src-b4cfaa2253999d87e9129e73ac8c645803e3b9c2.tar.gz
chromium_src-b4cfaa2253999d87e9129e73ac8c645803e3b9c2.tar.bz2
Web MIDI: link with alsa even if cras is enabled
This CL fixes a feature breakage on Chrome OS which happens by crrev.com/244251 accidentally. Chrome for Chrome OS should be linked with alsa even if cras is enabled. This is because Web MIDI implementation for Chrome OS depends on alsa. Also this changes add trace events for each platform implementation. This is also useful to know which implementation is enabled in the build. BUG=335865 Review URL: https://codereview.chromium.org/171603014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253373 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--media/media.gyp11
-rw-r--r--media/midi/midi_manager.cc5
-rw-r--r--media/midi/midi_manager_alsa.cc16
-rw-r--r--media/midi/midi_manager_usb.cc2
-rw-r--r--media/midi/midi_manager_win.cc2
5 files changed, 24 insertions, 12 deletions
diff --git a/media/media.gyp b/media/media.gyp
index 0707155..fcd4827 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -22,9 +22,16 @@
'media_use_libvpx%': 1,
}],
# Enable ALSA and Pulse for runtime selection.
- ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and embedded!=1 and use_cras==0', {
+ ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and embedded!=1', {
+ # ALSA is always needed for Web MIDI even if the cras is enabled.
'use_alsa%': 1,
- 'use_pulseaudio%': 1,
+ 'conditions': [
+ ['use_cras==1', {
+ 'use_pulseaudio%': 0,
+ }, {
+ 'use_pulseaudio%': 1,
+ }],
+ ],
}, {
'use_alsa%': 0,
'use_pulseaudio%': 0,
diff --git a/media/midi/midi_manager.cc b/media/midi/midi_manager.cc
index 4447a05..77b764f 100644
--- a/media/midi/midi_manager.cc
+++ b/media/midi/midi_manager.cc
@@ -6,12 +6,12 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "base/debug/trace_event.h"
namespace media {
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(USE_ALSA) && \
- !defined(OS_ANDROID)
-// TODO(toyoshim): implement MidiManager for other platforms.
+ !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
MidiManager* MidiManager::Create() {
return new MidiManager;
}
@@ -52,6 +52,7 @@ void MidiManager::DispatchSendMidiData(MidiManagerClient* client,
}
bool MidiManager::Initialize() {
+ TRACE_EVENT0("midi", "MidiManager::Initialize");
return false;
}
diff --git a/media/midi/midi_manager_alsa.cc b/media/midi/midi_manager_alsa.cc
index 4716db2..8f580e1 100644
--- a/media/midi/midi_manager_alsa.cc
+++ b/media/midi/midi_manager_alsa.cc
@@ -61,7 +61,7 @@ class MidiManagerAlsa::MidiDeviceInfo
midi_out_, reinterpret_cast<const void*>(&data[0]), data.size());
if (static_cast<size_t>(result) != data.size()) {
// TODO(toyoshim): Handle device disconnection.
- LOG(ERROR) << "snd_rawmidi_write fails: " << strerror(-result);
+ VLOG(1) << "snd_rawmidi_write fails: " << strerror(-result);
}
base::MessageLoop::current()->PostTask(
FROM_HERE,
@@ -130,7 +130,7 @@ MidiManagerAlsa::MidiManagerAlsa()
bool MidiManagerAlsa::Initialize() {
// TODO(toyoshim): Make Initialize() asynchronous.
// See http://crbug.com/339746.
- TRACE_EVENT0("midi", "MidiManagerMac::Initialize");
+ TRACE_EVENT0("midi", "MidiManagerAlsa::Initialize");
// Enumerate only hardware MIDI devices because software MIDIs running in
// the browser process is not secure.
@@ -145,12 +145,12 @@ bool MidiManagerAlsa::Initialize() {
snd_ctl_t* handle;
int err = snd_ctl_open(&handle, id.c_str(), 0);
if (err != 0) {
- DLOG(ERROR) << "snd_ctl_open fails: " << snd_strerror(err);
+ VLOG(1) << "snd_ctl_open fails: " << snd_strerror(err);
continue;
}
err = snd_ctl_card_info(handle, card);
if (err != 0) {
- DLOG(ERROR) << "snd_ctl_card_info fails: " << snd_strerror(err);
+ VLOG(1) << "snd_ctl_card_info fails: " << snd_strerror(err);
snd_ctl_close(handle);
continue;
}
@@ -171,7 +171,7 @@ bool MidiManagerAlsa::Initialize() {
scoped_refptr<MidiDeviceInfo> port = new MidiDeviceInfo(
this, id, card, output ? midi_out : midi_in, device);
if (!port->IsOpened()) {
- DLOG(ERROR) << "MidiDeviceInfo open fails";
+ VLOG(1) << "MidiDeviceInfo open fails";
continue;
}
if (input) {
@@ -187,7 +187,7 @@ bool MidiManagerAlsa::Initialize() {
}
if (pipe(pipe_fd_) < 0) {
- DPLOG(ERROR) << "pipe() failed";
+ VPLOG(1) << "pipe() failed";
return false;
}
event_thread_.Start();
@@ -266,7 +266,7 @@ void MidiManagerAlsa::EventReset() {
void MidiManagerAlsa::EventLoop() {
if (HANDLE_EINTR(poll(&poll_fds_[0], poll_fds_.size(), -1)) < 0) {
- DPLOG(ERROR) << "Couldn't poll(). Stop to poll input MIDI devices.";
+ VPLOG(1) << "Couldn't poll(). Stop to poll input MIDI devices.";
// TODO(toyoshim): Handle device disconnection, and try to reconnect?
return;
}
@@ -292,7 +292,7 @@ void MidiManagerAlsa::EventLoop() {
in_devices_[i]->GetPollDescriptorsRevents(&poll_fds_[fds_index]);
if (revents & (POLLERR | POLLNVAL)) {
// TODO(toyoshim): Handle device disconnection.
- LOG(ERROR) << "snd_rawmidi_descriptors_revents fails";
+ VLOG(1) << "snd_rawmidi_descriptors_revents fails";
poll_fds_[fds_index].events = 0;
}
if (revents & POLLIN) {
diff --git a/media/midi/midi_manager_usb.cc b/media/midi/midi_manager_usb.cc
index db6e1f1..844c621 100644
--- a/media/midi/midi_manager_usb.cc
+++ b/media/midi/midi_manager_usb.cc
@@ -5,6 +5,7 @@
#include "media/midi/midi_manager_usb.h"
#include "base/callback.h"
+#include "base/debug/trace_event.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
@@ -34,6 +35,7 @@ MidiManagerUsb::~MidiManagerUsb() {
}
bool MidiManagerUsb::Initialize() {
+ TRACE_EVENT0("midi", "MidiManagerUsb::Initialize");
Initialize(base::Bind(Noop));
return true;
}
diff --git a/media/midi/midi_manager_win.cc b/media/midi/midi_manager_win.cc
index 6643ffd..d2e40ad 100644
--- a/media/midi/midi_manager_win.cc
+++ b/media/midi/midi_manager_win.cc
@@ -19,6 +19,7 @@
#include <mmsystem.h>
#include "base/bind.h"
+#include "base/debug/trace_event.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
@@ -501,6 +502,7 @@ MidiManagerWin::MidiManagerWin()
}
bool MidiManagerWin::Initialize() {
+ TRACE_EVENT0("midi", "MidiManagerWin::Initialize");
const UINT num_in_devices = midiInGetNumDevs();
in_devices_.reserve(num_in_devices);
for (UINT device_id = 0; device_id < num_in_devices; ++device_id) {