Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: third_party/WebKit/Source/modules/webmidi/MIDIAccessInitializer.h

Issue 2422163002: Web MIDI: use midi_service.mojom for media::midi::PortState (Closed)
Patch Set: gn --check fix Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MIDIAccessInitializer_h 5 #ifndef MIDIAccessInitializer_h
6 #define MIDIAccessInitializer_h 6 #define MIDIAccessInitializer_h
7 7
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "media/midi/midi_service.mojom-blink.h"
10 #include "modules/ModulesExport.h" 11 #include "modules/ModulesExport.h"
11 #include "modules/webmidi/MIDIAccessor.h" 12 #include "modules/webmidi/MIDIAccessor.h"
12 #include "modules/webmidi/MIDIAccessorClient.h" 13 #include "modules/webmidi/MIDIAccessorClient.h"
13 #include "modules/webmidi/MIDIOptions.h" 14 #include "modules/webmidi/MIDIOptions.h"
14 #include "modules/webmidi/MIDIPort.h" 15 #include "modules/webmidi/MIDIPort.h"
15 #include "third_party/WebKit/public/platform/modules/permissions/permission.mojo m-blink.h" 16 #include "third_party/WebKit/public/platform/modules/permissions/permission.mojo m-blink.h"
16 #include "third_party/WebKit/public/platform/modules/permissions/permission_stat us.mojom-blink.h" 17 #include "third_party/WebKit/public/platform/modules/permissions/permission_stat us.mojom-blink.h"
17 #include "wtf/Vector.h" 18 #include "wtf/Vector.h"
18 #include <memory> 19 #include <memory>
19 20
20 namespace blink { 21 namespace blink {
21 22
22 class ScriptState; 23 class ScriptState;
23 24
24 class MODULES_EXPORT MIDIAccessInitializer : public ScriptPromiseResolver, 25 class MODULES_EXPORT MIDIAccessInitializer : public ScriptPromiseResolver,
25 public MIDIAccessorClient { 26 public MIDIAccessorClient {
26 public: 27 public:
27 struct PortDescriptor { 28 struct PortDescriptor {
28 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); 29 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
29 String id; 30 String id;
30 String manufacturer; 31 String manufacturer;
31 String name; 32 String name;
32 MIDIPort::TypeCode type; 33 MIDIPort::TypeCode type;
33 String version; 34 String version;
34 MIDIAccessor::MIDIPortState state; 35 midi::mojom::PortState state;
35 36
36 PortDescriptor(const String& id, 37 PortDescriptor(const String& id,
37 const String& manufacturer, 38 const String& manufacturer,
38 const String& name, 39 const String& name,
39 MIDIPort::TypeCode type, 40 MIDIPort::TypeCode type,
40 const String& version, 41 const String& version,
41 MIDIAccessor::MIDIPortState state) 42 midi::mojom::PortState state)
42 : id(id), 43 : id(id),
43 manufacturer(manufacturer), 44 manufacturer(manufacturer),
44 name(name), 45 name(name),
45 type(type), 46 type(type),
46 version(version), 47 version(version),
47 state(state) {} 48 state(state) {}
48 }; 49 };
49 50
50 static ScriptPromise start(ScriptState* scriptState, 51 static ScriptPromise start(ScriptState* scriptState,
51 const MIDIOptions& options) { 52 const MIDIOptions& options) {
52 MIDIAccessInitializer* resolver = 53 MIDIAccessInitializer* resolver =
53 new MIDIAccessInitializer(scriptState, options); 54 new MIDIAccessInitializer(scriptState, options);
54 resolver->keepAliveWhilePending(); 55 resolver->keepAliveWhilePending();
55 resolver->suspendIfNeeded(); 56 resolver->suspendIfNeeded();
56 return resolver->start(); 57 return resolver->start();
57 } 58 }
58 59
59 ~MIDIAccessInitializer() override = default; 60 ~MIDIAccessInitializer() override = default;
60 61
61 // Eager finalization to allow dispose() operation access 62 // Eager finalization to allow dispose() operation access
62 // other (non eager) heap objects. 63 // other (non eager) heap objects.
63 EAGERLY_FINALIZE(); 64 EAGERLY_FINALIZE();
64 65
65 // MIDIAccessorClient 66 // MIDIAccessorClient
66 void didAddInputPort(const String& id, 67 void didAddInputPort(const String& id,
67 const String& manufacturer, 68 const String& manufacturer,
68 const String& name, 69 const String& name,
69 const String& version, 70 const String& version,
70 MIDIAccessor::MIDIPortState) override; 71 midi::mojom::PortState) override;
71 void didAddOutputPort(const String& id, 72 void didAddOutputPort(const String& id,
72 const String& manufacturer, 73 const String& manufacturer,
73 const String& name, 74 const String& name,
74 const String& version, 75 const String& version,
75 MIDIAccessor::MIDIPortState) override; 76 midi::mojom::PortState) override;
76 void didSetInputPortState(unsigned portIndex, 77 void didSetInputPortState(unsigned portIndex,
77 MIDIAccessor::MIDIPortState) override; 78 midi::mojom::PortState) override;
78 void didSetOutputPortState(unsigned portIndex, 79 void didSetOutputPortState(unsigned portIndex,
79 MIDIAccessor::MIDIPortState) override; 80 midi::mojom::PortState) override;
80 void didStartSession(midi::mojom::Result) override; 81 void didStartSession(midi::mojom::Result) override;
81 void didReceiveMIDIData(unsigned portIndex, 82 void didReceiveMIDIData(unsigned portIndex,
82 const unsigned char* data, 83 const unsigned char* data,
83 size_t length, 84 size_t length,
84 double timeStamp) override {} 85 double timeStamp) override {}
85 86
86 private: 87 private:
87 MIDIAccessInitializer(ScriptState*, const MIDIOptions&); 88 MIDIAccessInitializer(ScriptState*, const MIDIOptions&);
88 89
89 ExecutionContext* getExecutionContext() const; 90 ExecutionContext* getExecutionContext() const;
90 ScriptPromise start(); 91 ScriptPromise start();
91 92
92 void contextDestroyed() override; 93 void contextDestroyed() override;
93 94
94 void onPermissionsUpdated(mojom::blink::PermissionStatus); 95 void onPermissionsUpdated(mojom::blink::PermissionStatus);
95 void onPermissionUpdated(mojom::blink::PermissionStatus); 96 void onPermissionUpdated(mojom::blink::PermissionStatus);
96 97
97 std::unique_ptr<MIDIAccessor> m_accessor; 98 std::unique_ptr<MIDIAccessor> m_accessor;
98 Vector<PortDescriptor> m_portDescriptors; 99 Vector<PortDescriptor> m_portDescriptors;
99 MIDIOptions m_options; 100 MIDIOptions m_options;
100 101
101 mojom::blink::PermissionServicePtr m_permissionService; 102 mojom::blink::PermissionServicePtr m_permissionService;
102 }; 103 };
103 104
104 } // namespace blink 105 } // namespace blink
105 106
106 #endif // MIDIAccessInitializer_h 107 #endif // MIDIAccessInitializer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698