Changeset a86d057 in orbit for android/src/info


Ignore:
Timestamp:
03/04/13 16:58:33 (9 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master, RawEEG, Raw_EEG_Plot, Servo, Tab_Interface, pyramid
Children:
a546cc3
Parents:
8e8266b
Message:
  • Advanced UI for 1.2 release prepared
Location:
android/src/info/puzzlebox/orbit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • android/src/info/puzzlebox/orbit/AudioService.java

    r8e8266b ra86d057  
    99import android.os.Binder; 
    1010import android.os.IBinder; 
    11 import android.widget.Toast; 
     11//import android.widget.Toast; 
    1212 
    1313public class AudioService extends Service{ 
  • android/src/info/puzzlebox/orbit/OrbitActivity.java

    r8e8266b ra86d057  
    44 * Puzzlebox Orbit 
    55 * 
    6  * Copyright Puzzlebox Productions, LLC (2012) 
     6 * Copyright Puzzlebox Productions, LLC (2012-2013) 
    77 * 
    88 * This code is released under the GNU Public License (GPL) version 2 
     
    1414 *       support commented out by default throughout this source file. 
    1515 */ 
    16  
    17 //import java.io.IOException; 
    18 //import java.util.ArrayList; 
    19 //import java.util.Arrays; 
    20 //import java.util.Set; 
    21 //import java.util.concurrent.ExecutorService; 
    22 //import java.util.concurrent.Executors; 
    2316 
    2417import android.media.AudioFormat; 
     
    4033import android.content.ServiceConnection; 
    4134import android.content.pm.ActivityInfo; 
    42 //import android.bluetooth.BluetoothDevice; 
    43 //import android.content.Context; 
    4435import android.graphics.Color; 
    4536import android.graphics.drawable.ClipDrawable; 
     
    4940import android.util.Log; 
    5041import android.view.Gravity; 
    51 import android.view.Menu; 
    52 import android.view.MenuItem; 
    5342import android.view.View; 
     43import android.view.Window; 
    5444import android.widget.Button; 
    5545import android.widget.CheckBox; 
     46import android.widget.ImageView; 
     47import android.widget.LinearLayout; 
    5648import android.widget.ProgressBar; 
    5749import android.widget.RadioButton; 
     
    6052import android.widget.TextView; 
    6153import android.widget.Toast; 
    62 //import android.support.v4.app.NavUtils; 
    63 //import android.text.Layout; 
    6454import android.text.method.ScrollingMovementMethod; 
    6555 
     
    7767         */ 
    7868        ProgressBar progressBarAttention; 
     69        SeekBar seekBarAttention; 
    7970        ProgressBar progressBarMeditation; 
     71        SeekBar seekBarMeditation; 
    8072        ProgressBar progressBarSignal; 
    8173        ProgressBar progressBarPower; 
    82         SeekBar seekBarAttention; 
    83         SeekBar seekBarMeditation; 
    84         TextView tv; 
    85         Button b; 
    86  
    87  
    88         /** 
    89          * AudioService 
    90          */ 
    91         IntentFilter intentFilter; 
    92         private AudioService serviceBinder; 
    93         Intent orbitIntent; 
    9474        SeekBar seekBarThrottle; 
    9575        SeekBar seekBarYaw; 
    9676        SeekBar seekBarPitch; 
    97         CheckBox checkBoxFlip; 
     77        Button b; 
     78        CheckBox checkBoxAdvancedOptions; 
     79        CheckBox checkBoxGenerateAudio; 
     80        CheckBox checkBoxInvertControlSignal; 
    9881        RadioGroup radioGroupChannel; 
    99  
    10082        RadioButton radioButtonChannelA; 
    10183        RadioButton radioButtonChannelB; 
    10284        RadioButton radioButtonChannelC; 
     85        ImageView imageViewStatus; 
     86        TextView tv; 
     87 
     88        LinearLayout layoutControl; 
     89        LinearLayout layoutAudioService; 
     90        LinearLayout layoutAdvancedOptions; 
    10391 
    10492 
     
    114102        /** 
    115103         * Audio  
    116          * Currently the flight control command is hard-coded into WAV files 
    117          * In a future release the tones used to communicate with the infrared dongle 
    118          * will be generated on-the-fly. This conversion process is already underway 
     104         *  
     105         * By default the flight control command is hard-coded into WAV files 
     106         * When "Generate Control Signal" is enabled the tones used to communicate  
     107         * with the infrared dongle are generated on-the-fly. 
    119108         */ 
    120109        int audioFile = R.raw.throttle_hover_android_common; 
    121         //      int audioFile = R.raw.throttle_50_android_common; 
    122110        //      int audioFile = R.raw.throttle_hover_android_htc_one_x; 
    123         //      String audioFilePath = "file:///sdcard/Music/Throttle/throttle_30_android_common.wav"; 
    124111 
    125112        private SoundPool soundPool; 
    126113        private int soundID; 
    127114        boolean loaded = false; 
     115 
     116 
     117 
     118        /** 
     119         * AudioService 
     120         */ 
     121        IntentFilter intentFilter; 
     122        private AudioService serviceBinder; 
     123        Intent orbitIntent; 
    128124 
    129125 
     
    212208                 */ 
    213209                super.onCreate(savedInstanceState); 
     210 
     211                //              requestWindowFeature(Window.FEATURE_NO_TITLE); 
     212 
    214213                setContentView(R.layout.activity_main); 
     214 
     215                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    215216 
    216217                progressBarAttention = (ProgressBar)findViewById(R.id.progressBarAttention); 
     
    240241                progressBarSignal.setProgress(tgSignal); 
    241242 
    242                 //              progressBarPower = (ProgressBar)findViewById(R.id.progressBarPower); 
    243                 //              ShapeDrawable progressBarPowerDrawable = new ShapeDrawable(new RoundRectShape(roundedCorners, null,null)); 
    244                 //              String progressBarPowerColor = "#FFFF00"; 
    245                 //              progressBarPowerDrawable.getPaint().setColor(Color.parseColor(progressBarPowerColor)); 
    246                 //              ClipDrawable progressPower = new ClipDrawable(progressBarPowerDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL); 
    247                 //              progressBarPower.setProgressDrawable(progressPower);    
    248                 //              progressBarPower.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.progress_horizontal)); 
     243                progressBarPower = (ProgressBar)findViewById(R.id.progressBarPower); 
     244                ShapeDrawable progressBarPowerDrawable = new ShapeDrawable(new RoundRectShape(roundedCorners, null,null)); 
     245                String progressBarPowerColor = "#FFFF00"; 
     246                progressBarPowerDrawable.getPaint().setColor(Color.parseColor(progressBarPowerColor)); 
     247                ClipDrawable progressPower = new ClipDrawable(progressBarPowerDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL); 
     248                progressBarPower.setProgressDrawable(progressPower);    
     249                progressBarPower.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.progress_horizontal)); 
    249250 
    250251                seekBarAttention = (SeekBar)findViewById(R.id.seekBarAttention); 
     
    254255 
    255256 
    256                 /** 
    257                  * AudioService 
    258                  */ 
    259  
    260257                seekBarThrottle = (SeekBar)findViewById(R.id.seekBarThrottle); 
    261258                seekBarThrottle.setOnSeekBarChangeListener(this); 
     
    267264                seekBarPitch.setOnSeekBarChangeListener(this); 
    268265 
    269                 orbitIntent = new Intent(OrbitActivity.this, AudioService.class); 
    270                 bindService(orbitIntent, connection, Context.BIND_AUTO_CREATE); 
    271  
    272                 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    273  
    274                 checkBoxFlip = (CheckBox)findViewById(R.id.checkBoxFlip); 
     266                checkBoxAdvancedOptions = (CheckBox)findViewById(R.id.checkBoxAdvancedOptions); 
     267 
     268                checkBoxGenerateAudio = (CheckBox)findViewById(R.id.checkBoxGenerateAudio); 
     269 
     270                checkBoxInvertControlSignal = (CheckBox)findViewById(R.id.checkBoxInvertControlSignal); 
    275271 
    276272                radioGroupChannel = (RadioGroup)findViewById(R.id.radioGroupChannel); 
     
    283279                radioGroupChannel.check(1); 
    284280 
     281                imageViewStatus = (ImageView)findViewById(R.id.imageViewStatus); 
    285282 
    286283                tv = (TextView)findViewById(R.id.textViewDebugConsole); 
     
    290287                appendTextAndScroll("Remember to set volume at maximum!\n"); 
    291288 
    292  
     289                layoutControl = (LinearLayout)findViewById(R.id.layoutControl); 
     290                layoutAudioService = (LinearLayout)findViewById(R.id.layoutAudioService); 
     291                layoutAdvancedOptions = (LinearLayout)findViewById(R.id.layoutAdvancedOptions); 
     292 
     293 
     294 
     295                /** 
     296                 * Update settings according to default UI 
     297                 */ 
     298 
     299                updateAdvancedOptions(); 
    293300                updatePowerThresholds(); 
    294301                updatePower(); 
     
    312319                soundID = soundPool.load(this, audioFile, 1); 
    313320 
    314                 //              soundPool.load(audioFilePath, 1); 
    315  
    316                 //              genTone(); 
     321 
     322                /** 
     323                 * AudioService 
     324                 */ 
     325 
     326                orbitIntent = new Intent(OrbitActivity.this, AudioService.class); 
     327                bindService(orbitIntent, connection, Context.BIND_AUTO_CREATE); 
    317328 
    318329 
     
    320331                 * Prepare Bluetooth and NeuroSky ThinkGear EEG interface 
    321332                 */ 
     333                 
    322334                bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    323335 
     
    351363        } // onCreate 
    352364 
     365 
     366        // ################################################################ 
    353367 
    354368        @Override 
     
    394408 
    395409 
     410        // ################################################################ 
     411 
    396412        @Override 
    397413        public void onDestroy() { 
     
    416432        } 
    417433 
     434 
     435        // ################################################################ 
    418436 
    419437        //      @Override 
     
    435453 
    436454 
     455        // ################################################################ 
     456 
    437457        private void appendTextAndScroll(String text) { 
    438458 
     
    468488 
    469489 
     490        // ################################################################ 
     491 
     492        public void onCheckBoxAdvancedOptionsClicked(View view) { 
     493 
     494                updateAdvancedOptions(); 
     495 
     496        } // onCheckBoxAdvancedOptionsClicked 
     497 
     498 
     499        // ################################################################ 
     500 
     501        public void onCheckBoxGenerateAudioClicked(View view) { 
     502 
     503        } // onCheckBoxGenerateAudioClicked 
     504 
     505 
     506        // ################################################################ 
     507 
     508        public void onCheckBoxInvertControlSignalClicked(View view) { 
     509 
     510        } // onCheckBoxInvertControlSignalClicked 
     511 
     512 
     513        // ################################################################ 
     514 
     515        public void updateAdvancedOptions() { 
     516 
     517                if (checkBoxAdvancedOptions.isChecked()) { 
     518 
     519                        layoutAudioService.setVisibility(View.VISIBLE); 
     520                        layoutAdvancedOptions.setVisibility(View.VISIBLE); 
     521                        tv.setVisibility(View.VISIBLE); 
     522 
     523                } else { 
     524 
     525                        layoutAudioService.setVisibility(View.GONE); 
     526                        layoutAdvancedOptions.setVisibility(View.GONE); 
     527                        tv.setVisibility(View.GONE); 
     528 
     529                } 
     530 
     531        } // updateAdvancedOptions 
     532 
     533 
     534        // ################################################################ 
     535 
    470536        public void setButtonText(int buttonId, String text) { 
    471537 
     
    479545        } // setButtonText 
    480546 
     547 
     548        // ################################################################ 
    481549 
    482550        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) { 
     
    490558 
    491559 
     560        // ################################################################ 
     561 
    492562        public void onStartTrackingTouch(SeekBar seekBar) { 
    493563 
     
    500570        } // onStartTrackingTouch 
    501571 
     572 
     573        // ################################################################ 
    502574 
    503575        public void onStopTrackingTouch(SeekBar seekBar) { 
     
    556628        //      } // onDeviceStateChange 
    557629 
     630 
     631        // ################################################################ 
    558632 
    559633        private final Handler handler = new Handler() { 
     
    583657                                                Log.v(TAG, "EEG Connected"); 
    584658                                        appendTextAndScroll("Bluetooth Connected\n"); 
    585                                         setButtonText(R.id.button1, "Disconnect"); 
     659                                        setButtonText(R.id.buttonConnect, "Disconnect"); 
    586660                                        tgDevice.start(); 
    587661                                        break; 
     
    660734 
    661735 
     736        // ################################################################ 
     737 
    662738        public void connectHeadset(View view) { 
    663739 
     
    682758        } // connectHeadset 
    683759 
     760 
     761        // ################################################################ 
    684762 
    685763        public void disconnectHeadset() { 
     
    698776                progressBarSignal.setProgress(0); 
    699777                progressBarPower.setProgress(0); 
    700                 setButtonText(R.id.button1, "Connect"); 
     778                setButtonText(R.id.buttonConnect, "Connect"); 
    701779        } // disconnectHeadset 
    702780 
     781 
     782        // ################################################################ 
    703783 
    704784        public int calculateSignal(int signal) { 
     
    725805        } // calculateSignal 
    726806 
     807 
     808        // ################################################################ 
    727809 
    728810        public void updatePowerThresholds() { 
     
    795877 
    796878 
     879        // ################################################################ 
     880 
    797881        public int calculateSpeed() { 
    798882 
     
    825909 
    826910 
     911        // ################################################################ 
     912 
    827913        public void updatePower() { 
    828914 
     
    835921                int new_speed = calculateSpeed(); 
    836922                String command = ""; 
    837                 //              progressBarPower.setProgress(new_speed); 
     923                progressBarPower.setProgress(new_speed); 
    838924 
    839925                if (new_speed > 0) { 
     
    900986 
    901987 
     988        // ################################################################ 
     989 
    902990        public void playControl() { 
    903991 
     
    9241012 
    9251013                if (serviceBinder != null) { 
    926                         serviceBinder.ifFlip = checkBoxFlip.isChecked(); //if checked then flip 
     1014                        serviceBinder.ifFlip = checkBoxInvertControlSignal.isChecked(); //if checked then flip 
    9271015                        int channel = radioGroupChannel.getCheckedRadioButtonId(); 
    9281016                        serviceBinder.loopNumberWhileMindControl = 4615; // about 10 minutes     
     
    9331021        } // playControl 
    9341022 
     1023 
     1024        // ################################################################ 
    9351025 
    9361026        public void stopControl() { 
     
    9621052 
    9631053 
     1054        // ################################################################ 
     1055 
    9641056        void genTone(){ 
    9651057 
     
    9891081        } // genTone 
    9901082 
     1083 
     1084        // ################################################################ 
    9911085 
    9921086        void playTone(){ 
     
    10081102        } // playTone 
    10091103 
     1104 
     1105        // ################################################################ 
    10101106 
    10111107        public void demoMode(View view) { 
     
    10611157 
    10621158 
     1159        // ################################################################ 
     1160 
    10631161        public void demoStop(View view) { 
    10641162                stopTest(view); 
     
    10661164 
    10671165 
     1166        // ################################################################ 
     1167 
    10681168        public void testFly(View view) { 
    10691169                if (serviceBinder != null) { 
    1070                         serviceBinder.ifFlip = checkBoxFlip.isChecked(); // if checked then flip 
     1170                        serviceBinder.ifFlip = checkBoxInvertControlSignal.isChecked(); // if checked then flip 
    10711171                        int channel = radioGroupChannel.getCheckedRadioButtonId(); 
    10721172                        serviceBinder.channel = channel; 
     
    10771177 
    10781178 
     1179        // ################################################################ 
     1180 
    10791181        public void stopTest(View view) { 
    10801182                if (serviceBinder != null) { 
     
    10851187 
    10861188 
     1189        // ################################################################ 
     1190 
    10871191        private ServiceConnection connection = new ServiceConnection() { 
    10881192 
Note: See TracChangeset for help on using the changeset viewer.