Changeset 3baad6d in orbit for android


Ignore:
Timestamp:
12/22/13 08:34:27 (6 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master, Servo
Children:
3444b8e
Parents:
ca52be2
Message:
  • Added Controlled Descent support
Location:
android
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • android/res/values/strings.xml

    r680b5d9 r3baad6d  
    5656    <string name="checkbox_tilt_sensor_control_small">Tilt Control</string> 
    5757    <string name="checkbox_tilt_sensor_control_throttle">Adjust Throttle Only</string> 
    58     <string name="checkbox_tilt_sensor_control_throttle_small">Throttle</string> 
     58    <string name="checkbox_tilt_sensor_control_throttle_small">Throttle Only</string> 
    5959    <string name="textview_throttle">Throttle</string> 
    6060    <string name="textview_yaw">Yaw</string> 
  • android/src/info/puzzlebox/orbit/FragmentTabAdvanced.java

    rca52be2 r3baad6d  
    1212import org.apache.http.conn.util.InetAddressUtils; 
    1313 
     14import android.os.AsyncTask; 
    1415import android.os.Build; 
    1516import android.os.Bundle; 
     
    9798        int viewSpaceGenerateAudioWidth = 120; 
    9899 
     100        OrbitControlledDescentTask orbitControlledDescentTask; 
     101 
    99102 
    100103        private SensorManager sensorManager; 
     
    800803 
    801804 
     805        // ################################################################ 
     806 
     807        public void registerControlledDescent() { 
     808 
     809                orbitControlledDescentTask = new OrbitControlledDescentTask(); 
     810                orbitControlledDescentTask.execute(); 
     811 
     812        } 
     813 
     814        // ################################################################ 
     815 
     816        public void unregisterControlledDescent(boolean callStopAudio) { 
     817 
     818                Log.v(TAG, "unregisterControlledDescent()"); 
     819 
     820                if (callStopAudio) 
     821                        ((OrbitTabActivity)getActivity()).stopAudio(); 
     822 
     823        } 
     824 
     825 
     826        // ################################################################ 
     827        // ################################################################ 
     828 
     829        class OrbitControlledDescentTask extends AsyncTask<Integer, Void, Integer> { 
     830 
     831                private String TAG = "OrbitControlledDescentTask"; 
     832                FragmentTabAdvanced fragmentAdvanced; 
     833 
     834                private int throttleTarget = 0; 
     835                private int throttleStep = 1; 
     836                private int throttleStepSleep = 50; 
     837                public int throttlePrevious; 
     838                public boolean keepDescending = true; 
     839                public boolean callStopAudio = true; 
     840 
     841                protected Integer doInBackground(Integer... params) { 
     842 
     843                        String id = ((OrbitTabActivity)getActivity()).getTabFragmentAdvanced(); 
     844 
     845                        fragmentAdvanced =  
     846                                        (FragmentTabAdvanced) getFragmentManager().findFragmentByTag(id); 
     847 
     848                        throttlePrevious = fragmentAdvanced.seekBarThrottle.getProgress(); 
     849 
     850                        while ((keepDescending) && (fragmentAdvanced.seekBarThrottle.getProgress() > throttleTarget)) { 
     851 
     852                                fragmentAdvanced.seekBarThrottle.setProgress( fragmentAdvanced.seekBarThrottle.getProgress() - throttleStep); 
     853 
     854                                try { 
     855                                        Thread.sleep(throttleStepSleep); 
     856                                } catch (InterruptedException e) { 
     857                                        Log.e(TAG, "Thread InterruptedException"); 
     858                                        e.printStackTrace(); 
     859                                } // sleep is in milliseconds 
     860 
     861                        } 
     862 
     863                        return 1; 
     864 
     865                } // doInBackground 
     866 
     867 
     868                // ############################################################# 
     869 
     870                @Override 
     871                protected void onPostExecute(Integer params) { 
     872 
     873                        Log.d(TAG, "onPostExecute()"); 
     874 
     875                        fragmentAdvanced.unregisterControlledDescent(callStopAudio); 
     876 
     877                        fragmentAdvanced.seekBarThrottle.setProgress(throttlePrevious); 
     878 
     879                } // onPostExecute 
     880 
     881        } // MediaPlayerTask 
     882 
     883 
    802884} // FragmentTabAdvanced 
  • android/src/info/puzzlebox/orbit/OrbitTabActivity.java

    re089694 r3baad6d  
    805805                         * Generate signal on the fly 
    806806                         */ 
    807  
    808                         if (audioHandler != null) { 
     807                         
     808                        // Handle controlled descent thread if activated 
     809                        if ((fragmentAdvanced.orbitControlledDescentTask != null) &&  
     810                                        (fragmentAdvanced.orbitControlledDescentTask.keepDescending)) { 
     811                                fragmentAdvanced.orbitControlledDescentTask.callStopAudio = false; 
     812                                fragmentAdvanced.orbitControlledDescentTask.keepDescending = false; 
     813                        } 
     814 
     815 
     816//                      if (audioHandler != null) { 
    809817 
    810818                                //                              serviceBinder.ifFlip = fragmentAdvanced.checkBoxInvertControlSignal.isChecked(); // if checked then flip 
     
    824832 
    825833                                audioHandler.mutexNotify(); 
    826                         } 
     834//                      } 
    827835 
    828836 
     
    859867        public void stopControl() { 
    860868 
     869                FragmentTabAdvanced fragmentAdvanced =  
     870                                (FragmentTabAdvanced) getSupportFragmentManager().findFragmentByTag( getTabFragmentAdvanced() ); 
     871 
     872//              if ((generateAudio) && 
     873//                              (fragmentAdvanced != null) && 
     874//                              (fragmentAdvanced.orbitControlledDescentTask != null) &&  
     875//                              (fragmentAdvanced.orbitControlledDescentTask.keepDescending)) { 
     876//                      fragmentAdvanced.orbitControlledDescentTask.keepDescending = false; 
     877                if ((generateAudio) && 
     878                                (fragmentAdvanced != null) && 
     879                                (audioHandler != null)) { 
     880                        fragmentAdvanced.registerControlledDescent(); 
     881                } else { 
     882                        stopAudio(); 
     883                } 
     884 
     885        } // stopControl 
     886 
     887 
     888        // ################################################################ 
     889 
     890        public void stopAudio() { 
     891 
    861892                /** 
    862893                 * stop AudioTrack as well as destroy service. 
Note: See TracChangeset for help on using the changeset viewer.