Changeset ce0a7ee in orbit


Ignore:
Timestamp:
07/31/13 17:02:07 (7 years ago)
Author:
Jonathon Horsman <jonathon@…>
Branches:
master, RawEEG, Servo, Tab_Interface, pyramid
Children:
de10cbc, 0ab8242
Parents:
9015b1e
Message:

Port Android AudioService? to iOS
Dummy page for tutorial
icons for tabs (which don't work)

Location:
iOS/Orbit
Files:
11 added
10 edited

Legend:

Unmodified
Added
Removed
  • iOS/Orbit/Orbit/AppDelegate.m

    r9015b1e rce0a7ee  
    2121{ 
    2222    // Override point for customization after application launch. 
    23     NSLog(@"didFinsihLaunching - signal convertor init"); 
    2423    signalConverter = [[SignalConverter alloc] init]; 
    25 //    [[TGAccessoryManager sharedTGAccessoryManager] setupManagerWithInterval:0.05]; 
    26 //    [[TGAccessoryManager sharedTGAccessoryManager] setDelegate:(ViewController *)self.window.rootViewController]; 
    2724    return YES; 
    2825} 
     
    3229    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 
    3330    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 
    34 //    ViewController *rootController = (ViewController *)self.window.rootViewController; 
    35 //    [rootController appClosed]; 
    3631    [signalConverter appStopped]; 
    37     NSLog(@"Application will resign active - appClosed"); 
    3832} 
    3933 
     
    5751{ 
    5852    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 
    59     NSLog(@"Application will terminate - teardownManager"); 
    6053    [[TGAccessoryManager sharedTGAccessoryManager] teardownManager]; 
    6154} 
  • iOS/Orbit/Orbit/SignalConverter.h

    r9015b1e rce0a7ee  
    1212#import "TGAccessoryDelegate.h" 
    1313#import "SignalConverterDelegate.h" 
     14#import "AudioGenerator.h" 
    1415 
    1516@interface SignalConverter : NSObject <TGAccessoryDelegate> { 
    16     AVAudioPlayer *audioPlayer; 
     17    AudioGenerator *audioPlayer; 
    1718} 
    1819 
     
    2425 
    2526- (void) setValuesForAttention:(float) attention meditation:(float) meditation; 
    26 - (void) prepare; 
    2727- (BOOL) startProcessing; 
    2828- (void) stopProcessing; 
     
    3030- (BOOL) isBluetoothReady; 
    3131- (BOOL) isVolumeMax; 
     32- (void) setYaw:(int)y throttle:(int)t pitch:(int)p; 
    3233 
    3334@end 
  • iOS/Orbit/Orbit/SignalConverter.m

    r9015b1e rce0a7ee  
    2727     
    2828    int signalStrength, attentionLevel, meditationLevel; // the latest readings from the headset 
     29    int yaw, throttle, pitch; 
    2930} 
    3031 
     
    3940        [[TGAccessoryManager sharedTGAccessoryManager] setupManagerWithInterval:0.05]; 
    4041        [[TGAccessoryManager sharedTGAccessoryManager] setDelegate:self]; 
     42        audioPlayer = [[AudioGenerator alloc] init]; 
     43         
     44        // defaults 
     45        throttle = 80; 
     46        yaw = 78; 
     47        pitch = 31; 
    4148    } 
    4249    return self; 
     
    4855    meditationThreshold = meditation; 
    4956    [self calculatePowerValues]; 
    50 } 
    51  
    52 - (void) prepare 
    53 { 
    54     NSURL *audioFilePath = [[NSBundle mainBundle] URLForResource:AUDIO_FILE_NAME withExtension:nil]; 
    55     audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFilePath error:nil]; 
    56     if (audioPlayer) { 
    57         [audioPlayer prepareToPlay]; 
    58     } 
    5957} 
    6058 
     
    142140{ 
    143141    float volume = [[AVAudioSession sharedInstance] outputVolume]; 
    144 //    Float32 volume; 
    145 //    UInt32 dataSize = sizeof(Float32); 
    146 //     
    147 //    AudioSessionGetProperty ( 
    148 //                             kAudioSessionProperty_CurrentHardwareOutputVolume, 
    149 //                             &dataSize, 
    150 //                             &volume 
    151 //                             ); 
    152142    return volume == 1.0; 
    153143} 
     
    171161{ 
    172162    [self appStopped]; 
    173     [self prepare];     
    174163} 
    175164 
     
    187176} 
    188177 
     178- (void) setYaw:(int)y throttle:(int)t pitch:(int)p 
     179{ 
     180    yaw = y; 
     181    throttle = t; 
     182    pitch = p; 
     183} 
     184 
    189185- (void) playAudio 
    190186{ 
    191     //   audioPlayer.volume = [self currentPowerLevel]; 
    192187    if ([self currentPowerLevel] > 0) { 
    193         audioPlayer.volume = 1.0; 
    194         [audioPlayer play]; 
     188        [audioPlayer playWithThrottle:throttle yaw:yaw pitch:pitch]; 
    195189    } else { 
    196190        [audioPlayer stop]; 
    197         [self prepare]; 
    198191         
    199192    } 
     
    229222} 
    230223 
    231 // calculate the checksum for the generated code used to generate the WAV array 
    232 - (int) codeChecksum:(int)code 
    233 { 
    234     int checksum = 0; 
    235     for (int i = 0; i < 7; i++) { 
    236         checksum += (code >> 4*i) & 15; 
    237     } 
    238     return 16 - (checksum & 15); 
    239 } 
    240  
    241 // Generate the code used to create the WAV file based on the given throttle, yaw and pitch. 
    242 // Copied from AudioService.java in the Android app 
    243 // throttle: 0~127, nothing will happen if this value is below 30. 
    244 // yaw: 0~127, normally 78 will keep orbit from rotating. 
    245 // pitch: 0~63, normally 31 will stop the top propeller. 
    246 // channel: 1=Channel A, 0=Channel B 2= Channel C, depend on which channel you want to pair to the orbit. You can fly at most 3 orbit in a same room. 
    247 - (int) generateCodeFromThrottle: (int)throttle yaw: (int)yaw pitch: (int)pitch channel: (int)channel 
    248 { 
    249     int code = (throttle << 21) + 1048576 + (yaw << 12) + (pitch << 4) + (((channel >> 1) & 1) << 19) + ((channel & 1) << 11); 
    250     return code;// + codeChecksum(code); 
    251 } 
    252  
    253224@end 
  • iOS/Orbit/Orbit/controllers/AdvancedViewController.m

    rab9d63b rce0a7ee  
    88 
    99#import "AdvancedViewController.h" 
     10#import "SignalConverter.h" 
     11#import "AppDelegate.h" 
    1012 
    1113@interface AdvancedViewController () 
     
    1315@end 
    1416 
    15 @implementation AdvancedViewController 
     17@implementation AdvancedViewController { 
     18    SignalConverter *signalConverter; 
     19} 
    1620 
    1721@synthesize pitch, pitchPercent, yaw, yawPercent, throttle, throttlePercent; 
     22 
     23- (void)viewDidLoad 
     24{ 
     25    [super viewDidLoad]; 
     26    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
     27    signalConverter = appDelegate.signalConverter; 
     28} 
    1829 
    1930- (IBAction) pitchChanged:(id) sender 
    2031{ 
    2132    pitchPercent.text = [self percentStringFromSlider:pitch]; 
     33    [self adjustValues]; 
    2234} 
    2335 
     
    2537{ 
    2638    yawPercent.text = [self percentStringFromSlider:yaw]; 
     39    [self adjustValues]; 
    2740} 
    2841 
     
    3043{ 
    3144    throttlePercent.text = [self percentStringFromSlider:throttle]; 
     45    [self adjustValues]; 
    3246} 
    3347 
     
    3751} 
    3852 
     53- (void) adjustValues 
     54{ 
     55     
     56} 
     57 
    3958@end 
  • iOS/Orbit/Orbit/controllers/FlightViewController.m

    r9015b1e rce0a7ee  
    2323@implementation FlightViewController { 
    2424    SignalConverter *signalConverter; 
    25     int deviceStatus; 
     25    int deviceStatus;     
    2626} 
    2727 
     
    3737    [self.attentionThreshold addTarget:self action:@selector(sliderChanged) forControlEvents:UIControlEventValueChanged]; 
    3838    [self.meditationThreshold addTarget:self action:@selector(sliderChanged) forControlEvents:UIControlEventValueChanged]; 
    39     [signalConverter prepare]; 
    4039} 
    4140 
     
    151150    } else if ([signalConverter startProcessing]) { 
    152151        [self logMessage:@"Searching for device"]; 
    153 //        [self updateStatusImage:STATUS_CONNECTING]; 
    154152        connectButton.title = @"Disconnect"; 
    155153    } else { 
  • iOS/Orbit/Orbit/controllers/SupportViewController.m

    rab9d63b rce0a7ee  
    3333} 
    3434 
    35 - (void)didReceiveMemoryWarning 
    36 { 
    37     [super didReceiveMemoryWarning]; 
    38     // Dispose of any resources that can be recreated. 
    39 } 
    40  
    4135#pragma mark UIWebViewDelegate methods 
    4236 
    43 - (void)webViewDidStartLoad:(UIWebView *)webView 
     37- (void)webViewDidFinishLoad:(UIWebView *)webView 
    4438{ 
    4539    retryButton.hidden = YES; 
  • iOS/Orbit/Orbit/controllers/TutorialViewController.m

    rab9d63b rce0a7ee  
    1111@implementation TutorialViewController 
    1212 
     13@synthesize webView; 
    1314 
    1415- (void)viewDidLoad 
    1516{ 
     17    NSString *file = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
     18    NSString *html = [NSString stringWithContentsOfFile:file encoding:NSUTF8StringEncoding error:nil]; 
     19    [webView loadHTMLString:html baseURL:nil]; 
    1620    [super viewDidLoad]; 
    17      
    1821} 
    1922@end 
  • iOS/Orbit/Orbit/en.lproj/MainStoryboard.storyboard

    r9015b1e rce0a7ee  
    4646                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> 
    4747                    </view> 
    48                     <tabBarItem key="tabBarItem" title="Support" id="cac-uP-cgJ"/> 
     48                    <tabBarItem key="tabBarItem" title="Support" image="help.png" id="cac-uP-cgJ"/> 
    4949                    <connections> 
    5050                        <outlet property="retryButton" destination="ito-kx-zLv" id="yP6-IV-eHf"/> 
     
    195195                        <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 
    196196                    </view> 
    197                     <tabBarItem key="tabBarItem" title="Advanced" id="cd7-uP-s8P"/> 
     197                    <tabBarItem key="tabBarItem" title="Advanced" image="advanced.png" id="cd7-uP-s8P"/> 
    198198                    <connections> 
    199199                        <outlet property="pitch" destination="pE4-wd-89x" id="Sbm-iD-GAE"/> 
     
    382382                        <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 
    383383                    </view> 
    384                     <tabBarItem key="tabBarItem" title="Flight" id="ysb-Df-cyR"/> 
     384                    <tabBarItem key="tabBarItem" title="Flight" image="plane.png" id="ysb-Df-cyR"/> 
    385385                    <navigationItem key="navigationItem" id="iTN-dz-EXc"/> 
    386386                    <connections> 
     
    423423                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 
    424424                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> 
     425                                <dataDetectorType key="dataDetectorTypes"/> 
    425426                                <connections> 
    426427                                    <outlet property="delegate" destination="Wc6-MU-jew" id="cBE-hV-4Fe"/> 
     
    430431                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> 
    431432                    </view> 
    432                     <tabBarItem key="tabBarItem" title="Tutorial" id="JJR-hA-hnf"/> 
     433                    <tabBarItem key="tabBarItem" title="Tutorial" image="tutorial.png" id="JJR-hA-hnf"/> 
     434                    <connections> 
     435                        <outlet property="webView" destination="yFF-oy-BYh" id="UOH-dC-3Mk"/> 
     436                    </connections> 
    433437                </viewController> 
    434438                <placeholder placeholderIdentifier="IBFirstResponder" id="phY-I4-vyg" userLabel="First Responder" sceneMemberID="firstResponder"/> 
     
    459463    </scenes> 
    460464    <resources> 
     465        <image name="advanced.png" width="20" height="20"/> 
     466        <image name="help.png" width="20" height="20"/> 
     467        <image name="plane.png" width="20" height="20"/> 
    461468        <image name="status_0.png" width="238" height="213"/> 
     469        <image name="tutorial.png" width="20" height="20"/> 
    462470    </resources> 
    463471    <classes> 
  • iOS/Orbit/orbit.xcodeproj/project.pbxproj

    r9015b1e rce0a7ee  
    88 
    99/* Begin PBXBuildFile section */ 
     10                280D2AB517A802DB002D6863 /* index.html in Resources */ = {isa = PBXBuildFile; fileRef = 280D2AB417A802DB002D6863 /* index.html */; }; 
     11                280D2ABE17A81714002D6863 /* advanced.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2AB617A81714002D6863 /* advanced.png */; }; 
     12                280D2ABF17A81714002D6863 /* advanced@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2AB717A81714002D6863 /* advanced@2x.png */; }; 
     13                280D2AC017A81714002D6863 /* help.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2AB817A81714002D6863 /* help.png */; }; 
     14                280D2AC117A81714002D6863 /* help@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2AB917A81714002D6863 /* help@2x.png */; }; 
     15                280D2AC217A81714002D6863 /* plane.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2ABA17A81714002D6863 /* plane.png */; }; 
     16                280D2AC317A81714002D6863 /* plane@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2ABB17A81714002D6863 /* plane@2x.png */; }; 
     17                280D2AC417A81714002D6863 /* tutorial.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2ABC17A81714002D6863 /* tutorial.png */; }; 
     18                280D2AC517A81714002D6863 /* tutorial@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 280D2ABD17A81714002D6863 /* tutorial@2x.png */; }; 
    1019                2815BC0E167F42F500F7E6DA /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2815BC0C167F42F500F7E6DA /* Accelerate.framework */; }; 
    1120                2815BC0F167F42F500F7E6DA /* ExternalAccessory.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2815BC0D167F42F500F7E6DA /* ExternalAccessory.framework */; }; 
     
    2938                2843FE8F1790205900C79D56 /* status_4.png in Resources */ = {isa = PBXBuildFile; fileRef = 2843FE871790205900C79D56 /* status_4.png */; }; 
    3039                2843FE901790205900C79D56 /* status_4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2843FE881790205900C79D56 /* status_4@2x.png */; }; 
     40                286608E417A7D40F003FA806 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 286608E317A7D40F003FA806 /* AudioToolbox.framework */; }; 
    3141                288B4BC0178EB112007D588D /* status_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 288B4BBF178EB112007D588D /* status_0@2x.png */; }; 
    3242                288B4BC3178ECD0B007D588D /* AdvancedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 288B4BC2178ECD0B007D588D /* AdvancedViewController.m */; }; 
     
    3949                28C10EF1168760CA00ECFD59 /* HOW_TO_USE.txt in Resources */ = {isa = PBXBuildFile; fileRef = 28C10EF0168760CA00ECFD59 /* HOW_TO_USE.txt */; }; 
    4050                28F901301799436F003FB5ED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28F9012F1799436F003FB5ED /* CoreBluetooth.framework */; }; 
     51                28F90133179973EC003FB5ED /* AudioGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F90132179973EC003FB5ED /* AudioGenerator.m */; }; 
    4152                52922BA817004D1400A39146 /* libCorePlot-CocoaTouch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 52922BA717004D1400A39146 /* libCorePlot-CocoaTouch.a */; }; 
    4253                52FA364416899B5D004C280A /* ic_launcher-57x57.png in Resources */ = {isa = PBXBuildFile; fileRef = 52FA364316899B5D004C280A /* ic_launcher-57x57.png */; }; 
     
    4657 
    4758/* Begin PBXFileReference section */ 
     59                280D2AB417A802DB002D6863 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; }; 
     60                280D2AB617A81714002D6863 /* advanced.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = advanced.png; sourceTree = "<group>"; }; 
     61                280D2AB717A81714002D6863 /* advanced@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "advanced@2x.png"; sourceTree = "<group>"; }; 
     62                280D2AB817A81714002D6863 /* help.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = help.png; sourceTree = "<group>"; }; 
     63                280D2AB917A81714002D6863 /* help@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "help@2x.png"; sourceTree = "<group>"; }; 
     64                280D2ABA17A81714002D6863 /* plane.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = plane.png; sourceTree = "<group>"; }; 
     65                280D2ABB17A81714002D6863 /* plane@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "plane@2x.png"; sourceTree = "<group>"; }; 
     66                280D2ABC17A81714002D6863 /* tutorial.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = tutorial.png; sourceTree = "<group>"; }; 
     67                280D2ABD17A81714002D6863 /* tutorial@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tutorial@2x.png"; sourceTree = "<group>"; }; 
    4868                2815BC0C167F42F500F7E6DA /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; 
    4969                2815BC0D167F42F500F7E6DA /* ExternalAccessory.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ExternalAccessory.framework; path = System/Library/Frameworks/ExternalAccessory.framework; sourceTree = SDKROOT; }; 
     
    7494                2843FE871790205900C79D56 /* status_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = status_4.png; sourceTree = "<group>"; }; 
    7595                2843FE881790205900C79D56 /* status_4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "status_4@2x.png"; sourceTree = "<group>"; }; 
     96                286608E317A7D40F003FA806 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 
    7697                288B4BBF178EB112007D588D /* status_0@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "status_0@2x.png"; sourceTree = "<group>"; }; 
    7798                288B4BC1178ECD0A007D588D /* AdvancedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AdvancedViewController.h; path = controllers/AdvancedViewController.h; sourceTree = "<group>"; }; 
     
    90111                28C10EF0168760CA00ECFD59 /* HOW_TO_USE.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HOW_TO_USE.txt; sourceTree = "<group>"; }; 
    91112                28F9012F1799436F003FB5ED /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; }; 
     113                28F90131179973EC003FB5ED /* AudioGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioGenerator.h; sourceTree = "<group>"; }; 
     114                28F90132179973EC003FB5ED /* AudioGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioGenerator.m; sourceTree = "<group>"; }; 
    92115                52922BA717004D1400A39146 /* libCorePlot-CocoaTouch.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libCorePlot-CocoaTouch.a"; sourceTree = "<group>"; }; 
    93116                52922BA917004D4400A39146 /* CorePlot-CocoaTouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CorePlot-CocoaTouch.h"; sourceTree = "<group>"; }; 
     
    176199                        buildActionMask = 2147483647; 
    177200                        files = ( 
     201                                286608E417A7D40F003FA806 /* AudioToolbox.framework in Frameworks */, 
    178202                                28F901301799436F003FB5ED /* CoreBluetooth.framework in Frameworks */, 
    179203                                52922BA817004D1400A39146 /* libCorePlot-CocoaTouch.a in Frameworks */, 
     
    192216 
    193217/* Begin PBXGroup section */ 
     218                280D2AB317A802C7002D6863 /* Tutorial */ = { 
     219                        isa = PBXGroup; 
     220                        children = ( 
     221                                280D2AB417A802DB002D6863 /* index.html */, 
     222                        ); 
     223                        name = Tutorial; 
     224                        sourceTree = "<group>"; 
     225                }; 
    194226                2815BC08167F428B00F7E6DA /* Libraries */ = { 
    195227                        isa = PBXGroup; 
     
    208240                        isa = PBXGroup; 
    209241                        children = ( 
     242                                280D2AB317A802C7002D6863 /* Tutorial */, 
     243                                286608E317A7D40F003FA806 /* AudioToolbox.framework */, 
    210244                                28F9012F1799436F003FB5ED /* CoreBluetooth.framework */, 
    211245                                289C7D0F178D7A21005C08EC /* Images */, 
     
    263297                                288B4BC8178F016F007D588D /* SignalConverter.m */, 
    264298                                288B4BCA178F0842007D588D /* SignalConverterDelegate.h */, 
     299                                28F90131179973EC003FB5ED /* AudioGenerator.h */, 
     300                                28F90132179973EC003FB5ED /* AudioGenerator.m */, 
    265301                        ); 
    266302                        path = Orbit; 
     
    282318                        isa = PBXGroup; 
    283319                        children = ( 
     320                                280D2AB617A81714002D6863 /* advanced.png */, 
     321                                280D2AB717A81714002D6863 /* advanced@2x.png */, 
     322                                280D2AB817A81714002D6863 /* help.png */, 
     323                                280D2AB917A81714002D6863 /* help@2x.png */, 
     324                                280D2ABA17A81714002D6863 /* plane.png */, 
     325                                280D2ABB17A81714002D6863 /* plane@2x.png */, 
     326                                280D2ABC17A81714002D6863 /* tutorial.png */, 
     327                                280D2ABD17A81714002D6863 /* tutorial@2x.png */, 
    284328                                289C7D14178D7A34005C08EC /* status_0.png */, 
    285329                                288B4BBF178EB112007D588D /* status_0@2x.png */, 
     
    445489                                2843FE8F1790205900C79D56 /* status_4.png in Resources */, 
    446490                                2843FE901790205900C79D56 /* status_4@2x.png in Resources */, 
     491                                280D2AB517A802DB002D6863 /* index.html in Resources */, 
     492                                280D2ABE17A81714002D6863 /* advanced.png in Resources */, 
     493                                280D2ABF17A81714002D6863 /* advanced@2x.png in Resources */, 
     494                                280D2AC017A81714002D6863 /* help.png in Resources */, 
     495                                280D2AC117A81714002D6863 /* help@2x.png in Resources */, 
     496                                280D2AC217A81714002D6863 /* plane.png in Resources */, 
     497                                280D2AC317A81714002D6863 /* plane@2x.png in Resources */, 
     498                                280D2AC417A81714002D6863 /* tutorial.png in Resources */, 
     499                                280D2AC517A81714002D6863 /* tutorial@2x.png in Resources */, 
    447500                        ); 
    448501                        runOnlyForDeploymentPostprocessing = 0; 
     
    463516                                288B4BC6178ED362007D588D /* SupportViewController.m in Sources */, 
    464517                                288B4BC9178F016F007D588D /* SignalConverter.m in Sources */, 
     518                                28F90133179973EC003FB5ED /* AudioGenerator.m in Sources */, 
    465519                        ); 
    466520                        runOnlyForDeploymentPostprocessing = 0; 
Note: See TracChangeset for help on using the changeset viewer.