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