From 6278a4a4012b92999e3caa89ce6e537d530d9bed Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Thu, 26 Aug 2010 17:11:37 +0200 Subject: [PATCH] Rename ratio to frequency and don't use the frames per second because it is not needed. Frequency is more intuitive and allows to achieve steady strobe (no movement) setting it to zero. Using ratio it would need to set it to infinite to obtain a steady strobe. --- synfig-core/src/modules/lyr_std/stroboscope.cpp | 27 ++++++++++--------------- synfig-core/src/modules/lyr_std/stroboscope.h | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/synfig-core/src/modules/lyr_std/stroboscope.cpp b/synfig-core/src/modules/lyr_std/stroboscope.cpp index 5fa7fde..9156d1b 100644 --- a/synfig-core/src/modules/lyr_std/stroboscope.cpp +++ b/synfig-core/src/modules/lyr_std/stroboscope.cpp @@ -67,7 +67,7 @@ SYNFIG_LAYER_SET_CVS_ID(Layer_Stroboscope,"$Id$"); Layer_Stroboscope::Layer_Stroboscope() { - ratio=2; + frequency=2.0; } Layer_Stroboscope::~Layer_Stroboscope() @@ -77,7 +77,7 @@ Layer_Stroboscope::~Layer_Stroboscope() bool Layer_Stroboscope::set_param(const String & param, const ValueBase &value) { - IMPORT(ratio); + IMPORT(frequency); return Layer::set_param(param,value); } @@ -85,7 +85,7 @@ Layer_Stroboscope::set_param(const String & param, const ValueBase &value) ValueBase Layer_Stroboscope::get_param(const String & param)const { - EXPORT(ratio); + EXPORT(frequency); EXPORT_NAME(); EXPORT_VERSION(); @@ -97,8 +97,9 @@ Layer_Stroboscope::get_param_vocab()const { Layer::Vocab ret(Layer::get_param_vocab()); - ret.push_back(ParamDesc("ratio") - .set_local_name(_("Ratio")) + ret.push_back(ParamDesc("frequency") + .set_local_name(_("Frequency")) + .set_description(_("Frequency of the Strobe in times per second")) ); return ret; @@ -107,17 +108,11 @@ Layer_Stroboscope::get_param_vocab()const void Layer_Stroboscope::set_time(Context context, Time t)const { - if (ratio != 0) - { - float fps = 24.0; - Canvas::LooseHandle canvas(get_canvas()); - if(canvas) - fps = canvas->rend_desc().get_frame_rate(); //not works :( - float frame = floor((t*fps)/ratio)*ratio; - t = Time(1)*(frame/fps); - } - - context.set_time(t); + Time ret_time=Time::begin(); + if(frequency > 0.0) + ret_time = Time(1.0)/frequency*floor(t*frequency); + + context.set_time(ret_time); } Color diff --git a/synfig-core/src/modules/lyr_std/stroboscope.h b/synfig-core/src/modules/lyr_std/stroboscope.h index 2e6c768..029f2dd 100644 --- a/synfig-core/src/modules/lyr_std/stroboscope.h +++ b/synfig-core/src/modules/lyr_std/stroboscope.h @@ -45,7 +45,7 @@ class Layer_Stroboscope : public synfig::Layer SYNFIG_LAYER_MODULE_EXT private: - float ratio; + float frequency; protected: Layer_Stroboscope(); -- 2.7.4