diff options
author | Shareef Ali <shareefalis@cyanogenmod.org> | 2013-08-09 11:34:33 -0500 |
---|---|---|
committer | codeworkx <codeworkx@cyanogenmod.org> | 2013-08-09 22:30:58 +0200 |
commit | 935de412d66631aa074c32246bc0f2eb338a91b0 (patch) | |
tree | aa1e8f5127d0cec1988ff068ee8e5d00727157f9 | |
parent | d6e3065985a28aaa6b10fc1e7b51e2b676b6d3fd (diff) | |
download | android_hardware_samsung-935de412d66631aa074c32246bc0f2eb338a91b0.tar.gz android_hardware_samsung-935de412d66631aa074c32246bc0f2eb338a91b0.tar.bz2 android_hardware_samsung-935de412d66631aa074c32246bc0f2eb338a91b0.zip |
Samsung: Add common class for vibrator
Change-Id: I0802cc122b606b08f58731febd8bf050d22f4c57
-rw-r--r-- | Android.mk | 2 | ||||
-rwxr-xr-x | cmhw/org/cyanogenmod/hardware/VibratorHW.java | 94 |
2 files changed, 95 insertions, 1 deletions
@@ -36,7 +36,7 @@ ifeq ($(BOARD_HAVE_SAMSUNG_WIFI),true) include $(SAM_ROOT)/macloader/Android.mk endif -# RIL ifeq ($(BOARD_VENDOR),samsung) include $(SAM_ROOT)/ril/Android.mk +BOARD_HARDWARE_CLASS := $(SAM_ROOT)/cmhw endif diff --git a/cmhw/org/cyanogenmod/hardware/VibratorHW.java b/cmhw/org/cyanogenmod/hardware/VibratorHW.java new file mode 100755 index 0000000..970d74e --- /dev/null +++ b/cmhw/org/cyanogenmod/hardware/VibratorHW.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2013 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.cyanogenmod.hardware; + +import org.cyanogenmod.hardware.util.FileUtils; + +import java.io.File; + +public class VibratorHW { + + private static String LEVEL_PATH = "/sys/class/timed_output/vibrator/pwm_value"; + private static String LEVEL_MAX_PATH = "/sys/class/timed_output/vibrator/pwm_max"; + private static String LEVEL_MIN_PATH = "/sys/class/timed_output/vibrator/pwm_min"; + private static String LEVEL_DEFAULT_PATH = "/sys/class/timed_output/vibrator/pwm_default"; + private static String LEVEL_THRESHOLD_PATH = "/sys/class/timed_output/vibrator/pwm_threshold"; + + public static boolean isSupported() { + return true; + } + + public static int getMaxIntensity() { + File f = new File(LEVEL_MAX_PATH); + + if(f.exists()) { + return Integer.parseInt(FileUtils.readOneLine(LEVEL_MAX_PATH)); + } else { + return 100; + } + } + + public static int getMinIntensity() { + File f = new File(LEVEL_MIN_PATH); + + if(f.exists()) { + return Integer.parseInt(FileUtils.readOneLine(LEVEL_MIN_PATH)); + } else { + return 0; + } + } + + public static int getWarningThreshold() { + File f = new File(LEVEL_THRESHOLD_PATH); + + if(f.exists()) { + return Integer.parseInt(FileUtils.readOneLine(LEVEL_THRESHOLD_PATH)); + } else { + return 75; + } + } + + public static int getCurIntensity() { + File f = new File(LEVEL_PATH); + + if(f.exists()) { + return Integer.parseInt(FileUtils.readOneLine(LEVEL_PATH)); + } else { + return 0; + } + } + + public static int getDefaultIntensity() { + File f = new File(LEVEL_DEFAULT_PATH); + + if(f.exists()) { + return Integer.parseInt(FileUtils.readOneLine(LEVEL_DEFAULT_PATH)); + } else { + return 50; + } + } + + public static boolean setIntensity(int intensity) { + File f = new File(LEVEL_PATH); + + if(f.exists()) { + return FileUtils.writeLine(LEVEL_PATH, String.valueOf(intensity)); + } else { + return false; + } + } +} |