Browse Source

Update sfxSndStream.cpp

streaming file fixes, also only wrap back around when we have read the whole file.
marauder2k7 1 năm trước cách đây
mục cha
commit
ebdc408385
1 tập tin đã thay đổi với 12 bổ sung3 xóa
  1. 12 3
      Engine/source/sfx/media/sfxSndStream.cpp

+ 12 - 3
Engine/source/sfx/media/sfxSndStream.cpp

@@ -139,13 +139,22 @@ U32 SFXSndStream::read(U8* buffer, U32 length)
       return 0;
    }
 
-   if (framesRead != sfinfo.frames)
+   if (framesRead != framesToRead)
    {
       Con::errorf("SFXSndStream - read: %s", sf_strerror(sndFile));
    }
 
-   // reset stream
-   setPosition(0);
+   // make sure we are more than 0 position.
+   if (getPosition() > 0)
+   {
+      // (convert to frames) == number of frames available?
+      if ((getPosition() / mFormat.getBytesPerSample()) == sfinfo.frames)
+      {
+         // reset stream
+         setPosition(0);
+      }
+   }
+   
 
    return framesRead * mFormat.getBytesPerSample();
 }