Browse Source

reverts 36212123f807a996d33566dee6a8dae187096b85 (cause was running 1.8 compiled with 1.9 runtime)

ncannasse 6 years ago
parent
commit
0596521f4f
3 changed files with 19 additions and 43 deletions
  1. 2 11
      hxd/snd/Driver.hx
  2. 3 18
      hxd/snd/Manager.hx
  3. 14 14
      hxd/snd/openal/Driver.hx

+ 2 - 11
hxd/snd/Driver.hx

@@ -19,15 +19,6 @@ class EffectDriver<T> {
 	public function unbind  (e : T, source : SourceHandle) : Void {};
 }
 
-class BufferData {
-	public var data : haxe.io.Bytes;
-	public var size : Int;
-	public var format : Data.SampleFormat;
-	public var channelCount : Int;
-	public var samplingRate : Int;
-	public function new() {}
-}
-
 interface Driver {
 	public function setMasterVolume      (value : Float) : Void;
 	public function setListenerParams    (position : h3d.Vector, direction : h3d.Vector, up : h3d.Vector, ?velocity : h3d.Vector) : Void;
@@ -36,10 +27,10 @@ interface Driver {
 	public function playSource           (source : SourceHandle) : Void;
 	public function stopSource           (source : SourceHandle) : Void;
 	public function setSourceVolume      (source : SourceHandle, value : Float) : Void;
-	public function destroySource        (source : SourceHandle) : Void;
+	public function destroySource        (source : SourceHandle) : Void; 
 
 	public function createBuffer         () : BufferHandle;
-	public function setBufferData        (buffer : BufferHandle, data:BufferData) : Void;
+	public function setBufferData        (buffer : BufferHandle, data : haxe.io.Bytes, size : Int, format : Data.SampleFormat, channelCount : Int, samplingRate : Int) : Void;
 	public function destroyBuffer        (buffer : BufferHandle) : Void;
 
 	public function queueBuffer          (source : SourceHandle, buffer : BufferHandle, sampleStart : Int, endOfStream : Bool) : Void;

+ 3 - 18
hxd/snd/Manager.hx

@@ -90,7 +90,6 @@ class Manager {
 	var soundBufferMap    : Map<String, Buffer>;
 	var freeStreamBuffers : Array<Buffer>;
 	var effectGC          : Array<Effect>;
-	var bdata = new BufferData();
 
 	private function new() {
 		try {
@@ -615,7 +614,7 @@ class Manager {
 			case I16 : I16;
 			#if js
 			case F32 : F32;
-			#else
+			#else 
 			case F32 : I16;
 			#end
 		}
@@ -650,15 +649,7 @@ class Manager {
 		var length = dat.samples * dat.getBytesPerSample();
 		var bytes  = getTmpBytes(length);
 		dat.decode(bytes, 0, 0, dat.samples);
-
-		bdata.data = bytes;
-		bdata.size = length;
-		bdata.format = targetFormat;
-		bdata.channelCount = targetChannels;
-		bdata.samplingRate = targetRate;
-		driver.setBufferData(buf.handle, bdata);
-		bdata.data = null;
-
+		driver.setBufferData(buf.handle, bytes, length, targetFormat, targetChannels, targetRate);
 		buf.sampleRate = targetRate;
 		buf.samples    = dat.samples;
 	}
@@ -702,13 +693,7 @@ class Manager {
 			bytes = resampleBytes;
 		}
 
-		bdata.data = bytes;
-		bdata.size = size;
-		bdata.format = targetFormat;
-		bdata.channelCount = targetChannels;
-		bdata.samplingRate = targetRate;
-		driver.setBufferData(b.handle, bdata);
-		bdata.data = null;
+		driver.setBufferData(b.handle, bytes, size, targetFormat, targetChannels, targetRate);
 		b.sampleRate = targetRate;
 		return b;
 	}

+ 14 - 14
hxd/snd/openal/Driver.hx

@@ -110,23 +110,23 @@ class Driver implements hxd.snd.Driver {
 		bytes.setInt32(0, buffer.inst.toInt());
 		AL.deleteBuffers(1, bytes);
 	}
-
-	public function setBufferData(buffer : BufferHandle, data : Driver.BufferData) : Void {
-		var alFormat = switch (data.format) {
-			case UI8 : data.channelCount == 1 ? AL.FORMAT_MONO8  : AL.FORMAT_STEREO8;
-			case I16 : data.channelCount == 1 ? AL.FORMAT_MONO16 : AL.FORMAT_STEREO16;
+	
+	public function setBufferData(buffer : BufferHandle, data : haxe.io.Bytes, size : Int, format : Data.SampleFormat, channelCount : Int, samplingRate : Int) : Void {
+		var alFormat = switch (format) {
+			case UI8 : channelCount == 1 ? AL.FORMAT_MONO8  : AL.FORMAT_STEREO8;
+			case I16 : channelCount == 1 ? AL.FORMAT_MONO16 : AL.FORMAT_STEREO16;
 			#if (js)
-			case F32 : data.channelCount == 1 ? AL.FORMAT_MONOF32 : AL.FORMAT_STEREOF32;
+			case F32 : channelCount == 1 ? AL.FORMAT_MONOF32 : AL.FORMAT_STEREOF32;
 			#else
-			case F32 : data.channelCount == 1 ? AL.FORMAT_MONO16 : AL.FORMAT_STEREO16;
+			case F32 : channelCount == 1 ? AL.FORMAT_MONO16 : AL.FORMAT_STEREO16;
 			#end
 		}
-		AL.bufferData(buffer.inst, alFormat, data.data, data.size, data.samplingRate);
+		AL.bufferData(buffer.inst, alFormat, data, size, samplingRate);
 	}
 
 	public function getPlayedSampleCount(source : SourceHandle) : Int {
 		var v = source.sampleOffset + AL.getSourcei(source.inst, AL.SAMPLE_OFFSET);
-		if (v < 0)
+		if (v < 0) 
 			v = 0;
 		return v;
 	}
@@ -134,7 +134,7 @@ class Driver implements hxd.snd.Driver {
 	public function getProcessedBuffers(source : SourceHandle) : Int {
 		return AL.getSourcei(source.inst, AL.BUFFERS_PROCESSED);
 	}
-
+	
 	public function queueBuffer(source : SourceHandle, buffer : BufferHandle, sampleStart : Int, endOfStream : Bool) : Void {
 		var bytes = getTmpBytes(4);
 		bytes.setInt32(0, buffer.inst.toInt());
@@ -150,12 +150,12 @@ class Driver implements hxd.snd.Driver {
 			} else {
 				source.sampleOffset = 0;
 			}
-			if (source.playing)
+			if (source.playing) 
 				AL.sourcePlay(source.inst);
 		}
 		buffer.isEnd = endOfStream;
 	}
-
+	
 	public function unqueueBuffer(source : SourceHandle, buffer : BufferHandle) : Void {
 		var bytes = getTmpBytes(4);
 		bytes.setInt32(0, buffer.inst.toInt());
@@ -168,10 +168,10 @@ class Driver implements hxd.snd.Driver {
 		if (buffer.isEnd) source.sampleOffset = 0;
 		else source.sampleOffset += samples;
 	}
-
+	
 	public function update() : Void {
 	}
-
+	
 	public function dispose() : Void {
 		ALC.makeContextCurrent(null);
 		ALC.destroyContext(context);