13a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood/* 23a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * Copyright (C) 2009 The Android Open Source Project 33a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * 43a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 53a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * you may not use this file except in compliance with the License. 63a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * You may obtain a copy of the License at 73a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * 83a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 93a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * 103a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * Unless required by applicable law or agreed to in writing, software 113a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 123a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * See the License for the specific language governing permissions and 143a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood * limitations under the License. 153a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood */ 163a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 173a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#define LOG_TAG "VibratorService" 183a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 193a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#include "jni.h" 203a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#include "JNIHelp.h" 213a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#include "android_runtime/AndroidRuntime.h" 223a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 233a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#include <utils/misc.h> 243a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#include <utils/Log.h> 253a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#include <hardware_legacy/vibrator.h> 263a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 273a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood#include <stdio.h> 283a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 293a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodnamespace android 303a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood{ 313a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 32ea9020e0854427d47e566a1394df6749f3265410Dianne Hackbornstatic jboolean vibratorExists(JNIEnv *env, jobject clazz) 33ea9020e0854427d47e566a1394df6749f3265410Dianne Hackborn{ 34ea9020e0854427d47e566a1394df6749f3265410Dianne Hackborn return vibrator_exists() > 0 ? JNI_TRUE : JNI_FALSE; 35ea9020e0854427d47e566a1394df6749f3265410Dianne Hackborn} 36ea9020e0854427d47e566a1394df6749f3265410Dianne Hackborn 373a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodstatic void vibratorOn(JNIEnv *env, jobject clazz, jlong timeout_ms) 383a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood{ 396215d3ff4b5dfa52a5d8b9a42e343051f31066a5Steve Block // ALOGI("vibratorOn\n"); 403a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood vibrator_on(timeout_ms); 413a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood} 423a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 433a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodstatic void vibratorOff(JNIEnv *env, jobject clazz) 443a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood{ 456215d3ff4b5dfa52a5d8b9a42e343051f31066a5Steve Block // ALOGI("vibratorOff\n"); 463a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood vibrator_off(); 473a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood} 483a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 493a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodstatic JNINativeMethod method_table[] = { 50ea9020e0854427d47e566a1394df6749f3265410Dianne Hackborn { "vibratorExists", "()Z", (void*)vibratorExists }, 513a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood { "vibratorOn", "(J)V", (void*)vibratorOn }, 523a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood { "vibratorOff", "()V", (void*)vibratorOff } 533a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood}; 543a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 553a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodint register_android_server_VibratorService(JNIEnv *env) 563a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood{ 573a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood return jniRegisterNativeMethods(env, "com/android/server/VibratorService", 583a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood method_table, NELEM(method_table)); 593a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood} 603a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood 613a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood}; 62