| Index: Source/modules/webmidi/MIDIAccessInitializer.h
|
| diff --git a/Source/modules/webmidi/MIDIAccessInitializer.h b/Source/modules/webmidi/MIDIAccessInitializer.h
|
| index 4fc434ecc088a1d7302354294bba3a8e648b1db2..6c385a960acb529cdbc91cc95ae36aae0f5b9461 100644
|
| --- a/Source/modules/webmidi/MIDIAccessInitializer.h
|
| +++ b/Source/modules/webmidi/MIDIAccessInitializer.h
|
| @@ -6,29 +6,45 @@
|
| #define MIDIAccessInitializer_h
|
|
|
| #include "bindings/v8/ScriptPromise.h"
|
| +#include "bindings/v8/ScriptPromiseResolverWithContext.h"
|
| #include "modules/webmidi/MIDIAccessor.h"
|
| #include "modules/webmidi/MIDIAccessorClient.h"
|
| #include "modules/webmidi/MIDIOptions.h"
|
| +#include "modules/webmidi/MIDIPort.h"
|
| #include "wtf/OwnPtr.h"
|
| +#include "wtf/RawPtr.h"
|
| +#include "wtf/Vector.h"
|
|
|
| namespace WebCore {
|
|
|
| class MIDIAccess;
|
| +class Navigator;
|
| class ScriptState;
|
| -class ScriptPromiseResolverWithContext;
|
|
|
| -class MIDIAccessInitializer : public MIDIAccessorClient {
|
| +class MIDIAccessInitializer : public ScriptPromiseResolverWithContext, public MIDIAccessorClient {
|
| public:
|
| - static PassOwnPtr<MIDIAccessInitializer> create(const MIDIOptions& options, MIDIAccess* access)
|
| + struct PortDescriptor {
|
| + String id;
|
| + String manufacturer;
|
| + String name;
|
| + MIDIPort::MIDIPortTypeCode type;
|
| + String version;
|
| +
|
| + PortDescriptor(const String& id, const String& manufacturer, const String& name, MIDIPort::MIDIPortTypeCode type, const String& version)
|
| + : id(id)
|
| + , manufacturer(manufacturer)
|
| + , name(name)
|
| + , type(type)
|
| + , version(version) { }
|
| + };
|
| +
|
| + static ScriptPromise start(ScriptState* scriptState, const MIDIOptions& options)
|
| {
|
| - return adoptPtr(new MIDIAccessInitializer(options, access));
|
| + RefPtr<MIDIAccessInitializer> p = adoptRef(new MIDIAccessInitializer(scriptState, options));
|
| + return p->start();
|
| }
|
| - virtual ~MIDIAccessInitializer();
|
|
|
| - ScriptPromise initialize(ScriptState*);
|
| - void cancel();
|
| -
|
| - bool hasPendingActivity() const { return m_state == Requesting; }
|
| + virtual ~MIDIAccessInitializer();
|
|
|
| // MIDIAccessorClient
|
| virtual void didAddInputPort(const String& id, const String& manufacturer, const String& name, const String& version) OVERRIDE;
|
| @@ -40,27 +56,16 @@ public:
|
| SecurityOrigin* securityOrigin() const;
|
|
|
| private:
|
| - class PostAction;
|
| - enum State {
|
| - Requesting,
|
| - Resolved,
|
| - Stopped,
|
| - };
|
| + ScriptPromise start();
|
|
|
| - MIDIAccessInitializer(const MIDIOptions&, MIDIAccess*);
|
| + MIDIAccessInitializer(ScriptState*, const MIDIOptions&);
|
|
|
| ExecutionContext* executionContext() const;
|
| - void permissionDenied();
|
| - void doPostAction(State);
|
|
|
| - State m_state;
|
| - WeakPtrFactory<MIDIAccessInitializer> m_weakPtrFactory;
|
| - RefPtr<ScriptPromiseResolverWithContext> m_resolver;
|
| OwnPtr<MIDIAccessor> m_accessor;
|
| MIDIOptions m_options;
|
| bool m_sysexEnabled;
|
| - // m_access has this object, so it's safe to have the raw pointer.
|
| - MIDIAccess* m_access;
|
| + Vector<PortDescriptor> m_portDescriptors;
|
| };
|
|
|
| } // namespace WebCore
|
|
|