19d4cc2572d37983607df38b0f4216ed76ac51814sm/*
29d4cc2572d37983607df38b0f4216ed76ac51814sm * Copyright (C) 2010 The Android Open Source Project
39d4cc2572d37983607df38b0f4216ed76ac51814sm *
49d4cc2572d37983607df38b0f4216ed76ac51814sm * Licensed under the Apache License, Version 2.0 (the "License");
59d4cc2572d37983607df38b0f4216ed76ac51814sm * you may not use this file except in compliance with the License.
69d4cc2572d37983607df38b0f4216ed76ac51814sm * You may obtain a copy of the License at
79d4cc2572d37983607df38b0f4216ed76ac51814sm *
89d4cc2572d37983607df38b0f4216ed76ac51814sm *      http://www.apache.org/licenses/LICENSE-2.0
99d4cc2572d37983607df38b0f4216ed76ac51814sm *
109d4cc2572d37983607df38b0f4216ed76ac51814sm * Unless required by applicable law or agreed to in writing, software
119d4cc2572d37983607df38b0f4216ed76ac51814sm * distributed under the License is distributed on an "AS IS" BASIS,
129d4cc2572d37983607df38b0f4216ed76ac51814sm * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139d4cc2572d37983607df38b0f4216ed76ac51814sm * See the License for the specific language governing permissions and
149d4cc2572d37983607df38b0f4216ed76ac51814sm * limitations under the License.
159d4cc2572d37983607df38b0f4216ed76ac51814sm */
169d4cc2572d37983607df38b0f4216ed76ac51814sm
179d4cc2572d37983607df38b0f4216ed76ac51814sm
189d4cc2572d37983607df38b0f4216ed76ac51814smpackage com.replica.replicaisland;
199d4cc2572d37983607df38b0f4216ed76ac51814sm
209d4cc2572d37983607df38b0f4216ed76ac51814smpublic class InputButton {
219d4cc2572d37983607df38b0f4216ed76ac51814sm	private boolean mDown;
229d4cc2572d37983607df38b0f4216ed76ac51814sm	private float mLastPressedTime;
239d4cc2572d37983607df38b0f4216ed76ac51814sm	private float mDownTime;
249d4cc2572d37983607df38b0f4216ed76ac51814sm	private float mMagnitude;
259d4cc2572d37983607df38b0f4216ed76ac51814sm
269d4cc2572d37983607df38b0f4216ed76ac51814sm	public void press(float currentTime, float magnitude) {
279d4cc2572d37983607df38b0f4216ed76ac51814sm		if (!mDown) {
289d4cc2572d37983607df38b0f4216ed76ac51814sm			mDown = true;
299d4cc2572d37983607df38b0f4216ed76ac51814sm			mDownTime = currentTime;
309d4cc2572d37983607df38b0f4216ed76ac51814sm		}
319d4cc2572d37983607df38b0f4216ed76ac51814sm		mMagnitude = magnitude;
329d4cc2572d37983607df38b0f4216ed76ac51814sm		mLastPressedTime = currentTime;
339d4cc2572d37983607df38b0f4216ed76ac51814sm	}
349d4cc2572d37983607df38b0f4216ed76ac51814sm
359d4cc2572d37983607df38b0f4216ed76ac51814sm	public void release() {
369d4cc2572d37983607df38b0f4216ed76ac51814sm		mDown = false;
379d4cc2572d37983607df38b0f4216ed76ac51814sm	}
389d4cc2572d37983607df38b0f4216ed76ac51814sm
399d4cc2572d37983607df38b0f4216ed76ac51814sm	public final boolean getPressed() {
409d4cc2572d37983607df38b0f4216ed76ac51814sm		return mDown;
419d4cc2572d37983607df38b0f4216ed76ac51814sm	}
429d4cc2572d37983607df38b0f4216ed76ac51814sm
439d4cc2572d37983607df38b0f4216ed76ac51814sm	public final boolean getTriggered(float currentTime) {
449d4cc2572d37983607df38b0f4216ed76ac51814sm		return mDown && currentTime - mDownTime <= BaseObject.sSystemRegistry.timeSystem.getFrameDelta() * 2.0f;
459d4cc2572d37983607df38b0f4216ed76ac51814sm	}
469d4cc2572d37983607df38b0f4216ed76ac51814sm
479d4cc2572d37983607df38b0f4216ed76ac51814sm	public final float getPressedDuration(float currentTime) {
489d4cc2572d37983607df38b0f4216ed76ac51814sm		return currentTime - mDownTime;
499d4cc2572d37983607df38b0f4216ed76ac51814sm	}
509d4cc2572d37983607df38b0f4216ed76ac51814sm
519d4cc2572d37983607df38b0f4216ed76ac51814sm	public final float getLastPressedTime() {
529d4cc2572d37983607df38b0f4216ed76ac51814sm		return mLastPressedTime;
539d4cc2572d37983607df38b0f4216ed76ac51814sm	}
549d4cc2572d37983607df38b0f4216ed76ac51814sm
559d4cc2572d37983607df38b0f4216ed76ac51814sm	public final float getMagnitude() {
569d4cc2572d37983607df38b0f4216ed76ac51814sm		float magnitude = 0.0f;
579d4cc2572d37983607df38b0f4216ed76ac51814sm		if (mDown) {
589d4cc2572d37983607df38b0f4216ed76ac51814sm			magnitude = mMagnitude;
599d4cc2572d37983607df38b0f4216ed76ac51814sm		}
609d4cc2572d37983607df38b0f4216ed76ac51814sm		return magnitude;
619d4cc2572d37983607df38b0f4216ed76ac51814sm	}
629d4cc2572d37983607df38b0f4216ed76ac51814sm
639d4cc2572d37983607df38b0f4216ed76ac51814sm	public final void setMagnitude(float magnitude) {
649d4cc2572d37983607df38b0f4216ed76ac51814sm		mMagnitude = magnitude;
659d4cc2572d37983607df38b0f4216ed76ac51814sm	}
669d4cc2572d37983607df38b0f4216ed76ac51814sm
679d4cc2572d37983607df38b0f4216ed76ac51814sm	public final void reset() {
689d4cc2572d37983607df38b0f4216ed76ac51814sm		mDown = false;
699d4cc2572d37983607df38b0f4216ed76ac51814sm		mMagnitude = 0.0f;
709d4cc2572d37983607df38b0f4216ed76ac51814sm		mLastPressedTime = 0.0f;
719d4cc2572d37983607df38b0f4216ed76ac51814sm		mDownTime = 0.0f;
729d4cc2572d37983607df38b0f4216ed76ac51814sm	}
739d4cc2572d37983607df38b0f4216ed76ac51814sm}
74