Skip to content

Commit fa21116

Browse files
committed
Move decoder, standaloneDecoder to NativeAudioSource instead.
1 parent 5ffcbd0 commit fa21116

File tree

2 files changed

+16
-24
lines changed

2 files changed

+16
-24
lines changed

src/lime/_internal/backend/native/NativeAudioSource.hx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ class NativeAudioSource
9393

9494
private var standaloneBuffer:Bool;
9595
private var buffer:ALBuffer;
96+
private var standaloneDecoder:Bool;
97+
private var decoder:AudioDecoder;
9698
private var anglesArray:Array<Float>;
9799
private var loopPoints:Array<Int>;
98100

@@ -153,9 +155,9 @@ class NativeAudioSource
153155
mutex.acquire();
154156

155157
samples = Int64.toInt(parent.buffer.decoder.total());
156-
parent.decoder = parent.buffer.decoder.clone();
157-
parent.standaloneDecoder = parent.decoder != null;
158-
if (!parent.standaloneDecoder) parent.decoder = parent.buffer.decoder;
158+
decoder = parent.buffer.decoder.clone();
159+
standaloneDecoder = decoder != null;
160+
if (!standaloneDecoder) decoder = parent.buffer.decoder;
159161

160162
buffers = AL.genBuffers(STREAM_FLUSH_BUFFERS);
161163
bufferLen = (STREAM_BUFFER_SAMPLES * parent.buffer.channels) * (parent.buffer.bitsPerSample >> 3);
@@ -232,9 +234,9 @@ class NativeAudioSource
232234
internalQueuedBuffers = queuedBuffers = filledBuffers = 0;
233235
streamMutex.release();
234236

235-
if (parent.decoder != null && parent.standaloneDecoder) parent.decoder.dispose();
236-
parent.decoder = null;
237-
parent.standaloneDecoder = false;
237+
if (decoder != null && standaloneDecoder) decoder.dispose();
238+
decoder = null;
239+
standaloneDecoder = false;
238240
}
239241
else
240242
{
@@ -666,21 +668,21 @@ class NativeAudioSource
666668

667669
function readToBufferData(data:ArrayBufferView, currentPCM:Int):Int
668670
{
669-
if (parent.decoder.eof || currentPCM >= loopPoints[1])
671+
if (decoder.eof || currentPCM >= loopPoints[1])
670672
{
671-
if (streamEnded = loops <= streamLoops || !parent.decoder.seek(loopPoints[0])) return 0;
673+
if (streamEnded = loops <= streamLoops || !decoder.seek(loopPoints[0])) return 0;
672674
streamLoops++;
673675
}
674676

675677
var total = 0, len:Int;
676-
while (!(streamEnded = parent.decoder.eof))
678+
while (!(streamEnded = decoder.eof))
677679
{
678680
if ((len = (loopPoints[1] - currentPCM) * parent.buffer.channels * (parent.buffer.bitsPerSample >> 3)) <= (currentPCM = bufferLen - total))
679681
{
680-
total += parent.decoder.decode(data.buffer, total, len);
682+
total += decoder.decode(data.buffer, total, len);
681683
if (loops > streamLoops)
682684
{
683-
parent.decoder.seek(currentPCM = loopPoints[0]);
685+
decoder.seek(currentPCM = loopPoints[0]);
684686
streamLoops++;
685687
}
686688
else
@@ -691,7 +693,7 @@ class NativeAudioSource
691693
}
692694
else
693695
{
694-
return total += parent.decoder.decode(data.buffer, total, currentPCM);
696+
return total += decoder.decode(data.buffer, total, currentPCM);
695697
}
696698
}
697699
return total;
@@ -702,7 +704,7 @@ class NativeAudioSource
702704
final max = STREAM_MAX_BUFFERS - 1;
703705
var i:Int, j:Int, data:ArrayBufferView, pcm:Int, decoded:Int;
704706
while (n-- > 0 && !(streamEnded = !streaming) &&
705-
(decoded = readToBufferData(data = bufferViews[(i = max - filledBuffers) < 0 ? 0 : i], pcm = Int64.toInt(parent.decoder.tell()))) > 0)
707+
(decoded = readToBufferData(data = bufferViews[(i = max - filledBuffers) < 0 ? 0 : i], pcm = Int64.toInt(decoder.tell()))) > 0)
706708
{
707709
j = i;
708710
while (i < max)
@@ -757,7 +759,7 @@ class NativeAudioSource
757759
force = streaming;
758760
streaming = true;
759761
internalQueuedBuffers = queuedBuffers = filledBuffers = streamLoops = nextBuffer = 0;
760-
parent.decoder.seek(sample);
762+
decoder.seek(sample);
761763
fillBuffers(n);
762764
flushBuffers();
763765
streaming = force;

src/lime/media/AudioSource.hx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,6 @@ class AudioSource
9090
**/
9191
public var position(get, set):Vector4;
9292

93-
/**
94-
The current used cloned decoder to be used and played.
95-
**/
96-
public var decoder(default, null):Null<AudioDecoder>;
97-
98-
/**
99-
An indicator if an decoder was cloned.
100-
**/
101-
public var standaloneDecoder(default, null):Bool;
102-
10393
@:noCompletion private var __backend:AudioSourceBackend;
10494

10595
/**

0 commit comments

Comments
 (0)