LMMS
Loading...
Searching...
No Matches
FreeBoy.h
Go to the documentation of this file.
1/*
2 * FreeBoy.h - GameBoy papu based instrument
3 *
4 * Copyright (c) 2008 Attila Herman <attila589/at/gmail.com>
5 * Csaba Hruska <csaba.hruska/at/gmail.com>
6 *
7 * This file is part of LMMS - https://lmms.io
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public
11 * License as published by the Free Software Foundation; either
12 * version 2 of the License, or (at your option) any later version.
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 GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this program (see COPYING); if not, write to the
21 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301 USA.
23 *
24 */
25
26#ifndef LMMS_FREEBOY_H
27#define LMMS_FREEBOY_H
28
29
30#include "AutomatableModel.h"
31#include "Instrument.h"
32#include "InstrumentView.h"
33#include "Graph.h"
34
35namespace lmms
36{
37
38class NotePlayHandle; // IWYU pragma: keep
39
40
41namespace gui
42{
43class PixmapButton;
45class Knob;
46}
47
48
50{
51 Q_OBJECT
52public:
53
54 FreeBoyInstrument( InstrumentTrack * _instrument_track );
55 ~FreeBoyInstrument() override = default;
56
57 void playNote(NotePlayHandle* nph, SampleFrame* workingBuffer) override;
58 void deleteNotePluginData(NotePlayHandle* nph) override;
59
60 void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override;
61 void loadSettings( const QDomElement & _this ) override;
62
63 QString nodeName() const override;
64
65 float desiredReleaseTimeMs() const override;
66
67 gui::PluginView* instantiateView( QWidget * _parent ) override;
68
69
70/*public slots:
71 void updateKnobHint();
72 void updateKnobToolTip();*/
73
74private:
82
87
90
97
110
112
114};
115
116
117namespace gui
118{
119
120
170
171
172} // namespace gui
173
174} // namespace lmms
175
176#endif // LMMS_FREEBOY_H
Definition AutomatableModel.h:497
Definition AutomatableModel.h:463
void loadSettings(const QDomElement &_this) override
Definition FreeBoy.cpp:173
BoolModel m_ch4So1Model
Definition FreeBoy.h:103
FloatModel m_ch2SweepStepLengthModel
Definition FreeBoy.h:86
FloatModel m_ch1SweepTimeModel
Definition FreeBoy.h:75
BoolModel m_ch4VolSweepDirModel
Definition FreeBoy.h:92
BoolModel m_ch2So2Model
Definition FreeBoy.h:105
FloatModel m_trebleModel
Definition FreeBoy.h:108
FloatModel m_ch2VolumeModel
Definition FreeBoy.h:84
float desiredReleaseTimeMs() const override
Definition FreeBoy.cpp:223
FloatModel m_ch1WavePatternDutyModel
Definition FreeBoy.h:78
QString nodeName() const override
Definition FreeBoy.cpp:215
BoolModel m_ch2So1Model
Definition FreeBoy.h:101
BoolModel m_ch3OnModel
Definition FreeBoy.h:88
FloatModel m_ch1SweepRtShiftModel
Definition FreeBoy.h:77
BoolModel m_ch4ShiftRegWidthModel
Definition FreeBoy.h:95
BoolModel m_ch3So2Model
Definition FreeBoy.h:106
gui::PluginView * instantiateView(QWidget *_parent) override
Create a view for the model.
Definition FreeBoy.cpp:420
FloatModel m_ch1VolumeModel
Definition FreeBoy.h:79
FloatModel m_so2VolumeModel
Definition FreeBoy.h:99
BoolModel m_ch1VolSweepDirModel
Definition FreeBoy.h:80
BoolModel m_ch1So2Model
Definition FreeBoy.h:104
BoolModel m_ch3So1Model
Definition FreeBoy.h:102
BoolModel m_ch1SweepDirModel
Definition FreeBoy.h:76
FloatModel m_ch4SweepStepLengthModel
Definition FreeBoy.h:93
FloatModel m_ch1SweepStepLengthModel
Definition FreeBoy.h:81
~FreeBoyInstrument() override=default
BoolModel m_ch1So1Model
Definition FreeBoy.h:100
graphModel m_graphModel
Definition FreeBoy.h:111
FloatModel m_bassModel
Definition FreeBoy.h:109
FloatModel m_ch4FreqDivRatioModel
Definition FreeBoy.h:96
FloatModel m_so1VolumeModel
Definition FreeBoy.h:98
FloatModel m_ch4ShiftClockFreqModel
Definition FreeBoy.h:94
BoolModel m_ch4So2Model
Definition FreeBoy.h:107
void playNote(NotePlayHandle *nph, SampleFrame *workingBuffer) override
Definition FreeBoy.cpp:231
void saveSettings(QDomDocument &_doc, QDomElement &_parent) override
Definition FreeBoy.cpp:130
FloatModel m_ch4VolumeModel
Definition FreeBoy.h:91
FloatModel m_ch2WavePatternDutyModel
Definition FreeBoy.h:83
FloatModel m_ch3VolumeModel
Definition FreeBoy.h:89
void deleteNotePluginData(NotePlayHandle *nph) override
Definition FreeBoy.cpp:412
BoolModel m_ch2VolSweepDirModel
Definition FreeBoy.h:85
FreeBoyInstrument(InstrumentTrack *_instrument_track)
Definition FreeBoy.cpp:74
Definition Instrument.h:52
Instrument(InstrumentTrack *_instrument_track, const Descriptor *_descriptor, const Descriptor::SubPluginFeatures::Key *key=nullptr, Flags flags=Flag::NoFlags)
Definition Instrument.cpp:38
Definition InstrumentTrack.h:62
Definition NotePlayHandle.h:48
Definition SampleFrame.h:41
2 dimensional function plot
Definition Graph.h:134
Definition FreeBoy.h:122
PixmapButton * m_ch4VolSweepDirButton
Definition FreeBoy.h:147
Knob * m_ch2SweepStepLengthKnob
Definition FreeBoy.h:142
Knob * m_so1VolumeKnob
Definition FreeBoy.h:151
PixmapButton * m_ch2So2Button
Definition FreeBoy.h:158
PixmapButton * m_ch1SweepDirButton
Definition FreeBoy.h:132
Knob * m_ch1SweepStepLengthKnob
Definition FreeBoy.h:137
PixmapButton * m_ch1So2Button
Definition FreeBoy.h:157
PixmapButton * m_ch1VolSweepDirButton
Definition FreeBoy.h:136
PixmapButton * m_ch4ShiftRegWidthButton
Definition FreeBoy.h:149
PixmapButton * m_ch4So1Button
Definition FreeBoy.h:156
PixmapButton * m_ch1So1Button
Definition FreeBoy.h:153
PixmapButton * m_ch4So2Button
Definition FreeBoy.h:160
Graph * m_graph
Definition FreeBoy.h:164
Knob * m_ch3VolumeKnob
Definition FreeBoy.h:144
Knob * m_ch1VolumeKnob
Definition FreeBoy.h:135
Knob * m_ch4SweepStepLengthKnob
Definition FreeBoy.h:148
PixmapButton * m_ch3So1Button
Definition FreeBoy.h:155
Knob * m_ch2WavePatternDutyKnob
Definition FreeBoy.h:139
PixmapButton * m_ch2VolSweepDirButton
Definition FreeBoy.h:141
void modelChanged() override
Definition FreeBoy.cpp:673
Knob * m_ch1WavePatternDutyKnob
Definition FreeBoy.h:134
Knob * m_trebleKnob
Definition FreeBoy.h:161
Knob * m_ch1SweepTimeKnob
Definition FreeBoy.h:131
PixmapButton * m_ch3So2Button
Definition FreeBoy.h:159
Knob * m_so2VolumeKnob
Definition FreeBoy.h:152
~FreeBoyInstrumentView() override=default
Knob * m_ch1SweepRtShiftKnob
Definition FreeBoy.h:133
Knob * m_ch2VolumeKnob
Definition FreeBoy.h:140
PixmapButton * m_ch2So1Button
Definition FreeBoy.h:154
Knob * m_ch4VolumeKnob
Definition FreeBoy.h:146
FreeBoyInstrumentView(Instrument *_instrument, QWidget *_parent)
Definition FreeBoy.cpp:449
Knob * m_bassKnob
Definition FreeBoy.h:162
Definition Graph.h:48
Instrument view with fixed LMMS-default size.
Definition InstrumentView.h:66
Definition Knob.h:47
Definition PixmapButton.h:37
Definition PluginView.h:36
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35