blob: da8cbcec6e2f747bb7125ef54a5400a8b4b28a34 [file] [log] [blame]
Benson Huanga8b6afc2014-11-20 15:42:26 +08001/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.fmradio;
18
19/**
20 * This class define FM native interface, will description FM native interface
21 */
22public class FmNative {
23 static {
24 System.loadLibrary("fmjni");
25 }
26
27 /**
28 * Open FM device, call before power up
29 *
30 * @return (true,success; false, failed)
31 */
32 static native boolean openDev();
33
34 /**
35 * Close FM device, call after power down
36 *
37 * @return (true, success; false, failed)
38 */
39 static native boolean closeDev();
40
41 /**
42 * power up FM with frequency use long antenna
43 *
44 * @param frequency frequency(50KHZ, 87.55; 100KHZ, 87.5)
45 *
46 * @return (true, success; false, failed)
47 */
48 static native boolean powerUp(float frequency);
49
50 /**
51 * Power down FM
52 *
53 * @param type (0, FMRadio; 1, FMTransimitter)
54 *
55 * @return (true, success; false, failed)
56 */
57 static native boolean powerDown(int type);
58
59 /**
60 * tune to frequency
61 *
62 * @param frequency frequency(50KHZ, 87.55; 100KHZ, 87.5)
63 *
64 * @return (true, success; false, failed)
65 */
66 static native boolean tune(float frequency);
67
68 /**
69 * seek with frequency in direction
70 *
71 * @param frequency frequency(50KHZ, 87.55; 100KHZ, 87.5)
72 * @param isUp (true, next station; false previous station)
73 *
74 * @return frequency(float)
75 */
76 static native float seek(float frequency, boolean isUp);
77
78 /**
79 * Auto scan(from 87.50-108.00)
80 *
81 * @return The scan station array(short)
82 */
83 static native short[] autoScan();
84
85 /**
86 * Stop scan, also can stop seek, other native when scan should call stop
87 * scan first, else will execute wait auto scan finish
88 *
89 * @return (true, can stop scan process; false, can't stop scan process)
90 */
91 static native boolean stopScan();
92
93 /**
94 * Open or close rds fuction
95 *
96 * @param rdson The rdson (true, open; false, close)
97 *
98 * @return rdsset
99 */
100 static native int setRds(boolean rdson);
101
102 /**
103 * Read rds events
104 *
105 * @return rds event type
106 */
107 static native short readRds();
108
109 /**
110 * Get program service(program name)
111 *
112 * @return The program name
113 */
114 static native byte[] getPs();
115
116 /**
117 * Get radio text, RDS standard does not support Chinese character
118 *
119 * @return The LRT (Last Radio Text) bytes
120 */
121 static native byte[] getLrText();
122
123 /**
124 * Active alternative frequencies
125 *
126 * @return The frequency(float)
127 */
128 static native short activeAf();
129
130 /**
131 * Mute or unmute FM voice
132 *
133 * @param mute (true, mute; false, unmute)
134 *
135 * @return (true, success; false, failed)
136 */
137 static native int setMute(boolean mute);
138
139 /**
140 * Inquiry if RDS is support in driver
141 *
142 * @return (1, support; 0, NOT support; -1, error)
143 */
144 static native int isRdsSupport();
145
146 /**
147 * Switch antenna
148 *
149 * @param antenna antenna (0, long antenna, 1 short antenna)
150 *
151 * @return (0, success; 1 failed; 2 not support)
152 */
153 static native int switchAntenna(int antenna);
154}