Chromium Code Reviews| Index: media/midi/midi_manager.h |
| diff --git a/media/midi/midi_manager.h b/media/midi/midi_manager.h |
| index 1e2bcb8dc793ae76ecb5d1787ffb541ec6f9b6f8..06a3d825536bd48fba6261416cd2739963bca913 100644 |
| --- a/media/midi/midi_manager.h |
| +++ b/media/midi/midi_manager.h |
| @@ -29,6 +29,17 @@ class MEDIA_EXPORT MidiManagerClient { |
| public: |
| virtual ~MidiManagerClient() {} |
| + // AddInputPort() and AddOutputPort() are called before CompleteStartSession() |
| + // is called to notify existing MIDI ports, and also called after that to |
| + // notify new MIDI ports are added. |
| + virtual void AddInputPort(const MidiPortInfo& info) = 0; |
| + virtual void AddOutputPort(const MidiPortInfo& info) = 0; |
| + |
| + // TODO(toyoshim): DisableInputPort(const MidiPortInfo& info) and |
| + // DisableOutputPort(const MidiPortInfo& info) should be added. |
| + // On DisableInputPort(), internal states, e.g. received_messages_queues in |
| + // MidiHost, should be reset. |
| + |
| // CompleteStartSession() is called when platform dependent preparation is |
| // finished. |
| virtual void CompleteStartSession(MidiResult result) = 0; |
| @@ -89,16 +100,6 @@ class MEDIA_EXPORT MidiManager { |
| const std::vector<uint8>& data, |
| double timestamp); |
| - // input_ports() is a list of MIDI ports for receiving MIDI data. |
| - // Each individual port in this list can be identified by its |
| - // integer index into this list. |
| - const MidiPortInfoList& input_ports() const { return input_ports_; } |
| - |
| - // output_ports() is a list of MIDI ports for sending MIDI data. |
| - // Each individual port in this list can be identified by its |
| - // integer index into this list. |
| - const MidiPortInfoList& output_ports() const { return output_ports_; } |
| - |
| protected: |
| friend class MidiManagerUsb; |
| @@ -145,6 +146,7 @@ class MEDIA_EXPORT MidiManager { |
| private: |
| void CompleteInitializationInternal(MidiResult result); |
| + void AddInitialPorts(MidiManagerClient* client); |
| // Keeps track of all clients who wish to receive MIDI data. |
| typedef std::set<MidiManagerClient*> ClientSet; |
| @@ -164,13 +166,14 @@ class MEDIA_EXPORT MidiManager { |
| // completed. Otherwise keeps MIDI_NOT_SUPPORTED. |
| MidiResult result_; |
| - // Protects access to |clients_|, |pending_clients_|, |initialized_|, and |
| - // |result_|. |
| - base::Lock lock_; |
| - |
| + // Keeps all MidiPortInfo. |
| MidiPortInfoList input_ports_; |
| MidiPortInfoList output_ports_; |
| + // Protects access to |clients_|, |pending_clients_|, |initialized_|, and |
|
yhirano
2014/10/23 08:24:13
You don't need |and| in the first line.
Takashi Toyoshima
2014/10/23 09:33:48
Done.
|
| + // |result_|, |input_ports_| and |output_ports_|. |
| + base::Lock lock_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(MidiManager); |
| }; |