Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Cleaned up the source code and project files.

  • Loading branch information...
commit 2539045bf96f80b12caf9e64d0f2354896a794af 1 parent 12bbad1
Matthijs Hollemans authored

Showing 91 changed files with 438 additions and 7,316 deletions. Show diff stats Hide diff stats

  1. +0 13 Classes/DemoAppDelegate.h
  2. +0 24 Classes/DemoAppDelegate.m
  3. +0 21 Classes/DemoViewController.h
  4. +0 137 Classes/DemoViewController.m
  5. +71 75 Demo.xcodeproj/project.pbxproj
  6. +8 2 { → Demo}/Demo-Info.plist
  7. +9 0 Demo/DemoAppDelegate.h
  8. +26 0 Demo/DemoAppDelegate.m
  9. +4 0 Demo/DemoViewController.h
  10. +140 0 Demo/DemoViewController.m
  11. 0  { → Demo}/DemoViewController.xib
  12. +11 0 Demo/Demo_Prefix.pch
  13. +10 0 Demo/main.m
  14. +0 4 Demo_Prefix.pch
  15. +0 137 Docs/html/_sound_bank_player_8h.html
  16. +0 139 Docs/html/_sound_bank_player_8h_source.html
  17. +0 78 Docs/html/annotated.html
  18. BIN  Docs/html/bc_s.png
  19. +0 89 Docs/html/class_sound_bank_player-members.html
  20. +0 78 Docs/html/classes.html
  21. BIN  Docs/html/closed.png
  22. +0 686 Docs/html/doxygen.css
  23. BIN  Docs/html/doxygen.png
  24. +0 74 Docs/html/files.html
  25. +0 157 Docs/html/functions.html
  26. +0 96 Docs/html/functions_func.html
  27. +0 136 Docs/html/functions_vars.html
  28. +0 84 Docs/html/globals.html
  29. +0 84 Docs/html/globals_defs.html
  30. +0 65 Docs/html/index.html
  31. +0 117 Docs/html/installdox
  32. +0 287 Docs/html/interface_sound_bank_player.html
  33. BIN  Docs/html/nav_f.png
  34. BIN  Docs/html/nav_h.png
  35. BIN  Docs/html/open.png
  36. +0 26 Docs/html/search/all_61.html
  37. +0 43 Docs/html/search/all_62.html
  38. +0 26 Docs/html/search/all_63.html
  39. +0 32 Docs/html/search/all_64.html
  40. +0 26 Docs/html/search/all_66.html
  41. +0 26 Docs/html/search/all_69.html
  42. +0 26 Docs/html/search/all_6d.html
  43. +0 67 Docs/html/search/all_6e.html
  44. +0 41 Docs/html/search/all_70.html
  45. +0 65 Docs/html/search/all_73.html
  46. +0 25 Docs/html/search/classes_62.html
  47. +0 25 Docs/html/search/classes_6e.html
  48. +0 30 Docs/html/search/classes_73.html
  49. BIN  Docs/html/search/close.png
  50. +0 26 Docs/html/search/defines_6d.html
  51. +0 32 Docs/html/search/defines_6e.html
  52. +0 25 Docs/html/search/files_73.html
  53. +0 26 Docs/html/search/functions_61.html
  54. +0 32 Docs/html/search/functions_6e.html
  55. +0 26 Docs/html/search/functions_73.html
  56. BIN  Docs/html/search/mag_sel.png
  57. +0 12 Docs/html/search/nomatches.html
  58. +0 240 Docs/html/search/search.css
  59. +0 738 Docs/html/search/search.js
  60. BIN  Docs/html/search/search_l.png
  61. BIN  Docs/html/search/search_m.png
  62. BIN  Docs/html/search/search_r.png
  63. +0 38 Docs/html/search/variables_62.html
  64. +0 26 Docs/html/search/variables_63.html
  65. +0 32 Docs/html/search/variables_64.html
  66. +0 26 Docs/html/search/variables_66.html
  67. +0 26 Docs/html/search/variables_69.html
  68. +0 38 Docs/html/search/variables_6e.html
  69. +0 35 Docs/html/search/variables_70.html
  70. +0 44 Docs/html/search/variables_73.html
  71. +0 77 Docs/html/struct_buffer-members.html
  72. +0 99 Docs/html/struct_buffer.html
  73. +0 76 Docs/html/struct_note-members.html
  74. +0 96 Docs/html/struct_note.html
  75. +0 77 Docs/html/struct_source-members.html
  76. +0 99 Docs/html/struct_source.html
  77. BIN  Docs/html/tab_a.png
  78. BIN  Docs/html/tab_b.png
  79. BIN  Docs/html/tab_h.png
  80. BIN  Docs/html/tab_s.png
  81. +0 59 Docs/html/tabs.css
  82. +0 1,630 Doxyfile
  83. +0 444 MainWindow.xib
  84. +0 3  MakeDocs.sh
  85. +7 0 README.md
  86. +0 8 README.txt
  87. +6 6 {Classes → SoundBankPlayer}/OpenALSupport.c
  88. +3 3 {Classes → SoundBankPlayer}/OpenALSupport.h
  89. +11 71 {Classes → SoundBankPlayer}/SoundBankPlayer.h
  90. +132 97 {Classes → SoundBankPlayer}/SoundBankPlayer.m
  91. +0 8 main.m
