Signed-off-by: falkTX <falktx@falktx.com>pull/16/head
@@ -1 +1 @@ | |||||
Subproject commit ea7545a13ab9793b5608b13a82f1ad9cf9ec5e98 | |||||
Subproject commit 4281406e68aeef25c5e8a9dff5542f0e0eee337a |
@@ -29,9 +29,6 @@ DistrhoUINekobi::DistrhoUINekobi() | |||||
fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, GL_BGR), | fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, GL_BGR), | ||||
fAboutWindow(this) | fAboutWindow(this) | ||||
{ | { | ||||
// FIXME | |||||
fNeko.setTimerSpeed(5); | |||||
// about | // about | ||||
Image aboutImage(Art::aboutData, Art::aboutWidth, Art::aboutHeight, GL_BGR); | Image aboutImage(Art::aboutData, Art::aboutWidth, Art::aboutHeight, GL_BGR); | ||||
fAboutWindow.setImage(aboutImage); | fAboutWindow.setImage(aboutImage); | ||||
@@ -127,6 +124,9 @@ DistrhoUINekobi::DistrhoUINekobi() | |||||
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | ||||
fButtonAbout->setAbsolutePos(505, 5); | fButtonAbout->setAbsolutePos(505, 5); | ||||
fButtonAbout->setCallback(this); | 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 | // Widget Callbacks | ||||
@@ -219,6 +210,15 @@ void DistrhoUINekobi::onDisplay() | |||||
fNeko.draw(); | fNeko.draw(); | ||||
} | } | ||||
// ----------------------------------------------------------------------- | |||||
// Other Callbacks | |||||
void DistrhoUINekobi::idleCallback() | |||||
{ | |||||
if (fNeko.idle()) | |||||
repaint(); | |||||
} | |||||
// ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
UI* createUI() | UI* createUI() | ||||
@@ -37,7 +37,8 @@ START_NAMESPACE_DISTRHO | |||||
class DistrhoUINekobi : public UI, | class DistrhoUINekobi : public UI, | ||||
public ImageButton::Callback, | public ImageButton::Callback, | ||||
public ImageKnob::Callback, | public ImageKnob::Callback, | ||||
public ImageSlider::Callback | |||||
public ImageSlider::Callback, | |||||
public IdleCallback | |||||
{ | { | ||||
public: | public: | ||||
DistrhoUINekobi(); | DistrhoUINekobi(); | ||||
@@ -48,11 +49,6 @@ protected: | |||||
void parameterChanged(uint32_t index, float value) override; | void parameterChanged(uint32_t index, float value) override; | ||||
// ------------------------------------------------------------------- | |||||
// UI Callbacks | |||||
void uiIdle() override; | |||||
// ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
// Widget Callbacks | // Widget Callbacks | ||||
@@ -66,6 +62,11 @@ protected: | |||||
void onDisplay() override; | void onDisplay() override; | ||||
// ------------------------------------------------------------------- | |||||
// Other Callbacks | |||||
void idleCallback() override; | |||||
private: | private: | ||||
Image fImgBackground; | Image fImgBackground; | ||||
ImageAboutWindow fAboutWindow; | ImageAboutWindow fAboutWindow; | ||||
@@ -35,7 +35,6 @@ public: | |||||
NekoWidget() | NekoWidget() | ||||
: fPos(0), | : fPos(0), | ||||
fTimer(0), | fTimer(0), | ||||
fTimerSpeed(20), | |||||
fCurAction(kActionNone), | fCurAction(kActionNone), | ||||
fCurImage(&fImages.sit) | fCurImage(&fImages.sit) | ||||
{ | { | ||||
@@ -79,10 +78,7 @@ public: | |||||
// returns true if needs repaint | // returns true if needs repaint | ||||
bool idle() | bool idle() | ||||
{ | { | ||||
if (++fTimer % fTimerSpeed != 0) // target is 20ms | |||||
return false; | |||||
if (fTimer == fTimerSpeed*9) | |||||
if (++fTimer == 10) | |||||
{ | { | ||||
if (fCurAction == kActionNone) | if (fCurAction == kActionNone) | ||||
fCurAction = static_cast<Action>(std::rand() % kActionCount); | fCurAction = static_cast<Action>(std::rand() % kActionCount); | ||||
@@ -158,12 +154,6 @@ public: | |||||
return true; | return true; | ||||
} | } | ||||
void setTimerSpeed(int speed) | |||||
{ | |||||
fTimer = 0; | |||||
fTimerSpeed = speed; | |||||
} | |||||
// ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
private: | private: | ||||
@@ -191,7 +181,6 @@ private: | |||||
int fPos; | int fPos; | ||||
int fTimer; | int fTimer; | ||||
int fTimerSpeed; | |||||
Action fCurAction; | Action fCurAction; | ||||
Image* fCurImage; | Image* fCurImage; | ||||