[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