Exemple #1
0
AdvButton::AdvButton(uint8_t pin,void (*OnKeyPress)(AdvButton*) , unsigned long repeat, unsigned long startDelay, buttonMode mode)
{
	init(pin,OnKeyPress,NULL,NULL,mode);
	
	setRepeat(repeat);
	setStartDelay(startDelay);
	

}
void Action::setData(const QVariantMap data)
{
    setValue(data[Identifiers::keyValue]);
    if(data.contains(Identifiers::keyStartDelay)) setStartDelay(data[Identifiers::keyStartDelay].toInt());
    setRestore(data[Identifiers::keyRestore].toBool());
    doSetData(data);
    emit dataChanged(data);

    if(mRunning) doExecute(mValue);
}
Timing TimingInput::convert(const Dictionary& timingInputDictionary)
{
    Timing result;

    // FIXME: This method needs to be refactored to handle invalid
    // null, NaN, Infinity values better.
    // See: http://www.w3.org/TR/WebIDL/#es-double
    double startDelay = Timing::defaults().startDelay;
    timingInputDictionary.get("delay", startDelay);
    setStartDelay(result, startDelay);

    double endDelay = Timing::defaults().endDelay;
    timingInputDictionary.get("endDelay", endDelay);
    setEndDelay(result, endDelay);

    String fillMode;
    timingInputDictionary.get("fill", fillMode);
    setFillMode(result, fillMode);

    double iterationStart = Timing::defaults().iterationStart;
    timingInputDictionary.get("iterationStart", iterationStart);
    setIterationStart(result, iterationStart);

    double iterationCount = Timing::defaults().iterationCount;
    timingInputDictionary.get("iterations", iterationCount);
    setIterationCount(result, iterationCount);

    double iterationDuration = 0;
    if (timingInputDictionary.get("duration", iterationDuration)) {
        setIterationDuration(result, iterationDuration);
    }

    double playbackRate = Timing::defaults().playbackRate;
    timingInputDictionary.get("playbackRate", playbackRate);
    setPlaybackRate(result, playbackRate);

    String direction;
    timingInputDictionary.get("direction", direction);
    setPlaybackDirection(result, direction);

    String timingFunctionString;
    timingInputDictionary.get("easing", timingFunctionString);
    setTimingFunction(result, timingFunctionString);

    result.assertValid();

    return result;
}
Exemple #4
0
void AdvButton::init(uint8_t pin,void (*OnKeyPress)(AdvButton*) , void (*OnKeyDown)(AdvButton*),void (*OnKeyUp)(AdvButton*), buttonMode mode){
	setPin(pin);
	setRepeat(300);
	setStartDelay(500);
	setOnKeyPress( (*OnKeyPress));
	setOnKeyDown( (*OnKeyDown));
	setOnKeyUp( (*OnKeyUp));

	debounceTime = 100;
	ButtonManager::instance()->addButton(this);
	if (mode == btn_Digital){
		pinMode(pin, INPUT_PULLUP);
		digitalWrite(pin,HIGH);
	}
	this->mode = mode;
	lastChange = millis();
	lastState = HIGH;
}