blob: d70141ceccb290e1fce510b02e082e38f430df30 [file] [log] [blame]
toyoshim@chromium.orga97eebf2014-01-03 07:52:39 +00001// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
dnicoara@chromium.org9f2a6f02014-01-03 21:25:00 +00005#ifndef MEDIA_MIDI_MIDI_MANAGER_ALSA_H_
6#define MEDIA_MIDI_MIDI_MANAGER_ALSA_H_
toyoshim@chromium.orga97eebf2014-01-03 07:52:39 +00007
8#include <vector>
9
10#include "base/basictypes.h"
11#include "base/memory/scoped_ptr.h"
12#include "base/threading/thread.h"
13#include "media/midi/midi_manager.h"
14
15namespace media {
16
dnicoara@chromium.org9f2a6f02014-01-03 21:25:00 +000017class MIDIManagerAlsa : public MIDIManager {
toyoshim@chromium.orga97eebf2014-01-03 07:52:39 +000018 public:
dnicoara@chromium.org9f2a6f02014-01-03 21:25:00 +000019 MIDIManagerAlsa();
20 virtual ~MIDIManagerAlsa();
toyoshim@chromium.orga97eebf2014-01-03 07:52:39 +000021
22 // MIDIManager implementation.
23 virtual bool Initialize() OVERRIDE;
24 virtual void DispatchSendMIDIData(MIDIManagerClient* client,
25 uint32 port_index,
26 const std::vector<uint8>& data,
27 double timestamp) OVERRIDE;
28
29 private:
30 class MIDIDeviceInfo;
31 std::vector<scoped_refptr<MIDIDeviceInfo> > in_devices_;
32 std::vector<scoped_refptr<MIDIDeviceInfo> > out_devices_;
33 base::Thread send_thread_;
dnicoara@chromium.org9f2a6f02014-01-03 21:25:00 +000034 DISALLOW_COPY_AND_ASSIGN(MIDIManagerAlsa);
toyoshim@chromium.orga97eebf2014-01-03 07:52:39 +000035};
36
37} // namespace media
38
dnicoara@chromium.org9f2a6f02014-01-03 21:25:00 +000039#endif // MEDIA_MIDI_MIDI_MANAGER_ALSA_H_