13ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru /* 23ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 33ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Copyright 2001-2011 Texas Instruments, Inc. - http://www.ti.com/ 43ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 53ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License"); 63ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * you may not use this file except in compliance with the License. 73ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * You may obtain a copy of the License at 83ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 93ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * http://www.apache.org/licenses/LICENSE-2.0 103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software 123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS, 133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * See the License for the specific language governing permissions and 153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * limitations under the License. 163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru */ 173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#ifndef JFMTXNATIVE_H_ 203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define JFMTXNATIVE_H_ 213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruextern "C" { 233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#include "jni.h" 243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru} 253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_SUCCESS 0 293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_FAILED 1 303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_PENDING 2 313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_ERR_THREAD_CREATION_FAILED 4 323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define DEFAULT_RADIO_DEVICE "/dev/radio0" 353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FMTX_RDS_AF_SYSFS_ENTRY "/sys/class/video4linux/radio0/fmtx_rds_af" 373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define DEFAULT_FM_ALSA_CARD "hw:CARD=0" 393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define CTL_INDEX_0 0 413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_MODE_SWITCH_CTL_NAME "Mode Switch" 433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_MODE_OFF 0 443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_MODE_TX 1 453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_MODE_TX 2 463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_BAND_SWITCH_CTL_NAME "Region Switch" 483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_BAND_EUROPE_US 0 493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_BAND_JAPAN 1 503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_MUTE_ON 0 523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_MUTE_OFF 1 533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_MUTE_ATTENUATE 2 543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_RF_DEPENDENT_MUTE_CTL_NAME "RF Dependent Mute" 563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_GET_RSSI_LVL_CTL_NAME "RSSI Level" 573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_RSSI_THRESHOLD_LVL_CTL_NAME "RSSI Threshold" 583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_STEREO_MONO_CTL_NAME "Stereo/Mono" 593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_DEEMPHASIS_CTL_NAME "De-emphasis Filter" 603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_RDS_SWITCH_CTL_NAME "RDS Switch" 613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_RDS_DISABLE 0 623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_RDS_ENABLE 1 633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_RDS_OPMODE_CTL_NAME "RDS Operation Mode" 643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_AF_SWITCH_CTL_NAME "AF Switch" 653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querutypedef unsigned long FMC_U32; 693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querutypedef unsigned int FMC_UINT; 703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querutypedef unsigned char FMC_U8; 713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*------------------------------------------------------------------------------- 733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * FmcRdsRepertoire Type 743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * RDS Repertoire used for text data encoding and decoding 763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru */ 773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querutypedef FMC_UINT FmcRdsRepertoire; 783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FMC_RDS_REPERTOIRE_G0_CODE_TABLE ((FmcRdsRepertoire)0) 803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FMC_RDS_REPERTOIRE_G1_CODE_TABLE ((FmcRdsRepertoire)1) 813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FMC_RDS_REPERTOIRE_G2_CODE_TABLE ((FmcRdsRepertoire)2) 823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define RDS_BIT_0_TO_BIT_3 0x0f 853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define RDS_BIT_4_TO_BIT_7 0xf0 863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/******************************************************************************** 893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Events sent to the application 913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *******************************************************************************/ 933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*------------------------------------------------------------------------------- 953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * FmTxEventType structure 963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru */ 983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querutypedef FMC_UINT FmTxEventType; 993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querutypedef FMC_UINT FmTxStatus; 1003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*------------------------------------------------------------------------------- 1033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * FmTxCmdType structure 1043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 1053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru */ 1063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querutypedef FMC_UINT FmTxCmdType; 1073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_ENABLE ((FmTxCmdType)0) /* Enable command */ 1093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_DISABLE ((FmTxCmdType)1) /* Disable command */ 1103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_BAND ((FmTxCmdType)2) /* Set Band command */ 1113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_BAND ((FmTxCmdType)3) /* Get Band command */ 1123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_MONO_STEREO_MODE ((FmTxCmdType)4) /* Set Mono/Stereo command */ 1133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_MONO_STEREO_MODE ((FmTxCmdType)5) /* Get Mono/Stereo command */ 1143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_MUTE_MODE ((FmTxCmdType)6) /* Set Mute mode command */ 1153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_MUTE_MODE ((FmTxCmdType)7) /* Get Mute mode command */ 1163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RF_DEPENDENT_MUTE_MODE ((FmTxCmdType)8) /* Set RF-Dependent Mute Mode command */ 1173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_RF_DEPENDENT_MUTE_MODE ((FmTxCmdType)9) /* Get RF-Dependent Mute Mode command */ 1183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RSSI_THRESHOLD ((FmTxCmdType)10) /* Set RSSI Threshold command */ 1193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_RSSI_THRESHOLD ((FmTxCmdType)11) /* Get RSSI Threshold command */ 1203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_DEEMPHASIS_FILTER ((FmTxCmdType)12) /* Set De-Emphassi Filter command */ 1213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_DEEMPHASIS_FILTER ((FmTxCmdType)13) /* Get De-Emphassi Filter command */ 1223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_VOLUME ((FmTxCmdType)14) /* Set Volume command */ 1233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_VOLUME ((FmTxCmdType)15) /* Get Volume command */ 1243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_TUNE ((FmTxCmdType)16) /* Tune command */ 1253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_TUNED_FREQUENCY ((FmTxCmdType)17) /* Get Tuned Frequency command */ 1263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SEEK ((FmTxCmdType)18) /* Seek command */ 1273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_STOP_SEEK ((FmTxCmdType)19) /* Stop Seek command */ 1283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_RSSI ((FmTxCmdType)20) /* Get RSSI command */ 1293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_ENABLE_RDS ((FmTxCmdType)21) /* Enable RDS command */ 1303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_DISABLE_RDS ((FmTxCmdType)22) /* Disable RDS command */ 1313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RDS_SYSTEM ((FmTxCmdType)23) /* Set RDS System command */ 1323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_RDS_SYSTEM ((FmTxCmdType)24) /* Get RDS System command */ 1333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RDS_GROUP_MASK ((FmTxCmdType)25) /* Set RDS groups to be recieved */ 1343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_RDS_GROUP_MASK ((FmTxCmdType)26) /* Get RDS groups to be recieved*/ 1353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RDS_AF_SWITCH_MODE ((FmTxCmdType)27) /* Set AF Switch Mode command */ 1363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_RDS_AF_SWITCH_MODE ((FmTxCmdType)28) /* Get AF Switch Mode command */ 1373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_ENABLE_AUDIO ((FmTxCmdType)29) /* Set Audio Routing command */ 1383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_DISABLE_AUDIO ((FmTxCmdType)30) /* Get Audio Routing command */ 1393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_DESTROY ((FmTxCmdType)31) /* Destroy command */ 1403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_CHANGE_AUDIO_TARGET ((FmTxCmdType)32) /* Change the audio target*/ 1413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_CHANGE_DIGITAL_AUDIO_CONFIGURATION ((FmTxCmdType)33) /* Change the digital target configuration*/ 1423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_INIT_ASYNC ((FmTxCmdType)34) /* */ 1433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_INIT ((FmTxCmdType)35) /* */ 1443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_DEINIT ((FmTxCmdType)36) /* */ 1453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_CHANNEL_SPACING ((FmTxCmdType)37) /* */ 1463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_CHANNEL_SPACING ((FmTxCmdType)38) /* */ 1473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_FW_VERSION ((FmTxCmdType)39) /*Gets the FW version */ 1483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_IS_CHANNEL_VALID ((FmTxCmdType)40) /*Verify that the tuned channel is valid*/ 1493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_COMPLETE_SCAN ((FmTxCmdType)41) /*Perfrom Complete Scan on the selected Band*/ 1503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_COMPLETE_SCAN_PROGRESS ((FmTxCmdType)42) 1513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_STOP_COMPLETE_SCAN ((FmTxCmdType)43) 1523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_START_TRANSMISSION ((FmTxCmdType)44) 1533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_STOP_TRANSMISSION ((FmTxCmdType)45) 1543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RDS_TEXT_RT_MSG ((FmTxCmdType)46) 1553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RDS_TEXT_PS_MSG ((FmTxCmdType)47) 1563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RDS_PTY_CODE ((FmTxCmdType)48) 1573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_GET_RDS_PTY_CODE ((FmTxCmdType)49) 1583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_SET_RDS_AF_CODE ((FmTxCmdType)50) 1593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_LAST_API_CMD (FM_TX_CMD_SET_RDS_AF_CODE) 1613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define FM_TX_CMD_NONE 0xFFFFFFFF 1623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querunamespace android { 1653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruextern JNIEnv *getJBtlEnv(); 1673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruextern void setJBtlEnv(JNIEnv *env); 1683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru} 1703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/* Following macros and structs are re-declared since android 1723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru file system has old videodev2.h but kfmapp needs new K35 videodev2.h 1733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru declarations, So need to remove these definitions once android headers 1743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru move to K35 plus */ 1753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator control class */ 1773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/* FM Modulator class control IDs */ 1783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) 1793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) 1803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112) 1823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1) 1843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2) 1853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3) 1863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5) 1873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6) 1883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113) 1903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114) 1913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define V4L2_TUNER_SUB_RDS 0x0010 1923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#undef VIDIOC_S_MODULATOR 1953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#define VIDIOC_S_MODULATOR 1078220343 1963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querustruct v4l2_ext_control_kfmapp { 1983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __u32 id; 1993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __u32 size; 2003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __u32 reserved2[1]; 2013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru union { 2023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __s32 value; 2033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __s64 value64; 2043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru char *string; 2053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru }; 2063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru} __attribute__ ((packed)); 2073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 2083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querustruct v4l2_ext_controls_kfmapp { 2093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __u32 ctrl_class; 2103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __u32 count; 2113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __u32 error_idx; 2123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru __u32 reserved[2]; 2133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru struct v4l2_ext_control_kfmapp *controls; 2143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}; 2153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru#endif /* JFMTXNATIVE_H_ */ 216