summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/modules/webmidi/MIDIAccess.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/webmidi/MIDIAccess.h')
-rw-r--r--chromium/third_party/WebKit/Source/modules/webmidi/MIDIAccess.h44
1 files changed, 26 insertions, 18 deletions
diff --git a/chromium/third_party/WebKit/Source/modules/webmidi/MIDIAccess.h b/chromium/third_party/WebKit/Source/modules/webmidi/MIDIAccess.h
index 9f6aaaf0c85..b543ec989f5 100644
--- a/chromium/third_party/WebKit/Source/modules/webmidi/MIDIAccess.h
+++ b/chromium/third_party/WebKit/Source/modules/webmidi/MIDIAccess.h
@@ -31,13 +31,16 @@
#ifndef MIDIAccess_h
#define MIDIAccess_h
+#include "bindings/v8/ScriptPromise.h"
#include "bindings/v8/ScriptWrappable.h"
#include "core/dom/ActiveDOMObject.h"
-#include "core/events/EventTarget.h"
+#include "modules/EventTargetModules.h"
+#include "modules/webmidi/MIDIAccessInitializer.h"
#include "modules/webmidi/MIDIAccessor.h"
#include "modules/webmidi/MIDIAccessorClient.h"
#include "modules/webmidi/MIDIInput.h"
#include "modules/webmidi/MIDIOutput.h"
+#include "platform/heap/Handle.h"
#include "wtf/RefCounted.h"
#include "wtf/RefPtr.h"
#include "wtf/Vector.h"
@@ -45,13 +48,19 @@
namespace WebCore {
class ExecutionContext;
-class MIDIAccessPromise;
+struct MIDIOptions;
-class MIDIAccess : public RefCounted<MIDIAccess>, public ScriptWrappable, public ActiveDOMObject, public EventTargetWithInlineData, public MIDIAccessorClient {
+class MIDIAccess FINAL : public RefCountedWillBeRefCountedGarbageCollected<MIDIAccess>, public ScriptWrappable, public ActiveDOMObject, public EventTargetWithInlineData, public MIDIAccessorClient {
REFCOUNTED_EVENT_TARGET(MIDIAccess);
+ WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MIDIAccess);
public:
+ static PassRefPtrWillBeRawPtr<MIDIAccess> create(PassOwnPtr<MIDIAccessor> accessor, bool sysexEnabled, const Vector<MIDIAccessInitializer::PortDescriptor>& ports, ExecutionContext* executionContext)
+ {
+ RefPtrWillBeRawPtr<MIDIAccess> access = adoptRefWillBeRefCountedGarbageCollected(new MIDIAccess(accessor, sysexEnabled, ports, executionContext));
+ access->suspendIfNeeded();
+ return access;
+ }
virtual ~MIDIAccess();
- static PassRefPtr<MIDIAccess> create(ExecutionContext*, MIDIAccessPromise*);
MIDIInputVector inputs() const { return m_inputs; }
MIDIOutputVector outputs() const { return m_outputs; }
@@ -59,39 +68,38 @@ public:
DEFINE_ATTRIBUTE_EVENT_LISTENER(connect);
DEFINE_ATTRIBUTE_EVENT_LISTENER(disconnect);
- void setSysExEnabled(bool);
- bool sysExEnabled() const { return m_sysExEnabled; }
+ bool sysexEnabled() const { return m_sysexEnabled; }
// EventTarget
virtual const AtomicString& interfaceName() const OVERRIDE { return EventTargetNames::MIDIAccess; }
virtual ExecutionContext* executionContext() const OVERRIDE { return ActiveDOMObject::executionContext(); }
// ActiveDOMObject
- virtual void stop();
+ virtual void stop() OVERRIDE;
// MIDIAccessorClient
virtual void didAddInputPort(const String& id, const String& manufacturer, const String& name, const String& version) OVERRIDE;
virtual void didAddOutputPort(const String& id, const String& manufacturer, const String& name, const String& version) OVERRIDE;
- virtual void didStartSession(bool success) OVERRIDE;
+ virtual void didStartSession(bool success, const String& error, const String& message) OVERRIDE
+ {
+ // This method is for MIDIAccess initialization: MIDIAccessInitializer
+ // has the implementation.
+ ASSERT_NOT_REACHED();
+ }
virtual void didReceiveMIDIData(unsigned portIndex, const unsigned char* data, size_t length, double timeStamp) OVERRIDE;
// |timeStampInMilliseconds| is in the same time coordinate system as performance.now().
void sendMIDIData(unsigned portIndex, const unsigned char* data, size_t length, double timeStampInMilliseconds);
-private:
- MIDIAccess(ExecutionContext*, MIDIAccessPromise*);
+ virtual void trace(Visitor*) OVERRIDE;
- void startRequest();
- virtual void permissionDenied();
+private:
+ MIDIAccess(PassOwnPtr<MIDIAccessor>, bool sysexEnabled, const Vector<MIDIAccessInitializer::PortDescriptor>&, ExecutionContext*);
+ OwnPtr<MIDIAccessor> m_accessor;
+ bool m_sysexEnabled;
MIDIInputVector m_inputs;
MIDIOutputVector m_outputs;
- MIDIAccessPromise* m_promise;
-
- OwnPtr<MIDIAccessor> m_accessor;
- bool m_hasAccess;
- bool m_sysExEnabled;
- bool m_requesting;
};
} // namespace WebCore