13 Classes/DemoAppDelegate.h
... ... @@ -1,13 +0,0 @@
1   -
2   -@class DemoViewController;
3   -
4   -@interface DemoAppDelegate : NSObject <UIApplicationDelegate>
5   -{
6   - UIWindow* window;
7   - DemoViewController* viewController;
8   -}
9   -
10   -@property (nonatomic, retain) IBOutlet UIWindow* window;
11   -@property (nonatomic, retain) IBOutlet DemoViewController* viewController;
12   -
13   -@end
24 Classes/DemoAppDelegate.m
... ... @@ -1,24 +0,0 @@
1   -
2   -#import "DemoAppDelegate.h"
3   -#import "DemoViewController.h"
4   -
5   -@implementation DemoAppDelegate
6   -
7   -@synthesize window;
8   -@synthesize viewController;
9   -
10   -- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
11   -{
12   - [window addSubview:viewController.view];
13   - [window makeKeyAndVisible];
14   - return YES;
15   -}
16   -
17   -- (void)dealloc
18   -{
19   - [viewController release];
20   - [window release];
21   - [super dealloc];
22   -}
23   -
24   -@end
21 Classes/DemoViewController.h
... ... @@ -1,21 +0,0 @@
1   -
2   -#import "SoundBankPlayer.h"
3   -
4   -@interface DemoViewController : UIViewController
5   -{
6   - SoundBankPlayer* player;
7   - NSTimer* timer;
8   - BOOL playingArpeggio;
9   - NSArray* arpeggioNotes;
10   - int arpeggioIndex;
11   - double arpeggioStartTime;
12   - double arpeggioDelay;
13   -}
14   -
15   -- (IBAction)strumCMajorChord;
16   -- (IBAction)arpeggiateCMajorChord;
17   -
18   -- (IBAction)strumAMinorChord;
19   -- (IBAction)arpeggiateAMinorChord;
20   -
21   -@end
137 Classes/DemoViewController.m
... ... @@ -1,137 +0,0 @@
1   -
2   -// The sounds in this demo project were taken from Fluid R3 by Frank Wen,
3   -// a freely distributable SoundFont.
4   -
5   -#import <QuartzCore/CABase.h>
6   -#import "DemoViewController.h"
7   -
8   -@interface DemoViewController ()
9   -- (void)playArpeggioWithNotes:(NSArray*)notes delay:(double)delay;
10   -- (void)startTimer;
11   -- (void)stopTimer;
12   -@end
13   -
14   -@implementation DemoViewController
15   -
16   -- (id)initWithCoder:(NSCoder*)decoder
17   -{
18   - if ((self = [super initWithCoder:decoder]))
19   - {
20   - playingArpeggio = NO;
21   -
22   - // Create the player and tell it which sound bank to use.
23   - player = [[SoundBankPlayer alloc] init];
24   - [player setSoundBank:@"Piano"];
25   -
26   - // We use a timer to play arpeggios.
27   - [self startTimer];
28   - }
29   - return self;
30   -}
31   -
32   -- (void)dealloc
33   -{
34   - [self stopTimer];
35   - [player release];
36   -
37   - [super dealloc];
38   -}
39   -
40   -- (IBAction)strumCMajorChord
41   -{
42   - [player queueNote:48 gain:0.4f];
43   - [player queueNote:55 gain:0.4f];
44   - [player queueNote:64 gain:0.4f];
45   - [player playQueuedNotes];
46   -}
47   -
48   -- (IBAction)arpeggiateCMajorChord
49   -{
50   - NSArray* notes = [NSArray arrayWithObjects:
51   - [NSNumber numberWithInt:48],
52   - [NSNumber numberWithInt:55],
53   - [NSNumber numberWithInt:64],
54   - nil];
55   -
56   - [self playArpeggioWithNotes:notes delay:0.05];
57   -}
58   -
59   -- (IBAction)strumAMinorChord
60   -{
61   - [player queueNote:45 gain:0.4f];
62   - [player queueNote:52 gain:0.4f];
63   - [player queueNote:60 gain:0.4f];
64   - [player queueNote:67 gain:0.4f];
65   - [player playQueuedNotes];
66   -}
67   -
68   -- (IBAction)arpeggiateAMinorChord
69   -{
70   - NSArray* notes = [NSArray arrayWithObjects:
71   - [NSNumber numberWithInt:33],
72   - [NSNumber numberWithInt:45],
73   - [NSNumber numberWithInt:52],
74   - [NSNumber numberWithInt:60],
75   - [NSNumber numberWithInt:67],
76   - nil];
77   -
78   - [self playArpeggioWithNotes:notes delay:0.1];
79   -}
80   -
81   -- (void)playArpeggioWithNotes:(NSArray*)notes delay:(double)delay
82   -{
83   - if (!playingArpeggio)
84   - {
85   - playingArpeggio = YES;
86   - arpeggioNotes = [notes retain];
87   - arpeggioIndex = 0;
88   - arpeggioDelay = delay;
89   - arpeggioStartTime = CACurrentMediaTime();
90   - }
91   -}
92   -
93   -- (void)startTimer
94   -{
95   - timer = [NSTimer scheduledTimerWithTimeInterval: 0.05 // 50 ms
96   - target: self
97   - selector: @selector(handleTimer:)
98   - userInfo: nil
99   - repeats: YES];
100   -}
101   -
102   -- (void)stopTimer
103   -{
104   - if (timer != nil && [timer isValid])
105   - {
106   - [timer invalidate];
107   - timer = nil;
108   - }
109   -}
110   -
111   -- (void)handleTimer:(NSTimer*)timer
112   -{
113   - if (playingArpeggio)
114   - {
115   - // Play each note of the arpeggio after "arpeggioDelay" seconds.
116   - double now = CACurrentMediaTime();
117   - if (now - arpeggioStartTime >= arpeggioDelay)
118   - {
119   - NSNumber* number = (NSNumber*)[arpeggioNotes objectAtIndex:arpeggioIndex];
120   - [player noteOn:[number intValue] gain:0.4f];
121   -
122   - ++arpeggioIndex;
123   - if (arpeggioIndex == [arpeggioNotes count])
124   - {
125   - playingArpeggio = NO;
126   - [arpeggioNotes release];
127   - arpeggioNotes = nil;
128   - }
129   - else // schedule next note
130   - {
131   - arpeggioStartTime = now;
132   - }
133   - }
134   - }
135   -}
136   -
137   -@end
146 Demo.xcodeproj/project.pbxproj
@@ -3,23 +3,16 @@
3 3 archiveVersion = 1;
4 4 classes = {
5 5 };
6   - objectVersion = 45;
  6 + objectVersion = 46;
7 7 objects = {
8 8
9 9 /* Begin PBXBuildFile section */
10   - 1D3623260D0F684500981E51 /* DemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* DemoAppDelegate.m */; };
11   - 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
12 10 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
13 11 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
14 12 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
15   - 2899E5220DE3E06400AC0155 /* DemoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* DemoViewController.xib */; };
16   - 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
17   - 28D7ACF80DDB3853001CB0EB /* DemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* DemoViewController.m */; };
18 13 7BAA29921212690D00BF4296 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BAA29911212690D00BF4296 /* OpenAL.framework */; };
19 14 7BAA29961212691700BF4296 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BAA29951212691700BF4296 /* AudioToolbox.framework */; };
20 15 7BAA29DA12126BFA00BF4296 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BAA29D912126BFA00BF4296 /* QuartzCore.framework */; };
21   - 7BACBAB71211DE80005E8F00 /* OpenALSupport.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BACBAB31211DE80005E8F00 /* OpenALSupport.c */; };
22   - 7BACBAB81211DE80005E8F00 /* SoundBankPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BACBAB61211DE80005E8F00 /* SoundBankPlayer.m */; };
23 16 7BACBACF1211DE8E005E8F00 /* P200 Piano A#2.caf in Resources */ = {isa = PBXBuildFile; fileRef = 7BACBABA1211DE8E005E8F00 /* P200 Piano A#2.caf */; };
24 17 7BACBAD01211DE8E005E8F00 /* P200 Piano A#3.caf in Resources */ = {isa = PBXBuildFile; fileRef = 7BACBABB1211DE8E005E8F00 /* P200 Piano A#3.caf */; };
25 18 7BACBAD11211DE8E005E8F00 /* P200 Piano A#4.caf in Resources */ = {isa = PBXBuildFile; fileRef = 7BACBABC1211DE8E005E8F00 /* P200 Piano A#4.caf */; };
@@ -41,28 +34,22 @@
41 34 7BACBAE11211DE8E005E8F00 /* P200 Piano F#7.caf in Resources */ = {isa = PBXBuildFile; fileRef = 7BACBACC1211DE8E005E8F00 /* P200 Piano F#7.caf */; };
42 35 7BACBAE21211DE8E005E8F00 /* P200 Piano G#9.caf in Resources */ = {isa = PBXBuildFile; fileRef = 7BACBACD1211DE8E005E8F00 /* P200 Piano G#9.caf */; };
43 36 7BACBAE31211DE8E005E8F00 /* Piano.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7BACBACE1211DE8E005E8F00 /* Piano.plist */; };
  37 + 7BF55AE41595F5AD00324B00 /* OpenALSupport.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF55ADB1595F5AD00324B00 /* OpenALSupport.c */; };
  38 + 7BF55AE51595F5AD00324B00 /* SoundBankPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BF55ADE1595F5AD00324B00 /* SoundBankPlayer.m */; };
  39 + 7BF55AF01595F5CE00324B00 /* DemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BF55AEA1595F5CE00324B00 /* DemoAppDelegate.m */; };
  40 + 7BF55AF11595F5CE00324B00 /* DemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BF55AEC1595F5CE00324B00 /* DemoViewController.m */; };
  41 + 7BF55AF21595F5CE00324B00 /* DemoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7BF55AED1595F5CE00324B00 /* DemoViewController.xib */; };
  42 + 7BF55AF31595F5CE00324B00 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BF55AEE1595F5CE00324B00 /* main.m */; };
