michael@0: /* michael@0: * michael@0: * Licensed to the Apache Software Foundation (ASF) under one michael@0: * or more contributor license agreements. See the NOTICE file michael@0: * distributed with this work for additional information michael@0: * regarding copyright ownership. The ASF licenses this file michael@0: * to you under the Apache License, Version 2.0 (the michael@0: * "License"); you may not use this file except in compliance michael@0: * with the License. You may obtain a copy of the License at michael@0: * michael@0: * http://www.apache.org/licenses/LICENSE-2.0 michael@0: * michael@0: * Unless required by applicable law or agreed to in writing, michael@0: * software distributed under the License is distributed on an michael@0: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY michael@0: * KIND, either express or implied. See the License for the michael@0: * specific language governing permissions and limitations michael@0: * under the License. michael@0: * michael@0: */ michael@0: michael@0: var vibration; michael@0: michael@0: module.exports = { michael@0: vibrate: function (success, fail, args, env) { michael@0: var result = new PluginResult(args, env), michael@0: duration = args[0], michael@0: response = vibration.getInstance().vibrate(duration); michael@0: result.ok(response, false); michael@0: } michael@0: }; michael@0: michael@0: /////////////////////////////////////////////////////////////////// michael@0: // JavaScript wrapper for JNEXT plugin michael@0: /////////////////////////////////////////////////////////////////// michael@0: michael@0: JNEXT.Vibration = function () { michael@0: var self = this, michael@0: hasInstance = false; michael@0: michael@0: self.vibrate = function (duration) { michael@0: //This is how Javascript calls into native michael@0: return JNEXT.invoke(self.m_id, "vibrate " + duration); michael@0: }; michael@0: michael@0: self.init = function () { michael@0: //Checks that the jnext library is present and loads it michael@0: if (!JNEXT.require("libVibration")) { michael@0: return false; michael@0: } michael@0: michael@0: //Creates the native object that this interface will call michael@0: self.m_id = JNEXT.createObject("libVibration.Vibration"); michael@0: michael@0: if (self.m_id === "") { michael@0: return false; michael@0: } michael@0: michael@0: //Registers for the JNEXT event loop michael@0: JNEXT.registerEvents(self); michael@0: }; michael@0: michael@0: self.m_id = ""; michael@0: michael@0: //Used by JNEXT library to get the ID michael@0: self.getId = function () { michael@0: return self.m_id; michael@0: }; michael@0: michael@0: //Not truly required but useful for instance management michael@0: self.getInstance = function () { michael@0: if (!hasInstance) { michael@0: self.init(); michael@0: hasInstance = true; michael@0: } michael@0: return self; michael@0: }; michael@0: }; michael@0: michael@0: vibration = new JNEXT.Vibration();