Chromium Code Reviews| Index: media/midi/dynamically_initialized_midi_manager_win.h |
| diff --git a/media/midi/dynamically_initialized_midi_manager_win.h b/media/midi/dynamically_initialized_midi_manager_win.h |
| index 5c4f65a4010db484b09ff50fa1f6274fdd6fe8a8..fc617c9288987c93473e96ff2f8f317c7996716d 100644 |
| --- a/media/midi/dynamically_initialized_midi_manager_win.h |
| +++ b/media/midi/dynamically_initialized_midi_manager_win.h |
| @@ -25,9 +25,24 @@ class DynamicallyInitializedMidiManagerWin final |
| : public MidiManager, |
| public base::SystemMonitor::DevicesChangedObserver { |
| public: |
| + class PortManager; |
| + |
| explicit DynamicallyInitializedMidiManagerWin(MidiService* service); |
| ~DynamicallyInitializedMidiManagerWin() override; |
| + // Returns PortManager that implements interfaces to help implementation. |
| + // This hides Windows specific structures, i.e. HMIDIIN in the header. |
| + PortManager* port_manager() { return port_manager_.get(); } |
| + |
| + // Handles MIDI inport event posted from a thread system provides. |
| + void ReceiveMidiData(uint32_t index, |
| + const std::vector<uint8_t>& data, |
| + base::TimeTicks time); |
| + |
| + // Posts a task to TaskRunner, and ensures that the instance keeps alive while |
|
Takashi Toyoshima
2017/02/24 08:53:34
Move from private to public so to use this from Po
yhirano
2017/02/24 12:22:58
PortManager is an inner class so it can access to
Takashi Toyoshima
2017/02/27 06:44:49
Oh, thanks.
My understanding around access specifi
|
| + // the task is running. |
| + void PostTask(const base::Closure&); |
| + |
| // Posts a reply task to the I/O thread that hosts MidiManager instance, runs |
| // it safely, and ensures that the instance keeps alive while the task is |
| // running. |
| @@ -48,10 +63,6 @@ class DynamicallyInitializedMidiManagerWin final |
| class InPort; |
| class OutPort; |
| - // Posts a task to TaskRunner, and ensures that the instance keeps alive while |
| - // the task is running. |
| - void PostTask(const base::Closure&); |
| - |
| // Initializes instance asynchronously on TaskRunner. |
| void InitializeOnTaskRunner(); |
| @@ -71,11 +82,9 @@ class DynamicallyInitializedMidiManagerWin final |
| // Keeps a TaskRunner for the I/O thread. |
| scoped_refptr<base::SingleThreadTaskRunner> thread_runner_; |
| - // Following members should be accessed only on TaskRunner. |
| - |
| - // Holds all MIDI input or output ports connected once. |
| - std::vector<std::unique_ptr<InPort>> input_ports_; |
| - std::vector<std::unique_ptr<OutPort>> output_ports_; |
| + // Manages platform dependent implementation for port managegent. Should be |
| + // accessed with the task lock. |
| + std::unique_ptr<PortManager> port_manager_; |
| DISALLOW_COPY_AND_ASSIGN(DynamicallyInitializedMidiManagerWin); |
| }; |