13ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*
23ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
33ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Copyright 2001-2011 Texas Instruments, Inc. - http://www.ti.com/
43ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
53ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License");
63ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * you may not use this file except in compliance with the License.
73ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * You may obtain a copy of the License at
83ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
93ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *    http://www.apache.org/licenses/LICENSE-2.0
103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru *
113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software
123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS,
133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * See the License for the specific language governing permissions and
153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * limitations under the License.
163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru */
173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupackage com.ti.fmtxapp;
193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.Activity;
213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.Intent;
223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.os.Bundle;
233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.view.Menu;
243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.view.MenuItem;
253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.view.View;
263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.util.Log;
273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.CheckBox;
283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.EditText;
293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.Button;
303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.CompoundButton;
313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.CompoundButton.OnCheckedChangeListener;
323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.AlertDialog;
333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.view.KeyEvent;
343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.view.View.OnKeyListener;
353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.widget.Toast;
363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.ProgressDialog;
373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.BroadcastReceiver;
383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.os.Handler;
393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.os.Message;
403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.Context;
413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.Intent;
423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.IntentFilter;
433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.Notification;
443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.NotificationManager;
453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.app.PendingIntent;
463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.SharedPreferences;
473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.DialogInterface;
483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************** For calling lower layer********************/
503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport com.ti.fm.FmRadio;
513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport com.ti.fm.FmRadioIntent;
523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport com.ti.fm.IFmConstants;
533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/**************************************************************/
543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupublic class FmTx extends Activity implements View.OnClickListener,
563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste QueruOnCheckedChangeListener,OnKeyListener,FmTxAppConstants,FmRadio.ServiceListener{
573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Called when the activity is first created. */
583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public static final String TAG = "FmTxApp";
593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /********************************************
613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     * Menu Constants
623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     ********************************************/
633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public static final int MENU_CONFIGURE = Menu.FIRST + 1;
643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru//    public static final int MENU_ADVANCED = Menu.FIRST + 2;
653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public static final int MENU_EXIT = Menu.FIRST + 2;
663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public static final int MENU_ABOUT = Menu.FIRST + 3;
673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /********************************************
703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     * Initail values
713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     ********************************************/
723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mTxMode = INITIAL_VAL;
733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mPiCode = INITIAL_VAL;
743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mAfCode = INITIAL_VAL;
753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mTuneFreq = INITIAL_VAL;
763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mDeEmpFilter = INITIAL_VAL;
773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mPowerLevel = INITIAL_VAL;
783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mRepertoire = INITIAL_VAL;
793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mMonoStereo = INITIAL_VAL;
803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mDisplayMode = INITIAL_VAL;
813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mEcc = INITIAL_VAL;
823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mTxMusicSpeech = INITIAL_VAL;
833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mTxEmpFilter = INITIAL_VAL;
843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mTxPtyCode = INITIAL_VAL;
853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private Float mFreq = (float)INITIAL_VAL;
863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    //private int mMute = INITIAL_VAL;
873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /*Flag to check if service is connected*/
883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    boolean mFmServiceConnected = false;
893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public SharedPreferences fmTxPreferences;
923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private int mAppState = STATE_DEFAULT;
933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public static Float freqValue = (float)0;
953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private ProgressDialog pd = null,configPd;
963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public static FmRadio sFmRadio;
983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private CheckBox startTxBtn,enableRdsBtn,chbMute;
993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private EditText textFreq;
1003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private boolean mStatus;
1013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private Button btnOk;
1023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private boolean isFmEnabled = false;
1033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /* Actvity result index */
1053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public static final int ACTIVITY_CONFIG = 1;
1063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private NotificationManager mNotificationManager;
1093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Context mContext;
1123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    @Override
1143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onCreate(Bundle savedInstanceState) {
1153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       super.onCreate(savedInstanceState);
1163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       Log.d(TAG, "onCreate enter");
1173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       mContext = this;
1183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    // Register for FM TX intent broadcasts.
1213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    IntentFilter intentFilter = new IntentFilter();
1223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_ENABLED_ACTION);
1233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_TUNE_ACTION);
1243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_DISABLED_ACTION);
1253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_START_TRANSMISSION_ACTION);
1263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_STOP_TRANSMISSION_ACTION);
1273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_DESTROY_ACTION);
1283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_ENABLE_RSD_ACTION);
1293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_DISABLE_RSD_ACTION);
1303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_PS_DISPLAY_MODE_ACTION);
1313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_RDS_MUSIC_SPEECH_FLAG_ACTION);
1323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_RDS_TEXT_REPERTOIRE_ACTION);
1333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_TRANSMISSION_MODE_ACTION);
1343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_POWER_LEVEL_ACTION);
1353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_RDS_TEXT_PS_MSG_ACTION);
1363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_MONO_STEREO_MODE_ACTION);
1373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_MUTE_MODE_ACTION);
1383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    intentFilter.addAction(FmRadioIntent.FM_TX_SET_RDS_TRANSMISSION_GROUPMASK_ACTION);
1393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    registerReceiver(mReceiver, intentFilter);
1403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        sFmRadio = new FmRadio(this, this);
1433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       setContentView(R.layout.main);
1453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    initControls();
1463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    loadlastSaveddata();
1473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
1503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru  @Override
1523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onPause() {
1533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       super.onPause();
1543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       Log.d(TAG, "onPause enter");
1553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       saveLastData();
1563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
1573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/******************************************
1583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
1593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*        enableTx()
1603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
1613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*******************************************/
1623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       private void enableTx()
1633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       {
1643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       Log.i(TAG,"enableTx()");
1663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    switch (sFmRadio.txGetFMState()){
1683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    case STATE_DISABLED:
1703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    case STATE_DEFAULT:
1713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mStatus = sFmRadio.txEnable();
1723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mStatus == false) {
1733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx --> Cannot enable TX !!");
1743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        CharSequence text = "Sorry!! Cannot enable TX";
1763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int duration = Toast.LENGTH_SHORT;
1773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Toast toast = Toast.makeText(mContext, text, duration);
1793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        toast.setGravity(android.view.Gravity.CENTER_VERTICAL, 0, 0);
1803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        toast.show();
1813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        finish();
1833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
1853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        else{
1863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx --> Enabling TX !!");
1873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            pd = ProgressDialog.show(this, "Please wait..",    "Enabling FM TX", true, false);
1883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
1893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        break;
1923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    case STATE_ENABLED:
1943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             loadlastSaveddata();
1953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx is already Enabled.");
1963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        break;
1973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
1983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
1993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       }
2023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupublic void onServiceConnected() {
2053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "onServiceConnected");
2063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    mFmServiceConnected =true;
2073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    enableTx();
2083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
2093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupublic void onServiceDisconnected() {
2113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.d(TAG, "Lost connection to service");
2123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    mFmServiceConnected =false;
2133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    sFmRadio = null;
2143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
2153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/******************************************
2183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
2193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*        onCreateOptionsMenu()
2203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
2213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*******************************************/
2223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public boolean onCreateOptionsMenu(Menu menu) {
2233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            super.onCreateOptionsMenu(menu);
2253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            MenuItem item;
2263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            item = menu.add(0, MENU_CONFIGURE, 0, R.string.configure);
2283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            item.setIcon(R.drawable.configure);
2293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            /*item = menu.add(0, MENU_ADVANCED, 0, R.string.advanced);
2323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            item.setIcon(R.drawable.configure);*/
2333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            item = menu.add(0, MENU_ABOUT, 0, R.string.about);
2353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            item.setIcon(R.drawable.icon);
2363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            item = menu.add(0, MENU_EXIT, 0, R.string.exit);
2383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            item.setIcon(R.drawable.icon);
2393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
2413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/******************************************
2443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
2453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* onOptionsItemSelected()
2463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*Handles item selections
2473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
2483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*******************************************/
2493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public boolean onOptionsItemSelected(MenuItem item) {
2513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            switch (item.getItemId()) {
2533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case MENU_CONFIGURE:
2543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            /* Start the configuration window */
2563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Intent irds = new Intent("android.intent.action.RDSPARAM_CONFIG");
2573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startActivityForResult(irds, ACTIVITY_CONFIG);
2583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
2603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     /*    case MENU_ADVANCED:
2623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Intent iAdvanced = new Intent("android.intent.action.TXPARAM_CONFIG");
2633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startActivityForResult(iAdvanced, ACTIVITY_ADVANCED);
2643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             break;*/
2673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case MENU_EXIT:
2693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                saveLastData();
2703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                /*
2713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                 * The exit from the FM application happens here The audio will be
2723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                 * disabled and when he callback for this is recived, FM will be
2733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                 * disabled
2743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                 */
2753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mStatus = sFmRadio.txDisable();
2763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (mStatus == false) {
2773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> Cannot Disable TX !!");
2783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
2803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                else{
2813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> Disabling TX !!");
2823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
2833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
2843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case MENU_ABOUT:
2863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                /* Start the help window */
2873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Intent iTxHelp = new Intent("android.intent.action.START_TXABOUT");
2883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                startActivity(iTxHelp);
2893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
2903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
2933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return super.onOptionsItemSelected(item);
2943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
2953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
2973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /** Adds Delay of 2 seconds */
2983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void insertDelayThread() {
2993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        new Thread() {
3013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            public void run() {
3023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                try {
3033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    // Add some delay to make sure all configuration has been
3043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    // completed.
3053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    sleep(2000);
3063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                } catch (Exception e) {
3073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    Log.e(TAG, "InsertDelayThread()-- Exception !!");
3083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
3093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                // Dismiss the Dialog
3103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                configPd.dismiss();
3113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
3123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }.start();
3133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
3183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onActivityResult(requestCode, resultCode, data);
3193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onActivityResult");
3203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (requestCode) {
3213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*        case (ACTIVITY_ADVANCED):{
3233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (resultCode == Activity.RESULT_OK) {
3243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    setAdvancedConfig();
3253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    configPd = ProgressDialog.show(this, "Please wait..",
3263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            "Applying Advanced Configuration", true, false);
3273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    // The delay is inserted to make sure all the configurations
3283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    // have been completed.
3293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    insertDelayThread();
3303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
3323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        break;
3343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*/
3363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case (ACTIVITY_CONFIG): {
3383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (resultCode == Activity.RESULT_OK) {
3393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                //Log.i(TAG, "ActivityFmRdsConfig configurationState "+ configurationState);
3403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    setRdsConfig();
3423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    setAdvancedConfig();
3433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    configPd = ProgressDialog.show(this, "Please wait..",
3443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            "Applying new Configuration", true, false);
3453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    // The delay is inserted to make sure all the configurations
3463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    // have been completed.
3473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    insertDelayThread();
3483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
3503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
3523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************************************
3603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste QuerusetAdvancedConfig()
3623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************/
3643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruprivate void setAdvancedConfig()
3653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru{
3663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "setAdvancedConfig");
3673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    SharedPreferences fmTxParamConfigPreferences = getSharedPreferences(                "fmConfigPreferences", MODE_PRIVATE);
3683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    //Set Music-Speech Flag
3713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*    int txMusicSpeech = fmTxParamConfigPreferences.getInt(MUSIC_SPEECH, DEFAULT_MUSICSPEECH);
3723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG,"setAdvancedConfig-- >txMusicSpeech = "+txMusicSpeech);
3733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    if (mTxMusicSpeech != txMusicSpeech) {
3743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mTxMusicSpeech = txMusicSpeech;
3753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mStatus = sFmRadio.txSetRdsMusicSpeechFlag(txMusicSpeech);
3763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mStatus == false) {
3773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> txSetRdsMusicSpeechFlag TX failed !!");
3783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        else{
3803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> TX txSetRdsMusicSpeechFlag is SUCCESSFUll !!");
3813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*/
3843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    //Set Pre-Emp Filter
3853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*    int txEmpFilter = fmTxParamConfigPreferences.getInt(EMP_FILTER, DEFAULT_EMPFILTER);
3863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG,"setAdvancedConfig-- >txEmpFilter = "+txMusicSpeech);
3873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    if (mTxEmpFilter != txEmpFilter) {
3883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mTxEmpFilter = txEmpFilter;
3893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mStatus = sFmRadio.txSetPreEmphasisFilter(txEmpFilter);
3903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mStatus == false) {
3913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> txSetPreEmphasisFilter TX failed !!");
3923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        else{
3943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> TX txSetPreEmphasisFilter is SUCCESSFUll !!");
3953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
3963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
3973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*/
3983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
3993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    // Before Setting RT String , set the Tx group Mask
4003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "txSetRdsTransmittedGroupsMask(RT)");
4023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    mStatus = sFmRadio.txSetRdsTransmittedGroupsMask(RDS_RADIO_TRANSMITTED_GRP_RT_MASK | RDS_RADIO_TRANSMITTED_GRP_PS_MASK);
4033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    if (mStatus == false) {
4043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "Fm Tx--> txSetRdsTransmittedGroupsMask TX failed !!");
4053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }else{
4063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "Fm Tx--> TX txSetRdsTransmittedGroupsMask is SUCCESSFUll !!");
4073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
4083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       //Set Radio Text Code
4103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       String txRTCode = fmTxParamConfigPreferences.getString(RT_STRING, DEF_RT_STRING);
4123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    boolean rtMask= fmTxParamConfigPreferences.getBoolean(RTENABLED,false);
4133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    int rds_mode = 2;
4143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       Log.i(TAG,"setAdvancedConfig-- >txRT = "+txRTCode);
4163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       if (rtMask) {
4173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             mStatus = sFmRadio.txSetRdsTextRtMsg(rds_mode, txRTCode, txRTCode.length());
4183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             if (mStatus == false) {
4193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> txSetRdsRadioText TX failed !!");
4203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             }
4213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             else{
4223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> TX txSetRdsRadioText is SUCCESSFUll !!");
4233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             }
4243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     }else {
4253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        txRTCode = "";
4263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mStatus = sFmRadio.txSetRdsTextRtMsg(rds_mode, txRTCode, txRTCode.length());
4273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             if (mStatus == false) {
4283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> txSetRdsRadioText TX failed !!");
4293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             }
4303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             else{
4313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> TX txSetRdsRadioText is Emty!!");
4323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             }
4333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
4343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       //Set PS Name
4363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       String txPSName = fmTxParamConfigPreferences.getString(PS_STRING, DEF_PS_STRING);
4373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    boolean psMask= fmTxParamConfigPreferences.getBoolean(PSENABLED,false);
4383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       Log.i(TAG,"setAdvancedConfig-- >txPSName = "+txPSName);
4403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru       if (psMask) {
4413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             mStatus = sFmRadio.txSetRdsTextPsMsg(txPSName);
4423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             if (mStatus == false) {
4433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> txSetRdsPSName TX failed !!");
4443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             }
4453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             else{
4463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> TX txSetRdsPSName is SUCCESSFUll !!");
4473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             }
4483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     }else {
4493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        txPSName = "";
4503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             mStatus = sFmRadio.txSetRdsTextPsMsg(txPSName);
4513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             if (mStatus == false) {
4523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> txSetRdsPSName TX failed !!");
4533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             }
4543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             else{
4553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru             Log.i(TAG, "Fm Tx--> TX txSetRdsPSName is Empty !!");
4563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
4583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    //Set Pty Code
4603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    int txPtyCode = fmTxParamConfigPreferences.getInt(PTY,DEFAULT_PTY);
4613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG,"setAdvancedConfig-- >txPtyCode = "+txPtyCode);
4623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    if (mTxPtyCode != txPtyCode) {
4633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mTxPtyCode = txPtyCode;
4643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mStatus = sFmRadio.txSetRdsPtyCode(txPtyCode);
4653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mStatus == false) {
4663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> txSetRdsPtyCode TX failed !!");
4673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        else{
4693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> TX txSetRdsPtyCode is SUCCESSFUll !!");
4703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
4723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*
4743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    int ecc = fmTxParamConfigPreferences.getInt(ECC, DEFAULT_ECC);
4753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG,"setAdvancedConfig-- >ecc ="+ecc);
4763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    if (mEcc != ecc) {
4773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mEcc = ecc;
4783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mStatus = sFmRadio.txSetRdsECC(ecc);
4793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mStatus == false) {
4803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> txSetRdsECC TX failed !!");
4813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        else{
4833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> TX txSetRdsECC is SUCCESSFUll !!");
4843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
4853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
4863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*/
4873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
4903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************************************
4943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste QuerusetRdsConfig()
4963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
4973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************/
4983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruprivate void setRdsConfig()
4993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru{
5003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "setRdsConfig");
5013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        SharedPreferences fmConfigPreferences = getSharedPreferences(
5023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                "fmConfigPreferences", MODE_PRIVATE);
5033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        String psStr = fmConfigPreferences.getString(PS_STRING,DEF_PS_STRING);
5053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "setRdsConfig()--- psStr= " + psStr.toString());
5063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        String rtstr = fmConfigPreferences.getString(RT_STRING,DEF_RT_STRING);
5093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "setRdsConfig()--- RtStr= " + rtstr.toString());
5103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Set TxMode
5123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int txMode = fmConfigPreferences.getInt(TX_MODE, DEFAULT_TXMODE);
5133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"setRdsConfig-- >txMode = "+txMode);
5143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetRdsTransmissionMode(txMode);
5163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        /*if (mTxMode != txMode) {
5173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mTxMode = txMode;
5183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetRdsTransmissionMode(txMode);
5193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (mStatus == false) {
5203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> txSetRdsTransmissionMode TX failed !!");
5213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
5233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> TX txSetRdsTransmissionMode is SUCCESSFUll !!");
5243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }*/
5263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Set Ps DispalyMode
5283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        /*int psDisplayMode = fmConfigPreferences.getInt(DISPLAY_MODE, DEFAULT_DISPLAYMODE);
5293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"setRdsConfig-- >psDisplayMode = "+psDisplayMode);
5303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mDisplayMode != psDisplayMode) {
5313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mDisplayMode = txMode;
5323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetRdsPsDisplayMode(psDisplayMode);
5333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (mStatus == false) {
5343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> txSetRdsPsDisplayMode TX failed !!");
5353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
5373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> TX txSetRdsPsDisplayMode is SUCCESSFUll !!");
5383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }*/
5403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Set Mono/Stereo Flag
5443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int monoStereo = fmConfigPreferences.getInt(MONO_STEREO, DEFAULT_MONOSTEREO);
5453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"setRdsConfig-- >monoStereo = "+monoStereo);
5463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mMonoStereo != monoStereo) {
5473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mMonoStereo = monoStereo;
5483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetMonoStereoMode(monoStereo);
5493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (mStatus == false) {
5503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> txSetMonoStereoMode TX failed !!");
5513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
5533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> TX txSetMonoStereoMode is SUCCESSFUll !!");
5543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
5563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Set Repetoire
5593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        /*int repetoire = fmConfigPreferences.getInt(REPERTOIRE, DEFAULT_REPERTOIRE);
5603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"setRdsConfig-- >repetoire = "+repetoire);
5613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mMonoStereo != repetoire) {
5623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mMonoStereo = repetoire;
5633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetRdsTextRepertoire(repetoire);
5643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (mStatus == false) {
5653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> txSetRdsTextRepertoire TX failed !!");
5663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
5683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> TX txSetRdsTextRepertoire is SUCCESSFUll !!");
5693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
5703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }*/
5713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Before Setting Ps String , set the Tx group Mask
5743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        boolean rtMask= fmConfigPreferences.getBoolean(RTENABLED,false);
5753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        boolean psMask= fmConfigPreferences.getBoolean(PSENABLED,false);
5763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int rdsMask=(int) RDS_RADIO_TRANSMITTED_GRP_RT_MASK;
5773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if(rtMask)
5783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        rdsMask = (int) (rdsMask |RDS_RADIO_TRANSMITTED_GRP_RT_MASK) ;
5793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if(psMask)
5803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        rdsMask = (int) (rdsMask | RDS_RADIO_TRANSMITTED_GRP_PS_MASK);
5813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "txSetRdsTransmittedGroupsMask(rdsMask )" +rdsMask );
5833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mStatus = sFmRadio.txSetRdsTransmittedGroupsMask(RDS_RADIO_TRANSMITTED_GRP_PS_MASK);
5843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mStatus == false) {
5853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> txSetRdsTransmittedGroupsMask TX failed !!");
5863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }else{
5873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> TX txSetRdsTransmittedGroupsMask is SUCCESSFUll !!");
5883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
5893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
5933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Set Power Level
5943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int powerLevel = fmConfigPreferences.getInt(POWER,DEFAULT_POWER);
5953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"setRdsConfig-- >powerLevel ="+powerLevel);
5963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mPowerLevel != powerLevel) {
5973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mPowerLevel = powerLevel;
5983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetPowerLevel(powerLevel);
5993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (mStatus == false) {
6003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> txSetPowerLevel TX failed !!");
6013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
6033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> TX txSetPowerLevel is SUCCESSFUll !!");
6043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
6063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Set Pi Code
6103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int piCode = fmConfigPreferences.getInt(PI_CODE,DEFAULT_PICODE);
6113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"setRdsConfig-- >piCode =" +    piCode );
6123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mPiCode != piCode) {
6143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mPiCode = piCode;
6153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetRdsPiCode(piCode);
6163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (mStatus == false) {
6173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> txSetRdsPiCode TX failed !!");
6183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
6203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> TX txSetRdsPiCode is SUCCESSFUll !!");
6213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
6233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Set Af Code
6263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int afCode = fmConfigPreferences.getInt(AF_CODE,DEFAULT_AFCODE);
6273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"setRdsConfig-- >afCode = "+afCode);
6283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (mAfCode != afCode) {
6293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mAfCode = afCode;
6303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            mStatus = sFmRadio.txSetRdsAfCode(afCode);
6313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (mStatus == false) {
6323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> txSetRdsAfCode TX failed !!");
6333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
6353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Fm Tx--> TX txSetRdsAfCode is SUCCESSFUll !!");
6363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
6383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
6423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/************************************************************************************
6433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
6443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* initControls()
6453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* Initialize all the UI controls
6463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
6473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************************/
6483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public void initControls()
6493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        {
6503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         startTxBtn  = (CheckBox)findViewById(R.id.ChbTx);
6513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         startTxBtn.setOnCheckedChangeListener(this);
6523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         enableRdsBtn  = (CheckBox)findViewById(R.id.chbEnableRds);
6543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         enableRdsBtn.setOnCheckedChangeListener(this);
6553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbMute = (CheckBox)findViewById(R.id.chbMute);
6573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru              chbMute.setOnCheckedChangeListener(this);
6583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        textFreq = (EditText)findViewById(R.id.edtTxFreq);
6603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnOk = (Button) findViewById(R.id.btnOk);
6623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnOk.setOnKeyListener(this);
6633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        btnOk.setOnClickListener(this);
6643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // Get the notification manager service.
6663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
6673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
6703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/************************************************************************************
6733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
6743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* onCheckedChanged()
6753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
6763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************************/
6773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public void onCheckedChanged(CompoundButton btn, boolean checkedState) {
6793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            // TODO Auto-generated method stub
6803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            /*if (checkedState ){
6813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setText("Uncheck to stop Tx");
6823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else{
6843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            //sFmRadio.txStopTransmission();
6863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setText("Check to start Tx");
6873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }*/
6893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
6903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int id = btn.getId();
6913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (id) {
6923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case R.id.ChbTx:
6933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (checkedState ){
6943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setText("Uncheck to stop Tx");
6953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }else{
6963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setText("Check to start Tx");
6973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
6983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
6993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case R.id.chbEnableRds:
7013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (checkedState ){
7023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            enableRdsBtn.setText("Uncheck to Disable Rds");
7033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }else{
7043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            enableRdsBtn.setText("Check to Enable Rds");
7053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
7063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
7073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        default:
7093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
7103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
7113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
7123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/************************************************************************************
7143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* BaseFreq()
7163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************************/
7183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    static float BaseFreq() {
7193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return APP_FM_FIRST_FREQ_US_EUROPE_KHZ;
7203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
7213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/************************************************************************************
7243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*LastFreq()
7263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************************/
7283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    static float LastFreq() {
7293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return APP_FM_LAST_FREQ_US_EUROPE_KHZ;
7303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
7313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/************************************************************************************
7343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* Update the Frequency label with the given value
7353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************************/
7373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    float UpdateFrequency(float freq) {
7403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.d(TAG, "FM App: UpdateFrequency %d." + freq);
7413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (freq < BaseFreq() || freq > LastFreq()) {
7423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            freq = 0;
7433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
7443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.d(TAG, "FM App: returned %d." + freq);
7453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return (float) freq;
7463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
7473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/************************************************************************************
7493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*       writeFrequency()
7503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************************/
7523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void writeFrequency() {
7533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        // get the text entered in edit box
7543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        String text = textFreq.getText().toString();
7553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.d("writeFrequency()","--> text ="+text);
7563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        try {
7573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            float iFreq = Float.parseFloat(text);
7593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.d("writeFrequency()","--> iFreq ="+iFreq);
7603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Float validFreq = UpdateFrequency(iFreq);
7613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (validFreq != 0) {
7623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                freqValue = validFreq;
7633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
7653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            else {
7663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                new AlertDialog.Builder(this).setIcon(
7673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        android.R.drawable.ic_dialog_alert).setMessage(
7683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        "Enter valid frequency!!").setNegativeButton(
7693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        android.R.string.ok, null).show();
7703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                textFreq.setText(null);
7713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
7723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        } catch (NumberFormatException nfe) {
7733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.d(TAG, "NumberFormatException:" + nfe.getMessage());
7743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            new AlertDialog.Builder(this).setIcon(
7753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    android.R.drawable.ic_dialog_alert).setMessage(
7763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Enter valid number!!").setNegativeButton(
7773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    android.R.string.ok, null).show();
7783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            textFreq.setText(null);
7793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                   freqValue = (float) 0;
7803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
7813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
7833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
7843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************************************************************************
7853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* This is a method implementation of OnKeyListener
7873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
7883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************/
7893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public boolean onKey(View v, int keyCode, KeyEvent event) {
7903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,"onKey()");
7913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if (event.getAction() == KeyEvent.ACTION_DOWN) {
7923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            switch (keyCode) {
7933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case KeyEvent.KEYCODE_DPAD_CENTER:
7943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case KeyEvent.KEYCODE_ENTER:
7953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                writeFrequency();
7963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (startTxBtn.isChecked()){
7973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                 // Tune TX
7983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "Fm Tx--> TX Tune is (long)(freqValue.floatValue()*1000) !!"+(long)(freqValue.floatValue()*1000));
7993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                     mStatus =  sFmRadio.txTune((long)(freqValue.floatValue()*1000));
8013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (mStatus == false) {
8023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> Tune TX failed !!");
8033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
8043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                else{
8053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> TX Tune is SUCCESSFUll !!");
8063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
8073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
8083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                return true;
8093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
8103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
8113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return false;
8123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
8133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************************************************************************
8163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
8173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* This is a method implementation of onKeyDown
8183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
8193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************/
8203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public boolean onKeyDown(int keyCode, KeyEvent event) {
8213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG,"onKeyDown()");
8223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (keyCode) {
8233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_DPAD_CENTER:
8243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            writeFrequency();
8253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (startTxBtn.isChecked()){
8263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                 /* Tune TX */
8273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                     mStatus =  sFmRadio.txTune((long)(freqValue.floatValue()*1000));
8283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (mStatus == false) {
8293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> Tune TX failed !!");
8303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
8313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                else{
8323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> TX Tune is SUCCESSFUll !!");
8333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
8343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
8363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_DPAD_UP:
8393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_BACK:
8423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_BACK");
8433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            finish();
8443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_HOME:
8473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_HOME");
8483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            //this.showNotification(R.drawable.radio, R.string.app_name,textFreq.getText(), false);
8493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            //moved the notification to TX
8503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            //finish();
8513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            /* Keys A to L are mapped to different get APIs for Testing */
8563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_A:
8573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru               Log.i("onKeyDown()","KEYCODE_A");
8583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetRdsTextPsMsg(psStr)    returned  = "
8593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetRdsTextPsMsg("psStr"));
8603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_B:
8633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_B");
8643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txWriteRdsRawData(RawData)    returned= "
8653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txWriteRdsRawData("RdsRawData"));
8663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_C:
8693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_C");
8703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            sFmRadio.txSetRdsTransmissionMode(1);
8713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_D:
8753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_D");
8763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetMonoStereoMode(0)    returned= "
8773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetMonoStereoMode(0));
8783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_E:
8813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_E");
8823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetPreEmphasisFilter(1)    returned = "
8833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetPreEmphasisFilter(1));
8843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return true;
8853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_F:
8873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_F");
8883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru              Log.i(TAG, "Testing txSetMuteMode(0) returned = "
8893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetMuteMode(0));
8903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return true;
8913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_G:
8933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_G");
8943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetRdsAfCode(224)  returned = "
8953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetRdsAfCode(224));
8963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
8973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
8983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_H:
8993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_H");
9003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,"Testing txSetRdsPiCode(5)    returned = "
9013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txSetRdsPiCode(5));
9023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_I:
9053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_I");
9063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetRdsPtyCode(0) returned  = "
9073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetRdsPtyCode(0));
9083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_J:
9113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_J");
9123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetRdsTextRepertoire(0) returned = "
9133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetRdsTextRepertoire(0));
9143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_K:
9173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_K");
9183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,"Testing txSetRdsPsDisplayMode(0) returned = "
9193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txSetRdsPsDisplayMode(0));
9203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_L:
9233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_L");
9243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txChangeDigitalSourceConfiguration(1)    returned  = "
9253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txChangeDigitalSourceConfiguration(1));
9263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_M:
9303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_M");
9313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetRdsPsScrollSpeed(3)    returned  = "
9323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetRdsPsScrollSpeed(3));
9333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_N:
9363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_N");
9373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetRdsTextRtMsg(2,RtMsg,5)    returned  = "
9383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetRdsTextRtMsg(2,"RtMsg",5));
9393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_O:
9423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_O");
9433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    Log.i(TAG,
9443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txSetRdsTransmittedGroupsMask(1) returned = "
9453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txSetRdsTransmittedGroupsMask(7));
9463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_P:
9493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_P");
9503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
9513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txSetRdsTrafficCodes(0,0)    returned = "
9523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txSetRdsTrafficCodes(0,0));
9533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_Q:
9573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_Q");
9583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
9593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txSetRdsMusicSpeechFlag(1)    returned = "
9603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txSetRdsMusicSpeechFlag(1));
9613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_R:
9653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_R");
9663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "Testing txSetRdsECC(0)    returned  = "
9673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    + sFmRadio.txSetRdsECC(0));
9683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_S:
9723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_S");
9733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
9743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txChangeAudioSource(0,0)    returned = "
9753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txChangeAudioSource(0,0));
9763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_T:
9793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_T");
9803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
9813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txEnableRds()    returned = "
9823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txEnableRds());
9833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_U:
9863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_U");
9873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
9883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txDisableRds()    returned = "
9893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txDisableRds());
9903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_V:
9933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_V");
9943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
9953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txStartTransmission()    returned = "
9963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txStartTransmission());
9973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
9983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
9993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_W:
10003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_W");
10013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
10023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txStopTransmission()    returned = "
10033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txStopTransmission());
10043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
10053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_X:
10073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_X");
10083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
10093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txSetPowerLevel()    returned = "
10103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txSetPowerLevel(0));
10113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
10123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case KeyEvent.KEYCODE_Y:
10143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i("onKeyDown()","KEYCODE_Y");
10153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG,
10163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    "Testing txTune()    returned = "
10173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                            + sFmRadio.txTune(104000));
10183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            return true;
10193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         }
10213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return false;
10223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
10233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruprivate void setMuteMode()
10273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru{
10283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG,"setMuteMode()");
10303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    // Mute
10313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    if(chbMute.isChecked()== true){
10323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    mStatus = sFmRadio.txSetMuteMode(0);
10333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }else{
10343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    mStatus = sFmRadio.txSetMuteMode(1);
10353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
10363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    if (mStatus == false) {
10383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "Fm Tx--> Cannot Mute TX !!");
10393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }else{
10403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    Log.i(TAG, "Fm Tx--> Muting TX !!");
10413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
10423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
10443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************************************************************************
10473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
10483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru* This is a method implementation of onClick
10493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
10503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************/
10513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onClick(View view) {
10523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onClick()");
10533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        int id = view.getId();
10543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        switch (id) {
10553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        case R.id.btnOk:
10563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            setMuteMode();
10573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            writeFrequency();
10583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            fmTxPreferences = getSharedPreferences("fmTxPreferences", MODE_PRIVATE);
10593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (startTxBtn.isChecked() && freqValue != 0 ){
10613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                          Log.i(TAG, " FM-------> mFreq:" + mFreq);
10623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                          Log.i(TAG, " FM-------> freqValue" + freqValue);
10633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if(((mFreq-freqValue) < -.00001) ||((mFreq-freqValue) > .00001)) {
10643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                     /* Tune TX */
10653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                     mFreq = freqValue;
10663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                                Log.i(TAG, " FM-------> mFreq:" + mFreq);
10673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    mStatus =  sFmRadio.txTune((long)(freqValue.floatValue()*1000));
10683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    Log.i(TAG, "Fm Tx--> Tune TX freqValue !!" +(long)(freqValue.floatValue()*1000));
10693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    if (mStatus == false) {
10703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    Log.i(TAG, "Fm Tx--> Tune TX failed !!");
10713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    }
10723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    else{
10733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    Log.i(TAG, "Fm Tx--> TX Tune is SUCCESSFUll !!");
10743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    }
10753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                } else {
10763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                     /* Already Tuned */
10773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                  mStatus = sFmRadio.txStartTransmission();
10783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                  if (mStatus == false) {
10793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    Log.i(TAG, "Fm Tx--> Stop Tx failed !!");
10803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                  }else {
10813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                    Log.i(TAG, "Fm Tx--> Stop Transmission is SUCCESSFUll !!");
10823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                  }
10833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
10843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }else{
10853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mStatus = sFmRadio.txStopTransmission();
10863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (mStatus == false) {
10873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> Stop Tx failed !!");
10883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
10893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                else{
10903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> Stop Transmission is SUCCESSFUll !!");
10913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
10923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
10943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
10953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if(enableRdsBtn.isChecked()){
10963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            sFmRadio.txEnableRds();
10973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }else{
10983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            sFmRadio.txDisableRds();
10993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
11003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
11043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        default:
11063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            break;
11073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
11083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
11093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************************************************************************
11133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
11143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
11153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
11163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************/
11173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private Handler mHandler = new Handler() {
11183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public void handleMessage(Message msg) {
11203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            switch (msg.what) {
11223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_ENABLED:
11253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_ENABLED");
11263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                isFmEnabled = true;
11273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mAppState = STATE_ENABLED;
11283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (pd != null){
11293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                pd.dismiss();
11303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
11313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                pd =null;
11323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_DISABLED:
11353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_DISABLED");
11363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                isFmEnabled = false;
11373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                 mAppState = STATE_DISABLED;
11383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                          startTxBtn.setChecked(false);
11393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                finish(); //Close the Activity
11403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_STARTTRANSMISSION:
11443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_STARTTRANSMISSION");
11453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_STOPTRANSMISSION:
11483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_STOPTRANSMISSION");
11493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_TUNE:
11523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mStatus = sFmRadio.txStartTransmission();
11533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (mStatus == false) {
11543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> TX txStartTransmission failed !!");
11553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
11563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                else{
11573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> TX is Transmitting..");
11583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
11593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_TUNE");
11603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_ENABLE_RDS:
11643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_ENABLE_RDS");
11653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_DISABLE_RDS:
11693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_DISABLE_RDS");
11703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_TRANSMISSION_MODE:
11733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_TRANSMISSION_MODE");
11743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_PS_DISPLAY_MODE:
11773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_PS_DISPLAY_MODE");
11783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_RDS_MUSIC_SPEECH_FLAG:
11813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_RDS_MUSIC_SPEECH_FLAG");
11823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_MONO_STEREO_MODE:
11853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_MONO_STEREO_MODE");
11863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_POWER_LEVEL:
11893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_POWER_LEVEL");
11903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_MUTE_MODE:
11933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_MUTE_MODE");
11943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
11963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_RDS_TEXT_PS_MSG:
11973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_RDS_TEXT_PS_MSG");
11983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
11993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_RDS_TX_GRP_MASK_PS:
12013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_RDS_TX_GRP_MASK_PS");
12023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                SharedPreferences fmConfigPreferences = getSharedPreferences(
12043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                "fmConfigPreferences", MODE_PRIVATE);
12053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                String psStr = fmConfigPreferences.getString(PS_STRING,DEF_PS_STRING);
12073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "txSetRdsTextPsMsg()--- psStr= " + psStr.toString());
12083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mStatus = sFmRadio.txSetRdsTextPsMsg(psStr);
12093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (mStatus == false) {
12103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> txSetRdsTextPsMsg TX failed !!");
12113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }else{
12123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> TX txSetRdsTextPsMsg is SUCCESSFUll !!");
12133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
12143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
12153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            case EVENT_FM_TX_SET_RDS_TX_GRP_MASK_RT:
12173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter handleMessage ----EVENT_FM_TX_SET_RDS_TX_GRP_MASK_RT");
12183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                SharedPreferences fmTxParamConfigPreferences = getSharedPreferences(
12203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                "fmTxParamConfigPreferences", MODE_PRIVATE);
12213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                String rtStr = fmTxParamConfigPreferences.getString(RT_STRING,DEF_RT_STRING);
12233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "txSetRdsTextRtMsg()--- rtStr= " + rtStr.toString());
12243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mStatus = sFmRadio.txSetRdsTextRtMsg(RDS_TEXT_TYPE_RT_B,rtStr,rtStr.length()); //msgType =4
12253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if (mStatus == false) {
12263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> txSetRdsTextRtMsg TX failed !!");
12273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }else{
12283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "Fm Tx--> TX txSetRdsTextRtMsg is SUCCESSFUll !!");
12293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
12303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                break;
12313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru }}};
12343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/*************************************************************************
12373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
12383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
12393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*
12403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru*************************************************************************/
12413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
12423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        public void onReceive(Context context, Intent intent) {
12433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            String fmAction = intent.getAction();
12443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            Log.i(TAG, "enter onReceive" + fmAction);
12453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_ENABLED_ACTION)) {
12463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_ENABLED_ACTION " + fmAction);
12473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler
12483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        .obtainMessage(EVENT_FM_TX_ENABLED, 0));
12493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_DISABLED_ACTION)) {
12523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_DISABLED_ACTION " + fmAction);
12533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_DISABLED,
12543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_TUNE_ACTION)) {
12583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_TUNE_ACTION " + fmAction);
12593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_TUNE,
12603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_START_TRANSMISSION_ACTION)) {
12643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_START_TRANSMISSION_ACTION " + fmAction);
12653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_STARTTRANSMISSION,
12663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_STOP_TRANSMISSION_ACTION)) {
12703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_STOP_TRANSMISSION_ACTION " + fmAction);
12713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_STOPTRANSMISSION,
12723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_DESTROY_ACTION)) {
12763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_DESTROY_ACTION " + fmAction);
12773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_DESTROY,
12783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_ENABLE_RSD_ACTION)) {
12823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_ENABLE_RSD_ACTION " + fmAction);
12833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_ENABLE_RDS,
12843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_DISABLE_RSD_ACTION)) {
12883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_DISABLE_RSD_ACTION " + fmAction);
12893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_DISABLE_RDS,
12903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
12943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_TRANSMISSION_MODE_ACTION)) {
12953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_TRANSMISSION_MODE_ACTION " + fmAction);
12963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_TRANSMISSION_MODE,
12973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
12983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
12993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_PS_DISPLAY_MODE_ACTION)) {
13013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_PS_DISPLAY_MODE_ACTION " + fmAction);
13023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_PS_DISPLAY_MODE,
13033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_RDS_MUSIC_SPEECH_FLAG_ACTION)) {
13073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_RDS_MUSIC_SPEECH_FLAG_ACTION " + fmAction);
13083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_RDS_MUSIC_SPEECH_FLAG,
13093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_RDS_TEXT_REPERTOIRE_ACTION)) {
13133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_RDS_TEXT_REPERTOIRE_ACTION " + fmAction);
13143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_RDS_TEXT_REPERTOIRE,
13153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_TRANSMISSION_MODE_ACTION)) {
13193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_TRANSMISSION_MODE_ACTION " + fmAction);
13203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_TRANSMISSION_MODE,
13213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_POWER_LEVEL_ACTION)) {
13253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_POWER_LEVEL_ACTION " + fmAction);
13263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_POWER_LEVEL,
13273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_RDS_TEXT_PS_MSG_ACTION)) {
13313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_RDS_TEXT_PS_MSG_ACTION " + fmAction);
13323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_RDS_TEXT_PS_MSG,
13333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_MONO_STEREO_MODE_ACTION)) {
13373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_MONO_STEREO_MODE_ACTION " + fmAction);
13383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_MONO_STEREO_MODE,
13393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_MUTE_MODE_ACTION)) {
13443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_MUTE_MODE_ACTION " + fmAction);
13453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_MUTE_MODE,
13463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            if (fmAction.equals(FmRadioIntent.FM_TX_SET_RDS_TRANSMISSION_GROUPMASK_ACTION)) {
13503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Log.i(TAG, "enter onReceive FM_TX_SET_RDS_TRANSMISSION_GROUPMASK_ACTION " + fmAction);
13513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                Long grpMask = intent.getLongExtra(
13533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        FmRadioIntent.RDS_GRP_MASK, 0);
13543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            /*
13553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                if(grpMask == RDS_RADIO_TRANSMITTED_GRP_PS_MASK){
13563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_RDS_TX_GRP_MASK_PS,
13573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }else if(grpMask == RDS_RADIO_TRANSMITTED_GRP_RT_MASK){
13593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                mHandler.sendMessage(mHandler.obtainMessage(EVENT_FM_TX_SET_RDS_TX_GRP_MASK_RT,
13603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                        0));
13613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru                }
13623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            */
13633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            }
13653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
13693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    };
13703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /* Save the values to the preference when the application exits */
13753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void saveLastData() {
13763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "saveLastData()---Entered");
13773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        fmTxPreferences = getSharedPreferences("fmTxPreferences", MODE_PRIVATE);
13783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        SharedPreferences.Editor editor = fmTxPreferences.edit();
13793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putBoolean(FMENABLED, startTxBtn.isChecked());
13813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putBoolean(RDSENABLED, enableRdsBtn.isChecked());
13823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putBoolean(MUTE, chbMute.isChecked());
13833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putString(FREQUENCY_STRING, textFreq.getText().toString());
13853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.putString(FREQUENCY, DEFAULT_FREQ);
13863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.d(TAG, " save FMENABLED " +isFmEnabled + "FREQUENCY_STRING"+freqValue);
13883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        editor.commit();
13893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "saveLastData()---Exit");
13903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
13913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    /* Load the last saved values from the preference when the application starts */
13933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    private void loadlastSaveddata() {
13943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "loadlastSaveddata()-entered");
13963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        fmTxPreferences = getSharedPreferences("fmTxPreferences", MODE_PRIVATE);
13973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
13983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        isFmEnabled = fmTxPreferences.getBoolean(FMENABLED,false);
13993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if(isFmEnabled == true)
14003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        {
14013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setChecked(true);
14023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setEnabled(true);
14033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }else{
14053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setChecked(false);
14063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru            startTxBtn.setEnabled(true);
14073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        }
14083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        enableRdsBtn.setChecked(fmTxPreferences.getBoolean(RDSENABLED,false));
14103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        enableRdsBtn.setEnabled(true);
14113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbMute.setChecked(fmTxPreferences.getBoolean(MUTE,false));
14133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        chbMute.setEnabled(true);
14143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        textFreq.setText(fmTxPreferences.getString(FREQUENCY_STRING,null));
14163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.d(TAG, " Load FMENABLED " +isFmEnabled + "FREQUENCY_STRING"+freqValue);
14183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "loadlastSaveddata()-exit");
14203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
14213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     public void onStart() {
14263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onStart");
14273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onStart();
14283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
14293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public void onResume() {
14323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onResume");
14333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onResume();
14343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        if(mFmServiceConnected == true)
14353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        enableTx();
14363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
14393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru     public void onDestroy() {
14413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.i(TAG, "onDestroy");
14423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        super.onDestroy();
14433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        /*
14443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         * Unregistering the receiver , so that we dont handle any FM events
14453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         * when out of the FM application screen
14463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru         */
14473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        unregisterReceiver(mReceiver);
14493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
14503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    public int getFmTxAppState() {
14523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        Log.d(TAG, "getFmTxAppState()");
14533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru        return mAppState;
14543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru    }
14563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru
14583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru}
1459