Line data Source code
1 : /*
2 : * SPDX-License-Identifier: GPL-3.0-only
3 : * MuseScore-CLA-applies
4 : *
5 : * MuseScore Studio
6 : * Music Composition & Notation
7 : *
8 : * Copyright (C) 2021 MuseScore Limited and others
9 : *
10 : * This program is free software: you can redistribute it and/or modify
11 : * it under the terms of the GNU General Public License version 3 as
12 : * published by the Free Software Foundation.
13 : *
14 : * This program is distributed in the hope that it will be useful,
15 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : * GNU General Public License for more details.
18 : *
19 : * You should have received a copy of the GNU General Public License
20 : * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 : */
22 : #include "dummymidioutport.h"
23 :
24 : #include "log.h"
25 : #include "midierrors.h"
26 :
27 : using namespace muse;
28 : using namespace muse::midi;
29 :
30 0 : void DummyMidiOutPort::init()
31 : {
32 0 : }
33 :
34 0 : MidiDeviceList DummyMidiOutPort::availableDevices() const
35 : {
36 0 : MidiDevice d;
37 0 : d.id = "dummy";
38 0 : d.name = "Dummy";
39 0 : return { d };
40 0 : }
41 :
42 0 : async::Notification DummyMidiOutPort::availableDevicesChanged() const
43 : {
44 0 : return {};
45 : }
46 :
47 0 : Ret DummyMidiOutPort::connect(const MidiDeviceID& deviceID)
48 : {
49 0 : LOGI() << "deviceID: " << deviceID;
50 0 : m_connectedDeviceID = deviceID;
51 0 : return Ret(true);
52 : }
53 :
54 0 : void DummyMidiOutPort::disconnect()
55 : {
56 0 : LOGI() << "disconnect";
57 0 : m_connectedDeviceID.clear();
58 0 : }
59 :
60 0 : bool DummyMidiOutPort::isConnected() const
61 : {
62 0 : return !m_connectedDeviceID.empty();
63 : }
64 :
65 0 : MidiDeviceID DummyMidiOutPort::deviceID() const
66 : {
67 0 : return m_connectedDeviceID;
68 : }
69 :
70 0 : bool DummyMidiOutPort::supportsMIDI20Output() const
71 : {
72 0 : return false;
73 : }
74 :
75 0 : Ret DummyMidiOutPort::sendEvent(const Event& e)
76 : {
77 0 : if (!isConnected()) {
78 0 : return make_ret(Err::MidiNotConnected);
79 : }
80 0 : LOGI() << e.to_string();
81 0 : return Ret(true);
82 : }
|