44 43 /* End PBXBuildFile section */
45 44
46 45 /* Begin PBXFileReference section */
47 46 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
48   - 1D3623240D0F684500981E51 /* DemoAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoAppDelegate.h; sourceTree = "<group>"; };
49   - 1D3623250D0F684500981E51 /* DemoAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoAppDelegate.m; sourceTree = "<group>"; };
50 47 1D6058910D05DD3D006BFB54 /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
51 48 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
52 49 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
53   - 2899E5210DE3E06400AC0155 /* DemoViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DemoViewController.xib; sourceTree = "<group>"; };
54   - 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
55   - 28D7ACF60DDB3853001CB0EB /* DemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoViewController.h; sourceTree = "<group>"; };
56   - 28D7ACF70DDB3853001CB0EB /* DemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoViewController.m; sourceTree = "<group>"; };
57   - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
58   - 32CA4F630368D1EE00C91783 /* Demo_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Demo_Prefix.pch; sourceTree = "<group>"; };
59 50 7BAA29911212690D00BF4296 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
60 51 7BAA29951212691700BF4296 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
61 52 7BAA29D912126BFA00BF4296 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
62   - 7BACBAB31211DE80005E8F00 /* OpenALSupport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = OpenALSupport.c; sourceTree = "<group>"; };
63   - 7BACBAB41211DE80005E8F00 /* OpenALSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenALSupport.h; sourceTree = "<group>"; };
64   - 7BACBAB51211DE80005E8F00 /* SoundBankPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundBankPlayer.h; sourceTree = "<group>"; };
65   - 7BACBAB61211DE80005E8F00 /* SoundBankPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SoundBankPlayer.m; sourceTree = "<group>"; };
66 53 7BACBABA1211DE8E005E8F00 /* P200 Piano A#2.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "P200 Piano A#2.caf"; sourceTree = "<group>"; };
67 54 7BACBABB1211DE8E005E8F00 /* P200 Piano A#3.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "P200 Piano A#3.caf"; sourceTree = "<group>"; };
68 55 7BACBABC1211DE8E005E8F00 /* P200 Piano A#4.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "P200 Piano A#4.caf"; sourceTree = "<group>"; };
@@ -84,7 +71,18 @@
84 71 7BACBACC1211DE8E005E8F00 /* P200 Piano F#7.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "P200 Piano F#7.caf"; sourceTree = "<group>"; };
85 72 7BACBACD1211DE8E005E8F00 /* P200 Piano G#9.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "P200 Piano G#9.caf"; sourceTree = "<group>"; };
86 73 7BACBACE1211DE8E005E8F00 /* Piano.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Piano.plist; sourceTree = "<group>"; };
87   - 8D1107310486CEB800E47090 /* Demo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Demo-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
  74 + 7BF55ADB1595F5AD00324B00 /* OpenALSupport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = OpenALSupport.c; sourceTree = "<group>"; };
  75 + 7BF55ADC1595F5AD00324B00 /* OpenALSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenALSupport.h; sourceTree = "<group>"; };
  76 + 7BF55ADD1595F5AD00324B00 /* SoundBankPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundBankPlayer.h; sourceTree = "<group>"; };
  77 + 7BF55ADE1595F5AD00324B00 /* SoundBankPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SoundBankPlayer.m; sourceTree = "<group>"; };
  78 + 7BF55AE71595F5CE00324B00 /* Demo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Demo-Info.plist"; sourceTree = "<group>"; };
  79 + 7BF55AE81595F5CE00324B00 /* Demo_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Demo_Prefix.pch; sourceTree = "<group>"; };
  80 + 7BF55AE91595F5CE00324B00 /* DemoAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoAppDelegate.h; sourceTree = "<group>"; };
  81 + 7BF55AEA1595F5CE00324B00 /* DemoAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoAppDelegate.m; sourceTree = "<group>"; };
  82 + 7BF55AEB1595F5CE00324B00 /* DemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoViewController.h; sourceTree = "<group>"; };
  83 + 7BF55AEC1595F5CE00324B00 /* DemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoViewController.m; sourceTree = "<group>"; };
  84 + 7BF55AED1595F5CE00324B00 /* DemoViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DemoViewController.xib; sourceTree = "<group>"; };
  85 + 7BF55AEE1595F5CE00324B00 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
88 86 /* End PBXFileReference section */
89 87
90 88 /* Begin PBXFrameworksBuildPhase section */
@@ -104,21 +102,6 @@
104 102 /* End PBXFrameworksBuildPhase section */
105 103
106 104 /* Begin PBXGroup section */
107   - 080E96DDFE201D6D7F000001 /* Classes */ = {
108   - isa = PBXGroup;
109   - children = (
110   - 7BACBAB51211DE80005E8F00 /* SoundBankPlayer.h */,
111   - 7BACBAB61211DE80005E8F00 /* SoundBankPlayer.m */,
112   - 7BACBAB31211DE80005E8F00 /* OpenALSupport.c */,
113   - 7BACBAB41211DE80005E8F00 /* OpenALSupport.h */,
114   - 1D3623240D0F684500981E51 /* DemoAppDelegate.h */,
115   - 1D3623250D0F684500981E51 /* DemoAppDelegate.m */,
116   - 28D7ACF60DDB3853001CB0EB /* DemoViewController.h */,
117   - 28D7ACF70DDB3853001CB0EB /* DemoViewController.m */,
118   - );
119   - path = Classes;
120   - sourceTree = "<group>";
121   - };
122 105 19C28FACFE9D520D11CA2CBB /* Products */ = {
123 106 isa = PBXGroup;
124 107 children = (
@@ -130,9 +113,8 @@
130 113 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
131 114 isa = PBXGroup;
132 115 children = (
133   - 080E96DDFE201D6D7F000001 /* Classes */,
134   - 29B97315FDCFA39411CA2CEA /* Other Sources */,
135   - 29B97317FDCFA39411CA2CEA /* Resources */,
  116 + 7BF55ADA1595F5AD00324B00 /* SoundBankPlayer */,
  117 + 7BF55AE61595F5CE00324B00 /* Demo */,
136 118 7BACBAB91211DE8E005E8F00 /* Sounds */,
137 119 29B97323FDCFA39411CA2CEA /* Frameworks */,
138 120 19C28FACFE9D520D11CA2CBB /* Products */,
@@ -140,25 +122,6 @@
140 122 name = CustomTemplate;
141 123 sourceTree = "<group>";
142 124 };
143   - 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
144   - isa = PBXGroup;
145   - children = (
146   - 32CA4F630368D1EE00C91783 /* Demo_Prefix.pch */,
147   - 29B97316FDCFA39411CA2CEA /* main.m */,
148   - );
149   - name = "Other Sources";
150   - sourceTree = "<group>";
151   - };
152   - 29B97317FDCFA39411CA2CEA /* Resources */ = {
153   - isa = PBXGroup;
154   - children = (
155   - 2899E5210DE3E06400AC0155 /* DemoViewController.xib */,
156   - 28AD733E0D9D9553002E5188 /* MainWindow.xib */,
157   - 8D1107310486CEB800E47090 /* Demo-Info.plist */,
158   - );
159   - name = Resources;
160   - sourceTree = "<group>";
161   - };
162 125 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
163 126 isa = PBXGroup;
164 127 children = (
@@ -200,6 +163,32 @@
200 163 path = Sounds;
201 164 sourceTree = "<group>";
202 165 };
  166 + 7BF55ADA1595F5AD00324B00 /* SoundBankPlayer */ = {
  167 + isa = PBXGroup;
  168 + children = (
  169 + 7BF55ADC1595F5AD00324B00 /* OpenALSupport.h */,
  170 + 7BF55ADB1595F5AD00324B00 /* OpenALSupport.c */,
  171 + 7BF55ADD1595F5AD00324B00 /* SoundBankPlayer.h */,
  172 + 7BF55ADE1595F5AD00324B00 /* SoundBankPlayer.m */,
  173 + );
  174 + path = SoundBankPlayer;
  175 + sourceTree = "<group>";
  176 + };
  177 + 7BF55AE61595F5CE00324B00 /* Demo */ = {
  178 + isa = PBXGroup;
  179 + children = (
  180 + 7BF55AE71595F5CE00324B00 /* Demo-Info.plist */,
  181 + 7BF55AE81595F5CE00324B00 /* Demo_Prefix.pch */,
  182 + 7BF55AE91595F5CE00324B00 /* DemoAppDelegate.h */,
  183 + 7BF55AEA1595F5CE00324B00 /* DemoAppDelegate.m */,
  184 + 7BF55AEB1595F5CE00324B00 /* DemoViewController.h */,
  185 + 7BF55AEC1595F5CE00324B00 /* DemoViewController.m */,
  186 + 7BF55AED1595F5CE00324B00 /* DemoViewController.xib */,
  187 + 7BF55AEE1595F5CE00324B00 /* main.m */,
  188 + );
  189 + path = Demo;
  190 + sourceTree = "<group>";
  191 + };
203 192 /* End PBXGroup section */
204 193
205 194 /* Begin PBXNativeTarget section */
@@ -226,10 +215,10 @@
226 215 29B97313FDCFA39411CA2CEA /* Project object */ = {
227 216 isa = PBXProject;
228 217 attributes = {
229   - LastUpgradeCheck = 0420;
  218 + LastUpgradeCheck = 0430;
230 219 };
231 220 buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Demo" */;
232   - compatibilityVersion = "Xcode 3.1";
  221 + compatibilityVersion = "Xcode 3.2";
233 222 developmentRegion = English;
234 223 hasScannedForEncodings = 1;
235 224 knownRegions = (
@@ -252,8 +241,6 @@
252 241 isa = PBXResourcesBuildPhase;
253 242 buildActionMask = 2147483647;
254 243 files = (
255   - 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
256   - 2899E5220DE3E06400AC0155 /* DemoViewController.xib in Resources */,
257 244 7BACBACF1211DE8E005E8F00 /* P200 Piano A#2.caf in Resources */,
258 245 7BACBAD01211DE8E005E8F00 /* P200 Piano A#3.caf in Resources */,
259 246 7BACBAD11211DE8E005E8F00 /* P200 Piano A#4.caf in Resources */,
@@ -275,6 +262,7 @@
275 262 7BACBAE11211DE8E005E8F00 /* P200 Piano F#7.caf in Resources */,
276 263 7BACBAE21211DE8E005E8F00 /* P200 Piano G#9.caf in Resources */,
277 264 7BACBAE31211DE8E005E8F00 /* Piano.plist in Resources */,
  265 + 7BF55AF21595F5CE00324B00 /* DemoViewController.xib in Resources */,
278 266 );
279 267 runOnlyForDeploymentPostprocessing = 0;
280 268 };
@@ -285,11 +273,11 @@
285 273 isa = PBXSourcesBuildPhase;
286 274 buildActionMask = 2147483647;
287 275 files = (
288   - 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
289   - 1D3623260D0F684500981E51 /* DemoAppDelegate.m in Sources */,
290   - 28D7ACF80DDB3853001CB0EB /* DemoViewController.m in Sources */,
291   - 7BACBAB71211DE80005E8F00 /* OpenALSupport.c in Sources */,
292   - 7BACBAB81211DE80005E8F00 /* SoundBankPlayer.m in Sources */,
  276 + 7BF55AE41595F5AD00324B00 /* OpenALSupport.c in Sources */,
  277 + 7BF55AE51595F5AD00324B00 /* SoundBankPlayer.m in Sources */,
  278 + 7BF55AF01595F5CE00324B00 /* DemoAppDelegate.m in Sources */,
  279 + 7BF55AF11595F5CE00324B00 /* DemoViewController.m in Sources */,
  280 + 7BF55AF31595F5CE00324B00 /* main.m in Sources */,
293 281 );
294 282 runOnlyForDeploymentPostprocessing = 0;
295 283 };
@@ -304,11 +292,16 @@
304 292 GCC_DYNAMIC_NO_PIC = NO;
305 293 GCC_OPTIMIZATION_LEVEL = 0;
306 294 GCC_PRECOMPILE_PREFIX_HEADER = YES;
307   - GCC_PREFIX_HEADER = Demo_Prefix.pch;
308   - INFOPLIST_FILE = "Demo-Info.plist";
  295 + GCC_PREFIX_HEADER = Demo/Demo_Prefix.pch;
  296 + INFOPLIST_FILE = "Demo/Demo-Info.plist";
  297 + IPHONEOS_DEPLOYMENT_TARGET = 5.0;
309 298 PRODUCT_NAME = Demo;
310 299 RUN_CLANG_STATIC_ANALYZER = YES;
311   - WARNING_CFLAGS = "-Wall";
  300 + WARNING_CFLAGS = (
  301 + "-Wall",
  302 + "-Wextra",
  303 + "-Wno-unused-parameter",
  304 + );
312 305 };
313 306 name = Debug;
314 307 };
@@ -318,12 +311,17 @@
318 311 ALWAYS_SEARCH_USER_PATHS = NO;
319 312 COPY_PHASE_STRIP = YES;
320 313 GCC_PRECOMPILE_PREFIX_HEADER = YES;
321   - GCC_PREFIX_HEADER = Demo_Prefix.pch;
322   - INFOPLIST_FILE = "Demo-Info.plist";
  314 + GCC_PREFIX_HEADER = Demo/Demo_Prefix.pch;
  315 + INFOPLIST_FILE = "Demo/Demo-Info.plist";
  316 + IPHONEOS_DEPLOYMENT_TARGET = 5.0;
