summaryrefslogtreecommitdiffstats
path: root/media/midi
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-25 17:40:55 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-25 17:40:55 +0000
commit1e46f230bd00678488d5b4fce546e965a00ba16b (patch)
treed5d05058e7f563b687072d83314ae71b6c94a35a /media/midi
parent092ec3a958c60469785383f770fa2eed95ad4794 (diff)
downloadchromium_src-1e46f230bd00678488d5b4fce546e965a00ba16b.zip
chromium_src-1e46f230bd00678488d5b4fce546e965a00ba16b.tar.gz
chromium_src-1e46f230bd00678488d5b4fce546e965a00ba16b.tar.bz2
Fix MIDI code for 64 bit build.
BUG=163795 TEST=builds everywhere Review URL: https://chromiumcodereview.appspot.com/17617004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208519 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/midi')
-rw-r--r--media/midi/midi_manager_mac.cc20
1 files changed, 14 insertions, 6 deletions
diff --git a/media/midi/midi_manager_mac.cc b/media/midi/midi_manager_mac.cc
index 73df1fe..fa4b3fd 100644
--- a/media/midi/midi_manager_mac.cc
+++ b/media/midi/midi_manager_mac.cc
@@ -16,6 +16,10 @@ using base::IntToString;
using base::SysCFStringRefToUTF8;
using std::string;
+// NB: System MIDI types are pointer types in 32-bit and integer types in
+// 64-bit. Therefore, the initialization is the simplest one that satisfies both
+// (if possible).
+
namespace media {
MIDIManager* MIDIManager::Create() {
@@ -23,9 +27,9 @@ MIDIManager* MIDIManager::Create() {
}
MIDIManagerMac::MIDIManagerMac()
- : midi_client_(NULL),
- coremidi_input_(NULL),
- coremidi_output_(NULL),
+ : midi_client_(0),
+ coremidi_input_(0),
+ coremidi_output_(0),
packet_list_(NULL),
midi_packet_(NULL) {
}
@@ -34,7 +38,7 @@ bool MIDIManagerMac::Initialize() {
TRACE_EVENT0("midi", "MIDIManagerMac::Initialize");
// CoreMIDI registration.
- midi_client_ = NULL;
+ midi_client_ = 0;
OSStatus result = MIDIClientCreate(
CFSTR("Google Chrome"),
NULL,
@@ -44,7 +48,7 @@ bool MIDIManagerMac::Initialize() {
if (result != noErr)
return false;
- coremidi_input_ = NULL;
+ coremidi_input_ = 0;
// Create input and output port.
result = MIDIInputPortCreate(
@@ -83,7 +87,7 @@ bool MIDIManagerMac::Initialize() {
for (int i = 0; i < source_count; ++i) {
// Receive from all sources.
MIDIEndpointRef src = MIDIGetSource(i);
- MIDIPortConnectSource(coremidi_input_, src, src);
+ MIDIPortConnectSource(coremidi_input_, src, reinterpret_cast<void*>(src));
// Keep track of all sources (known as inputs in Web MIDI API terminology).
source_map_[src] = i;
@@ -110,7 +114,11 @@ void MIDIManagerMac::ReadMidiDispatch(const MIDIPacketList* packet_list,
void* read_proc_refcon,
void* src_conn_refcon) {
MIDIManagerMac* manager = static_cast<MIDIManagerMac*>(read_proc_refcon);
+#if __LP64__
+ MIDIEndpointRef source = reinterpret_cast<uintptr_t>(src_conn_refcon);
+#else
MIDIEndpointRef source = static_cast<MIDIEndpointRef>(src_conn_refcon);
+#endif
// Dispatch to class method.
manager->ReadMidi(source, packet_list);