/* * Copyright (c) 2009-2012, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of The Linux Foundation nor * the names of its contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package qcom.fmradio; class FmReceiverJNI { /** * General success */ static final int FM_JNI_SUCCESS = 0; /** * General failure */ static final int FM_JNI_FAILURE = -1; /** * native method: Open device * @return The file descriptor of the device * */ static native int acquireFdNative(String path); /** * native method: * @param fd * @param control * @param field * @return */ static native int audioControlNative(int fd, int control, int field); /** * native method: cancels search * @param fd file descriptor of device * @return May return * {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int cancelSearchNative(int fd); /** * native method: release control of device * @param fd file descriptor of device * @return May return * {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int closeFdNative(int fd); /** * native method: get frequency * @param fd file descriptor of device * @return Returns frequency in int form */ static native int getFreqNative(int fd); /** * native method: set frequency * @param fd file descriptor of device * @param freq freq to be set in int form * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} * */ static native int setFreqNative(int fd, int freq); /** * native method: get v4l2 control * @param fd file descriptor of device * @param id v4l2 id to be retrieved * @return Returns current value of the * v4l2 control */ static native int getControlNative (int fd, int id); /** * native method: set v4l2 control * @param fd file descriptor of device * @param id v4l2 control to be set * @param value value to be set * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setControlNative (int fd, int id, int value); /** * native method: start search * @param fd file descriptor of device * @param dir search direction * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int startSearchNative (int fd, int dir); /** * native method: get buffer * @param fd file descriptor of device * @param buff[] buffer * @param index index of the buffer to be retrieved * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int getBufferNative (int fd, byte buff[], int index); /** * native method: get RSSI value of the * received signal * @param fd file descriptor of device * @return Returns signal strength in int form * Signal value range from -120 to 10 */ static native int getRSSINative (int fd); /** * native method: set FM band * @param fd file descriptor of device * @param low lower band * @param high higher band * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setBandNative (int fd, int low, int high); /** * native method: get lower band * @param fd file descriptor of device * @return Returns lower band in int form */ static native int getLowerBandNative (int fd); /** * native method: get upper band * @param fd file descriptor of device * @return Returns upper band in int form */ static native int getUpperBandNative (int fd); /** * native method: force Mono/Stereo mode * @param fd file descriptor of device * @param val force mono/stereo indicator * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setMonoStereoNative (int fd, int val); /** * native method: get Raw RDS data * @param fd file descriptor of device * @param buff[] buffer * @param count number of bytes to be read * @return Returns number of bytes read */ static native int getRawRdsNative (int fd, byte buff[], int count); /** * native method: set v4l2 control * @param fd file descriptor of device * @param id v4l2 control to be set * @param value value to be set * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setNotchFilterNative(int fd, int id, boolean value); /** * native method: enable/disable Analog Mode */ static native int setAnalogModeNative(boolean value); /** * native method: Starts the RT transmission * @param fd file descriptor of device * @param buff[] buffer * @param count number of bytes to be read * @return Returns number of bytes read */ static native int startRTNative(int fd, String str, int count); /** * native method: Stops the RT transmission * @param fd file descriptor of device * @param buff[] buffer * @param count number of bytes to be read * @return Returns number of bytes read */ static native int stopRTNative(int fd); /** * native method: Starts the PS transmission * @param fd file descriptor of device * @param buff[] buffer * @param count number of bytes to be read * @return Returns number of bytes read */ static native int startPSNative(int fd, String str, int count); /** * native method: Stops the PS transmission * @param fd file descriptor of device * @param buff[] buffer * @param count number of bytes to be read */ static native int stopPSNative(int fd); /** * native method: Sets the Programme type for transmission * @param fd file descriptor of device * @param pty program type to be transmited * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setPTYNative (int fd, int pty); /** * native method: Sets the Programme Id for transmission * @param fd file descriptor of device * @param pty program Id to be transmited * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setPINative (int fd, int pi); /** * native method: Sets the repeat count for Programme service * transmission. * @param fd file descriptor of device * @param repeatcount number of times PS string to be transmited * repeatedly. * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setPSRepeatCountNative(int fd, int repeatCount); /** * native method: Sets the power level for the tramsmitter * transmission. * @param fd file descriptor of device * @param powLevel is the level at which transmitter operates. * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setTxPowerLevelNative(int fd, int powLevel); /** * native method: Sets the calibration * @param fd file descriptor of device * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int SetCalibrationNative(int fd); /** * native method: Configures the spur table * @param fd file descriptor of device * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int configureSpurTable(int fd); /** * native method: Configures the new spur table * @param fd file descriptor of device * @return {@link #FM_JNI_SUCCESS} * {@link #FM_JNI_FAILURE} */ static native int setSpurDataNative(int fd, short buff[], int len); static native void configurePerformanceParams(int fd); }