Consistent neko speed with new DPF

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2021-05-16 18:05:24 +01:00
parent 653812a356
commit 8c00761c4e
4 changed files with 21 additions and 31 deletions

2
dpf

@ -1 +1 @@
Subproject commit ea7545a13ab9793b5608b13a82f1ad9cf9ec5e98
Subproject commit 4281406e68aeef25c5e8a9dff5542f0e0eee337a

View File

@ -29,9 +29,6 @@ DistrhoUINekobi::DistrhoUINekobi()
fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, GL_BGR),
fAboutWindow(this)
{
// FIXME
fNeko.setTimerSpeed(5);
// about
Image aboutImage(Art::aboutData, Art::aboutWidth, Art::aboutHeight, GL_BGR);
fAboutWindow.setImage(aboutImage);
@ -127,6 +124,9 @@ DistrhoUINekobi::DistrhoUINekobi()
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setAbsolutePos(505, 5);
fButtonAbout->setCallback(this);
// neko animation
addIdleCallback(this, 120);
}
// -----------------------------------------------------------------------
@ -163,15 +163,6 @@ void DistrhoUINekobi::parameterChanged(uint32_t index, float value)
}
}
// -----------------------------------------------------------------------
// UI Callbacks
void DistrhoUINekobi::uiIdle()
{
if (fNeko.idle())
repaint();
}
// -----------------------------------------------------------------------
// Widget Callbacks
@ -219,6 +210,15 @@ void DistrhoUINekobi::onDisplay()
fNeko.draw();
}
// -----------------------------------------------------------------------
// Other Callbacks
void DistrhoUINekobi::idleCallback()
{
if (fNeko.idle())
repaint();
}
// -----------------------------------------------------------------------
UI* createUI()

View File

@ -37,7 +37,8 @@ START_NAMESPACE_DISTRHO
class DistrhoUINekobi : public UI,
public ImageButton::Callback,
public ImageKnob::Callback,
public ImageSlider::Callback
public ImageSlider::Callback,
public IdleCallback
{
public:
DistrhoUINekobi();
@ -48,11 +49,6 @@ protected:
void parameterChanged(uint32_t index, float value) override;
// -------------------------------------------------------------------
// UI Callbacks
void uiIdle() override;
// -------------------------------------------------------------------
// Widget Callbacks
@ -66,6 +62,11 @@ protected:
void onDisplay() override;
// -------------------------------------------------------------------
// Other Callbacks
void idleCallback() override;
private:
Image fImgBackground;
ImageAboutWindow fAboutWindow;

View File

@ -35,7 +35,6 @@ public:
NekoWidget()
: fPos(0),
fTimer(0),
fTimerSpeed(20),
fCurAction(kActionNone),
fCurImage(&fImages.sit)
{
@ -79,10 +78,7 @@ public:
// returns true if needs repaint
bool idle()
{
if (++fTimer % fTimerSpeed != 0) // target is 20ms
return false;
if (fTimer == fTimerSpeed*9)
if (++fTimer == 10)
{
if (fCurAction == kActionNone)
fCurAction = static_cast<Action>(std::rand() % kActionCount);
@ -158,12 +154,6 @@ public:
return true;
}
void setTimerSpeed(int speed)
{
fTimer = 0;
fTimerSpeed = speed;
}
// -------------------------------------------------------------------
private:
@ -191,7 +181,6 @@ private:
int fPos;
int fTimer;
int fTimerSpeed;
Action fCurAction;
Image* fCurImage;