323 317 PRODUCT_NAME = Demo;
324 318 RUN_CLANG_STATIC_ANALYZER = YES;
325 319 VALIDATE_PRODUCT = YES;
326   - WARNING_CFLAGS = "-Wall";
  320 + WARNING_CFLAGS = (
  321 + "-Wall",
  322 + "-Wextra",
  323 + "-Wno-unused-parameter",
  324 + );
327 325 };
328 326 name = Release;
329 327 };
@@ -336,7 +334,6 @@
336 334 GCC_WARN_ABOUT_RETURN_TYPE = YES;
337 335 GCC_WARN_UNUSED_VARIABLE = YES;
338 336 IPHONEOS_DEPLOYMENT_TARGET = 3.0;
339   - PREBINDING = NO;
340 337 SDKROOT = iphoneos;
341 338 };
342 339 name = Debug;
@@ -351,7 +348,6 @@
351 348 GCC_WARN_UNUSED_VARIABLE = YES;
352 349 IPHONEOS_DEPLOYMENT_TARGET = 3.0;
353 350 OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
354   - PREBINDING = NO;
355 351 SDKROOT = iphoneos;
356 352 };
357 353 name = Release;
10 Demo-Info.plist → Demo/Demo-Info.plist
@@ -18,13 +18,19 @@
18 18 <string>${PRODUCT_NAME}</string>
19 19 <key>CFBundlePackageType</key>
20 20 <string>APPL</string>
  21 + <key>CFBundleShortVersionString</key>
  22 + <string>1.0</string>
21 23 <key>CFBundleSignature</key>
22 24 <string>????</string>
23 25 <key>CFBundleVersion</key>
24 26 <string>1.0</string>
25 27 <key>LSRequiresIPhoneOS</key>
26 28 <true/>
27   - <key>NSMainNibFile</key>
28   - <string>MainWindow</string>
  29 + <key>UIPrerenderedIcon</key>
  30 + <true/>
  31 + <key>UISupportedInterfaceOrientations</key>
  32 + <array>
  33 + <string>UIInterfaceOrientationPortrait</string>
  34 + </array>
29 35 </dict>
30 36 </plist>
9 Demo/DemoAppDelegate.h
... ... @@ -0,0 +1,9 @@
  1 +
  2 +@class DemoViewController;
  3 +
  4 +@interface DemoAppDelegate : UIResponder <UIApplicationDelegate>
  5 +
  6 +@property (nonatomic, retain) IBOutlet UIWindow *window;
  7 +@property (nonatomic, retain) IBOutlet DemoViewController *viewController;
  8 +
  9 +@end
26 Demo/DemoAppDelegate.m
... ... @@ -0,0 +1,26 @@
  1 +
  2 +#import "DemoAppDelegate.h"
  3 +#import "DemoViewController.h"
  4 +
  5 +@implementation DemoAppDelegate
  6 +
  7 +@synthesize window = _window;
  8 +@synthesize viewController = _viewController;
  9 +
  10 +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  11 +{
  12 + self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
  13 + self.viewController = [[[DemoViewController alloc] initWithNibName:@"DemoViewController" bundle:nil] autorelease];
  14 + self.window.rootViewController = self.viewController;
  15 + [self.window makeKeyAndVisible];
  16 + return YES;
  17 +}
  18 +
  19 +- (void)dealloc
  20 +{
  21 + [_viewController release];
  22 + [_window release];
  23 + [super dealloc];
  24 +}
  25 +
  26 +@end
4 Demo/DemoViewController.h
... ... @@ -0,0 +1,4 @@
  1 +
  2 +@interface DemoViewController : UIViewController
  3 +
  4 +@end
140 Demo/DemoViewController.m
... ... @@ -0,0 +1,140 @@
  1 +
  2 +// The sounds in this demo project were taken from Fluid R3 by Frank Wen,
  3 +// a freely distributable SoundFont.
  4 +
  5 +#import <QuartzCore/CABase.h>
  6 +#import "DemoViewController.h"
  7 +#import "SoundBankPlayer.h"
  8 +
  9 +@implementation DemoViewController
  10 +{
  11 + SoundBankPlayer *_soundBankPlayer;
  12 + NSTimer *_timer;
  13 + BOOL _playingArpeggio;
  14 + NSArray *_arpeggioNotes;
  15 + NSUInteger _arpeggioIndex;
  16 + double _arpeggioStartTime;
  17 + double _arpeggioDelay;
  18 +}
  19 +
  20 +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  21 +{
  22 + if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]))
  23 + {
  24 + _playingArpeggio = NO;
  25 +
  26 + // Create the player and tell it which sound bank to use.
  27 + _soundBankPlayer = [[SoundBankPlayer alloc] init];
  28 + [_soundBankPlayer setSoundBank:@"Piano"];
  29 +
  30 + // We use a timer to play arpeggios.
  31 + [self startTimer];
  32 + }
  33 + return self;
  34 +}
  35 +
  36 +- (void)dealloc
  37 +{
  38 + [self stopTimer];
  39 + [_soundBankPlayer release];
  40 + [super dealloc];
  41 +}
  42 +
  43 +- (IBAction)strumCMajorChord
  44 +{
  45 + [_soundBankPlayer queueNote:48 gain:0.4f];
  46 + [_soundBankPlayer queueNote:55 gain:0.4f];
  47 + [_soundBankPlayer queueNote:64 gain:0.4f];
  48 + [_soundBankPlayer playQueuedNotes];
  49 +}
  50 +
  51 +- (IBAction)arpeggiateCMajorChord
  52 +{
  53 + NSArray *notes = [NSArray arrayWithObjects:
  54 + [NSNumber numberWithInt:48],
  55 + [NSNumber numberWithInt:55],
  56 + [NSNumber numberWithInt:64],
  57 + nil];
  58 +
  59 + [self playArpeggioWithNotes:notes delay:0.05];
  60 +}
  61 +
  62 +- (IBAction)strumAMinorChord
  63 +{
  64 + [_soundBankPlayer queueNote:45 gain:0.4f];
  65 + [_soundBankPlayer queueNote:52 gain:0.4f];
  66 + [_soundBankPlayer queueNote:60 gain:0.4f];
  67 + [_soundBankPlayer queueNote:67 gain:0.4f];
  68 + [_soundBankPlayer playQueuedNotes];
  69 +}
  70 +
  71 +- (IBAction)arpeggiateAMinorChord
  72 +{
  73 + NSArray *notes = [NSArray arrayWithObjects:
  74 + [NSNumber numberWithInt:33],
  75 + [NSNumber numberWithInt:45],
  76 + [NSNumber numberWithInt:52],
  77 + [NSNumber numberWithInt:60],
  78 + [NSNumber numberWithInt:67],
  79 + nil];
  80 +
  81 + [self playArpeggioWithNotes:notes delay:0.1];
  82 +}
  83 +
  84 +- (void)playArpeggioWithNotes:(NSArray *)notes delay:(double)delay
  85 +{
  86 + if (!_playingArpeggio)
  87 + {
  88 + _playingArpeggio = YES;
  89 + _arpeggioNotes = [notes copy];
  90 + _arpeggioIndex = 0;
  91 + _arpeggioDelay = delay;
  92 + _arpeggioStartTime = CACurrentMediaTime();
  93 + }
  94 +}
  95 +
  96 +- (void)startTimer
  97 +{
  98 + _timer = [NSTimer scheduledTimerWithTimeInterval:0.05 // 50 ms
  99 + target:self
  100 + selector:@selector(handleTimer:)
  101 + userInfo:nil
  102 + repeats:YES];
  103 +}
  104 +
  105 +- (void)stopTimer
  106 +{
  107 + if (_timer != nil && [_timer isValid])
  108 + {
  109 + [_timer invalidate];
  110 + _timer = nil;
  111 + }
  112 +}
  113 +
  114 +- (void)handleTimer:(NSTimer *)timer
  115 +{
  116 + if (_playingArpeggio)
  117 + {
  118 + // Play each note of the arpeggio after "arpeggioDelay" seconds.
  119 + double now = CACurrentMediaTime();
  120 + if (now - _arpeggioStartTime >= _arpeggioDelay)
  121 + {
  122 + NSNumber *number = (NSNumber *)[_arpeggioNotes objectAtIndex:_arpeggioIndex];
  123 + [_soundBankPlayer noteOn:[number intValue] gain:0.4f];
  124 +
  125 + ++_arpeggioIndex;
  126 + if (_arpeggioIndex == [_arpeggioNotes count])
  127 + {
  128 + _playingArpeggio = NO;
  129 + [_arpeggioNotes release];
  130 + _arpeggioNotes = nil;
  131 + }
  132 + else // schedule next note
  133 + {
  134 + _arpeggioStartTime = now;
  135 + }
  136 + }
  137 + }
  138 +}
  139 +
  140 +@end
0  DemoViewController.xib → Demo/DemoViewController.xib
File renamed without changes
11 Demo/Demo_Prefix.pch
... ... @@ -0,0 +1,11 @@
  1 +
  2 +#import <Availability.h>
  3 +
  4 +#ifndef __IPHONE_4_0
  5 +#warning "This project uses features only available in iOS SDK 4.0 and later."
  6 +#endif
  7 +
  8 +#ifdef __OBJC__
  9 + #import <Foundation/Foundation.h>
  10 + #import <UIKit/UIKit.h>
  11 +#endif
10 Demo/main.m
... ... @@ -0,0 +1,10 @@
  1 +
  2 +#import "DemoAppDelegate.h"
  3 +
  4 +int main(int argc, char *argv[])
  5 +{
  6 + @autoreleasepool
  7 + {
  8 + return UIApplicationMain(argc, argv, nil, NSStringFromClass([DemoAppDelegate class]));
  9 + }
  10 +}
