Commit 0ff099f9 authored by toyoshim@chromium.org's avatar toyoshim@chromium.org

Web MIDI: blink API update to support MIDIPortState

The latest editor's draft introduces MIDIPortState state attribute in
MIDIPort. To support the attribute, update the blink API to use enum
for representing MIDIPortState instead of bool isActive flag.

Spec: http://webaudio.github.io/web-midi-api/#idl-def-MIDIPort

This is the first step of three to update the MIDIAccessor blink API.

BUG=279097
TEST=build with chromium

Review URL: https://codereview.chromium.org/942243002

git-svn-id: svn://svn.chromium.org/blink/trunk@190630 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 7290bc73
......@@ -65,6 +65,7 @@ void MIDIAccessor::sendMIDIData(unsigned portIndex, const unsigned char* data, s
m_accessor->sendMIDIData(portIndex, data, length, timeStamp);
}
// FIXME: Remove obsolete interfaces that use isActive.
void MIDIAccessor::didAddInputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, bool isActive)
{
m_client->didAddInputPort(id, manufacturer, name, version, isActive);
......@@ -75,6 +76,17 @@ void MIDIAccessor::didAddOutputPort(const WebString& id, const WebString& manufa
m_client->didAddOutputPort(id, manufacturer, name, version, isActive);
}
void MIDIAccessor::didAddInputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, MIDIPortState state)
{
m_client->didAddInputPort(id, manufacturer, name, version, state != MIDIPortStateDisconnected);
}
void MIDIAccessor::didAddOutputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, MIDIPortState state)
{
m_client->didAddOutputPort(id, manufacturer, name, version, state != MIDIPortStateDisconnected);
}
// FIXME: Remove obsolete interfaces that use isActive.
void MIDIAccessor::didSetInputPortState(unsigned portIndex, bool isActive)
{
m_client->didSetInputPortState(portIndex, isActive);
......@@ -85,6 +97,16 @@ void MIDIAccessor::didSetOutputPortState(unsigned portIndex, bool isActive)
m_client->didSetOutputPortState(portIndex, isActive);
}
void MIDIAccessor::didSetInputPortState(unsigned portIndex, MIDIPortState state)
{
m_client->didSetInputPortState(portIndex, state != MIDIPortStateDisconnected);
}
void MIDIAccessor::didSetOutputPortState(unsigned portIndex, MIDIPortState state)
{
m_client->didSetOutputPortState(portIndex, state != MIDIPortStateDisconnected);
}
void MIDIAccessor::didStartSession(bool success, const WebString& error, const WebString& message)
{
m_client->didStartSession(success, error, message);
......
......@@ -54,10 +54,16 @@ public:
void setClient(MIDIAccessorClient* client) { m_client = client; }
// WebMIDIAccessorClient
// FIXME: Remove obsolete interfaces that use isActive.
virtual void didAddInputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, bool isActive) override;
virtual void didAddOutputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, bool isActive) override;
virtual void didAddInputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, MIDIPortState) override;
virtual void didAddOutputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, MIDIPortState) override;
// FIXME: Remove obsolete interfaces that use isActive.
virtual void didSetInputPortState(unsigned portIndex, bool isActive) override;
virtual void didSetOutputPortState(unsigned portIndex, bool isActive) override;
virtual void didSetInputPortState(unsigned portIndex, MIDIPortState) override;
virtual void didSetOutputPortState(unsigned portIndex, MIDIPortState) override;
virtual void didStartSession(bool success, const WebString& error, const WebString& message) override;
virtual void didReceiveMIDIData(unsigned portIndex, const unsigned char* data, size_t length, double timeStamp) override;
......
......@@ -37,14 +37,26 @@ namespace blink {
class WebMIDIAccessorClient {
public:
enum MIDIPortState {
MIDIPortStateDisconnected,
MIDIPortStateConnected,
MIDIPortStateOpened,
};
// didAddInputPort() and didAddOutputPort() can be called before and after
// didStartSession() is called. But |id| should be unique in each function.
// FIXME: Remove obsolete interfaces that use isActive.
virtual void didAddInputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, bool isActive) = 0;
virtual void didAddOutputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, bool isActive) = 0;
virtual void didAddInputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, MIDIPortState) = 0;
virtual void didAddOutputPort(const WebString& id, const WebString& manufacturer, const WebString& name, const WebString& version, MIDIPortState) = 0;
// didSetInputPortState() and didSetOutputPortState() should not be called
// until didStartSession() is called.
// FIXME: Remove obsolete interfaces that use isActive.
virtual void didSetInputPortState(unsigned portIndex, bool isActive) = 0;
virtual void didSetOutputPortState(unsigned portIndex, bool isActive) = 0;
virtual void didSetInputPortState(unsigned portIndex, MIDIPortState) = 0;
virtual void didSetOutputPortState(unsigned portIndex, MIDIPortState) = 0;
virtual void didStartSession(bool success, const WebString& error, const WebString& message) = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment