[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [minuet/refactoring] src: Refactor pitch, volume, and tempo control to new architecture
From: Sandro S. Andrade <sandroandrade () kde ! org>
Date: 2016-07-01 1:56:20
Message-ID: E1bIngq-0000U3-UL () code ! kde ! org
[Download RAW message or body]
Git commit 73e88607bf6a988aecd12ad772dba4d9dc7a2640 by Sandro S. Andrade.
Committed on 01/07/2016 at 01:56.
Pushed by sandroandrade into branch 'refactoring'.
Refactor pitch, volume, and tempo control to new architecture
M +7 -5 src/interfaces/isoundbackend.h
M +16 -0 src/plugins/drumsticksoundbackend/drumsticksoundbackend.cpp
M +2 -0 src/plugins/drumsticksoundbackend/drumsticksoundbackend.h
M +2 -2 src/plugins/drumsticksoundbackend/midisequenceroutputthread.cpp
M +3 -3 src/plugins/drumsticksoundbackend/midisequenceroutputthread.h
M +10 -0 src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.cpp
M +3 -1 src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.h
http://commits.kde.org/minuet/73e88607bf6a988aecd12ad772dba4d9dc7a2640
diff --git a/src/interfaces/isoundbackend.h b/src/interfaces/isoundbackend.h
index 9489061..1eba3b2 100644
--- a/src/interfaces/isoundbackend.h
+++ b/src/interfaces/isoundbackend.h
@@ -36,8 +36,8 @@ class MINUETINTERFACES_EXPORT ISoundBackend : public IPlugin
{
Q_OBJECT
- Q_PROPERTY(int pitch MEMBER m_pitch NOTIFY pitchChanged)
- Q_PROPERTY(quint8 volume MEMBER m_volume NOTIFY volumeChanged)
+ Q_PROPERTY(qint8 pitch MEMBER m_pitch WRITE setPitch NOTIFY pitchChanged)
+ Q_PROPERTY(quint8 volume MEMBER m_volume WRITE setVolume NOTIFY volumeChanged)
Q_PROPERTY(quint8 tempo MEMBER m_tempo WRITE setTempo NOTIFY tempoChanged)
Q_PROPERTY(QString playbackLabel READ playbackLabel NOTIFY playbackLabelChanged)
Q_ENUMS(PlayMode)
@@ -65,7 +65,9 @@ public:
ISoundBackend::State state() const;
public Q_SLOTS:
- virtual void setTempo (quint8 tempo) = 0;
+ virtual void setPitch(qint8 pitch) = 0;
+ virtual void setVolume(quint8 tempo) = 0;
+ virtual void setTempo(quint8 tempo) = 0;
virtual void prepareFromExerciseOptions(QJsonArray selectedOptions) = 0;
virtual void prepareFromMidiFile(const QString &fileName) = 0;
@@ -75,7 +77,7 @@ public Q_SLOTS:
virtual void stop() = 0;
Q_SIGNALS:
- void pitchChanged(int newPitch);
+ void pitchChanged(qint8 newPitch);
void volumeChanged(quint8 newVolume);
void tempoChanged(quint8 newTempo);
void playbackLabelChanged(QString newPlaybackLabel);
@@ -87,7 +89,7 @@ protected:
void setPlaybackLabel(const QString &playbackLabel);
void setState(State state);
- int m_pitch;
+ qint8 m_pitch;
quint8 m_volume;
quint8 m_tempo;
QString m_playbackLabel;
diff --git a/src/plugins/drumsticksoundbackend/drumsticksoundbackend.cpp \
b/src/plugins/drumsticksoundbackend/drumsticksoundbackend.cpp index 7bf1db0..2077ad7 100644
--- a/src/plugins/drumsticksoundbackend/drumsticksoundbackend.cpp
+++ b/src/plugins/drumsticksoundbackend/drumsticksoundbackend.cpp
@@ -116,6 +116,22 @@ DrumstickSoundBackend::~DrumstickSoundBackend()
qCDebug(MINUET) << "TiMidity++ stoped!";
}
+void DrumstickSoundBackend::setPitch(qint8 pitch)
+{
+ if (m_midiSequencerOutputThread->pitch() != pitch) {
+ m_midiSequencerOutputThread->setPitch(pitch);
+ emit pitchChanged(pitch);
+ }
+}
+
+void DrumstickSoundBackend::setVolume(quint8 volume)
+{
+ if (m_midiSequencerOutputThread->volume() != volume) {
+ m_midiSequencerOutputThread->setVolume(volume);
+ emit volumeChanged(volume);
+ }
+}
+
void DrumstickSoundBackend::setTempo (quint8 tempo)
{
float tempoFactor = (tempo*tempo + 100.0*tempo + 20000.0) / 40000.0;
diff --git a/src/plugins/drumsticksoundbackend/drumsticksoundbackend.h \
b/src/plugins/drumsticksoundbackend/drumsticksoundbackend.h index 7808484..a4cf8f6 100644
--- a/src/plugins/drumsticksoundbackend/drumsticksoundbackend.h
+++ b/src/plugins/drumsticksoundbackend/drumsticksoundbackend.h
@@ -55,6 +55,8 @@ public:
virtual ~DrumstickSoundBackend() override;
public Q_SLOTS:
+ virtual void setPitch(qint8 pitch);
+ virtual void setVolume(quint8 volume);
virtual void setTempo (quint8 tempo);
virtual void prepareFromExerciseOptions(QJsonArray selectedOptions) override;
diff --git a/src/plugins/drumsticksoundbackend/midisequenceroutputthread.cpp \
b/src/plugins/drumsticksoundbackend/midisequenceroutputthread.cpp index d8783e4..7013bb6 100644
--- a/src/plugins/drumsticksoundbackend/midisequenceroutputthread.cpp
+++ b/src/plugins/drumsticksoundbackend/midisequenceroutputthread.cpp
@@ -122,7 +122,7 @@ unsigned int MidiSequencerOutputThread::volume() const
return m_volume;
}
-void MidiSequencerOutputThread::setPitch(int value)
+void MidiSequencerOutputThread::setPitch(qint8 value)
{
bool playing = isRunning();
if (playing) {
@@ -137,7 +137,7 @@ void MidiSequencerOutputThread::setPitch(int value)
start();
}
-int MidiSequencerOutputThread::pitch() const
+qint8 MidiSequencerOutputThread::pitch() const
{
return m_pitchShift;
}
diff --git a/src/plugins/drumsticksoundbackend/midisequenceroutputthread.h \
b/src/plugins/drumsticksoundbackend/midisequenceroutputthread.h index cd15f50..40f5ba4 100644
--- a/src/plugins/drumsticksoundbackend/midisequenceroutputthread.h
+++ b/src/plugins/drumsticksoundbackend/midisequenceroutputthread.h
@@ -45,8 +45,8 @@ public:
virtual unsigned int getInitialPosition() { return m_songPosition; }
void setSong(Song *song);
- void setPitch(int value);
- int pitch() const;
+ void setPitch(qint8 value);
+ qint8 pitch() const;
void setVolume(unsigned int volume);
unsigned int volume() const;
void setPosition(unsigned int pos);
@@ -64,7 +64,7 @@ private:
drumstick::SequencerEvent *m_lastEvent;
unsigned int m_volume;
int m_channelVolume[MIDI_CHANNELS];
- int m_pitchShift;
+ qint8 m_pitchShift;
float m_tempoFactor;
QListIterator<drumstick::SequencerEvent *>* m_songIterator;
};
diff --git a/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.cpp \
b/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.cpp index a2dc3f9..d1b9a74 100644
--- a/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.cpp
+++ b/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.cpp
@@ -31,6 +31,16 @@ FluidSynthSoundBackend::~FluidSynthSoundBackend()
{
}
+void FluidSynthSoundBackend::setPitch(qint8 pitch)
+{
+ Q_UNUSED(pitch);
+}
+
+void FluidSynthSoundBackend::setVolume(quint8 volume)
+{
+ Q_UNUSED(volume);
+}
+
void FluidSynthSoundBackend::setTempo (quint8 tempo)
{
Q_UNUSED(tempo);
diff --git a/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.h \
b/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.h index 1595679..7938a15 100644
--- a/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.h
+++ b/src/plugins/fluidsynthsoundbackend/fluidsynthsoundbackend.h
@@ -38,7 +38,9 @@ public:
virtual ~FluidSynthSoundBackend() override;
public Q_SLOTS:
- virtual void setTempo (quint8 tempo);
+ virtual void setPitch(qint8 pitch);
+ virtual void setVolume(quint8 volume);
+ virtual void setTempo(quint8 tempo);
virtual void prepareFromExerciseOptions(QJsonArray selectedOptions) override;
virtual void prepareFromMidiFile(const QString &fileName) override;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic