<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -98,6 +98,7 @@ Poeple/companies who were/are contributing code to cocos2d for iPhone (alphabeti
 		patches for Transitions
 	* slypete: patch for FastDirector to run in the main thread
 	* Steve Oldmeadow: patches for Texture2D
+		Author of CocosDenshion Sound Engine
 	* Valentin Milea: clean up CocosNode, added better comments to CocosNode
 		Set transformAnchor point in Sprite
 		Actions can have tags</diff>
      <filename>AUTHORS</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,7 @@ version 0.8 - xxx
  . All: removed deprecated classes/methods (issue #326)
  . AtlasSprite: supports flipX and flipY properties (issue #343)
  . BitmapFontAtlas: new features (issue #317)
+ . CocosDenshion: new sound engine in experimental (issue #XXX)
  . CocosNode: actions don't retain the target (issue #150)
  . CocosNode: support real openGL Z vertex (issue #355)
  . CocosNode: transformation matrix is cached (issue #263)</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -244,6 +244,38 @@
 		5038B6B20E196CD8009A621E /* ParticleSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 5038B6B00E196CD8009A621E /* ParticleSystem.h */; };
 		5038B6B30E196CD8009A621E /* ParticleSystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 5038B6B10E196CD8009A621E /* ParticleSystem.m */; };
 		503A2B070F64B26D00E436AB /* grossini_dance_atlas.pvr in Resources */ = {isa = PBXBuildFile; fileRef = 503A2B060F64B26D00E436AB /* grossini_dance_atlas.pvr */; };
+		503F25C50FD3CA2A009BAFB6 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 50B2CB240E10EE4A00AE9530 /* Default.png */; };
+		503F25CE0FD3CA2A009BAFB6 /* fps_images.png in Resources */ = {isa = PBXBuildFile; fileRef = 501CD16A0E99873000B86F68 /* fps_images.png */; };
+		503F25E20FD3CA2A009BAFB6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
+		503F25E30FD3CA2A009BAFB6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
+		503F25E40FD3CA2A009BAFB6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */; };
+		503F25E50FD3CA2A009BAFB6 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D500B920D5A79C200DBA0E3 /* OpenGLES.framework */; };
+		503F25E60FD3CA2A009BAFB6 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D500B990D5A79CF00DBA0E3 /* QuartzCore.framework */; };
+		503F25E70FD3CA2A009BAFB6 /* libcocos2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5018F24D0DFDEAC400C013A5 /* libcocos2d.a */; };
+		503F26100FD3CA94009BAFB6 /* CDAudioManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503F25F40FD3CA94009BAFB6 /* CDAudioManager.mm */; };
+		503F26110FD3CA94009BAFB6 /* CocosDenshion.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503F25F70FD3CA94009BAFB6 /* CocosDenshion.mm */; };
+		503F26120FD3CA94009BAFB6 /* DenshionDemo.m in Sources */ = {isa = PBXBuildFile; fileRef = 503F25FA0FD3CA94009BAFB6 /* DenshionDemo.m */; };
+		503F26130FD3CA94009BAFB6 /* bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 503F25FC0FD3CA94009BAFB6 /* bg.png */; };
+		503F26140FD3CA94009BAFB6 /* flash.png in Resources */ = {isa = PBXBuildFile; fileRef = 503F25FD0FD3CA94009BAFB6 /* flash.png */; };
+		503F26150FD3CA94009BAFB6 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 503F25FE0FD3CA94009BAFB6 /* Icon.png */; };
+		503F26160FD3CA94009BAFB6 /* slider.png in Resources */ = {isa = PBXBuildFile; fileRef = 503F25FF0FD3CA94009BAFB6 /* slider.png */; };
+		503F26170FD3CA94009BAFB6 /* 808_120bpm.caf in Resources */ = {isa = PBXBuildFile; fileRef = 503F26010FD3CA94009BAFB6 /* 808_120bpm.caf */; };
+		503F26180FD3CA94009BAFB6 /* 808_120bpm.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F26020FD3CA94009BAFB6 /* 808_120bpm.wav */; };
+		503F261A0FD3CA94009BAFB6 /* ballbounce.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F26040FD3CA94009BAFB6 /* ballbounce.wav */; };
+		503F261B0FD3CA94009BAFB6 /* cowbell.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F26050FD3CA94009BAFB6 /* cowbell.wav */; };
+		503F261C0FD3CA94009BAFB6 /* explodelow.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F26060FD3CA94009BAFB6 /* explodelow.wav */; };
+		503F261D0FD3CA94009BAFB6 /* karate.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F26070FD3CA94009BAFB6 /* karate.wav */; };
+		503F261E0FD3CA94009BAFB6 /* machinegun.caf in Resources */ = {isa = PBXBuildFile; fileRef = 503F26080FD3CA94009BAFB6 /* machinegun.caf */; };
+		503F261F0FD3CA94009BAFB6 /* machinegun.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F26090FD3CA94009BAFB6 /* machinegun.wav */; };
+		503F26200FD3CA94009BAFB6 /* mula_tito_on_timbales.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 503F260A0FD3CA94009BAFB6 /* mula_tito_on_timbales.mp3 */; };
+		503F26210FD3CA94009BAFB6 /* rustylow.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F260B0FD3CA94009BAFB6 /* rustylow.wav */; };
+		503F26220FD3CA94009BAFB6 /* sine440.caf in Resources */ = {isa = PBXBuildFile; fileRef = 503F260C0FD3CA94009BAFB6 /* sine440.caf */; };
+		503F26230FD3CA94009BAFB6 /* sine440.wav in Resources */ = {isa = PBXBuildFile; fileRef = 503F260D0FD3CA94009BAFB6 /* sine440.wav */; };
+		503F26240FD3CA94009BAFB6 /* SimpleAudioEngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503F260F0FD3CA94009BAFB6 /* SimpleAudioEngine.mm */; };
+		503F26B60FD3CFF4009BAFB6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 50B2CB170E10EE0800AE9530 /* main.m */; };
+		503F26D00FD3D1AD009BAFB6 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503F26CF0FD3D1AD009BAFB6 /* OpenAL.framework */; };
+		503F26D30FD3D1C8009BAFB6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503F26D20FD3D1C8009BAFB6 /* AudioToolbox.framework */; };
+		503F26D60FD3D1F9009BAFB6 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503F26D50FD3D1F9009BAFB6 /* AVFoundation.framework */; };
 		504055B00E3230BD00213FEF /* ParticleExamples.h in Headers */ = {isa = PBXBuildFile; fileRef = 504055AE0E3230BD00213FEF /* ParticleExamples.h */; };
 		504055B10E3230BD00213FEF /* ParticleExamples.m in Sources */ = {isa = PBXBuildFile; fileRef = 504055AF0E3230BD00213FEF /* ParticleExamples.m */; };
 		50405A140E3296AC00213FEF /* stars.png in Resources */ = {isa = PBXBuildFile; fileRef = 50405A130E3296AC00213FEF /* stars.png */; };
@@ -981,6 +1013,13 @@
 			remoteGlobalIDString = 50B2C4D00E100AEA00AE9530;
 			remoteInfo = Chipmunk;
 		};
+		503F25C10FD3CA2A009BAFB6 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 5018F24C0DFDEAC400C013A5;
+			remoteInfo = cocos2d;
+		};
 		504226140FC0B5D500B992F7 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
@@ -1322,6 +1361,41 @@
 		5038B6B00E196CD8009A621E /* ParticleSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParticleSystem.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		5038B6B10E196CD8009A621E /* ParticleSystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ParticleSystem.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		503A2B060F64B26D00E436AB /* grossini_dance_atlas.pvr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = grossini_dance_atlas.pvr; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25EB0FD3CA2A009BAFB6 /* CocosDenshionTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CocosDenshionTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		503F25F10FD3CA2A009BAFB6 /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = &quot;Info copy.plist&quot;; path = &quot;Resources/Info copy.plist&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25F30FD3CA94009BAFB6 /* CDAudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDAudioManager.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25F40FD3CA94009BAFB6 /* CDAudioManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CDAudioManager.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25F50FD3CA94009BAFB6 /* CDOpenALSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDOpenALSupport.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25F60FD3CA94009BAFB6 /* CocosDenshion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CocosDenshion.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25F70FD3CA94009BAFB6 /* CocosDenshion.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CocosDenshion.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25F90FD3CA94009BAFB6 /* DenshionDemo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DenshionDemo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25FA0FD3CA94009BAFB6 /* DenshionDemo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DenshionDemo.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25FC0FD3CA94009BAFB6 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg.png; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25FD0FD3CA94009BAFB6 /* flash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = flash.png; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25FE0FD3CA94009BAFB6 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F25FF0FD3CA94009BAFB6 /* slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = slider.png; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26010FD3CA94009BAFB6 /* 808_120bpm.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = 808_120bpm.caf; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26020FD3CA94009BAFB6 /* 808_120bpm.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = 808_120bpm.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26040FD3CA94009BAFB6 /* ballbounce.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = ballbounce.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26050FD3CA94009BAFB6 /* cowbell.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = cowbell.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26060FD3CA94009BAFB6 /* explodelow.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = explodelow.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26070FD3CA94009BAFB6 /* karate.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = karate.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26080FD3CA94009BAFB6 /* machinegun.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = machinegun.caf; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26090FD3CA94009BAFB6 /* machinegun.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = machinegun.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F260A0FD3CA94009BAFB6 /* mula_tito_on_timbales.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = mula_tito_on_timbales.mp3; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F260B0FD3CA94009BAFB6 /* rustylow.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = rustylow.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F260C0FD3CA94009BAFB6 /* sine440.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = sine440.caf; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F260D0FD3CA94009BAFB6 /* sine440.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = sine440.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F260E0FD3CA94009BAFB6 /* SimpleAudioEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleAudioEngine.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F260F0FD3CA94009BAFB6 /* SimpleAudioEngine.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SimpleAudioEngine.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
+		503F26B40FD3CFE8009BAFB6 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+		503F26BD0FD3D045009BAFB6 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
+		503F26C00FD3D062009BAFB6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		503F26C30FD3D085009BAFB6 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
+		503F26C90FD3D128009BAFB6 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
+		503F26CF0FD3D1AD009BAFB6 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+		503F26D20FD3D1C8009BAFB6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		503F26D50FD3D1F9009BAFB6 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
 		504055AE0E3230BD00213FEF /* ParticleExamples.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParticleExamples.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		504055AF0E3230BD00213FEF /* ParticleExamples.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ParticleExamples.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		50405A130E3296AC00213FEF /* stars.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = stars.png; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -1825,6 +1899,22 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		503F25E10FD3CA2A009BAFB6 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				503F25E20FD3CA2A009BAFB6 /* Foundation.framework in Frameworks */,
+				503F25E30FD3CA2A009BAFB6 /* UIKit.framework in Frameworks */,
+				503F25E40FD3CA2A009BAFB6 /* CoreGraphics.framework in Frameworks */,
+				503F25E50FD3CA2A009BAFB6 /* OpenGLES.framework in Frameworks */,
+				503F25E60FD3CA2A009BAFB6 /* QuartzCore.framework in Frameworks */,
+				503F25E70FD3CA2A009BAFB6 /* libcocos2d.a in Frameworks */,
+				503F26D00FD3D1AD009BAFB6 /* OpenAL.framework in Frameworks */,
+				503F26D30FD3D1C8009BAFB6 /* AudioToolbox.framework in Frameworks */,
+				503F26D60FD3D1F9009BAFB6 /* AVFoundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		5042256E0FC0B39C00B992F7 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -2207,6 +2297,7 @@
 				50F992C40F9F188700767ABC /* PerformanceParticleTest.app */,
 				504225700FC0B39C00B992F7 /* libbox2d.a */,
 				5042262E0FC0B5D500B992F7 /* Box2dTest.app */,
+				503F25EB0FD3CA2A009BAFB6 /* CocosDenshionTest.app */,
 			);
 			name = Products;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -2244,6 +2335,14 @@
 				505CC1D30F62BD2B000EDF26 /* QuartzCore.framework */,
 				8EDF3F7F0F6BDEB400F54643 /* OpenAL.framework */,
 				8EDF3F850F6BDEDA00F54643 /* AudioToolbox.framework */,
+				503F26B40FD3CFE8009BAFB6 /* OpenAL.framework */,
+				503F26BD0FD3D045009BAFB6 /* AudioUnit.framework */,
+				503F26C00FD3D062009BAFB6 /* AudioToolbox.framework */,
+				503F26C30FD3D085009BAFB6 /* CoreAudio.framework */,
+				503F26C90FD3D128009BAFB6 /* MediaPlayer.framework */,
+				503F26CF0FD3D1AD009BAFB6 /* OpenAL.framework */,
+				503F26D20FD3D1C8009BAFB6 /* AudioToolbox.framework */,
+				503F26D50FD3D1F9009BAFB6 /* AVFoundation.framework */,
 			);
 			name = CustomTemplate;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -2259,6 +2358,7 @@
 				50B2CB250E10EE4A00AE9530 /* Icon.png */,
 				8EDF3E8D0F6BD8CD00F54643 /* sfx */,
 				50B2CB260E10EE4A00AE9530 /* Images */,
+				503F25F10FD3CA2A009BAFB6 /* Info copy.plist */,
 			);
 			name = Resources;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -2470,6 +2570,62 @@
 			name = ImageSupport;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
+		503F25F20FD3CA94009BAFB6 /* CocosDenshion */ = {
+			isa = PBXGroup;
+			children = (
+				503F25F30FD3CA94009BAFB6 /* CDAudioManager.h */,
+				503F25F40FD3CA94009BAFB6 /* CDAudioManager.mm */,
+				503F25F50FD3CA94009BAFB6 /* CDOpenALSupport.h */,
+				503F25F60FD3CA94009BAFB6 /* CocosDenshion.h */,
+				503F25F70FD3CA94009BAFB6 /* CocosDenshion.mm */,
+				503F25F80FD3CA94009BAFB6 /* CocosDenshionSample */,
+				503F260E0FD3CA94009BAFB6 /* SimpleAudioEngine.h */,
+				503F260F0FD3CA94009BAFB6 /* SimpleAudioEngine.mm */,
+			);
+			path = CocosDenshion;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
+		503F25F80FD3CA94009BAFB6 /* CocosDenshionSample */ = {
+			isa = PBXGroup;
+			children = (
+				503F25F90FD3CA94009BAFB6 /* DenshionDemo.h */,
+				503F25FA0FD3CA94009BAFB6 /* DenshionDemo.m */,
+				503F25FB0FD3CA94009BAFB6 /* Images */,
+				503F26000FD3CA94009BAFB6 /* Sounds */,
+			);
+			path = CocosDenshionSample;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
+		503F25FB0FD3CA94009BAFB6 /* Images */ = {
+			isa = PBXGroup;
+			children = (
+				503F25FC0FD3CA94009BAFB6 /* bg.png */,
+				503F25FD0FD3CA94009BAFB6 /* flash.png */,
+				503F25FE0FD3CA94009BAFB6 /* Icon.png */,
+				503F25FF0FD3CA94009BAFB6 /* slider.png */,
+			);
+			path = Images;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
+		503F26000FD3CA94009BAFB6 /* Sounds */ = {
+			isa = PBXGroup;
+			children = (
+				503F26010FD3CA94009BAFB6 /* 808_120bpm.caf */,
+				503F26020FD3CA94009BAFB6 /* 808_120bpm.wav */,
+				503F26040FD3CA94009BAFB6 /* ballbounce.wav */,
+				503F26050FD3CA94009BAFB6 /* cowbell.wav */,
+				503F26060FD3CA94009BAFB6 /* explodelow.wav */,
+				503F26070FD3CA94009BAFB6 /* karate.wav */,
+				503F26080FD3CA94009BAFB6 /* machinegun.caf */,
+				503F26090FD3CA94009BAFB6 /* machinegun.wav */,
+				503F260A0FD3CA94009BAFB6 /* mula_tito_on_timbales.mp3 */,
+				503F260B0FD3CA94009BAFB6 /* rustylow.wav */,
+				503F260C0FD3CA94009BAFB6 /* sine440.caf */,
+				503F260D0FD3CA94009BAFB6 /* sine440.wav */,
+			);
+			path = Sounds;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
 		5042241F0FC0A9E100B992F7 /* StreakMotion */ = {
 			isa = PBXGroup;
 			children = (
@@ -2885,6 +3041,7 @@
 		50A783D30F3AFDB300104C45 /* experimental */ = {
 			isa = PBXGroup;
 			children = (
+				503F25F20FD3CA94009BAFB6 /* CocosDenshion */,
 				5042241F0FC0A9E100B992F7 /* StreakMotion */,
 				8EDF3E910F6BD8E600F54643 /* sound-engine */,
 			);
@@ -3477,6 +3634,24 @@
 			productReference = 502C66180DFEFCCA00E4107D /* RotateWorldTest.app */;
 			productType = &quot;com.apple.product-type.application&quot;;
 		};
+		503F25BF0FD3CA2A009BAFB6 /* SoundEngine CocosDenshionTest (experimental) */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 503F25E80FD3CA2A009BAFB6 /* Build configuration list for PBXNativeTarget &quot;SoundEngine CocosDenshionTest (experimental)&quot; */;
+			buildPhases = (
+				503F25C20FD3CA2A009BAFB6 /* Resources */,
+				503F25DE0FD3CA2A009BAFB6 /* Sources */,
+				503F25E10FD3CA2A009BAFB6 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				503F25C00FD3CA2A009BAFB6 /* PBXTargetDependency */,
+			);
+			name = &quot;SoundEngine CocosDenshionTest (experimental)&quot;;
+			productName = playground;
+			productReference = 503F25EB0FD3CA2A009BAFB6 /* CocosDenshionTest.app */;
+			productType = &quot;com.apple.product-type.application&quot;;
+		};
 		5042256F0FC0B39C00B992F7 /* box2d */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 504225730FC0B3C300B992F7 /* Build configuration list for PBXNativeTarget &quot;box2d&quot; */;
@@ -4023,6 +4198,7 @@
 				502C66170DFEFCCA00E4107D /* RotateWorldTest */,
 				506C7FF70E041C9300B48100 /* SceneTest */,
 				8EDF3EA90F6BDA0000F54643 /* SoundEngineTest (experimental) */,
+				503F25BF0FD3CA2A009BAFB6 /* SoundEngine CocosDenshionTest (experimental) */,
 				50C93A930E0BF6E000517B01 /* SpritesTest */,
 				50A783990F3AFCE500104C45 /* StreakTest (experimental) */,
 				505B62AB0F2E6A0F001B4104 /* Texture2dTest */,
@@ -4108,6 +4284,31 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		503F25C20FD3CA2A009BAFB6 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				503F25C50FD3CA2A009BAFB6 /* Default.png in Resources */,
+				503F25CE0FD3CA2A009BAFB6 /* fps_images.png in Resources */,
+				503F26130FD3CA94009BAFB6 /* bg.png in Resources */,
+				503F26140FD3CA94009BAFB6 /* flash.png in Resources */,
+				503F26150FD3CA94009BAFB6 /* Icon.png in Resources */,
+				503F26160FD3CA94009BAFB6 /* slider.png in Resources */,
+				503F26170FD3CA94009BAFB6 /* 808_120bpm.caf in Resources */,
+				503F26180FD3CA94009BAFB6 /* 808_120bpm.wav in Resources */,
+				503F261A0FD3CA94009BAFB6 /* ballbounce.wav in Resources */,
+				503F261B0FD3CA94009BAFB6 /* cowbell.wav in Resources */,
+				503F261C0FD3CA94009BAFB6 /* explodelow.wav in Resources */,
+				503F261D0FD3CA94009BAFB6 /* karate.wav in Resources */,
+				503F261E0FD3CA94009BAFB6 /* machinegun.caf in Resources */,
+				503F261F0FD3CA94009BAFB6 /* machinegun.wav in Resources */,
+				503F26200FD3CA94009BAFB6 /* mula_tito_on_timbales.mp3 in Resources */,
+				503F26210FD3CA94009BAFB6 /* rustylow.wav in Resources */,
+				503F26220FD3CA94009BAFB6 /* sine440.caf in Resources */,
+				503F26230FD3CA94009BAFB6 /* sine440.wav in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		504226170FC0B5D500B992F7 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -4756,6 +4957,18 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		503F25DE0FD3CA2A009BAFB6 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				503F26B60FD3CFF4009BAFB6 /* main.m in Sources */,
+				503F26100FD3CA94009BAFB6 /* CDAudioManager.mm in Sources */,
+				503F26110FD3CA94009BAFB6 /* CocosDenshion.mm in Sources */,
+				503F26120FD3CA94009BAFB6 /* DenshionDemo.m in Sources */,
+				503F26240FD3CA94009BAFB6 /* SimpleAudioEngine.mm in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		5042256D0FC0B39C00B992F7 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -5128,6 +5341,11 @@
 			target = 50B2C4D00E100AEA00AE9530 /* Chipmunk */;
 			targetProxy = 50379A790F913FA300986724 /* PBXContainerItemProxy */;
 		};
+		503F25C00FD3CA2A009BAFB6 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 5018F24C0DFDEAC400C013A5 /* cocos2d */;
+			targetProxy = 503F25C10FD3CA2A009BAFB6 /* PBXContainerItemProxy */;
+		};
 		504226130FC0B5D500B992F7 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 5018F24C0DFDEAC400C013A5 /* cocos2d */;
@@ -5554,6 +5772,60 @@
 			};
 			name = Release;
 		};
+		503F25E90FD3CA2A009BAFB6 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CODE_SIGN_IDENTITY = &quot;iPhone Developer&quot;;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = &quot;$(SYSTEM_LIBRARY_DIR)/Frameworks/UIKit.framework/Headers/UIKit.h&quot;;
+				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+				GCC_THUMB_SUPPORT = NO;
+				INFOPLIST_FILE = Resources/Info.plist;
+				INSTALL_PATH = &quot;$(HOME)/Applications&quot;;
+				OTHER_LDFLAGS = (
+					&quot;-ObjC&quot;,
+					&quot;-framework&quot;,
+					Foundation,
+					&quot;-framework&quot;,
+					UIKit,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = CocosDenshionTest;
+				SDKROOT = iphoneos2.2;
+			};
+			name = Debug;
+		};
+		503F25EA0FD3CA2A009BAFB6 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CODE_SIGN_IDENTITY = &quot;iPhone Developer&quot;;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = &quot;dwarf-with-dsym&quot;;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = &quot;$(SYSTEM_LIBRARY_DIR)/Frameworks/UIKit.framework/Headers/UIKit.h&quot;;
+				GCC_THUMB_SUPPORT = NO;
+				INFOPLIST_FILE = Resources/Info.plist;
+				INSTALL_PATH = &quot;$(HOME)/Applications&quot;;
+				OTHER_LDFLAGS = (
+					&quot;-ObjC&quot;,
+					&quot;-framework&quot;,
+					Foundation,
+					&quot;-framework&quot;,
+					UIKit,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = CocosDenshionTest;
+				SDKROOT = iphoneos2.2;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
 		504225710FC0B39D00B992F7 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -6973,7 +7245,7 @@
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				PREBINDING = NO;
-				SDKROOT = iphonesimulator2.0;
+				SDKROOT = iphonesimulator2.2;
 			};
 			name = Debug;
 		};
@@ -7008,7 +7280,7 @@
 				GCC_WARN_UNUSED_VALUE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				PREBINDING = NO;
-				SDKROOT = iphonesimulator2.0;
+				SDKROOT = iphonesimulator2.2;
 			};
 			name = Release;
 		};
@@ -7069,6 +7341,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		503F25E80FD3CA2A009BAFB6 /* Build configuration list for PBXNativeTarget &quot;SoundEngine CocosDenshionTest (experimental)&quot; */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				503F25E90FD3CA2A009BAFB6 /* Debug */,
+				503F25EA0FD3CA2A009BAFB6 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		504225730FC0B3C300B992F7 /* Build configuration list for PBXNativeTarget &quot;box2d&quot; */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (</diff>
      <filename>cocos2d-iphone.xcodeproj/project.pbxproj</filename>
    </modified>
    <modified>
      <diff>@@ -40,9 +40,14 @@ extern void managerInterruptionCallback (void *inUserData, UInt32 interruptionSt
 @synthesize soundEngine, backgroundMusic, willPlayBackgroundMusic;
 
 - (id) init: (tAudioManagerMode) mode channelGroupDefinitions:(int[]) channelGroupDefinitions channelGroupTotal:(int) channelGroupTotal {
-	if (self = [super init]) {
+	if ((self = [super init]))  {
 		//Initialise the audio session 
-		OSStatus result = AudioSessionInitialize(NULL, NULL,managerInterruptionCallback, self); 
+		OSStatus result = AudioSessionInitialize(NULL, NULL,managerInterruptionCallback, self);
+		if( result ) {
+			CCLOG(@&quot;CocosDenshion: Error initializing AudioSession&quot;);
+			return nil;
+		}
+	
 		_mode = mode;
 		
 		switch (_mode) {
@@ -181,14 +186,19 @@ extern void managerInterruptionCallback (void *inUserData, UInt32 interruptionSt
 	ALenum  error = AL_NO_ERROR;
     // Deactivate the current audio session 
     OSStatus result = AudioSessionSetActive(NO); 
+	if( result ) {
+		CCLOG(@&quot;CocosDenshion: Error Setting AudioSession&quot;);
+		return;
+	}
+	
     // set the current context to NULL will 'shutdown' openAL 
     alcMakeContextCurrent(NULL); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if( (error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error making context current %x\n&quot;, error);
 	} 
     // now suspend your context to 'pause' your sound world 
     alcSuspendContext([soundEngine openALContext]); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if((error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error suspending context %x\n&quot;, error);
 	} 
 } 
@@ -206,12 +216,12 @@ extern void managerInterruptionCallback (void *inUserData, UInt32 interruptionSt
 	
     // Restore open al context 
     alcMakeContextCurrent([soundEngine openALContext]); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if((error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error making context current%x\n&quot;, error);
 	} 
     // 'unpause' my context 
     alcProcessContext([soundEngine openALContext]); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if((error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error processing context%x\n&quot;, error);
 	} 
 </diff>
      <filename>experimental/CocosDenshion/CDAudioManager.mm</filename>
    </modified>
    <modified>
      <diff>@@ -64,6 +64,7 @@ void* MyGetOpenALAudioData(CFURLRef inFileURL, ALsizei *outDataSize, ALenum *out
 	ExtAudioFileRef					extRef = NULL;
 	void*							theData = NULL;
 	AudioStreamBasicDescription		theOutputFormat;
+	UInt32							dataSize = 0;
 	
 	// Open a file with ExtAudioFileOpen()
 	err = ExtAudioFileOpenURL(inFileURL, &amp;extRef);
@@ -96,7 +97,7 @@ void* MyGetOpenALAudioData(CFURLRef inFileURL, ALsizei *outDataSize, ALenum *out
 	if(err) { printf(&quot;MyGetOpenALAudioData: ExtAudioFileGetProperty(kExtAudioFileProperty_FileLengthFrames) FAILED, Error = %ld\n&quot;, err); goto Exit; }
 	
 	// Read all the data into memory
-	UInt32		dataSize = theFileLengthInFrames * theOutputFormat.mBytesPerFrame;;
+	dataSize = (UInt32) theFileLengthInFrames * theOutputFormat.mBytesPerFrame;;
 	theData = malloc(dataSize);
 	if (theData)
 	{</diff>
      <filename>experimental/CocosDenshion/CDOpenALSupport.h</filename>
    </modified>
    <modified>
      <diff>@@ -77,7 +77,7 @@ extern void interruptionListenerCallback (void *inUserData, UInt32 interruptionS
 			
 			// Create some OpenAL Source Objects
 			alGenSources(CD_MAX_SOURCES, _sources);
-			if(lastErrorCode = alGetError() != AL_NO_ERROR) {
+			if((lastErrorCode = alGetError()) != AL_NO_ERROR) {
 				CCLOG(@&quot;Denshion: Error generating sources! %x\n&quot;, lastErrorCode);
 				return FALSE;//No sources
 			} 
@@ -102,12 +102,12 @@ extern void interruptionListenerCallback (void *inUserData, UInt32 interruptionS
 	
 	// Delete the Sources
     alDeleteSources(CD_MAX_SOURCES, _sources);
-	if(lastErrorCode = alGetError() != AL_NO_ERROR) {
+	if((lastErrorCode = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error deleting sources! %x\n&quot;, lastErrorCode);
 	} 
 	// Delete the Buffers
     alDeleteBuffers(CD_MAX_BUFFERS, _buffers);
-	if(lastErrorCode = alGetError() != AL_NO_ERROR) {
+	if((lastErrorCode = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error deleting buffers! %x\n&quot;, lastErrorCode);
 	} 
 	
@@ -140,7 +140,7 @@ extern void interruptionListenerCallback (void *inUserData, UInt32 interruptionS
  */
 - (id)init:(int[]) channelGroupDefinitions channelGroupTotal:(int) channelGroupTotal audioSessionCategory:(UInt32) audioSessionCategory 
 {	
-	if (self = [super init]) {
+	if ((self = [super init])) {
 		
 		_mute = FALSE;
 		_audioSessionCategory = audioSessionCategory;
@@ -461,15 +461,20 @@ extern void interruptionListenerCallback (void *inUserData, UInt32 interruptionS
     CCLOG(@&quot;Denshion: Audio session interrupted&quot;); 
 	ALenum  error = AL_NO_ERROR;
     // Deactivate the current audio session 
-    OSStatus result = AudioSessionSetActive(NO); 
+    OSStatus result = AudioSessionSetActive(NO);
+	if( result ) {
+		CCLOG(@&quot;CocosDenshion: Error Setting AudioSession&quot;);
+		return;
+	}
+	
     // set the current context to NULL will 'shutdown' openAL 
     alcMakeContextCurrent(NULL); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if((error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error making context current %x\n&quot;, error);
 	} 
     // now suspend your context to 'pause' your sound world 
     alcSuspendContext(context); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if((error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error suspending context %x\n&quot;, error);
 	} 
 } 
@@ -487,12 +492,12 @@ extern void interruptionListenerCallback (void *inUserData, UInt32 interruptionS
 	
     // Restore open al context 
     alcMakeContextCurrent(context); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if((error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error making context current%x\n&quot;, error);
 	} 
     // 'unpause' my context 
     alcProcessContext(context); 
-	if(error = alGetError() != AL_NO_ERROR) {
+	if((error = alGetError()) != AL_NO_ERROR) {
 		CCLOG(@&quot;Denshion: Error processing context%x\n&quot;, error);
 	} 
 } 
@@ -521,15 +526,15 @@ extern void interruptionListenerCallback (void *inUserData, UInt32 interruptionS
 //alGetSource does not appear to work for pitch, pan and gain values
 //These implementations have been provided just so that these could be treated as properties
 - (float) pitch {
-	return 0.0;
+	return 0.0f;
 }
 
 - (float) pan {
-	return 0.0;
+	return 0.0f;
 }
 
 - (float) gain {
-	return 0.0;
+	return 0.0f;
 }	
 
 @end</diff>
      <filename>experimental/CocosDenshion/CocosDenshion.mm</filename>
    </modified>
    <modified>
      <diff>@@ -45,9 +45,9 @@
 #define CGROUP_TOTAL 4
 ///////////////////////////////////////////////////////
 
-#define SLIDER_POS_MAX 300.0
-#define SLIDER_POS_MIN 20.0
-#define SLIDER_POS_X 79.0
+#define SLIDER_POS_MAX 300.0f
+#define SLIDER_POS_MIN 20.0f
+#define SLIDER_POS_X 79.0f
 
 #define PFC_X 317
 #define PFC_Y 165
@@ -78,7 +78,7 @@ CDSourceWrapper *toneSource;
 	
 	slider = [Sprite spriteWithFile:@&quot;slider.png&quot;];
 	[slider setPosition:CGPointMake(SLIDER_POS_X, ((SLIDER_POS_MAX - SLIDER_POS_MIN)/2) + SLIDER_POS_MIN)]; 
-	[slider setRotation:180.0];
+	[slider setRotation:180.0f];
 	[slider retain];
 	[self addChild:slider];
 	
@@ -156,42 +156,42 @@ CDSourceWrapper *toneSource;
 		if ((touchedPads &amp; (1 &lt;&lt; 0)) != 0) {
 			//Pad 1 touched - play a one shot kick sound in the drum voices channel group with normal pitch and pan and the
 			//gain controlled by the slider
-			[soundEngine playSound:SND_ID_BALL channelGroupId:CGROUP_DRUM_VOICES pitch:1.0f pan:0.0 gain:sliderValue loop:NO];
+			[soundEngine playSound:SND_ID_BALL channelGroupId:CGROUP_DRUM_VOICES pitch:1.0f pan:0.0f gain:sliderValue loop:NO];
 			flashIndex[0] = 0;
 		}	
 		
 		if ((touchedPads &amp; (1 &lt;&lt; 1)) != 0) {
 			//Pad 2 touched - play a one shot snare sound in the drum voices channel group with normal pitch and pan and the
 			//gain controlled by the slider
-			[soundEngine playSound:SND_ID_GUN channelGroupId:CGROUP_FX_VOICES pitch:1.0f pan:0.0 gain:sliderValue loop:NO];
+			[soundEngine playSound:SND_ID_GUN channelGroupId:CGROUP_FX_VOICES pitch:1.0f pan:0.0f gain:sliderValue loop:NO];
 			flashIndex[1] = 0;
 		}
 		
 		if ((touchedPads &amp; (1 &lt;&lt; 2)) != 0) {
 			//Pad 3 touched - play a one shot hat sound in the drum voices channel group with normal pitch and pan and the
 			//gain controlled by the slider
-			[soundEngine playSound:SND_ID_STAB channelGroupId:CGROUP_FX_VOICES pitch:1.0f pan:((sliderValue * 2.0) - 1.0) gain:1.0 loop:NO];
+			[soundEngine playSound:SND_ID_STAB channelGroupId:CGROUP_FX_VOICES pitch:1.0f pan:((sliderValue * 2.0f) - 1.0f) gain:1.0f loop:NO];
 			flashIndex[2] = 0;
 		}
 		
 		if ((touchedPads &amp; (1 &lt;&lt; 3)) != 0) {
 			//Pad 4 touched - play a one shot fx sound in the fx voices channel group with normal gain and pan and the
 			//pitch controlled by the slider.  Slider mid point = normal pitch (1.0)
-			[soundEngine playSound:SND_ID_EXPLODE channelGroupId:CGROUP_FX_VOICES pitch:sliderValue + 0.5 pan:0.0 gain:1.0 loop:NO];
+			[soundEngine playSound:SND_ID_EXPLODE channelGroupId:CGROUP_FX_VOICES pitch:sliderValue + 0.5f pan:0.0f gain:1.0f loop:NO];
 			flashIndex[3] = 0;
 		}
 		
 		if ((touchedPads &amp; (1 &lt;&lt; 4)) != 0) {
 			//Pad 5 touched  - play a one shot fx sound in the fx voices channel group with normal gain and pan and the
 			//pitch controlled by the slider.  Slider mid point = normal pitch (1.0)
-			[soundEngine playSound:SND_ID_COWBELL channelGroupId:CGROUP_DRUM_VOICES pitch:sliderValue + 0.5 pan:0.0 gain:1.0 loop:NO];
+			[soundEngine playSound:SND_ID_COWBELL channelGroupId:CGROUP_DRUM_VOICES pitch:sliderValue + 0.5f pan:0.0f gain:1.0f loop:NO];
 			flashIndex[4] = 0;
 		}
 
 		if ((touchedPads &amp; (1 &lt;&lt; 5)) != 0) {
 			//Pad 6 touched  - play a one shot fx sound in the fx voices channel group with normal pitch and gain and the
 			//pan controlled by the slider.  Slider top = hard right, bottom = hard left, centre = middle
-			[soundEngine playSound:SND_ID_KARATE channelGroupId:CGROUP_FX_VOICES pitch:1.0f pan:((sliderValue * 2.0) - 1.0) gain:1.0 loop:NO];
+			[soundEngine playSound:SND_ID_KARATE channelGroupId:CGROUP_FX_VOICES pitch:1.0f pan:((sliderValue * 2.0f) - 1.0f) gain:1.0f loop:NO];
 			flashIndex[5] = 0;
 		}
 		
@@ -199,7 +199,7 @@ CDSourceWrapper *toneSource;
 			if (!toneLoopPlaying) {
 				//Pad 7 touched- play a looped sound with normal pitch, pan and gain in the loop channel group.
 				//Any other sound playing in this channel group will be stopped as the group has only 1 voice.
-				toneSource.sourceId = [am.soundEngine playSound:SND_ID_TONELOOP channelGroupId:CGROUP_TONELOOP pitch:1.0f pan:0.0 gain:1.0 loop:YES];
+				toneSource.sourceId = [am.soundEngine playSound:SND_ID_TONELOOP channelGroupId:CGROUP_TONELOOP pitch:1.0f pan:0.0f gain:1.0f loop:YES];
 				toneLoopPlaying = YES;
 			} else {
 				[soundEngine stopSound:toneSource.sourceId];
@@ -212,7 +212,7 @@ CDSourceWrapper *toneSource;
 		if ((touchedPads &amp; (1 &lt;&lt; 7)) != 0) {
 			//Pad 8 touched - play a looped sound with normal pitch, pan and gain in the loop channel group.
 			//Any other sound playing in this channel group will be stopped as the group has only 1 voice.
-			[soundEngine playSound:SND_ID_DRUMLOOP channelGroupId:CGROUP_DRUMLOOP pitch:1.0f pan:0.0 gain:1.0 loop:YES];
+			[soundEngine playSound:SND_ID_DRUMLOOP channelGroupId:CGROUP_DRUMLOOP pitch:1.0f pan:0.0f gain:1.0f loop:YES];
 			flashIndex[7] = 0;
 		}
 
@@ -247,7 +247,7 @@ CDSourceWrapper *toneSource;
 	
 	if (toneLoopPlaying) {
 		//Adjust pitch of tone loop to match slider - this technique can be used to adjust gain and pan too
-		toneSource.pitch = sliderValue + 0.5;
+		toneSource.pitch = sliderValue + 0.5f;
 	}	
 	
 	//Update flashes
@@ -351,7 +351,7 @@ CDSourceWrapper *toneSource;
 	window.multipleTouchEnabled = TRUE;
 	
 	// before creating any layer, set the landscape mode
-	[[Director sharedDirector] setLandscape: YES];
+	[[Director sharedDirector] setDeviceOrientation: CCDeviceOrientationLandscapeLeft];
 	
 	// show FPS
 	[[Director sharedDirector] setDisplayFPS:NO];</diff>
      <filename>experimental/CocosDenshion/CocosDenshionSample/DenshionDemo.m</filename>
    </modified>
    <modified>
      <diff>@@ -26,4 +26,4 @@
 -(void) preloadEffect:(NSString*) filename;
 -(void) unloadEffect:(NSString*) filename;
 
-@end
\ No newline at end of file
+@end</diff>
      <filename>experimental/CocosDenshion/SimpleAudioEngine.h</filename>
    </modified>
    <modified>
      <diff>@@ -109,7 +109,7 @@ static CDAudioManager *am;
 		#endif
 	}
 
-	return [soundEngine playSound:[soundId intValue] channelGroupId:0 pitch:1.0 pan:0 gain:1.0 loop:false];
+	return [soundEngine playSound:[soundId intValue] channelGroupId:0 pitch:1.0f pan:0 gain:1.0f loop:false];
 }
 
 -(void) preloadEffect:(NSString*) filename
@@ -164,6 +164,8 @@ static CDAudioManager *am;
 #ifdef ASSERT_DEBUG
 	@throw [[[NSException alloc] initWithName:@&quot;AudioEngine::getNextAvailableBuffer&quot; reason:@&quot;Full buffers&quot; userInfo:nil] autorelease];
 #endif
+	// shall not happen
+	return [NSNumber numberWithInt:-1];
 }
 
 -(void) freeBuffer:(NSNumber*) buffer
@@ -171,4 +173,4 @@ static CDAudioManager *am;
 	usedBuffers[[buffer intValue]] = false;
 }
 
-@end
\ No newline at end of file
+@end</diff>
      <filename>experimental/CocosDenshion/SimpleAudioEngine.mm</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b6377e39c6c5e4ff00508c9b05417c6a158252f1</id>
    </parent>
  </parents>
  <author>
    <name>ricardoquesada</name>
    <email>ricardoquesada@79afc9a6-2f50-0410-804d-6f1bdedaafc9</email>
  </author>
  <url>http://github.com/funkaster/cocos2d-iphone/commit/1171a99847a1a7ede2437b97b41ef8f399ac5996</url>
  <id>1171a99847a1a7ede2437b97b41ef8f399ac5996</id>
  <committed-date>2009-06-01T02:19:31-07:00</committed-date>
  <authored-date>2009-06-01T02:19:31-07:00</authored-date>
  <message>CocosDenshion: added changelog, authors, target, compiles in 3.0 without warnings</message>
  <tree>8b8ba45a9fac9d49f82d11d4299f9b2a8ed309ed</tree>
  <committer>
    <name>ricardoquesada</name>
    <email>ricardoquesada@79afc9a6-2f50-0410-804d-6f1bdedaafc9</email>
  </committer>
</commit>
