1/*
2 *
3 * Copyright 2001-2011 Texas Instruments, Inc. - http://www.ti.com/
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *    http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package com.ti.jfm.core;
19
20import java.util.HashMap; //import com.ti.jbtl.core.*;
21import com.ti.jfm.core.*;
22
23/** Class for providing connection with JFmTxNative.cpp module */
24
25public class JFmTx {
26
27    private static final String TAG = "JFmTx";
28
29    private ICallback callback = null;
30
31    private static JFmContext txContext;
32
33    /** Hash table to store JFmContext handles based upon JFmTx. */
34    private static HashMap<JFmContext, JFmTx> mTxContextsTable = new HashMap<JFmContext, JFmTx>();
35
36    /** Events path */
37
38static {
39        try {
40          //  JFmLog.i(TAG, "Loading libfmradio.so");
41          //  System.loadLibrary("fmradio");
42            nativeJFmTx_ClassInitNative();
43        }
44        catch (UnsatisfiedLinkError ule) {
45            JFmLog.e(TAG, "WARNING: Could not load libfmradio.so");
46        }
47        catch (Exception e) {
48            JFmLog.e("JFmRx", "Exception during NativeJFmRx_ClassInitNative ("
49                    + e.toString() + ")");
50        }
51    }
52
53
54    public interface ICallback {
55
56       /* Fm TX call backs */
57       void fmTxCmdEnable(JFmTx context, JFmTxStatus status, long value);
58
59       void fmTxCmdDisable(JFmTx context, JFmTxStatus status, long value);
60
61       void fmTxCmdDestroy(JFmTx context, JFmTxStatus status, long value);
62
63       void fmTxCmdTune(JFmTx context, JFmTxStatus status, long value);
64
65       void fmTxCmdGetTunedFrequency(JFmTx context, JFmTxStatus status, long value);
66
67       void fmTxCmdStartTransmission(JFmTx context, JFmTxStatus status/*
68                                                          * ,
69                                                          * JFmCcmVacUnavailResourceList
70                                                          * ccmVacUnavailResourceList
71                                                          */);
72
73       void fmTxCmdStopTransmission(JFmTx context, JFmTxStatus status, long value);
74
75       void fmTxCmdSetPowerLevel(JFmTx context, JFmTxStatus status, long value);
76
77       void fmTxCmdGetPowerLevel(JFmTx context, JFmTxStatus status, long value);
78
79       void fmTxCmdEnableRds(JFmTx context, JFmTxStatus status, long value);
80
81       void fmTxCmdDisableRds(JFmTx context, JFmTxStatus status, long value);
82
83       // void fmTxCmdDone(JFmTx context, JFmTxStatus status, long value);
84       void fmTxCmdSetRdsTransmissionMode(JFmTx context, JFmTxStatus status, long value);
85
86       void fmTxCmdGetRdsTransmissionMode(JFmTx context, JFmTxStatus status, long value);
87
88       void fmTxCmdSetMonoStereoMode(JFmTx context, JFmTxStatus status, long value);
89
90       void fmTxCmdGetMonoStereoMode(JFmTx context, JFmTxStatus status, long value);
91
92       void fmTxCmdSetPreEmphasisFilter(JFmTx context, JFmTxStatus status, long value);
93
94       void fmTxCmdGetPreEmphasisFilter(JFmTx context, JFmTxStatus status, long value);
95
96       void fmTxCmdSetMuteMode(JFmTx context, JFmTxStatus status, long value);
97
98       void fmTxCmdGetMuteMode(JFmTx context, JFmTxStatus status, long value);
99
100       void fmTxCmdSetRdsAfCode(JFmTx context, JFmTxStatus status, long value);
101
102       void fmTxCmdGetRdsAfCode(JFmTx context, JFmTxStatus status, long value);
103
104       void fmTxCmdSetRdsPiCode(JFmTx context, JFmTxStatus status, long value);
105
106       void fmTxCmdGetRdsPiCode(JFmTx context, JFmTxStatus status, long value);
107
108       void fmTxCmdSetRdsPtyCode(JFmTx context, JFmTxStatus status, long value);
109
110       void fmTxCmdGetRdsPtyCode(JFmTx context, JFmTxStatus status, long value);
111
112       void fmTxCmdSetRdsTextRepertoire(JFmTx context, JFmTxStatus status, long value);
113
114       void fmTxCmdGetRdsTextRepertoire(JFmTx context, JFmTxStatus status, long value);
115
116       void fmTxCmdSetRdsPsDisplayMode(JFmTx context, JFmTxStatus status, long value);
117
118       void fmTxCmdGetRdsPsDisplayMode(JFmTx context, JFmTxStatus status, long value);
119
120       void fmTxCmdSetRdsPsScrollSpeed(JFmTx context, JFmTxStatus status, long value);
121
122       // void fmTxCmdGetRdsPsScrollSpeed(JFmTx context, JFmTxStatus status,
123       // long value);
124       void fmTxCmdSetRdsTextRtMsg(JFmTx context, JFmTxStatus status, int msgType, int msgLen,
125             byte[] msg);
126
127       void fmTxCmdGetRdsTextRtMsg(JFmTx context, JFmTxStatus status, int msgType, int msgLen,
128             byte[] msg);
129
130       void fmTxCmdSetRdsTransmittedMask(JFmTx context, JFmTxStatus status, long value);
131
132       void fmTxCmdGetRdsTransmittedMask(JFmTx context, JFmTxStatus status, long value);
133
134       void fmTxCmdSetRdsTextPsMsg(JFmTx context, JFmTxStatus status, int msgLen, byte[] msg);
135
136       void fmTxCmdGetRdsTextPsMsg(JFmTx context, JFmTxStatus status, int msgLen, byte[] msg);
137
138       void fmTxCmdSetRdsTrafficCodes(JFmTx context, JFmTxStatus status, int taCode, int tpCode);
139
140       void fmTxCmdGetRdsTrafficCodes(JFmTx context, JFmTxStatus status, int taCode, int tpCode);
141
142       void fmTxCmdSetRdsMusicSpeechFlag(JFmTx context, JFmTxStatus status, long value);
143
144       void fmTxCmdGetRdsMusicSpeechFlag(JFmTx context, JFmTxStatus status, long value);
145
146       // void fmTxCmdSetRdsECC(JFmTx context, JFmTxStatus status, long value);
147       void fmTxCmdChangeAudioSource(JFmTx context, JFmTxStatus status,
148             JFmCcmVacUnavailResourceList ccmVacUnavailResourceList);
149
150       // void fmTxCmdChangeDigitalSourceConfiguration(JFmTx context,
151       // JFmTxStatus status, JFmCcmVacUnavailResourceList
152       // ccmVacUnavailResourceList);
153       void fmTxCmdSetInterruptMask(JFmTx context, JFmTxStatus status, long value);
154
155       void fmTxCmdWriteRdsRawData(JFmTx contextValue, JFmTxStatus status, int len, byte[] msg);
156
157       void fmTxCmdReadRdsRawData(JFmTx contextValue, JFmTxStatus status, int len, byte[] msg);
158
159       void fmTxCmdSetRdsPsDisplaySpeed(JFmTx contextValue, JFmTxStatus status, long value);
160
161       void fmTxCmdGetRdsPsDisplaySpeed(JFmTx contextValue, JFmTxStatus status, long value);
162
163       void fmTxCmdSetRdsExtendedCountryCode(JFmTx contextValue, JFmTxStatus status, long value);
164
165       void fmTxCmdGetRdsExtendedCountryCode(JFmTx contextValue, JFmTxStatus status, long value);
166
167       void fmTxCmdChangeDigitalAudioConfiguration(JFmTx contextValue, JFmTxStatus status,
168             long value);
169
170       void fmTxCmdSetRdsPsDispalyMode(JFmTx contextValue, JFmTxStatus status, long value);
171
172       void fmTxCmdGetRdsPsDispalyMode(JFmTx contextValue, JFmTxStatus status, long value);
173
174    }
175
176    /**
177    * Datatype Classes
178    */
179
180    public static class JFmTxRdsPiCode {
181       private int value = 0;
182
183       public JFmTxRdsPiCode(int val) {
184          this.value = val;
185       }
186
187       public int getValue() {
188          return value;
189       }
190    }
191
192    public static enum JFmTxEcalResource implements IJFmEnum<Integer> {
193
194       CAL_RESOURCE_I2SH(0x00), CAL_RESOURCE_PCMH(0x01), CAL_RESOURCE_PCMT_1(0x02), CAL_RESOURCE_PCMT_2(
195             0x03), CAL_RESOURCE_PCMT_3(0x04), CAL_RESOURCE_PCMT_4(0x05), CAL_RESOURCE_PCMT_5(
196             0x06), CAL_RESOURCE_PCMT_6(0x07), CAL_RESOURCE_FM_ANALOG(0x08), CAL_RESOURCE_LAST_EL_RESOURCE(
197             0x08), CAL_RESOURCE_PCMIF(0x09), CAL_RESOURCE_FMIF(0x0A), CAL_RESOURCE_CORTEX(0x0B), CAL_RESOURCE_FM_CORE(
198             0x0C), CAL_RESOURCE_MAX_NUM(0x0D), CAL_RESOURCE_INVALID(0x0E);
199
200       private final int ecalResource;
201
202       private JFmTxEcalResource(int ecalResource) {
203          this.ecalResource = ecalResource;
204       }
205
206       public Integer getValue() {
207          return ecalResource;
208       }
209    }
210
211    public static enum JFmTxEcalOperation implements IJFmEnum<Integer> {
212
213       CAL_OPERATION_FM_TX(0x00), CAL_OPERATION_FM_RX(0x01), CAL_OPERATION_A3DP(0x02), CAL_OPERATION_BT_VOICE(
214             0x03), CAL_OPERATION_WBS(0x04), CAL_OPERATION_AWBS(0x05), CAL_OPERATION_FM_RX_OVER_SCO(
215             0x06), CAL_OPERATION_FM_RX_OVER_A3DP(0x07), CAL_OPERATION_MAX_NUM(0x08), CAL_OPERATION_INVALID(
216             0x09);
217
218       private final int ecalOperation;
219
220       private JFmTxEcalOperation(int ecalOperation) {
221          this.ecalOperation = ecalOperation;
222       }
223
224       public Integer getValue() {
225          return ecalOperation;
226       }
227    }
228
229    public static enum JFmTxEcalSampleFrequency implements IJFmEnum<Integer> {
230       CAL_SAMPLE_FREQ_8000(0x00), CAL_SAMPLE_FREQ_11025(0x01), CAL_SAMPLE_FREQ_12000(0x02), CAL_SAMPLE_FREQ_16000(
231             0x03), CAL_SAMPLE_FREQ_22050(0x04), CAL_SAMPLE_FREQ_24000(0x05), CAL_SAMPLE_FREQ_32000(
232             0x06), CAL_SAMPLE_FREQ_44100(0x07), CAL_SAMPLE_FREQ_48000(0x08);
233
234       private final int ecalSampleFreq;
235
236       private JFmTxEcalSampleFrequency(int ecalSampleFreq) {
237          this.ecalSampleFreq = ecalSampleFreq;
238       }
239
240       public Integer getValue() {
241          return ecalSampleFreq;
242       }
243    }
244
245    public static enum JFmTxRdsSystem implements IJFmEnum<Integer> {
246       FM_RDS_SYSTEM_RDS(0x00), FM_RDS_SYSTEM_RBDS(0x01);
247
248       private final int rdsSystem;
249
250       private JFmTxRdsSystem(int rdsSystem) {
251          this.rdsSystem = rdsSystem;
252       }
253
254       public Integer getValue() {
255          return rdsSystem;
256       }
257    }
258
259    public static enum JFmTxAudioRouteMask implements IJFmEnum<Integer> {
260
261       FMC_AUDIO_ROUTE_MASK_I2S(0x00000001), FMC_AUDIO_ROUTE_MASK_ANALOG(0x00000002), FMC_AUDIO_ROUTE_MASK_NONE(
262             0x00000000), FMC_AUDIO_ROUTE_MASK_ALL(0x00000003);
263
264       private final int audioRouteMask;
265
266       private JFmTxAudioRouteMask(int audioRouteMask) {
267          this.audioRouteMask = audioRouteMask;
268       }
269
270       public Integer getValue() {
271          return audioRouteMask;
272       }
273    }
274
275    public static class JFmTxPowerLevel {
276
277       private int jFmTxPowerLevel;
278
279       public JFmTxPowerLevel(int jFmTxPowerLevel) {
280          this.jFmTxPowerLevel = jFmTxPowerLevel;
281       }
282
283       public int getvalue() {
284          return jFmTxPowerLevel;
285       }
286
287       public void setvalue(int jFmTxPowerLevel) {
288          this.jFmTxPowerLevel = jFmTxPowerLevel;
289       }
290    }
291
292    public static class JFmTxFreq {
293
294       private long value = 0;
295
296       public JFmTxFreq(long value) {
297          this.value = value;
298       }
299
300       public long getValue() {
301          return value;
302       }
303
304       public void setValue(long value) {
305          this.value = value;
306       }
307    }
308
309    public static enum JFmTxMuteMode implements IJFmEnum<Integer> {
310       FMC_MUTE(0x00), FMC_NOT_MUTE(0x01), FMC_ATTENUATE(0x02);
311
312       private final int muteMode;
313
314       private JFmTxMuteMode(int muteMode) {
315          this.muteMode = muteMode;
316       }
317
318       public Integer getValue() {
319          return muteMode;
320       }
321    }
322
323    /*
324    * public static enum JFmTxAudioTargetMask implements IJFmEnum<Integer> {
325    * FM_RX_TARGET_MASK_INVALID(0), FM_RX_TARGET_MASK_I2SH(1),
326    * FM_RX_TARGET_MASK_PCMH(2), FM_RX_TARGET_MASK_FM_OVER_SCO(4),
327    * FM_RX_TARGET_MASK_FM_OVER_A3DP(8), FM_RX_TARGET_MASK_FM_ANALOG(16);
328    * private final int audioTargetMask; private JFmTxAudioTargetMask(int
329    * audioTargetMask) { this.audioTargetMask = audioTargetMask; } public
330    * Integer getValue() { return audioTargetMask; } } public static enum
331    * JFmTxRfDependentMuteMode implements IJFmEnum<Integer> {
332    * FM_RX_RF_DEPENDENT_MUTE_ON(0x01), FM_RX_RF_DEPENDENT_MUTE_OFF(0x00);
333    * private final int rfDependentMuteMode; private
334    * JFmTxRfDependentMuteMode(int rfDependentMuteMode) {
335    * this.rfDependentMuteMode = rfDependentMuteMode; } public Integer
336    * getValue() { return rfDependentMuteMode; } }
337    */
338
339    public static enum JFmTxMonoStereoMode implements IJFmEnum<Integer> {
340       FM_TX_MONO(0x00), FM_TX_STEREO(0x01);
341
342       private final int monoStereoModer;
343
344       private JFmTxMonoStereoMode(int monoStereoModer) {
345          this.monoStereoModer = monoStereoModer;
346       }
347
348       public Integer getValue() {
349          return monoStereoModer;
350       }
351    }
352
353    public static enum JFmTxEmphasisFilter implements IJFmEnum<Integer> {
354       FM_RX_EMPHASIS_FILTER_NONE(0x00), FM_RX_EMPHASIS_FILTER_50_USEC(0x01), FM_RX_EMPHASIS_FILTER_75_USEC(
355             0x02);
356
357       private final int emphasisFilter;
358
359       private JFmTxEmphasisFilter(int emphasisFilter) {
360          this.emphasisFilter = emphasisFilter;
361       }
362
363       public Integer getValue() {
364          return emphasisFilter;
365       }
366    }
367
368    public static enum JFmTxRepertoire implements IJFmEnum<Integer> {
369       FMC_RDS_REPERTOIRE_G0_CODE_TABLE(0x00), FMC_RDS_REPERTOIRE_G1_CODE_TABLE(0x01), FMC_RDS_REPERTOIRE_G2_CODE_TABLE(
370             0x02);
371
372       private final int repertoire;
373
374       private JFmTxRepertoire(int repertoire) {
375          this.repertoire = repertoire;
376       }
377
378       public Integer getValue() {
379          return repertoire;
380       }
381    }
382
383    public static enum JFmTxRdsTransmissionMode implements IJFmEnum<Integer> {
384       RDS_TRANSMISSION_MANUAL(0x00), RDS_TRANSMISSION_AUTOMATIC(0x01);
385
386       private final int rdsTransmissionMode;
387
388       private JFmTxRdsTransmissionMode(int rdsTransmissionMode) {
389          this.rdsTransmissionMode = rdsTransmissionMode;
390       }
391
392       public Integer getValue() {
393          return rdsTransmissionMode;
394       }
395    }
396
397    public static class JFmTxRdsPtyCode {
398
399       private int rdsPtyCode = 0;
400
401       public JFmTxRdsPtyCode(int rdsPtyCode) {
402          this.rdsPtyCode = rdsPtyCode;
403       }
404
405       public int getValue() {
406          return rdsPtyCode;
407       }
408
409       public void setValue(int rdsPtyCode) {
410          this.rdsPtyCode = rdsPtyCode;
411       }
412    }
413
414    public static enum JFmMusicSpeechFlag implements IJFmEnum<Integer> {
415       FMC_RDS_SPEECH(0x00), FMC_RDS_MUSIC(0x01);
416
417       private final int musicSpeechFlag;
418
419       private JFmMusicSpeechFlag(int musicSpeechFlag) {
420          this.musicSpeechFlag = musicSpeechFlag;
421       }
422
423       public Integer getValue() {
424          return musicSpeechFlag;
425       }
426    }
427
428    public static enum JFmTaCode implements IJFmEnum<Integer> {
429       FMC_RDS_TA_OFF(0x00), FMC_RDS_TA_ON(0x01);
430
431       private final int taCode;
432
433       private JFmTaCode(int taCode) {
434          this.taCode = taCode;
435       }
436
437       public Integer getValue() {
438          return taCode;
439       }
440    }
441
442    public static enum JFmTpCode implements IJFmEnum<Integer> {
443       FMC_RDS_TP_OFF(0x00), FMC_RDS_TP_ON(0x01);
444
445       private final int tpCode;
446
447       private JFmTpCode(int tpCode) {
448          this.tpCode = tpCode;
449       }
450
451       public Integer getValue() {
452          return tpCode;
453       }
454    }
455
456    public static enum JFmRdsRtMsgType implements IJFmEnum<Integer> {
457       FMC_RDS_TEXT_TYPE_PS(0x01), FMC_RDS_TEXT_TYPE_AUTO(0x02), FMC_RDS_TEXT_TYPE_A(0x03), FMC_RDS_TEXT_TYPE_B(
458             0x04);
459
460       private final int msgType;
461
462       private JFmRdsRtMsgType(int msgType) {
463          this.msgType = msgType;
464       }
465
466       public Integer getValue() {
467          return msgType;
468       }
469    }
470
471    public static enum JFmRdsPsDisplayMode implements IJFmEnum<Integer> {
472       FMC_RDS_PS_DISPLAY_MODE_STATIC(0x00), FMC_RDS_PS_DISPLAY_MODE_SCROLL(0x01);
473
474       private final int displayMode;
475
476       private JFmRdsPsDisplayMode(int displayMode) {
477          this.displayMode = displayMode;
478       }
479
480       public Integer getValue() {
481          return displayMode;
482       }
483    }
484
485    /*******************************************************************************
486    * Class Methods
487    *******************************************************************************/
488
489    /* Fm Tx */
490
491    public JFmTxStatus txCreate(ICallback callback) {
492       JFmTxStatus jFmTxStatus;
493
494       JFmLog.i(TAG, " nativeJFmTx_create()-Entered ");
495
496       try {
497
498          txContext = new JFmContext();
499
500          JFmLog.d(TAG, "Calling nativeJFmTx_Create");
501          int fmStatus = nativeJFmTx_Create(txContext);
502          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, fmStatus);
503          JFmLog.d(TAG, "After nativeJFmTx_Create, status = " + jFmTxStatus.toString()
504                + ", txContext = " + txContext.getValue());
505
506          /**
507           *Record the caller's callback and returned native context for
508           * nativeJFmTx_create
509           */
510
511          this.callback = callback;
512          mTxContextsTable.put(txContext, this);
513
514       } catch (Exception e) {
515          JFmLog.e(TAG, "create: exception during nativeJFmTx_create (" + e.toString() + ")");
516          jFmTxStatus = JFmTxStatus.FAILED;
517       }
518
519       return jFmTxStatus;
520    }
521
522    public JFmTxStatus txDestroy() {
523       JFmLog.i(TAG, "txDestroy: entered");
524       JFmTxStatus jFmTxStatus;
525
526       try {
527          int fmStatus = nativeJFmTx_Destroy(txContext.getValue());
528          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, fmStatus);
529          JFmLog.d(TAG, "After nativeJFmTx_Destroy, status = " + jFmTxStatus.toString());
530
531          /*
532           * Remove a pair of JFmContext-JFmTx related to the destroyed
533           * context from the HashMap
534           */
535
536          mTxContextsTable.remove(txContext);
537
538       } catch (Exception e) {
539          JFmLog.e(TAG, "txDestroy: exception during nativeJFmTx_Destroy (" + e.toString() + ")");
540          jFmTxStatus = JFmTxStatus.FAILED;
541       }
542
543       JFmLog.d(TAG, "txDestroy: exiting");
544
545       return jFmTxStatus;
546
547    }
548
549    public JFmTxStatus txEnable() {
550       JFmLog.d(TAG, "txEnable: entered");
551       JFmTxStatus jFmTxStatus;
552
553       try {
554          int fmStatus = nativeJFmTx_Enable(txContext.getValue());
555          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, fmStatus);
556          JFmLog.d(TAG, "After nativeJFmTx_Enable, status = " + jFmTxStatus.toString());
557       } catch (Exception e) {
558          JFmLog.e(TAG, "txEnable: exception during nativeJFmTx_Enable (" + e.toString() + ")");
559          jFmTxStatus = JFmTxStatus.FAILED;
560       }
561       JFmLog.d(TAG, "txEnable: exiting");
562
563       return jFmTxStatus;
564
565    }
566
567    public JFmTxStatus txDisable() {
568       JFmLog.d(TAG, "txDisable: entered");
569
570       JFmTxStatus jFmTxStatus;
571
572       try {
573          int status = nativeJFmTx_Disable(txContext.getValue());
574          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
575          JFmLog.d(TAG, "After nativeJFmTx_Disable, status = " + jFmTxStatus.toString());
576       } catch (Exception e) {
577          JFmLog.e(TAG, "txDisable: exception during nativeJFmTx_Disable (" + e.toString() + ")");
578          jFmTxStatus = JFmTxStatus.FAILED;
579       }
580       JFmLog.d(TAG, "txDisable: exiting");
581       return jFmTxStatus;
582    }
583
584    public JFmTxStatus txTune(JFmTxFreq jfmTxFreq) {
585
586       JFmLog.d(TAG, "txTune: entered");
587
588       JFmTxStatus jFmTxStatus;
589
590       try {
591
592          int status = nativeJFmTx_Tune(txContext.getValue(), jfmTxFreq.getValue());
593          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
594          JFmLog.d(TAG, "After nativeJFmTx_Tune, status = " + jFmTxStatus.toString());
595       } catch (Exception e) {
596          JFmLog.e(TAG, "txTune: exception during nativeJFmTx_Tune (" + e.toString() + ")");
597          jFmTxStatus = JFmTxStatus.FAILED;
598       }
599       JFmLog.d(TAG, "txTune: exiting");
600       return jFmTxStatus;
601    }
602
603    public JFmTxStatus txGetTunedFrequency() {
604
605       JFmLog.d(TAG, "txGetTunedFrequency: entered");
606
607       JFmTxStatus jFmTxStatus;
608
609       try {
610
611          int status = nativeJFmTx_GetTunedFrequency(txContext.getValue());
612          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
613          JFmLog.d(TAG, "After nativeJFmTx_Tune, status = " + jFmTxStatus.toString());
614       } catch (Exception e) {
615          JFmLog.e(TAG, "txGetTunedFrequency: exception during nativeJFmTx_Tune (" + e.toString()
616                + ")");
617          jFmTxStatus = JFmTxStatus.FAILED;
618       }
619       JFmLog.d(TAG, "txGetTunedFrequency: exiting");
620       return jFmTxStatus;
621    }
622
623    public JFmTxStatus txStartTransmission() {
624       JFmLog.d(TAG, "txStartTransmission: entered");
625
626       JFmTxStatus jFmTxStatus;
627
628       try {
629          int status = nativeJFmTx_StartTransmission(txContext.getValue());
630          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
631          JFmLog
632                .d(TAG, "After nativeJFmTx_StartTransmission, status = "
633                       + jFmTxStatus.toString());
634       } catch (Exception e) {
635          JFmLog.e(TAG, "disable: exception during nativeJFmTx_StartTransmission ("
636                + e.toString() + ")");
637          jFmTxStatus = JFmTxStatus.FAILED;
638       }
639       JFmLog.d(TAG, "txStartTransmission: exiting");
640       return jFmTxStatus;
641    }
642
643    public JFmTxStatus txStopTransmission() {
644       JFmLog.d(TAG, "txStopTransmission: entered");
645
646       JFmTxStatus jFmTxStatus;
647
648       try {
649          int status = nativeJFmTx_StopTransmission(txContext.getValue());
650          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
651          JFmLog.d(TAG, "After nativeJFmTx_StopTransmission, status = " + jFmTxStatus.toString());
652       } catch (Exception e) {
653          JFmLog.e(TAG, "txStopTransmission: exception during nativeJFmTx_StopTransmission ("
654                + e.toString() + ")");
655          jFmTxStatus = JFmTxStatus.FAILED;
656       }
657       JFmLog.d(TAG, "txStopTransmission: exiting");
658       return jFmTxStatus;
659    }
660
661    public JFmTxStatus txSetPowerLevel(JFmTxPowerLevel jFmTxPowerLevel) {
662       JFmLog.d(TAG, "txSetPowerLevel: entered");
663
664       JFmTxStatus jFmTxStatus;
665
666       try {
667          int status = nativeJFmTx_SetPowerLevel(txContext.getValue(), jFmTxPowerLevel.getvalue());
668          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
669          JFmLog.d(TAG, "After nativeJFmnativeJFmTx_SetPowerLevel, status = "
670                + jFmTxStatus.toString());
671       } catch (Exception e) {
672          JFmLog.e(TAG, "txSetPowerLevel: exception during nativeJFmTx_SetPowerLevel ("
673                + e.toString() + ")");
674          jFmTxStatus = JFmTxStatus.FAILED;
675       }
676       JFmLog.d(TAG, "txSetPowerLevel: exiting");
677       return jFmTxStatus;
678    }
679
680    public JFmTxStatus txGetPowerLevel() {
681       JFmLog.d(TAG, "txGetPowerLevel: entered");
682
683       JFmTxStatus jFmTxStatus;
684
685       try {
686          int status = nativeJFmTx_GetPowerLevel(txContext.getValue());
687          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
688          JFmLog.d(TAG, "After nativeJFmnativeJFmTx_GetPowerLevel, status = "
689                + jFmTxStatus.toString());
690       } catch (Exception e) {
691          JFmLog.e(TAG, "txGetPowerLevel: exception during nativeJFmnativeJFmTx_GetPowerLevel ("
692                + e.toString() + ")");
693          jFmTxStatus = JFmTxStatus.FAILED;
694       }
695       JFmLog.d(TAG, "txGetPowerLevel: exiting");
696       return jFmTxStatus;
697    }
698
699    public JFmTxStatus txEnableRds() {
700       JFmLog.d(TAG, "txEnableRds: entered");
701
702       JFmTxStatus jFmTxStatus;
703
704       try {
705          int status = nativeJFmTx_EnableRds(txContext.getValue());
706          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
707          JFmLog.d(TAG, "After nativeJFmTx_EnableRds, status = " + jFmTxStatus.toString());
708       } catch (Exception e) {
709          JFmLog.e(TAG, "txEnableRds: exception during nativeJFmTx_EnableRds (" + e.toString()
710                + ")");
711          jFmTxStatus = JFmTxStatus.FAILED;
712       }
713       JFmLog.d(TAG, "txEnableRds: exiting");
714       return jFmTxStatus;
715    }
716
717    public JFmTxStatus txDisableRds() {
718       JFmLog.d(TAG, "txDisableRds: entered");
719
720       JFmTxStatus jFmTxStatus;
721
722       try {
723          int status = nativeJFmTx_DisableRds(txContext.getValue());
724          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
725          JFmLog.d(TAG, "After nativeJFmTx_DisableRds, status = " + jFmTxStatus.toString());
726       } catch (Exception e) {
727          JFmLog.e(TAG, "txDisableRds: exception during nativeJFmTx_DisableRds (" + e.toString()
728                + ")");
729          jFmTxStatus = JFmTxStatus.FAILED;
730       }
731       JFmLog.d(TAG, "txDisableRds: exiting");
732       return jFmTxStatus;
733    }
734
735    public JFmTxStatus txSetRdsTransmissionMode(JFmTxRdsTransmissionMode mode) {
736       JFmLog.d(TAG, "txSetRdsTransmissionMode: entered");
737
738       JFmTxStatus jFmTxStatus;
739
740       try {
741          int status = nativeJFmTx_SetRdsTransmissionMode(txContext.getValue(), mode.getValue());
742          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
743          JFmLog.d(TAG, "After nativeJFmTx_SetRdsTransmissionMode, status = "
744                + jFmTxStatus.toString());
745       } catch (Exception e) {
746          JFmLog.e(TAG,
747                "txSetRdsTransmissionMode: exception during nativeJFmTx_SetRdsTransmissionMode ("
748                       + e.toString() + ")");
749          jFmTxStatus = JFmTxStatus.FAILED;
750       }
751       JFmLog.d(TAG, "txSetRdsTransmissionMode: exiting");
752       return jFmTxStatus;
753    }
754
755    public JFmTxStatus txGetRdsTransmissionMode() {
756       JFmLog.d(TAG, "txGetRdsTransmissionMode: entered");
757
758       JFmTxStatus jFmTxStatus;
759
760       try {
761          int status = nativeJFmTx_GetRdsTransmissionMode(txContext.getValue());
762          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
763          JFmLog.d(TAG, "After nativeJFmTx_GetRdsTransmissionMode, status = "
764                + jFmTxStatus.toString());
765       } catch (Exception e) {
766          JFmLog.e(TAG,
767                "txGetRdsTransmissionMode: exception during nativeJFmTx_GetRdsTransmissionMode ("
768                       + e.toString() + ")");
769          jFmTxStatus = JFmTxStatus.FAILED;
770       }
771       JFmLog.d(TAG, "txGetRdsTransmissionMode: exiting");
772       return jFmTxStatus;
773    }
774
775    public JFmTxStatus txSetRdsTextPsMsg(String psString, int length) {
776       JFmLog.d(TAG, "txSetRdsTextPsMsg: entered");
777       JFmLog.d(TAG, "txSetRdsTextPsMsg psString => " + psString + " length = " + length);
778       JFmTxStatus jFmTxStatus;
779
780       try {
781          int status = nativeJFmTx_SetRdsTextPsMsg(txContext.getValue(), psString, length);
782          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
783          JFmLog.d(TAG, "After nativeJFmTx_SetRdsTextPsMsg, status = " + jFmTxStatus.toString());
784       } catch (Exception e) {
785          JFmLog.e(TAG, "txSetRdsTextPsMsg: exception during nativeJFmTx_SetRdsTextPsMsg ("
786                + e.toString() + ")");
787          jFmTxStatus = JFmTxStatus.FAILED;
788       }
789       JFmLog.d(TAG, "txSetRdsTextPsMsg: exiting");
790       return jFmTxStatus;
791    }
792
793    public JFmTxStatus txGetRdsTextPsMsg() {
794       JFmLog.d(TAG, "txGetRdsTextPsMsg: entered");
795       JFmTxStatus jFmTxStatus;
796
797       try {
798          int status = nativeJFmTx_GetRdsTextPsMsg(txContext.getValue());
799          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
800          JFmLog.d(TAG, "After nativeJFmTx_GetRdsTextPsMsg, status = " + jFmTxStatus.toString());
801       } catch (Exception e) {
802          JFmLog.e(TAG, "txSetRdsTextPsMsg: exception during nativeJFmTx_GetRdsTextPsMsg ("
803                + e.toString() + ")");
804          jFmTxStatus = JFmTxStatus.FAILED;
805       }
806       JFmLog.d(TAG, "txGetRdsTextPsMsg: exiting");
807       return jFmTxStatus;
808    }
809
810    public JFmTxStatus txWriteRdsRawData(String msg, int length) {
811       JFmLog.d(TAG, "txWriteRdsRawData: entered");
812
813       JFmTxStatus jFmTxStatus;
814
815       try {
816          int status = nativeJFmTx_WriteRdsRawData(txContext.getValue(), msg, length);
817          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
818          JFmLog.d(TAG, "After nativeJFmTx_WriteRdsRawData, status = " + jFmTxStatus.toString());
819       } catch (Exception e) {
820          JFmLog.e(TAG, "txWriteRdsRawData: exception during nativeJFmTx_WriteRdsRawData ("
821                + e.toString() + ")");
822          jFmTxStatus = JFmTxStatus.FAILED;
823       }
824       JFmLog.d(TAG, "txWriteRdsRawData: exiting");
825       return jFmTxStatus;
826    }
827
828    public JFmTxStatus txChangeDigitalSourceConfiguration(int ecalSampleFreq) {
829       JFmLog.d(TAG, "txChangeDigitalSourceConfiguration: entered");
830
831       JFmTxStatus jFmTxStatus;
832
833       try {
834          int status = nativeJFmTx_ChangeDigitalSourceConfiguration(txContext.getValue(),
835                ecalSampleFreq);
836          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
837          JFmLog.d(TAG, "After nativeJFmTx_ChangeDigitalSourceConfiguration, status = "
838                + jFmTxStatus.toString());
839       } catch (Exception e) {
840          JFmLog
841                .e(
842                       TAG,
843                       "txChangeDigitalSourceConfiguration: exception during nativeJFmTx_ChangeDigitalSourceConfiguration ("
844                             + e.toString() + ")");
845          jFmTxStatus = JFmTxStatus.FAILED;
846       }
847       JFmLog.d(TAG, "txChangeDigitalSourceConfiguration: exiting");
848       return jFmTxStatus;
849    }
850
851    public JFmTxStatus txChangeAudioSource(JFmTxEcalResource audioSrc,
852          JFmTxEcalSampleFrequency ecalSampleFreq) {
853       JFmLog.d(TAG, "txChangeAudioSource: entered");
854
855       JFmTxStatus jFmTxStatus;
856
857       try {
858          int status = nativeJFmTx_ChangeAudioSource(txContext.getValue(), audioSrc.getValue(),
859                ecalSampleFreq.getValue());
860          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
861          JFmLog
862                .d(TAG, "After nativeJFmTx_ChangeAudioSource, status = "
863                       + jFmTxStatus.toString());
864       } catch (Exception e) {
865          JFmLog.e(TAG, "txChangeAudioSource: exception during nativeJFmTx_ChangeAudioSource ("
866                + e.toString() + ")");
867          jFmTxStatus = JFmTxStatus.FAILED;
868       }
869       JFmLog.d(TAG, "txChangeAudioSource: exiting");
870       return jFmTxStatus;
871    }
872
873    public JFmTxStatus txSetRdsECC(int ecc) {
874       JFmLog.d(TAG, "txSetRdsECC: entered");
875
876       JFmTxStatus jFmTxStatus;
877
878       try {
879          int status = nativeJFmTx_SetRdsExtendedCountryCode(txContext.getValue(), ecc);
880          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
881          JFmLog.d(TAG, "After nativeJFmTx_SetRdsECC, status = " + jFmTxStatus.toString());
882       } catch (Exception e) {
883          JFmLog.e(TAG, "txSetRdsECC: exception during nativeJFmTx_SetRdsECC (" + e.toString()
884                + ")");
885          jFmTxStatus = JFmTxStatus.FAILED;
886       }
887       JFmLog.d(TAG, "txSetRdsECC: exiting");
888       return jFmTxStatus;
889    }
890
891    public JFmTxStatus txGetRdsECC() {
892       JFmLog.d(TAG, "txGetRdsECC: entered");
893
894       JFmTxStatus jFmTxStatus;
895
896       try {
897          int status = nativeJFmTx_GetRdsExtendedCountryCode(txContext.getValue());
898          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
899          JFmLog.d(TAG, "After nativeJFmTx_GetRdsECC, status = " + jFmTxStatus.toString());
900       } catch (Exception e) {
901          JFmLog.e(TAG, "txGetRdsECC: exception during nativeJFmTx_GetRdsECC (" + e.toString()
902                + ")");
903          jFmTxStatus = JFmTxStatus.FAILED;
904       }
905       JFmLog.d(TAG, "txGetRdsECC: exiting");
906       return jFmTxStatus;
907    }
908
909    public JFmTxStatus txSetMonoStereoMode(JFmTxMonoStereoMode mode) {
910       JFmLog.d(TAG, "txSetMonoStereoMode: entered");
911
912       JFmTxStatus jFmTxStatus;
913
914       try {
915          int status = nativeJFmTx_SetMonoStereoMode(txContext.getValue(), mode.getValue());
916          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
917          JFmLog
918                .d(TAG, "After nativeJFmTx_SetMonoStereoMode, status = "
919                       + jFmTxStatus.toString());
920       } catch (Exception e) {
921          JFmLog.e(TAG, "txSetMonoStereoMode: exception during nativeJFmTx_SetMonoStereoMode ("
922                + e.toString() + ")");
923          jFmTxStatus = JFmTxStatus.FAILED;
924       }
925       JFmLog.d(TAG, "txSetMonoStereoMode: exiting");
926       return jFmTxStatus;
927    }
928
929    public JFmTxStatus txGetMonoStereoMode() {
930       JFmLog.d(TAG, "txGetMonoStereoMode: entered");
931
932       JFmTxStatus jFmTxStatus;
933
934       try {
935          int status = nativeJFmTx_GetMonoStereoMode(txContext.getValue());
936          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
937          JFmLog
938                .d(TAG, "After nativeJFmTx_GetMonoStereoMode, status = "
939                       + jFmTxStatus.toString());
940       } catch (Exception e) {
941          JFmLog.e(TAG, "txSetRdsECC: exception during nativeJFmTx_GetMonoStereoMode ("
942                + e.toString() + ")");
943          jFmTxStatus = JFmTxStatus.FAILED;
944       }
945       JFmLog.d(TAG, "txGetMonoStereoMode: exiting");
946       return jFmTxStatus;
947    }
948
949    public JFmTxStatus txSetPreEmphasisFilter(JFmTxEmphasisFilter preEmpFilter) {
950       JFmLog.d(TAG, "txSetPreEmphasisFilter: entered");
951
952       JFmTxStatus jFmTxStatus;
953
954       try {
955          int status = nativeJFmTx_SetPreEmphasisFilter(txContext.getValue(), preEmpFilter
956                .getValue());
957          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
958          JFmLog.d(TAG, "After nativeJFmTx_SetPreEmphasisFilter, status = "
959                + jFmTxStatus.toString());
960       } catch (Exception e) {
961          JFmLog.e(TAG,
962                "txSetPreEmphasisFilter: exception during nativeJFmTx_SetPreEmphasisFilter ("
963                       + e.toString() + ")");
964          jFmTxStatus = JFmTxStatus.FAILED;
965       }
966       JFmLog.d(TAG, "txSetPreEmphasisFilter: exiting");
967       return jFmTxStatus;
968    }
969
970    public JFmTxStatus txGetPreEmphasisFilter() {
971       JFmLog.d(TAG, "txGetPreEmphasisFilter: entered");
972
973       JFmTxStatus jFmTxStatus;
974
975       try {
976          int status = nativeJFmTx_GetPreEmphasisFilter(txContext.getValue());
977          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
978          JFmLog.d(TAG, "After nativeJFmTx_GetPreEmphasisFilter, status = "
979                + jFmTxStatus.toString());
980       } catch (Exception e) {
981          JFmLog.e(TAG,
982                "txSetPreEmphasisFilter: exception during nativeJFmTx_GetPreEmphasisFilter ("
983                       + e.toString() + ")");
984          jFmTxStatus = JFmTxStatus.FAILED;
985       }
986       JFmLog.d(TAG, "txGetPreEmphasisFilter: exiting");
987       return jFmTxStatus;
988    }
989
990    public JFmTxStatus txSetMuteMode(JFmTxMuteMode muteMode) {
991       JFmLog.d(TAG, "txSetMuteMode: entered");
992
993       JFmTxStatus jFmTxStatus;
994
995       try {
996          int status = nativeJFmTx_SetMuteMode(txContext.getValue(), muteMode.getValue());
997          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
998          JFmLog.d(TAG, "After nativeJFmTx_SetMuteMode, status = " + jFmTxStatus.toString());
999       } catch (Exception e) {
1000          JFmLog.e(TAG, "txSetMuteMode: exception during nativeJFmTx_SetMuteMode ("
1001                + e.toString() + ")");
1002          jFmTxStatus = JFmTxStatus.FAILED;
1003       }
1004       JFmLog.d(TAG, "txSetMuteMode: exiting");
1005       return jFmTxStatus;
1006    }
1007
1008    public JFmTxStatus txGetMuteMode() {
1009       JFmLog.d(TAG, "txGetMuteMode: entered");
1010
1011       JFmTxStatus jFmTxStatus;
1012
1013       try {
1014          int status = nativeJFmTx_GetMuteMode(txContext.getValue());
1015          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1016          JFmLog.d(TAG, "After nativeJFmTx_GetMuteMode, status = " + jFmTxStatus.toString());
1017       } catch (Exception e) {
1018          JFmLog.e(TAG, "txGetMuteMode: exception during nativeJFmTx_GetMuteMode ("
1019                + e.toString() + ")");
1020          jFmTxStatus = JFmTxStatus.FAILED;
1021       }
1022       JFmLog.d(TAG, "txGetMuteMode: exiting");
1023       return jFmTxStatus;
1024    }
1025
1026    public JFmTxStatus txSetRdsAfCode(int afCode) {
1027       JFmLog.d(TAG, "txSetRdsAfCode: entered");
1028
1029       JFmTxStatus jFmTxStatus;
1030
1031       try {
1032          int status = nativeJFmTx_SetRdsAfCode(txContext.getValue(), afCode);
1033          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1034          JFmLog.d(TAG, "After nativeJFmTx_SetRdsAfCode, status = " + jFmTxStatus.toString());
1035       } catch (Exception e) {
1036          JFmLog.e(TAG, "txSetRdsAfCode: exception during nativeJFmTx_SetRdsAfCode ("
1037                + e.toString() + ")");
1038          jFmTxStatus = JFmTxStatus.FAILED;
1039       }
1040       JFmLog.d(TAG, "txSetRdsAfCode: exiting");
1041       return jFmTxStatus;
1042    }
1043
1044    public JFmTxStatus txGetRdsAfCode() {
1045       JFmLog.d(TAG, "txGetRdsAfCode: entered");
1046
1047       JFmTxStatus jFmTxStatus;
1048
1049       try {
1050          int status = nativeJFmTx_GetRdsAfCode(txContext.getValue());
1051          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1052          JFmLog.d(TAG, "After nativeJFmTx_GetRdsAfCode, status = " + jFmTxStatus.toString());
1053       } catch (Exception e) {
1054          JFmLog.e(TAG, "txGetRdsAfCode: exception during nativeJFmTx_GetRdsAfCode ("
1055                + e.toString() + ")");
1056          jFmTxStatus = JFmTxStatus.FAILED;
1057       }
1058       JFmLog.d(TAG, "txGetRdsAfCode: exiting");
1059       return jFmTxStatus;
1060    }
1061
1062    public JFmTxStatus txSetRdsPiCode(JFmTxRdsPiCode piCode) {
1063       JFmLog.d(TAG, "txSetRdsPiCode: entered");
1064
1065       JFmTxStatus jFmTxStatus;
1066
1067       try {
1068          int status = nativeJFmTx_SetRdsPiCode(txContext.getValue(), piCode.getValue());
1069          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1070          JFmLog.d(TAG, "After nativeJFmTx_SetRdsPiCode, status = " + jFmTxStatus.toString());
1071       } catch (Exception e) {
1072          JFmLog.e(TAG, "txSetRdsPiCode: exception during nativeJFmTx_SetRdsPiCode ("
1073                + e.toString() + ")");
1074          jFmTxStatus = JFmTxStatus.FAILED;
1075       }
1076       JFmLog.d(TAG, "txSetRdsPiCode: exiting");
1077       return jFmTxStatus;
1078    }
1079
1080    public JFmTxStatus txGetRdsPiCode() {
1081       JFmLog.d(TAG, "txGetRdsPiCode: entered");
1082
1083       JFmTxStatus jFmTxStatus;
1084
1085       try {
1086          int status = nativeJFmTx_GetRdsPiCode(txContext.getValue());
1087          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1088          JFmLog.d(TAG, "After nativeJFmTx_SetRdsPiCode, status = " + jFmTxStatus.toString());
1089       } catch (Exception e) {
1090          JFmLog.e(TAG, "txGetRdsPiCode: exception during nativeJFmTx_SetRdsPiCode ("
1091                + e.toString() + ")");
1092          jFmTxStatus = JFmTxStatus.FAILED;
1093       }
1094       JFmLog.d(TAG, "txGetRdsPiCode: exiting");
1095       return jFmTxStatus;
1096    }
1097
1098    public JFmTxStatus txSetRdsPtyCode(JFmTxRdsPtyCode ptyCode) {
1099       JFmLog.d(TAG, "txSetRdsPtyCode: entered");
1100
1101       JFmTxStatus jFmTxStatus;
1102
1103       try {
1104          int status = nativeJFmTx_SetRdsPtyCode(txContext.getValue(), ptyCode.getValue());
1105          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1106          JFmLog.d(TAG, "After nativeJFmTx_SetRdsPtyCode, status = " + jFmTxStatus.toString());
1107       } catch (Exception e) {
1108          JFmLog.e(TAG, "txSetRdsPtyCode: exception during nativeJFmTx_SetRdsPtyCode("
1109                + e.toString() + ")");
1110          jFmTxStatus = JFmTxStatus.FAILED;
1111       }
1112       JFmLog.d(TAG, "txSetRdsPtyCode: exiting");
1113       return jFmTxStatus;
1114    }
1115
1116    public JFmTxStatus txGetRdsPtyCode() {
1117       JFmLog.d(TAG, "txGetRdsPtyCode: entered");
1118
1119       JFmTxStatus jFmTxStatus;
1120
1121       try {
1122          int status = nativeJFmTx_GetRdsPtyCode(txContext.getValue());
1123          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1124          JFmLog.d(TAG, "After nativeJFmTx_GetRdsPtyCode, status = " + jFmTxStatus.toString());
1125       } catch (Exception e) {
1126          JFmLog.e(TAG, "txGetRdsPtyCode: exception during nativeJFmTx_GetRdsPtyCode("
1127                + e.toString() + ")");
1128          jFmTxStatus = JFmTxStatus.FAILED;
1129       }
1130       JFmLog.d(TAG, "txGetRdsPtyCode: exiting");
1131       return jFmTxStatus;
1132    }
1133
1134    public JFmTxStatus txSetRdsTextRepertoire(JFmTxRepertoire repertoire) {
1135       JFmLog.d(TAG, "txSetRdsTextRepertoire: entered");
1136
1137       JFmTxStatus jFmTxStatus;
1138
1139       try {
1140          int status = nativeJFmTx_SetRdsTextRepertoire(txContext.getValue(), repertoire
1141                .getValue());
1142          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1143          JFmLog.d(TAG, "After nativeJFmTx_SetRdsTextRepertoire, status = "
1144                + jFmTxStatus.toString());
1145       } catch (Exception e) {
1146          JFmLog.e(TAG,
1147                "txSetRdsTextRepertoire: exception during nativeJFmTx_SetRdsTextRepertoire ("
1148                       + e.toString() + ")");
1149          jFmTxStatus = JFmTxStatus.FAILED;
1150       }
1151       JFmLog.d(TAG, "txSetRdsTextRepertoire: exiting");
1152       return jFmTxStatus;
1153    }
1154
1155    public JFmTxStatus txGetRdsTextRepertoire() {
1156       JFmLog.d(TAG, "txGetRdsTextRepertoire: entered");
1157
1158       JFmTxStatus jFmTxStatus;
1159
1160       try {
1161          int status = nativeJFmTx_GetRdsTextRepertoire(txContext.getValue());
1162          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1163          JFmLog.d(TAG, "After nativeJFmTx_GetRdsTextRepertoire, status = "
1164                + jFmTxStatus.toString());
1165       } catch (Exception e) {
1166          JFmLog.e(TAG,
1167                "txGetRdsTextRepertoire: exception during nativeJFmTx_GetRdsTextRepertoire ("
1168                       + e.toString() + ")");
1169          jFmTxStatus = JFmTxStatus.FAILED;
1170       }
1171       JFmLog.d(TAG, "txGetRdsTextRepertoire: exiting");
1172       return jFmTxStatus;
1173    }
1174
1175    public JFmTxStatus txSetRdsPsDisplayMode(JFmRdsPsDisplayMode dispalyMode) {
1176       JFmLog.d(TAG, "txSetRdsPsDisplayMode: entered");
1177
1178       JFmTxStatus jFmTxStatus;
1179
1180       try {
1181          int status = nativeJFmTx_SetRdsPsDisplayMode(txContext.getValue(), dispalyMode
1182                .getValue());
1183          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1184          JFmLog.d(TAG, "After nativeJFmTx_SetRdsECC, status = " + jFmTxStatus.toString());
1185       } catch (Exception e) {
1186          JFmLog.e(TAG, "txSetRdsECC: exception during nativeJFmTx_SetRdsECC (" + e.toString()
1187                + ")");
1188          jFmTxStatus = JFmTxStatus.FAILED;
1189       }
1190       JFmLog.d(TAG, "txSetRdsECC: exiting");
1191       return jFmTxStatus;
1192    }
1193
1194    public JFmTxStatus txGetRdsPsDisplayMode() {
1195       JFmLog.d(TAG, "txGetRdsPsDisplayMode: entered");
1196
1197       JFmTxStatus jFmTxStatus;
1198
1199       try {
1200          int status = nativeJFmTx_GetRdsPsDisplayMode(txContext.getValue());
1201          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1202          JFmLog.d(TAG, "After nativeJFmTx_GetRdsPsDisplayMode, status = "
1203                + jFmTxStatus.toString());
1204       } catch (Exception e) {
1205          JFmLog.e(TAG, "txGetRdsECC: exception during nativeJFmTx_GetRdsPsDisplayMode ("
1206                + e.toString() + ")");
1207          jFmTxStatus = JFmTxStatus.FAILED;
1208       }
1209       JFmLog.d(TAG, "txGetRdsECC: exiting");
1210       return jFmTxStatus;
1211    }
1212
1213    public JFmTxStatus txSetRdsPsScrollSpeed(int scrollSpeed) {
1214       JFmLog.d(TAG, "txSetRdsPsScrollSpeed: entered");
1215
1216       JFmTxStatus jFmTxStatus;
1217
1218       try {
1219          int status = nativeJFmTx_SetRdsPsScrollSpeed(txContext.getValue(), scrollSpeed);
1220          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1221          JFmLog.d(TAG, "After nativeJFmTx_SetRdsPsScrollSpeed, status = "
1222                + jFmTxStatus.toString());
1223       } catch (Exception e) {
1224          JFmLog.e(TAG,
1225                "txSetRdsPsScrollSpeed: exception during nativeJFmTx_SetRdsPsScrollSpeed ("
1226                       + e.toString() + ")");
1227          jFmTxStatus = JFmTxStatus.FAILED;
1228       }
1229       JFmLog.d(TAG, "txSetRdsPsScrollSpeed: exiting");
1230       return jFmTxStatus;
1231    }
1232
1233    public JFmTxStatus txGetRdsPsScrollSpeed() {
1234       JFmLog.d(TAG, "txGetRdsPsScrollSpeed: entered");
1235
1236       JFmTxStatus jFmTxStatus;
1237
1238       try {
1239          int status = nativeJFmTx_GetRdsPsScrollSpeed(txContext.getValue());
1240          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1241          JFmLog.d(TAG, "After nativeJFmTx_GetRdsPsScrollSpeed, status = "
1242                + jFmTxStatus.toString());
1243       } catch (Exception e) {
1244          JFmLog.e(TAG,
1245                "txGetRdsPsScrollSpeed: exception during nativeJFmTx_GetRdsPsScrollSpeed ("
1246                       + e.toString() + ")");
1247          jFmTxStatus = JFmTxStatus.FAILED;
1248       }
1249       JFmLog.d(TAG, "txGetRdsPsScrollSpeed: exiting");
1250       return jFmTxStatus;
1251    }
1252
1253    public JFmTxStatus txSetRdsTextRtMsg(JFmRdsRtMsgType msgType, String msg, int msgLength) {
1254       JFmLog.d(TAG, "txSetRdsTextRtMsg: entered");
1255       JFmLog.d(TAG, "txSetRdsTextRtMsg msg = " + msg + " msgLength = " + msgLength);
1256       JFmTxStatus jFmTxStatus;
1257       // byte[] message = msg.getBytes();
1258       try {
1259          int status = nativeJFmTx_SetRdsTextRtMsg(txContext.getValue(), msgType.getValue(), msg,
1260                msgLength);
1261          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1262          JFmLog.d(TAG, "After nativeJFmTx_SetRdsTextRtMsg, status = " + jFmTxStatus.toString());
1263       } catch (Exception e) {
1264          JFmLog.e(TAG, "txSetRdsTextRtMsg: exception during nativeJFmTx_SetRdsECC ("
1265                + e.toString() + ")");
1266          jFmTxStatus = JFmTxStatus.FAILED;
1267       }
1268       JFmLog.d(TAG, "txSetRdsTextRtMsg: exiting");
1269       return jFmTxStatus;
1270    }
1271
1272    public JFmTxStatus txGetRdsTextRtMsg() {
1273       JFmLog.d(TAG, "txGetRdsTextRtMsg: entered");
1274
1275       JFmTxStatus jFmTxStatus;
1276       // byte[] message = msg.getBytes();
1277       try {
1278          int status = nativeJFmTx_GetRdsTextRtMsg(txContext.getValue());
1279          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1280          JFmLog.d(TAG, "After nativeJFmTx_GetRdsTextRtMsg, status = " + jFmTxStatus.toString());
1281       } catch (Exception e) {
1282          JFmLog.e(TAG, "txGetRdsTextRtMsg: exception during nativeJFmTx_GetRdsECC ("
1283                + e.toString() + ")");
1284          jFmTxStatus = JFmTxStatus.FAILED;
1285       }
1286       JFmLog.d(TAG, "txGetRdsTextRtMsg: exiting");
1287       return jFmTxStatus;
1288    }
1289
1290    public JFmTxStatus txSetRdsTransmittedGroupsMask(long rdsTrasmittedGrpMask) {
1291       JFmLog.d(TAG, "txSetRdsTransmittedGroupsMask: entered");
1292
1293       JFmTxStatus jFmTxStatus;
1294
1295       try {
1296          int status = nativeJFmTx_SetRdsTransmittedGroupsMask(txContext.getValue(),
1297                rdsTrasmittedGrpMask);
1298          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1299          JFmLog.d(TAG, "After nativeJFmTx_SetRdsTransmittedGroupsMask, status = "
1300                + jFmTxStatus.toString());
1301       } catch (Exception e) {
1302          JFmLog.e(TAG,
1303                "txSetRdsTransmittedGroupsMask: exception during nativeJFmTx_SetRdsTransmittedGroupsMask ("
1304                       + e.toString() + ")");
1305          jFmTxStatus = JFmTxStatus.FAILED;
1306       }
1307       JFmLog.d(TAG, "txSetRdsTransmittedGroupsMask: exiting");
1308       return jFmTxStatus;
1309    }
1310
1311    public JFmTxStatus txGetRdsTransmittedGroupsMask() {
1312       JFmLog.d(TAG, "txGetRdsTransmittedGroupsMask: entered");
1313
1314       JFmTxStatus jFmTxStatus;
1315
1316       try {
1317          int status = nativeJFmTx_GetRdsTransmittedGroupsMask(txContext.getValue());
1318          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1319          JFmLog.d(TAG, "After nativeJFmTx_GetRdsTransmittedGroupsMask, status = "
1320                + jFmTxStatus.toString());
1321       } catch (Exception e) {
1322          JFmLog.e(TAG,
1323                "txGetRdsTransmittedGroupsMask: exception during nativeJFmTx_getRdsTransmittedGroupsMask ("
1324                       + e.toString() + ")");
1325          jFmTxStatus = JFmTxStatus.FAILED;
1326       }
1327       JFmLog.d(TAG, "txGetRdsTransmittedGroupsMask: exiting");
1328       return jFmTxStatus;
1329    }
1330
1331    public JFmTxStatus txSetRdsTrafficCodes(JFmTaCode taCode, JFmTpCode tpCode) {
1332       JFmLog.d(TAG, "txSetRdsTransmittedGroupsMask: entered");
1333
1334       JFmTxStatus jFmTxStatus;
1335
1336       try {
1337          int status = nativeJFmTx_SetRdsTrafficCodes(txContext.getValue(), taCode.getValue(),
1338                tpCode.getValue());
1339          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1340          JFmLog.d(TAG, "After nativeJFmTx_SetRdsTrafficCodes, status = "
1341                + jFmTxStatus.toString());
1342       } catch (Exception e) {
1343          JFmLog.e(TAG,
1344                "txSetRdsTransmittedGroupsMask: exception during nativeJFmTx_SetRdsTrafficCodes ("
1345                       + e.toString() + ")");
1346          jFmTxStatus = JFmTxStatus.FAILED;
1347       }
1348       JFmLog.d(TAG, "txSetRdsTransmittedGroupsMask: exiting");
1349       return jFmTxStatus;
1350    }
1351
1352    public JFmTxStatus txGetRdsTrafficCodes() {
1353       JFmLog.d(TAG, "txGetRdsTrafficCodes: entered");
1354
1355       JFmTxStatus jFmTxStatus;
1356
1357       try {
1358          int status = nativeJFmTx_GetRdsTrafficCodes(txContext.getValue());
1359          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1360          JFmLog.d(TAG, "After nativeJFmTx_GetRdsTrafficCodes, status = "
1361                + jFmTxStatus.toString());
1362       } catch (Exception e) {
1363          JFmLog.e(TAG, "txGetRdsTrafficCodes: exception during nativeJFmTx_GetRdsTrafficCodes ("
1364                + e.toString() + ")");
1365          jFmTxStatus = JFmTxStatus.FAILED;
1366       }
1367       JFmLog.d(TAG, "txGetRdsTrafficCodes: exiting");
1368       return jFmTxStatus;
1369    }
1370
1371    public JFmTxStatus txSetRdsMusicSpeechFlag(JFmMusicSpeechFlag musicSpeechFlag) {
1372       JFmLog.d(TAG, "txSetRdsMusicSpeechFlag: entered");
1373
1374       JFmTxStatus jFmTxStatus;
1375
1376       try {
1377          int status = nativeJFmTx_SetRdsMusicSpeechFlag(txContext.getValue(), musicSpeechFlag
1378                .getValue());
1379          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1380          JFmLog.d(TAG, "After nativeJFmTx_SetRdsECC, status = " + jFmTxStatus.toString());
1381       } catch (Exception e) {
1382          JFmLog.e(TAG, "txSetRdsMusicSpeechFlag: exception during nativeJFmTx_SetRdsECC ("
1383                + e.toString() + ")");
1384          jFmTxStatus = JFmTxStatus.FAILED;
1385       }
1386       JFmLog.d(TAG, "txSetRdsMusicSpeechFlag: exiting");
1387       return jFmTxStatus;
1388    }
1389
1390    public JFmTxStatus txGetRdsMusicSpeechFlag() {
1391       JFmLog.d(TAG, "txGetRdsMusicSpeechFlag: entered");
1392
1393       JFmTxStatus jFmTxStatus;
1394
1395       try {
1396          int status = nativeJFmTx_GetRdsMusicSpeechFlag(txContext.getValue());
1397          jFmTxStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1398          JFmLog.d(TAG, "After nativeJFmTx_GetRdsMusicSpeechFlag, status = "
1399                + jFmTxStatus.toString());
1400       } catch (Exception e) {
1401          JFmLog.e(TAG,
1402                "txGetRdsMusicSpeechFlag: exception during nativeJFmTx_GetRdsMusicSpeechFlag ("
1403                       + e.toString() + ")");
1404          jFmTxStatus = JFmTxStatus.FAILED;
1405       }
1406       JFmLog.d(TAG, "txGetRdsMusicSpeechFlag: exiting");
1407       return jFmTxStatus;
1408    }
1409
1410    /*--------------------------------------------------------------------------
1411    *        NATIVE PART
1412    *------------------------------------------------------------------------*/
1413
1414    /* RBTL Calls */
1415
1416    /* FM TX */
1417    private static native void nativeJFmTx_ClassInitNative();
1418
1419    private static native int nativeJFmTx_Create(JFmContext contextValue);
1420
1421    private static native int nativeJFmTx_Enable(long contextValue);
1422
1423    private static native int nativeJFmTx_Tune(long contextValue, long jFmTxFreq);
1424
1425    private static native int nativeJFmTx_GetTunedFrequency(long contextValue);
1426
1427    private static native int nativeJFmTx_StartTransmission(long contextValue);
1428
1429    private static native int nativeJFmTx_Disable(long contextValue);
1430
1431    private static native int nativeJFmTx_Destroy(long contextValue);
1432
1433    private static native int nativeJFmTx_StopTransmission(long contextValue);
1434
1435    private static native int nativeJFmTx_SetPowerLevel(long contextValue, int powerLevel);
1436
1437    private static native int nativeJFmTx_GetPowerLevel(long contextValue);
1438
1439    private static native int nativeJFmTx_EnableRds(long contextValue);
1440
1441    private static native int nativeJFmTx_DisableRds(long contextValue);
1442
1443    private static native int nativeJFmTx_SetRdsTransmissionMode(long contextValue, int mode);
1444
1445    private static native int nativeJFmTx_GetRdsTransmissionMode(long contextValue);
1446
1447    private static native int nativeJFmTx_SetRdsTextPsMsg(long contextValue,
1448          java.lang.String psString, int length);
1449
1450    private static native int nativeJFmTx_GetRdsTextPsMsg(long contextValue);
1451
1452    private static native int nativeJFmTx_WriteRdsRawData(long contextValue, java.lang.String msg,
1453          int length);
1454
1455    private static native int nativeJFmTx_ChangeDigitalSourceConfiguration(long contextValue,
1456          int ecalSampleFreq);
1457
1458    private static native int nativeJFmTx_ChangeAudioSource(long contextValue, int audioSrc,
1459          int ecalSampleFreq);
1460
1461    private static native int nativeJFmTx_SetRdsExtendedCountryCode(long contextValue, int ecc);
1462
1463    private static native int nativeJFmTx_GetRdsExtendedCountryCode(long contextValue);
1464
1465    private static native int nativeJFmTx_SetRdsMusicSpeechFlag(long contextValue,
1466          int musicSpeechFlag);
1467
1468    private static native int nativeJFmTx_GetRdsMusicSpeechFlag(long contextValue);
1469
1470    private static native int nativeJFmTx_SetRdsTrafficCodes(long contextValue, int taCode,
1471          int tpCode);
1472
1473    private static native int nativeJFmTx_GetRdsTrafficCodes(long contextValue);
1474
1475    private static native int nativeJFmTx_SetRdsTransmittedGroupsMask(long contextValue, long taCode);
1476
1477    private static native int nativeJFmTx_GetRdsTransmittedGroupsMask(long contextValue);
1478
1479    private static native int nativeJFmTx_SetRdsTextRtMsg(long contextValue, int msgType,
1480          java.lang.String msg, int msgLength);
1481
1482    private static native int nativeJFmTx_GetRdsTextRtMsg(long contextValue);
1483
1484    private static native int nativeJFmTx_SetRdsPsScrollSpeed(long contextValue, int scrollSpeed);
1485
1486    private static native int nativeJFmTx_GetRdsPsScrollSpeed(long contextValue);
1487
1488    private static native int nativeJFmTx_SetMuteMode(long contextValue, int muteMode);
1489
1490    private static native int nativeJFmTx_GetMuteMode(long contextValue);
1491
1492    private static native int nativeJFmTx_SetRdsAfCode(long contextValue, int afCode);
1493
1494    private static native int nativeJFmTx_GetRdsAfCode(long contextValue);
1495
1496    private static native int nativeJFmTx_SetRdsPiCode(long contextValue, int piCode);
1497
1498    private static native int nativeJFmTx_GetRdsPiCode(long contextValue);
1499
1500    private static native int nativeJFmTx_SetRdsPtyCode(long contextValue, int ptyCode);
1501
1502    private static native int nativeJFmTx_GetRdsPtyCode(long contextValue);
1503
1504    private static native int nativeJFmTx_SetRdsPsDisplayMode(long contextValue, int displayMode);
1505
1506    private static native int nativeJFmTx_GetRdsPsDisplayMode(long contextValue);
1507
1508    private static native int nativeJFmTx_SetRdsTextRepertoire(long contextValue, int reprtoire);
1509
1510    private static native int nativeJFmTx_GetRdsTextRepertoire(long contextValue);
1511
1512    private static native int nativeJFmTx_SetPreEmphasisFilter(long contextValue, int preEmpFilter);
1513
1514    private static native int nativeJFmTx_GetPreEmphasisFilter(long contextValue);
1515
1516    private static native int nativeJFmTx_GetMonoStereoMode(long contextValue);
1517
1518    private static native int nativeJFmTx_SetMonoStereoMode(long contextValue, int mode);
1519
1520    private static native int nativeJFmTx_ReadRdsRawData(long contextValue);
1521
1522    /*---------------------------------------------------------------------------
1523    * -------------------------------- NATIVE PART--------------------------------
1524    * ---------------------------------------------------------------------------
1525    */
1526
1527    /*---------------------------------------------------------------------------
1528    * ---------------------------------------------- Callbacks from the-------------
1529    * JFmTxNative.cpp module -----------------------------------------------------
1530    */
1531
1532    /********* FM TX ***********/
1533
1534    @SuppressWarnings("unused")
1535    public static void nativeCb_fmTxCmdEnable(long contextValue, int status, long value) {
1536
1537       JFmLog.d(TAG, "nativeCb_fmTxCmdEnable: entered");
1538
1539       JFmTx mJFmTx = getJFmTx(contextValue);
1540
1541       if (mJFmTx != null) {
1542
1543          ICallback callback = mJFmTx.callback;
1544
1545          JFmLog.d(TAG, "nativeCb_fmTxCmdEnable: converting callback args");
1546
1547          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1548
1549          JFmLog.d(TAG, "nativeCb_fmTxCmdEnable: calling callback");
1550
1551          callback.fmTxCmdEnable(mJFmTx, txStatus, value);
1552
1553       }
1554
1555    }
1556
1557    @SuppressWarnings("unused")
1558    public static void nativeCb_fmTxCmdDisable(long contextValue, int status, long value) {
1559
1560       JFmLog.d(TAG, "nativeCb_fmTxCmdDisable: entered");
1561
1562       JFmTx mJFmTx = getJFmTx(contextValue);
1563
1564       if (mJFmTx != null) {
1565
1566          ICallback callback = mJFmTx.callback;
1567
1568          JFmLog.d(TAG, "nativeCb_fmTxCmdDisable: converting callback args");
1569
1570          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1571
1572          JFmLog.d(TAG, "nativeCb_fmTxCmdDisable: calling callback");
1573
1574          callback.fmTxCmdDisable(mJFmTx, txStatus, value);
1575
1576       }
1577
1578    }
1579
1580    @SuppressWarnings("unused")
1581    public static void nativeCb_fmTxCmdDestroy(long contextValue, int status, long value) {
1582
1583       JFmLog.d(TAG, "nativeCb_fmTxCmdDestroy: entered");
1584
1585       JFmTx mJFmTx = getJFmTx(contextValue);
1586
1587       if (mJFmTx != null) {
1588
1589          ICallback callback = mJFmTx.callback;
1590
1591          JFmLog.d(TAG, "nativeCb_fmTxCmdDestroy: converting callback args");
1592
1593          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1594
1595          JFmLog.d(TAG, "nativeCb_fmTxCmdDestroy: calling callback");
1596
1597          callback.fmTxCmdDestroy(mJFmTx, txStatus, value);
1598
1599       }
1600
1601    }
1602
1603    @SuppressWarnings("unused")
1604    public static void nativeCb_fmTxCmdTune(long contextValue, int status, long value) {
1605
1606       JFmLog.d(TAG, "nativeCb_fmTxCmdTune: entered");
1607
1608       JFmTx mJFmTx = getJFmTx(contextValue);
1609
1610       if (mJFmTx != null) {
1611
1612          ICallback callback = mJFmTx.callback;
1613
1614          JFmLog.d(TAG, "nativeCb_fmTxCmdTune: converting callback args");
1615
1616          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1617
1618          JFmLog.d(TAG, "nativeCb_fmTxCmdTune: calling callback");
1619
1620          callback.fmTxCmdTune(mJFmTx, txStatus, value);
1621
1622       }
1623
1624    }
1625
1626    @SuppressWarnings("unused")
1627    public static void nativeCb_fmTxCmdGetTunedFrequency(long contextValue, int status, long value) {
1628
1629       JFmLog.d(TAG, "nativeCb_fmTxCmdGetTunedFrequency: entered");
1630
1631       JFmTx mJFmTx = getJFmTx(contextValue);
1632
1633       if (mJFmTx != null) {
1634
1635          ICallback callback = mJFmTx.callback;
1636
1637          JFmLog.d(TAG, "nativeCb_fmTxCmdGetTunedFrequency: converting callback args");
1638
1639          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1640
1641          JFmLog.d(TAG, "nativeCb_fmTxCmdGetTunedFrequency: calling callback");
1642
1643          callback.fmTxCmdGetTunedFrequency(mJFmTx, txStatus, value);
1644
1645       }
1646
1647    }
1648
1649    @SuppressWarnings("unused")
1650    public static void nativeCb_fmTxCmdStopTransmission(long contextValue, int status, long value) {
1651
1652       JFmLog.d(TAG, "nativeCb_fmTxCmdStopTransmission: entered");
1653
1654       JFmTx mJFmTx = getJFmTx(contextValue);
1655
1656       if (mJFmTx != null) {
1657
1658          ICallback callback = mJFmTx.callback;
1659
1660          JFmLog.d(TAG, "nativeCb_fmTxCmdStopTransmission: converting callback args");
1661
1662          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1663
1664          JFmLog.d(TAG, "nativeCb_fmTxCmdStopTransmission: calling callback");
1665
1666          callback.fmTxCmdStopTransmission(mJFmTx, txStatus, value);
1667
1668       }
1669
1670    }
1671
1672    @SuppressWarnings("unused")
1673    public static void nativeCb_fmTxCmdStartTransmission(long contextValue, int status/*
1674                                                                      * ,
1675                                                                      * JFmCcmVacUnavailResourceList
1676                                                                      * ccmVacUnavailResourceList
1677                                                                      */) {
1678
1679       JFmLog.d(TAG, "nativeCb_fmTxCmdStartTransmission: entered");
1680
1681       JFmTx mJFmTx = getJFmTx(contextValue);
1682
1683       if (mJFmTx != null) {
1684
1685          ICallback callback = mJFmTx.callback;
1686
1687          JFmLog.d(TAG, "nativeCb_fmTxCmdStartTransmission: converting callback args");
1688
1689          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1690
1691          JFmLog.d(TAG, "nativeCb_fmTxCmdStartTransmission: calling callback");
1692
1693          callback.fmTxCmdStartTransmission(mJFmTx, txStatus/*
1694                                                   * ,
1695                                                   * ccmVacUnavailResourceList
1696                                                   */);
1697
1698       }
1699
1700    }
1701
1702    @SuppressWarnings("unused")
1703    public static void nativeCb_fmTxCmdEnableRds(long contextValue, int status, long value) {
1704
1705       JFmLog.d(TAG, "nativeCb_fmTxCmdEnableRds: entered");
1706
1707       JFmTx mJFmTx = getJFmTx(contextValue);
1708
1709       if (mJFmTx != null) {
1710
1711          ICallback callback = mJFmTx.callback;
1712
1713          JFmLog.d(TAG, "nativeCb_fmTxCmdEnableRds: converting callback args");
1714
1715          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1716
1717          JFmLog.d(TAG, "nativeCb_fmTxCmdEnableRds: calling callback");
1718
1719          callback.fmTxCmdEnableRds(mJFmTx, txStatus, value);
1720
1721       }
1722
1723    }
1724
1725    @SuppressWarnings("unused")
1726    public static void nativeCb_fmTxCmdDisableRds(long contextValue, int status, long value) {
1727
1728       JFmLog.d(TAG, "nativeCb_fmTxCmdDisableRds: entered");
1729
1730       JFmTx mJFmTx = getJFmTx(contextValue);
1731
1732       if (mJFmTx != null) {
1733
1734          ICallback callback = mJFmTx.callback;
1735
1736          JFmLog.d(TAG, "nativeCb_fmTxCmdDisableRds: converting callback args");
1737
1738          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1739
1740          JFmLog.d(TAG, "nativeCb_fmTxCmdDisableRds: calling callback");
1741
1742          callback.fmTxCmdDisableRds(mJFmTx, txStatus, value);
1743
1744       }
1745
1746    }
1747
1748    @SuppressWarnings("unused")
1749    public static void nativeCb_fmTxCmdSetRdsTransmissionMode(long contextValue, int status,
1750          long value) {
1751
1752       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTransmissionMode: entered");
1753
1754       JFmTx mJFmTx = getJFmTx(contextValue);
1755
1756       if (mJFmTx != null) {
1757
1758          ICallback callback = mJFmTx.callback;
1759
1760          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTransmissionMode: converting callback args");
1761
1762          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1763
1764          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTransmissionMode: calling callback");
1765
1766          callback.fmTxCmdSetRdsTransmissionMode(mJFmTx, txStatus, value);
1767
1768       }
1769
1770    }
1771
1772    @SuppressWarnings("unused")
1773    public static void nativeCb_fmTxCmdGetRdsTransmissionMode(long contextValue, int status,
1774          long value) {
1775
1776       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTransmissionMode: entered");
1777
1778       JFmTx mJFmTx = getJFmTx(contextValue);
1779
1780       if (mJFmTx != null) {
1781
1782          ICallback callback = mJFmTx.callback;
1783
1784          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTransmissionMode: converting callback args");
1785
1786          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1787
1788          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTransmissionMode: calling callback");
1789
1790          callback.fmTxCmdGetRdsTransmissionMode(mJFmTx, txStatus, value);
1791
1792       }
1793
1794    }
1795
1796    @SuppressWarnings("unused")
1797    public static void nativeCb_fmTxCmdSetMonoStereoMode(long contextValue, int status, long value) {
1798
1799       JFmLog.d(TAG, "nativeCb_fmTxCmdSetMonoStereoMode: entered");
1800
1801       JFmTx mJFmTx = getJFmTx(contextValue);
1802
1803       if (mJFmTx != null) {
1804
1805          ICallback callback = mJFmTx.callback;
1806
1807          JFmLog.d(TAG, "nativeCb_fmTxCmdSetMonoStereoMode: converting callback args");
1808
1809          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1810
1811          JFmLog.d(TAG, "nativeCb_fmTxCmdSetMonoStereoMode: calling callback");
1812
1813          callback.fmTxCmdSetMonoStereoMode(mJFmTx, txStatus, value);
1814
1815       }
1816
1817    }
1818
1819    @SuppressWarnings("unused")
1820    public static void nativeCb_fmTxCmdGetMonoStereoMode(long contextValue, int status, long value) {
1821
1822       JFmLog.d(TAG, "nativeCb_fmTxCmdGetMonoStereoMode: entered");
1823
1824       JFmTx mJFmTx = getJFmTx(contextValue);
1825
1826       if (mJFmTx != null) {
1827
1828          ICallback callback = mJFmTx.callback;
1829
1830          JFmLog.d(TAG, "nativeCb_fmTxCmdGetMonoStereoMode: converting callback args");
1831
1832          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1833
1834          JFmLog.d(TAG, "nativeCb_fmTxCmdGetMonoStereoMode: calling callback");
1835
1836          callback.fmTxCmdGetMonoStereoMode(mJFmTx, txStatus, value);
1837
1838       }
1839
1840    }
1841
1842    @SuppressWarnings("unused")
1843    public static void nativeCb_fmTxCmdSetPreEmphasisFilter(long contextValue, int status,
1844          long value) {
1845
1846       JFmLog.d(TAG, "nativeCb_fmTxCmdSetPreEmphasisFilter: entered");
1847
1848       JFmTx mJFmTx = getJFmTx(contextValue);
1849
1850       if (mJFmTx != null) {
1851
1852          ICallback callback = mJFmTx.callback;
1853
1854          JFmLog.d(TAG, "nativeCb_fmTxCmdSetPreEmphasisFilter: converting callback args");
1855
1856          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1857
1858          JFmLog.d(TAG, "nativeCb_fmTxCmdSetPreEmphasisFilter: calling callback");
1859
1860          callback.fmTxCmdSetPreEmphasisFilter(mJFmTx, txStatus, value);
1861
1862       }
1863
1864    }
1865
1866    @SuppressWarnings("unused")
1867    public static void nativeCb_fmTxCmdGetPreEmphasisFilter(long contextValue, int status,
1868          long value) {
1869
1870       JFmLog.d(TAG, "nativeCb_fmTxCmdGetPreEmphasisFilter: entered");
1871
1872       JFmTx mJFmTx = getJFmTx(contextValue);
1873
1874       if (mJFmTx != null) {
1875
1876          ICallback callback = mJFmTx.callback;
1877
1878          JFmLog.d(TAG, "nativeCb_fmTxCmdGetPreEmphasisFilter: converting callback args");
1879
1880          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1881
1882          JFmLog.d(TAG, "nativeCb_fmTxCmdGetPreEmphasisFilter: calling callback");
1883
1884          callback.fmTxCmdGetPreEmphasisFilter(mJFmTx, txStatus, value);
1885
1886       }
1887
1888    }
1889
1890    @SuppressWarnings("unused")
1891    public static void nativeCb_fmTxCmdSetMuteMode(long contextValue, int status, long value) {
1892
1893       JFmLog.d(TAG, "nativeCb_fmTxCmdSetMuteMode: entered");
1894
1895       JFmTx mJFmTx = getJFmTx(contextValue);
1896
1897       if (mJFmTx != null) {
1898
1899          ICallback callback = mJFmTx.callback;
1900
1901          JFmLog.d(TAG, "nativeCb_fmTxCmdSetMuteMode: converting callback args");
1902
1903          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1904
1905          JFmLog.d(TAG, "nativeCb_fmTxCmdSetMuteMode: calling callback");
1906
1907          callback.fmTxCmdSetMuteMode(mJFmTx, txStatus, value);
1908
1909       }
1910
1911    }
1912
1913    @SuppressWarnings("unused")
1914    public static void nativeCb_fmTxCmdGetMuteMode(long contextValue, int status, long value) {
1915
1916       JFmLog.d(TAG, "nativeCb_fmTxCmdGetMuteMode: entered");
1917
1918       JFmTx mJFmTx = getJFmTx(contextValue);
1919
1920       if (mJFmTx != null) {
1921
1922          ICallback callback = mJFmTx.callback;
1923
1924          JFmLog.d(TAG, "nativeCb_fmTxCmdGetMuteMode: converting callback args");
1925
1926          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1927
1928          JFmLog.d(TAG, "nativeCb_fmTxCmdGetMuteMode: calling callback");
1929
1930          callback.fmTxCmdGetMuteMode(mJFmTx, txStatus, value);
1931
1932       }
1933
1934    }
1935
1936    @SuppressWarnings("unused")
1937    public static void nativeCb_fmTxCmdSetRdsAfCode(long contextValue, int status, long value) {
1938
1939       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsAfCode: entered");
1940
1941       JFmTx mJFmTx = getJFmTx(contextValue);
1942
1943       if (mJFmTx != null) {
1944
1945          ICallback callback = mJFmTx.callback;
1946
1947          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsAfCode: converting callback args");
1948
1949          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1950
1951          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsAfCode: calling callback");
1952
1953          callback.fmTxCmdSetMuteMode(mJFmTx, txStatus, value);
1954
1955       }
1956
1957    }
1958
1959    @SuppressWarnings("unused")
1960    public static void nativeCb_fmTxCmdGetRdsAfCode(long contextValue, int status, long value) {
1961
1962       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsAfCode: entered");
1963
1964       JFmTx mJFmTx = getJFmTx(contextValue);
1965
1966       if (mJFmTx != null) {
1967
1968          ICallback callback = mJFmTx.callback;
1969
1970          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsAfCode: converting callback args");
1971
1972          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1973
1974          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsAfCode: calling callback");
1975
1976          callback.fmTxCmdGetRdsAfCode(mJFmTx, txStatus, value);
1977
1978       }
1979
1980    }
1981
1982    @SuppressWarnings("unused")
1983    public static void nativeCb_fmTxCmdSetRdsPiCode(long contextValue, int status, long value) {
1984
1985       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPiCode: entered");
1986
1987       JFmTx mJFmTx = getJFmTx(contextValue);
1988
1989       if (mJFmTx != null) {
1990
1991          ICallback callback = mJFmTx.callback;
1992
1993          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPiCode: converting callback args");
1994
1995          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
1996
1997          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPiCode: calling callback");
1998
1999          callback.fmTxCmdSetRdsPiCode(mJFmTx, txStatus, value);
2000
2001       }
2002
2003    }
2004
2005    @SuppressWarnings("unused")
2006    public static void nativeCb_fmTxCmdGetRdsPiCode(long contextValue, int status, long value) {
2007
2008       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPiCode: entered");
2009
2010       JFmTx mJFmTx = getJFmTx(contextValue);
2011
2012       if (mJFmTx != null) {
2013
2014          ICallback callback = mJFmTx.callback;
2015
2016          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPiCode: converting callback args");
2017
2018          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2019
2020          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPiCode: calling callback");
2021
2022          callback.fmTxCmdGetRdsPiCode(mJFmTx, txStatus, value);
2023
2024       }
2025
2026    }
2027
2028    @SuppressWarnings("unused")
2029    public static void nativeCb_fmTxCmdSetRdsPtyCode(long contextValue, int status, long value) {
2030
2031       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPtyCode: entered");
2032
2033       JFmTx mJFmTx = getJFmTx(contextValue);
2034
2035       if (mJFmTx != null) {
2036
2037          ICallback callback = mJFmTx.callback;
2038
2039          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPtyCode: converting callback args");
2040
2041          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2042
2043          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPtyCode: calling callback");
2044
2045          callback.fmTxCmdSetRdsPtyCode(mJFmTx, txStatus, value);
2046
2047       }
2048
2049    }
2050
2051    @SuppressWarnings("unused")
2052    public static void nativeCb_fmTxCmdGetRdsPtyCode(long contextValue, int status, long value) {
2053
2054       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPtyCode: entered");
2055
2056       JFmTx mJFmTx = getJFmTx(contextValue);
2057
2058       if (mJFmTx != null) {
2059
2060          ICallback callback = mJFmTx.callback;
2061
2062          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPtyCode: converting callback args");
2063
2064          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2065
2066          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPtyCode: calling callback");
2067
2068          callback.fmTxCmdGetRdsPtyCode(mJFmTx, txStatus, value);
2069
2070       }
2071
2072    }
2073
2074    @SuppressWarnings("unused")
2075    public static void nativeCb_fmTxCmdSetRdsTextRepertoire(long contextValue, int status,
2076          long value) {
2077
2078       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextRepertoire: entered");
2079
2080       JFmTx mJFmTx = getJFmTx(contextValue);
2081
2082       if (mJFmTx != null) {
2083
2084          ICallback callback = mJFmTx.callback;
2085
2086          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextRepertoire: converting callback args");
2087
2088          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2089
2090          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextRepertoire: calling callback");
2091
2092          callback.fmTxCmdSetRdsTextRepertoire(mJFmTx, txStatus, value);
2093
2094       }
2095
2096    }
2097
2098    @SuppressWarnings("unused")
2099    public static void nativeCb_fmTxCmdGetRdsTextRepertoire(long contextValue, int status,
2100          long value) {
2101
2102       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextRepertoire: entered");
2103
2104       JFmTx mJFmTx = getJFmTx(contextValue);
2105
2106       if (mJFmTx != null) {
2107
2108          ICallback callback = mJFmTx.callback;
2109
2110          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextRepertoire: converting callback args");
2111
2112          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2113
2114          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextRepertoire: calling callback");
2115
2116          callback.fmTxCmdGetRdsTextRepertoire(mJFmTx, txStatus, value);
2117
2118       }
2119
2120    }
2121
2122    @SuppressWarnings("unused")
2123    public static void nativeCb_fmTxCmdSetRdsPsDisplayMode(long contextValue, int status, long value) {
2124
2125       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDisplayMode: entered");
2126
2127       JFmTx mJFmTx = getJFmTx(contextValue);
2128
2129       if (mJFmTx != null) {
2130
2131          ICallback callback = mJFmTx.callback;
2132
2133          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDisplayMode: converting callback args");
2134
2135          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2136
2137          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDisplayMode: calling callback");
2138
2139          callback.fmTxCmdSetRdsPsDisplayMode(mJFmTx, txStatus, value);
2140
2141       }
2142
2143    }
2144
2145    @SuppressWarnings("unused")
2146    public static void nativeCb_fmTxCmdGetRdsPsDisplayMode(long contextValue, int status, long value) {
2147
2148       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDisplayMode: entered");
2149
2150       JFmTx mJFmTx = getJFmTx(contextValue);
2151
2152       if (mJFmTx != null) {
2153
2154          ICallback callback = mJFmTx.callback;
2155
2156          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDisplayMode: converting callback args");
2157
2158          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2159
2160          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDisplayMode: calling callback");
2161
2162          callback.fmTxCmdGetRdsPsDisplayMode(mJFmTx, txStatus, value);
2163
2164       }
2165
2166    }
2167
2168    @SuppressWarnings("unused")
2169    public static void nativeCb_fmTxCmdSetRdsPsDisplaySpeed(long contextValue, int status,
2170          long value) {
2171
2172       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDisplaySpeed: entered");
2173
2174       JFmTx mJFmTx = getJFmTx(contextValue);
2175
2176       if (mJFmTx != null) {
2177
2178          ICallback callback = mJFmTx.callback;
2179
2180          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDisplaySpeed: converting callback args");
2181
2182          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2183
2184          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDisplaySpeed: calling callback");
2185
2186          callback.fmTxCmdSetRdsPsDisplaySpeed(mJFmTx, txStatus, value);
2187
2188       }
2189
2190    }
2191
2192    @SuppressWarnings("unused")
2193    public static void nativeCb_fmTxCmdGetRdsPsDisplaySpeed(long contextValue, int status,
2194          long value) {
2195
2196       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDisplaySpeed: entered");
2197
2198       JFmTx mJFmTx = getJFmTx(contextValue);
2199
2200       if (mJFmTx != null) {
2201
2202          ICallback callback = mJFmTx.callback;
2203
2204          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDisplaySpeed: converting callback args");
2205
2206          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2207
2208          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDisplaySpeed: calling callback");
2209
2210          callback.fmTxCmdGetRdsPsDisplaySpeed(mJFmTx, txStatus, value);
2211
2212       }
2213
2214    }
2215
2216    @SuppressWarnings("unused")
2217    public static void nativeCb_fmTxCmdSetRdsTransmittedMask(long contextValue, int status,
2218          long value) {
2219
2220       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTransmittedMask: entered");
2221
2222       JFmTx mJFmTx = getJFmTx(contextValue);
2223
2224       if (mJFmTx != null) {
2225
2226          ICallback callback = mJFmTx.callback;
2227
2228          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTransmittedMask: converting callback args");
2229
2230          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2231
2232          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTransmittedMask: calling callback");
2233
2234          callback.fmTxCmdSetRdsTransmittedMask(mJFmTx, txStatus, value);
2235
2236       }
2237
2238    }
2239
2240    @SuppressWarnings("unused")
2241    public static void nativeCb_fmTxCmdGetRdsTransmittedMask(long contextValue, int status,
2242          long value) {
2243
2244       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTransmittedMask: entered");
2245
2246       JFmTx mJFmTx = getJFmTx(contextValue);
2247
2248       if (mJFmTx != null) {
2249
2250          ICallback callback = mJFmTx.callback;
2251
2252          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTransmittedMask: converting callback args");
2253
2254          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2255
2256          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTransmittedMask: calling callback");
2257
2258          callback.fmTxCmdGetRdsTransmittedMask(mJFmTx, txStatus, value);
2259
2260       }
2261
2262    }
2263
2264    @SuppressWarnings("unused")
2265    public static void nativeCb_fmTxCmdSetRdsMusicSpeechFlag(long contextValue, int status,
2266          long value) {
2267
2268       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsMusicSpeechFlag: entered");
2269
2270       JFmTx mJFmTx = getJFmTx(contextValue);
2271
2272       if (mJFmTx != null) {
2273
2274          ICallback callback = mJFmTx.callback;
2275
2276          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsMusicSpeechFlag: converting callback args");
2277
2278          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2279
2280          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsMusicSpeechFlag: calling callback");
2281
2282          callback.fmTxCmdSetRdsMusicSpeechFlag(mJFmTx, txStatus, value);
2283
2284       }
2285
2286    }
2287
2288    @SuppressWarnings("unused")
2289    public static void nativeCb_fmTxCmdGetRdsMusicSpeechFlag(long contextValue, int status,
2290          long value) {
2291
2292       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsMusicSpeechFlag: entered");
2293
2294       JFmTx mJFmTx = getJFmTx(contextValue);
2295
2296       if (mJFmTx != null) {
2297
2298          ICallback callback = mJFmTx.callback;
2299
2300          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsMusicSpeechFlag: converting callback args");
2301
2302          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2303
2304          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsMusicSpeechFlag: calling callback");
2305
2306          callback.fmTxCmdGetRdsMusicSpeechFlag(mJFmTx, txStatus, value);
2307
2308       }
2309
2310    }
2311
2312    @SuppressWarnings("unused")
2313    public static void nativeCb_fmTxCmdChangeAudioSource(long contextValue, int status,
2314          JFmCcmVacUnavailResourceList ccmVacUnavailResourceList) {
2315
2316       JFmLog.d(TAG, "nativeCb_fmTxCmdChangeAudioSource: entered");
2317
2318       JFmTx mJFmTx = getJFmTx(contextValue);
2319
2320       if (mJFmTx != null) {
2321
2322          ICallback callback = mJFmTx.callback;
2323
2324          JFmLog.d(TAG, "nativeCb_fmTxCmdChangeAudioSource: converting callback args");
2325
2326          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2327
2328          JFmLog.d(TAG, "nativeCb_fmTxCmdChangeAudioSource: calling callback");
2329
2330          callback.fmTxCmdChangeAudioSource(mJFmTx, txStatus, ccmVacUnavailResourceList);
2331
2332       }
2333
2334    }
2335
2336    @SuppressWarnings("unused")
2337    public static void nativeCb_fmTxCmdSetRdsTrafficCodes(long contextValue, int status,
2338          int taCode, int tpCode) {
2339
2340       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTrafficCodes: entered");
2341
2342       JFmTx mJFmTx = getJFmTx(contextValue);
2343
2344       if (mJFmTx != null) {
2345
2346          ICallback callback = mJFmTx.callback;
2347
2348          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTrafficCodes: converting callback args");
2349
2350          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2351
2352          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTrafficCodes: calling callback");
2353
2354          callback.fmTxCmdSetRdsTrafficCodes(mJFmTx, txStatus, taCode, tpCode);
2355
2356       }
2357
2358    }
2359
2360    @SuppressWarnings("unused")
2361    public static void nativeCb_fmTxCmdGetRdsTrafficCodes(long contextValue, int status,
2362          int taCode, int tpCode) {
2363
2364       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTrafficCodes: entered");
2365
2366       JFmTx mJFmTx = getJFmTx(contextValue);
2367
2368       if (mJFmTx != null) {
2369
2370          ICallback callback = mJFmTx.callback;
2371
2372          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTrafficCodes: converting callback args");
2373
2374          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2375
2376          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTrafficCodes: calling callback");
2377
2378          callback.fmTxCmdGetRdsTrafficCodes(mJFmTx, txStatus, taCode, tpCode);
2379
2380       }
2381
2382    }
2383
2384    @SuppressWarnings("unused")
2385    public static void nativeCb_fmTxCmdSetRdsTextPsMsg(long contextValue, int status, int msgLen,
2386          byte[] msg) {
2387
2388       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextPsMsg: entered");
2389
2390       JFmTx mJFmTx = getJFmTx(contextValue);
2391
2392       if (mJFmTx != null) {
2393
2394          ICallback callback = mJFmTx.callback;
2395
2396          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextPsMsg: converting callback args");
2397
2398          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2399
2400          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextPsMsg: calling callback");
2401
2402          callback.fmTxCmdSetRdsTextPsMsg(mJFmTx, txStatus, msgLen, msg);
2403
2404       }
2405
2406    }
2407
2408    @SuppressWarnings("unused")
2409    public static void nativeCb_fmTxCmdGetRdsTextPsMsg(long contextValue, int status, int msgLen,
2410          byte[] msg) {
2411
2412       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextPsMsg: entered");
2413
2414       JFmTx mJFmTx = getJFmTx(contextValue);
2415
2416       if (mJFmTx != null) {
2417
2418          ICallback callback = mJFmTx.callback;
2419
2420          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextPsMsg: converting callback args");
2421
2422          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2423
2424          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextPsMsg: calling callback");
2425
2426          callback.fmTxCmdGetRdsTextPsMsg(mJFmTx, txStatus, msgLen, msg);
2427
2428       }
2429
2430    }
2431
2432    @SuppressWarnings("unused")
2433    public static void nativeCb_fmTxCmdSetRdsTextRtMsg(long contextValue, int status, int msgType,
2434          int msgLen, byte[] msg) {
2435
2436       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextRtMsg: entered");
2437
2438       JFmTx mJFmTx = getJFmTx(contextValue);
2439
2440       if (mJFmTx != null) {
2441
2442          ICallback callback = mJFmTx.callback;
2443
2444          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextRtMsg: converting callback args");
2445
2446          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2447
2448          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsTextRtMsg: calling callback");
2449
2450          callback.fmTxCmdSetRdsTextRtMsg(mJFmTx, txStatus, msgType, msgLen, msg);
2451
2452       }
2453
2454    }
2455
2456    @SuppressWarnings("unused")
2457    public static void nativeCb_fmTxCmdGetRdsTextRtMsg(long contextValue, int status, int msgType,
2458          int msgLen, byte[] msg) {
2459
2460       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextRtMsg: entered");
2461
2462       JFmTx mJFmTx = getJFmTx(contextValue);
2463
2464       if (mJFmTx != null) {
2465
2466          ICallback callback = mJFmTx.callback;
2467
2468          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextRtMsg: converting callback args");
2469
2470          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2471
2472          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsTextRtMsg: calling callback");
2473
2474          callback.fmTxCmdGetRdsTextRtMsg(mJFmTx, txStatus, msgType, msgLen, msg);
2475
2476       }
2477
2478    }
2479
2480    @SuppressWarnings("unused")
2481    public static void nativeCb_fmTxCmdSetInterruptMask(long contextValue, int status, long value) {
2482
2483       JFmLog.d(TAG, "nativeCb_fmTxCmdSetInterruptMask: entered");
2484
2485       JFmTx mJFmTx = getJFmTx(contextValue);
2486
2487       if (mJFmTx != null) {
2488
2489          ICallback callback = mJFmTx.callback;
2490
2491          JFmLog.d(TAG, "nativeCb_fmTxCmdSetInterruptMask: converting callback args");
2492
2493          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2494
2495          JFmLog.d(TAG, "nativeCb_fmTxCmdSetInterruptMask: calling callback");
2496
2497          callback.fmTxCmdSetInterruptMask(mJFmTx, txStatus, value);
2498
2499       }
2500
2501    }
2502
2503    /*
2504    * @SuppressWarnings("unused") public static void
2505    * nativeCb_fmTxCmdGetInterruptMask(long contextValue, int status, long
2506    * value) { JFmLog.d(TAG, "nativeCb_fmTxCmdGetInterruptMask: entered");
2507    * JFmTx mJFmTx = getJFmTx(contextValue); if (mJFmTx != null) { ICallback
2508    * callback = mJFmTx.callback; JFmLog.d(TAG,
2509    * "nativeCb_fmTxCmdGetInterruptMask: converting callback args");
2510    * JFmLog.d(TAG, "nativeCb_fmTxCmdGetInterruptMask: calling callback");
2511    * callback.fmTxCmdGetInterruptMask(mJFmTx, status, value); } }
2512    */
2513    @SuppressWarnings("unused")
2514    public static void nativeCb_fmTxCmdSetRdsExtendedCountryCode(long contextValue, int status,
2515          long value) {
2516
2517       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsExtendedCountryCode: entered");
2518
2519       JFmTx mJFmTx = getJFmTx(contextValue);
2520
2521       if (mJFmTx != null) {
2522
2523          ICallback callback = mJFmTx.callback;
2524
2525          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsExtendedCountryCode: converting callback args");
2526
2527          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2528
2529          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsExtendedCountryCode: calling callback");
2530
2531          callback.fmTxCmdSetRdsExtendedCountryCode(mJFmTx, txStatus, value);
2532
2533       }
2534
2535    }
2536
2537    @SuppressWarnings("unused")
2538    public static void nativeCb_fmTxCmdGetRdsExtendedCountryCode(long contextValue, int status,
2539          long value) {
2540
2541       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsExtendedCountryCode: entered");
2542
2543       JFmTx mJFmTx = getJFmTx(contextValue);
2544
2545       if (mJFmTx != null) {
2546
2547          ICallback callback = mJFmTx.callback;
2548
2549          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsExtendedCountryCode: converting callback args");
2550
2551          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2552
2553          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsExtendedCountryCode: calling callback");
2554
2555          callback.fmTxCmdGetRdsExtendedCountryCode(mJFmTx, txStatus, value);
2556
2557       }
2558
2559    }
2560
2561    @SuppressWarnings("unused")
2562    public static void nativeCb_fmTxCmdChangeDigitalAudioConfiguration(long contextValue,
2563          int status, long value) {
2564
2565       JFmLog.d(TAG, "nativeCb_fmTxCmdChangeDigitalAudioConfiguration: entered");
2566
2567       JFmTx mJFmTx = getJFmTx(contextValue);
2568
2569       if (mJFmTx != null) {
2570
2571          ICallback callback = mJFmTx.callback;
2572
2573          JFmLog.d(TAG,
2574                "nativeCb_fmTxCmdChangeDigitalAudioConfiguration: converting callback args");
2575
2576          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2577
2578          JFmLog.d(TAG, "nativeCb_fmTxCmdChangeDigitalAudioConfiguration: calling callback");
2579
2580          callback.fmTxCmdChangeDigitalAudioConfiguration(mJFmTx, txStatus, value);
2581
2582       }
2583
2584    }
2585
2586    @SuppressWarnings("unused")
2587    public static void nativeCb_fmTxCmdWriteRdsRawData(long contextValue, int status, int len,
2588          byte[] msg) {
2589
2590       JFmLog.d(TAG, "nativeCb_fmTxCmdWriteRdsRawData: entered");
2591
2592       JFmTx mJFmTx = getJFmTx(contextValue);
2593
2594       if (mJFmTx != null) {
2595
2596          ICallback callback = mJFmTx.callback;
2597
2598          JFmLog.d(TAG, "nativeCb_fmTxCmdWriteRdsRawData: converting callback args");
2599
2600          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2601
2602          JFmLog.d(TAG, "nativeCb_fmTxCmdWriteRdsRawData: calling callback");
2603
2604          callback.fmTxCmdWriteRdsRawData(mJFmTx, txStatus, len, msg);
2605
2606       }
2607
2608    }
2609
2610    @SuppressWarnings("unused")
2611    public static void nativeCb_fmTxCmdReadRdsRawData(long contextValue, int status, int len,
2612          byte[] msg) {
2613
2614       JFmLog.d(TAG, "nativeCb_fmTxCmdReadRdsRawData: entered");
2615
2616       JFmTx mJFmTx = getJFmTx(contextValue);
2617
2618       if (mJFmTx != null) {
2619
2620          ICallback callback = mJFmTx.callback;
2621
2622          JFmLog.d(TAG, "nativeCb_fmTxCmdReadRdsRawData: converting callback args");
2623
2624          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2625
2626          JFmLog.d(TAG, "nativeCb_fmTxCmdReadRdsRawData: calling callback");
2627
2628          callback.fmTxCmdReadRdsRawData(mJFmTx, txStatus, len, msg);
2629
2630       }
2631
2632    }
2633
2634    @SuppressWarnings("unused")
2635    public static void nativeCb_fmTxCmdSetPowerLevel(long contextValue, int status, long value) {
2636
2637       JFmLog.d(TAG, "nativeCb_fmTxCmdSetPowerLevel: entered");
2638
2639       JFmTx mJFmTx = getJFmTx(contextValue);
2640
2641       if (mJFmTx != null) {
2642
2643          ICallback callback = mJFmTx.callback;
2644
2645          JFmLog.d(TAG, "nativeCb_fmTxCmdSetPowerLevel: converting callback args");
2646
2647          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2648
2649          JFmLog.d(TAG, "nativeCb_fmTxCmdSetPowerLevel: calling callback");
2650
2651          callback.fmTxCmdSetPowerLevel(mJFmTx, txStatus, value);
2652
2653       }
2654
2655    }
2656
2657    @SuppressWarnings("unused")
2658    public static void nativeCb_fmTxCmdGetPowerLevel(long contextValue, int status, long value) {
2659
2660       JFmLog.d(TAG, "nativeCb_fmTxCmdGetPowerLevel: entered");
2661
2662       JFmTx mJFmTx = getJFmTx(contextValue);
2663
2664       if (mJFmTx != null) {
2665
2666          ICallback callback = mJFmTx.callback;
2667
2668          JFmLog.d(TAG, "nativeCb_fmTxCmdGetPowerLevel: converting callback args");
2669
2670          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2671
2672          JFmLog.d(TAG, "nativeCb_fmTxCmdGetPowerLevel: calling callback");
2673
2674          callback.fmTxCmdGetPowerLevel(mJFmTx, txStatus, value);
2675
2676       }
2677
2678    }
2679
2680    @SuppressWarnings("unused")
2681    public static void nativeCb_fmTxCmdSetRdsPsDispalyMode(long contextValue, int status, long value) {
2682
2683       JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDispalyMode: entered");
2684
2685       JFmTx mJFmTx = getJFmTx(contextValue);
2686
2687       if (mJFmTx != null) {
2688
2689          ICallback callback = mJFmTx.callback;
2690
2691          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDispalyMode: converting callback args");
2692
2693          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2694
2695          JFmLog.d(TAG, "nativeCb_fmTxCmdSetRdsPsDispalyMode: calling callback");
2696
2697          callback.fmTxCmdSetRdsPsDispalyMode(mJFmTx, txStatus, value);
2698
2699       }
2700
2701    }
2702
2703    @SuppressWarnings("unused")
2704    public static void nativeCb_fmTxCmdGetRdsPsDispalyMode(long contextValue, int status, long value) {
2705
2706       JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDispalyMode: entered");
2707
2708       JFmTx mJFmTx = getJFmTx(contextValue);
2709
2710       if (mJFmTx != null) {
2711
2712          ICallback callback = mJFmTx.callback;
2713
2714          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDispalyMode: converting callback args");
2715
2716          JFmTxStatus txStatus = JFmUtils.getEnumConst(JFmTxStatus.class, status);
2717
2718          JFmLog.d(TAG, "nativeCb_fmTxCmdGetRdsPsDispalyMode: calling callback");
2719
2720          callback.fmTxCmdGetRdsPsDispalyMode(mJFmTx, txStatus, value);
2721
2722       }
2723
2724    }
2725
2726    /******************************************************************************************
2727    * Private utility functions
2728    *******************************************************************************************/
2729
2730    private static JFmTx getJFmTx(long contextValue) {
2731       JFmTx jFmTx;
2732
2733       JFmContext profileContext = new JFmContext(contextValue);
2734
2735       if (mTxContextsTable.containsKey(profileContext)) {
2736          jFmTx = mTxContextsTable.get(profileContext);
2737       } else {
2738          JFmLog.e(TAG, "JFmTx: Failed mapping context " + contextValue + " to a callback");
2739          jFmTx = null;
2740       }
2741
2742       return jFmTx;
2743    }
2744
2745} /* End class */
2746