4 Demo_Prefix.pch
... ... @@ -1,4 +0,0 @@
1   -#ifdef __OBJC__
2   - #import <Foundation/Foundation.h>
3   - #import <UIKit/UIKit.h>
4   -#endif
137 Docs/html/_sound_bank_player_8h.html
... ... @@ -1,137 +0,0 @@
1   -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2   -<html xmlns="http://www.w3.org/1999/xhtml">
3   -<head>
4   -<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5   -<title>SoundBankPlayer: Classes/SoundBankPlayer.h File Reference</title>
6   -<link href="tabs.css" rel="stylesheet" type="text/css"/>
7   -<link href="search/search.css" rel="stylesheet" type="text/css"/>
8   -<script type="text/javaScript" src="search/search.js"></script>
9   -<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10   -</head>
11   -<body onload='searchBox.OnSelectItem(0);'>
12   -<!-- Generated by Doxygen 1.7.2 -->
13   -<script type="text/javascript"><!--
14   -var searchBox = new SearchBox("searchBox", "search",false,'Search');
15   ---></script>
16   -<div class="navigation" id="top">
17   - <div class="tabs">
18   - <ul class="tablist">
19   - <li><a href="index.html"><span>Main&#160;Page</span></a></li>
20   - <li><a href="annotated.html"><span>Classes</span></a></li>
21   - <li class="current"><a href="files.html"><span>Files</span></a></li>
22   - <li id="searchli">
23   - <div id="MSearchBox" class="MSearchBoxInactive">
24   - <span class="left">
25   - <img id="MSearchSelect" src="search/mag_sel.png"
26   - onmouseover="return searchBox.OnSearchSelectShow()"
27   - onmouseout="return searchBox.OnSearchSelectHide()"
28   - alt=""/>
29   - <input type="text" id="MSearchField" value="Search" accesskey="S"
30   - onfocus="searchBox.OnSearchFieldFocus(true)"
31   - onblur="searchBox.OnSearchFieldFocus(false)"
32   - onkeyup="searchBox.OnSearchFieldChange(event)"/>
33   - </span><span class="right">
34   - <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
35   - </span>
36   - </div>
37   - </li>
38   - </ul>
39   - </div>
40   - <div class="tabs2">
41   - <ul class="tablist">
42   - <li><a href="files.html"><span>File&#160;List</span></a></li>
43   - <li><a href="globals.html"><span>File&#160;Members</span></a></li>
44   - </ul>
45   - </div>
46   -</div>
47   -<div class="header">
48   - <div class="summary">
49   -<a href="#nested-classes">Classes</a> &#124;
50   -<a href="#define-members">Defines</a> </div>
51   - <div class="headertitle">
52   -<h1>Classes/SoundBankPlayer.h File Reference</h1> </div>
53   -</div>
54   -<div class="contents">
55   -<code>#import &lt;Foundation/Foundation.h&gt;</code><br/>
56   -<code>#import &lt;OpenAL/al.h&gt;</code><br/>
57   -<code>#import &lt;OpenAL/alc.h&gt;</code><br/>
58   -
59   -<p><a href="_sound_bank_player_8h_source.html">Go to the source code of this file.</a></p>
60   -<table class="memberdecls">
61   -<tr><td colspan="2"><h2><a name="nested-classes"></a>
62   -Classes</h2></td></tr>
63   -<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_buffer.html">Buffer</a></td></tr>
64   -<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_source.html">Source</a></td></tr>
65   -<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_note.html">Note</a></td></tr>
66   -<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_sound_bank_player.html">SoundBankPlayer</a></td></tr>
67   -<tr><td colspan="2"><h2><a name="define-members"></a>
68   -Defines</h2></td></tr>
69   -<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sound_bank_player_8h.html#a7781bc9613ec655352585fb1bac2595d">MAX_BUFFERS</a>&#160;&#160;&#160;128</td></tr>
70   -<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sound_bank_player_8h.html#a32dab2958741954c553be53105ac70a9">NUM_SOURCES</a>&#160;&#160;&#160;32</td></tr>
71   -<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sound_bank_player_8h.html#a5b0b677cb9527865430a9b3d7a71cb03">NUM_NOTES</a>&#160;&#160;&#160;128</td></tr>
72   -</table>
73   -<hr/><a name="_details"></a><h2>Detailed Description</h2>
74   -<p>Copyright (c) 2008-2011 Matthijs Hollemans. With contributions from π. Licensed under the terms of the MIT license. </p>
75   -<hr/><h2>Define Documentation</h2>
76   -<a class="anchor" id="a7781bc9613ec655352585fb1bac2595d"></a><!-- doxytag: member="SoundBankPlayer.h::MAX_BUFFERS" ref="a7781bc9613ec655352585fb1bac2595d" args="" -->
77   -<div class="memitem">
78   -<div class="memproto">
79   - <table class="memname">
80   - <tr>
81   - <td class="memname">#define MAX_BUFFERS&#160;&#160;&#160;128</td>
82   - </tr>
83   - </table>
84   -</div>
85   -<div class="memdoc">
86   -<p>How many <a class="el" href="struct_buffer.html">Buffer</a> objects we have. This limits the number of sound samples there can be in the sound bank. </p>
87   -
88   -</div>
89   -</div>
90   -<a class="anchor" id="a5b0b677cb9527865430a9b3d7a71cb03"></a><!-- doxytag: member="SoundBankPlayer.h::NUM_NOTES" ref="a5b0b677cb9527865430a9b3d7a71cb03" args="" -->
91   -<div class="memitem">
92   -<div class="memproto">
93   - <table class="memname">
94   - <tr>
95   - <td class="memname">#define NUM_NOTES&#160;&#160;&#160;128</td>
96   - </tr>
97   - </table>
98   -</div>
99   -<div class="memdoc">
100   -<p>How many <a class="el" href="struct_note.html">Note</a> objects we have. We can handle the entire MIDI range (0-127). </p>
101   -
102   -</div>
103   -</div>
104   -<a class="anchor" id="a32dab2958741954c553be53105ac70a9"></a><!-- doxytag: member="SoundBankPlayer.h::NUM_SOURCES" ref="a32dab2958741954c553be53105ac70a9" args="" -->
105   -<div class="memitem">
106   -<div class="memproto">
107   - <table class="memname">
108   - <tr>
109   - <td class="memname">#define NUM_SOURCES&#160;&#160;&#160;32</td>
110   - </tr>
111   - </table>
112   -</div>
113   -<div class="memdoc">
114   -<p>How many OpenAL sources we will use. Each source plays a single buffer, so this effectively determines the maximum polyphony. There is an upper limit to the number of simultaneously playing sources that OpenAL supports. <a href="http://stackoverflow.com/questions/2871905/openal-determine-maximum-sources">http://stackoverflow.com/questions/2871905/openal-determine-maximum-sources</a> </p>
115   -
116   -</div>
117   -</div>
118   -</div>
119   -<!--- window showing the filter options -->
120   -<div id="MSearchSelectWindow"
121   - onmouseover="return searchBox.OnSearchSelectShow()"
122   - onmouseout="return searchBox.OnSearchSelectHide()"
123   - onkeydown="return searchBox.OnSearchSelectKey(event)">
124   -<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</a></div>
125   -
126   -<!-- iframe showing the search results (closed by default) -->
127   -<div id="MSearchResultsWindow">
128   -<iframe src="" frameborder="0"
129   - name="MSearchResults" id="MSearchResults">
130   -</iframe>
131   -</div>
132   -
133   -<hr class="footer"/><address class="footer"><small>Generated on Sun Oct 9 2011 13:46:35 for SoundBankPlayer by&#160;
134   -<a href="http://www.doxygen.org/index.html">
135   -<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
136   -</body>
137   -</html>
139 Docs/html/_sound_bank_player_8h_source.html
... ... @@ -1,139 +0,0 @@
1   -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2   -<html xmlns="http://www.w3.org/1999/xhtml">
3   -<head>
4   -<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5   -<title>SoundBankPlayer: Classes/SoundBankPlayer.h Source File</title>
6   -<link href="tabs.css" rel="stylesheet" type="text/css"/>
7   -<link href="search/search.css" rel="stylesheet" type="text/css"/>
8   -<script type="text/javaScript" src="search/search.js"></script>
9   -<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10   -</head>
11   -<body onload='searchBox.OnSelectItem(0);'>
12   -<!-- Generated by Doxygen 1.7.2 -->
13   -<script type="text/javascript"><!--
14   -var searchBox = new SearchBox("searchBox", "search",false,'Search');
15   ---></script>
16   -<div class="navigation" id="top">
17   - <div class="tabs">
18   - <ul class="tablist">
19   - <li><a href="index.html"><span>Main&#160;Page</span></a></li>
20   - <li><a href="annotated.html"><span>Classes</span></a></li>
21   - <li class="current"><a href="files.html"><span>Files</span></a></li>
22   - <li id="searchli">
23   - <div id="MSearchBox" class="MSearchBoxInactive">
24   - <span class="left">
25   - <img id="MSearchSelect" src="search/mag_sel.png"
26   - onmouseover="return searchBox.OnSearchSelectShow()"
27   - onmouseout="return searchBox.OnSearchSelectHide()"
28   - alt=""/>
29   - <input type="text" id="MSearchField" value="Search" accesskey="S"
30   - onfocus="searchBox.OnSearchFieldFocus(true)"
31   - onblur="searchBox.OnSearchFieldFocus(false)"
32   - onkeyup="searchBox.OnSearchFieldChange(event)"/>
33   - </span><span class="right">
34   - <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
35   - </span>
36   - </div>
37   - </li>
38   - </ul>
39   - </div>
40   - <div class="tabs2">
41   - <ul class="tablist">
42   - <li><a href="files.html"><span>File&#160;List</span></a></li>
43   - <li><a href="globals.html"><span>File&#160;Members</span></a></li>
44   - </ul>
45   - </div>
46   -<div class="header">
47   - <div class="headertitle">
48   -<h1>Classes/SoundBankPlayer.h</h1> </div>
49   -</div>
50   -<div class="contents">
51   -<a href="_sound_bank_player_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
52   -<a name="l00009"></a>00009 <span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span>
53   -<a name="l00010"></a>00010 <span class="preprocessor">#import &lt;OpenAL/al.h&gt;</span>
54   -<a name="l00011"></a>00011 <span class="preprocessor">#import &lt;OpenAL/alc.h&gt;</span>
55   -<a name="l00012"></a>00012
56   -<a name="l00017"></a><a class="code" href="_sound_bank_player_8h.html#a7781bc9613ec655352585fb1bac2595d">00017</a> <span class="preprocessor">#define MAX_BUFFERS 128</span>
57   -<a name="l00018"></a>00018 <span class="preprocessor"></span>
58   -<a name="l00025"></a><a class="code" href="_sound_bank_player_8h.html#a32dab2958741954c553be53105ac70a9">00025</a> <span class="preprocessor">#define NUM_SOURCES 32</span>
59   -<a name="l00026"></a>00026 <span class="preprocessor"></span>
60   -<a name="l00030"></a><a class="code" href="_sound_bank_player_8h.html#a5b0b677cb9527865430a9b3d7a71cb03">00030</a> <span class="preprocessor">#define NUM_NOTES 128</span>
61   -<a name="l00031"></a>00031 <span class="preprocessor"></span>
62   -<a name="l00035"></a><a class="code" href="struct_buffer.html">00035</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
63   -<a name="l00036"></a>00036 {
64   -<a name="l00037"></a><a class="code" href="struct_buffer.html#a8f47bea35c54466c5ab0ce4860d2b46e">00037</a> <span class="keywordtype">float</span> <a class="code" href="struct_buffer.html#a8f47bea35c54466c5ab0ce4860d2b46e" title="pitch of the note in the sound sample">pitch</a>;
65   -<a name="l00038"></a><a class="code" href="struct_buffer.html#adc35530448632d4da442860a54d0ef26">00038</a> NSString* <a class="code" href="struct_buffer.html#adc35530448632d4da442860a54d0ef26" title="name of the sound sample file">filename</a>;
66   -<a name="l00039"></a><a class="code" href="struct_buffer.html#ab355f212c79d0a02da61d61461d4ead2">00039</a> ALuint <a class="code" href="struct_buffer.html#ab355f212c79d0a02da61d61461d4ead2" title="OpenAL buffer name.">bufferId</a>;
67   -<a name="l00040"></a><a class="code" href="struct_buffer.html#ae615518349c1a6f24d7b3b565f740dc0">00040</a> <span class="keywordtype">void</span>* <a class="code" href="struct_buffer.html#ae615518349c1a6f24d7b3b565f740dc0" title="the buffer sample data">data</a>;
68   -<a name="l00041"></a>00041 }
69   -<a name="l00042"></a>00042 <a class="code" href="struct_buffer.html">Buffer</a>;
70   -<a name="l00043"></a>00043
71   -<a name="l00047"></a><a class="code" href="struct_source.html">00047</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
72   -<a name="l00048"></a>00048 {
73   -<a name="l00049"></a><a class="code" href="struct_source.html#a49d857f596ce370d981d1e7a4551650f">00049</a> ALuint <a class="code" href="struct_source.html#a49d857f596ce370d981d1e7a4551650f" title="OpenAL source name.">sourceId</a>;
74   -<a name="l00050"></a><a class="code" href="struct_source.html#af284b44a8f0d131b8969b0d2bf462874">00050</a> <span class="keywordtype">int</span> <a class="code" href="struct_source.html#af284b44a8f0d131b8969b0d2bf462874" title="which note is playing or -1 if idle">noteIndex</a>;
75   -<a name="l00051"></a><a class="code" href="struct_source.html#aed730d25bfecdf40bca254209ffee72a">00051</a> <span class="keywordtype">bool</span> <a class="code" href="struct_source.html#aed730d25bfecdf40bca254209ffee72a" title="is this source queued to be played later?">queued</a>;
76   -<a name="l00052"></a><a class="code" href="struct_source.html#a2d213158ae8fdf4577792bdedb8b0509">00052</a> NSTimeInterval <a class="code" href="struct_source.html#a2d213158ae8fdf4577792bdedb8b0509" title="time at which this source was enqueued">time</a>;
77   -<a name="l00053"></a>00053 }
78   -<a name="l00054"></a>00054 <a class="code" href="struct_source.html">Source</a>;
79   -<a name="l00055"></a>00055
80   -<a name="l00059"></a><a class="code" href="struct_note.html">00059</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
81   -<a name="l00060"></a>00060 {
82   -<a name="l00061"></a><a class="code" href="struct_note.html#a06096f658d6e4d88aa333e0ea32cbbae">00061</a> <span class="keywordtype">float</span> <a class="code" href="struct_note.html#a06096f658d6e4d88aa333e0ea32cbbae" title="pitch of the note">pitch</a>;
83   -<a name="l00062"></a><a class="code" href="struct_note.html#aeb65fb286cd71f534536551e58a65e83">00062</a> <span class="keywordtype">int</span> <a class="code" href="struct_note.html#aeb65fb286cd71f534536551e58a65e83" title="which buffer is assigned to this note (-1 = none)">bufferIndex</a>;
84   -<a name="l00063"></a><a class="code" href="struct_note.html#aa601c1bafdfa658146b033c77f649618">00063</a> <span class="keywordtype">float</span> <a class="code" href="struct_note.html#aa601c1bafdfa658146b033c77f649618" title="&amp;lt; 0 is left, 0 is center, &amp;gt; 0 is right">panning</a>;
85   -<a name="l00064"></a>00064 }
86   -<a name="l00065"></a>00065 <a class="code" href="struct_note.html">Note</a>;
87   -<a name="l00066"></a>00066
88   -<a name="l00080"></a><a class="code" href="interface_sound_bank_player.html">00080</a> <span class="keyword">@interface </span><a class="code" href="interface_sound_bank_player.html">SoundBankPlayer</a> : NSObject
89   -<a name="l00081"></a>00081 {
90   -<a name="l00082"></a><a class="code" href="interface_sound_bank_player.html#a3ff85c09ffb7b9b71fe38c90384ecfe9">00082</a> BOOL <a class="code" href="interface_sound_bank_player.html#a3ff85c09ffb7b9b71fe38c90384ecfe9" title="whether OpenAL is initialized">initialized</a>;
91   -<a name="l00083"></a><a class="code" href="interface_sound_bank_player.html#aa6a2e4f2faabaf6d020c23dcd5ff4968">00083</a> <span class="keywordtype">int</span> <a class="code" href="interface_sound_bank_player.html#aa6a2e4f2faabaf6d020c23dcd5ff4968" title="the number of active Buffer objects">numBuffers</a>;
92   -<a name="l00084"></a><a class="code" href="interface_sound_bank_player.html#af0b34b2242e56e587b9a451de59af640">00084</a> <span class="keywordtype">int</span> <a class="code" href="interface_sound_bank_player.html#af0b34b2242e56e587b9a451de59af640" title="the sample rate of the sound bank">sampleRate</a>;
93   -<a name="l00085"></a>00085
94   -<a name="l00086"></a><a class="code" href="interface_sound_bank_player.html#aa5a3ffc2c2163baf0e906c0f73320fa7">00086</a> <a class="code" href="struct_buffer.html">Buffer</a> <a class="code" href="interface_sound_bank_player.html#aa5a3ffc2c2163baf0e906c0f73320fa7" title="list of buffers, not all are active">buffers</a>[MAX_BUFFERS];
95   -<a name="l00087"></a><a class="code" href="interface_sound_bank_player.html#a64363f10c4f4983cfe101fe120c6733d">00087</a> <a class="code" href="struct_source.html">Source</a> <a class="code" href="interface_sound_bank_player.html#a64363f10c4f4983cfe101fe120c6733d" title="list of active sources">sources</a>[NUM_SOURCES];
96   -<a name="l00088"></a><a class="code" href="interface_sound_bank_player.html#a659d27971a2812e9f5a14b5a71063e6d">00088</a> <a class="code" href="struct_note.html">Note</a> <a class="code" href="interface_sound_bank_player.html#a659d27971a2812e9f5a14b5a71063e6d" title="the notes indexed by MIDI note number">notes</a>[NUM_NOTES];
97   -<a name="l00089"></a>00089
98   -<a name="l00090"></a><a class="code" href="interface_sound_bank_player.html#aa020241cacaea6246e74d7f1e8f8bd43">00090</a> ALCcontext* <a class="code" href="interface_sound_bank_player.html#aa020241cacaea6246e74d7f1e8f8bd43" title="OpenAL context.">context</a>;
99   -<a name="l00091"></a><a class="code" href="interface_sound_bank_player.html#afef459b1144f850385540860e9f003e7">00091</a> ALCdevice* <a class="code" href="interface_sound_bank_player.html#afef459b1144f850385540860e9f003e7" title="OpenAL device.">device</a>;
100   -<a name="l00092"></a>00092
101   -<a name="l00093"></a><a class="code" href="interface_sound_bank_player.html#a437c39c10171e0774263f2a4a033401b">00093</a> NSString* <a class="code" href="interface_sound_bank_player.html#a437c39c10171e0774263f2a4a033401b" title="name of the current sound bank">soundBankName</a>;
102   -<a name="l00094"></a>00094 }
103   -<a name="l00095"></a>00095
104   -<a name="l00109"></a><a class="code" href="interface_sound_bank_player.html#a1ab030ff3a242c3a70092375febd229f">00109</a> @property (nonatomic, assign) BOOL loopNotes;
105   -<a name="l00110"></a>00110
106   -<a name="l00116"></a>00116 - (<span class="keywordtype">void</span>)setSoundBank:(NSString*)soundBankName;
107   -<a name="l00117"></a>00117
108   -<a name="l00130"></a>00130 - (<span class="keywordtype">void</span>)noteOn:(<span class="keywordtype">int</span>)midiNoteNumber gain:(<span class="keywordtype">float</span>)gain;
109   -<a name="l00131"></a>00131
110   -<a name="l00136"></a>00136 - (<span class="keywordtype">void</span>)queueNote:(<span class="keywordtype">int</span>)midiNoteNumber gain:(<span class="keywordtype">float</span>)gain;
111   -<a name="l00137"></a>00137
112   -<a name="l00141"></a>00141 - (<span class="keywordtype">void</span>)playQueuedNotes;
113   -<a name="l00142"></a>00142
114   -<a name="l00148"></a>00148 - (<span class="keywordtype">void</span>)noteOff:(<span class="keywordtype">int</span>)midiNoteNumber;
115   -<a name="l00149"></a>00149
116   -<a name="l00153"></a>00153 - (<span class="keywordtype">void</span>)allNotesOff;
117   -<a name="l00154"></a>00154
118   -<a name="l00155"></a>00155 @end
119   -</pre></div></div>
120   -</div>
121   -<!--- window showing the filter options -->
122   -<div id="MSearchSelectWindow"
123   - onmouseover="return searchBox.OnSearchSelectShow()"
124   - onmouseout="return searchBox.OnSearchSelectHide()"
125   - onkeydown="return searchBox.OnSearchSelectKey(event)">
126   -<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</a></div>
127   -
128   -<!-- iframe showing the search results (closed by default) -->
129   -<div id="MSearchResultsWindow">
130   -<iframe src="" frameborder="0"
131   - name="MSearchResults" id="MSearchResults">
132   -</iframe>
133   -</div>
134   -
135   -<hr class="footer"/><address class="footer"><small>Generated on Sun Oct 9 2011 13:46:35 for SoundBankPlayer by&#160;
136   -<a href="http://www.doxygen.org/index.html">
137   -<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
138   -</body>
139   -</html>
78 Docs/html/annotated.html
... ... @@ -1,78 +0,0 @@
1   -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2   -<html xmlns="http://www.w3.org/1999/xhtml">
3   -<head>
4   -<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5   -<title>SoundBankPlayer: Class List</title>
6   -<link href="tabs.css" rel="stylesheet" type="text/css"/>
7   -<link href="search/search.css" rel="stylesheet" type="text/css"/>
8   -<script type="text/javaScript" src="search/search.js"></script>
9   -<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10   -</head>
11   -<body onload='searchBox.OnSelectItem(0);'>
12   -<!-- Generated by Doxygen 1.7.2 -->
13   -<script type="text/javascript"><!--
14   -var searchBox = new SearchBox("searchBox", "search",false,'Search');
15   ---></script>
16   -<div class="navigation" id="top">
17   - <div class="tabs">
18   - <ul class="tablist">
19   - <li><a href="index.html"><span>Main&#160;Page</span></a></li>
20   - <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
21   - <li><a href="files.html"><span>Files</span></a></li>
22   - <li id="searchli">
23   - <div id="MSearchBox" class="MSearchBoxInactive">
24   - <span class="left">
25   - <img id="MSearchSelect" src="search/mag_sel.png"
26   - onmouseover="return searchBox.OnSearchSelectShow()"
27   - onmouseout="return searchBox.OnSearchSelectHide()"
28   - alt=""/>
29   - <input type="text" id="MSearchField" value="Search" accesskey="S"
30   - onfocus="searchBox.OnSearchFieldFocus(true)"
31   - onblur="searchBox.OnSearchFieldFocus(false)"
32   - onkeyup="searchBox.OnSearchFieldChange(event)"/>
33   - </span><span class="right">
34   - <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
35   - </span>
36   - </div>
37   - </li>
38   - </ul>
39   - </div>
40   - <div class="tabs2">
41   - <ul class="tablist">
42   - <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
43   - <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
44   - <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
45   - </ul>
46   - </div>
47   -</div>
48   -<div class="header">
49   - <div class="headertitle">
50   -<h1>Class List</h1> </div>
51   -</div>
52   -<div class="contents">
53   -Here are the classes, structs, unions and interfaces with brief descriptions:<table>
54   - <tr><td class="indexkey"><a class="el" href="struct_buffer.html">Buffer</a></td><td class="indexvalue"></td></tr>
55   - <tr><td class="indexkey"><a class="el" href="struct_note.html">Note</a></td><td class="indexvalue"></td></tr>
56   - <tr><td class="indexkey"><a class="el" href="interface_sound_bank_player.html">SoundBankPlayer</a></td><td class="indexvalue"></td></tr>
57   - <tr><td class="indexkey"><a class="el" href="struct_source.html">Source</a></td><td class="indexvalue"></td></tr>
58   -</table>
59   -</div>
60   -<!--- window showing the filter options -->
61   -<div id="MSearchSelectWindow"
62   - onmouseover="return searchBox.OnSearchSelectShow()"
63   - onmouseout="return searchBox.OnSearchSelectHide()"
64   - onkeydown="return searchBox.OnSearchSelectKey(event)">
65   -<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</a></div>