Merge branch 'SFXResource-fix' into change-to-use-libsndfile

This commit is contained in:
marauder2k7 2024-03-24 15:56:01 +00:00
commit d08583bef1
2 changed files with 12 additions and 9 deletions

View file

@ -64,10 +64,11 @@ Resource< SFXResource > SFXResource::load( String filename )
return ResourceManager::get().load( filename ); return ResourceManager::get().load( filename );
} }
SFXResource::SFXResource( String fileName, SFXStream *stream ) SFXResource::SFXResource( String fileName, const ThreadSafeRef<SFXStream>& stream)
: mFileName( fileName ), : mFileName( fileName ),
mFormat( stream->getFormat() ), mFormat( stream->getFormat() ),
mDuration( stream->getDuration() ) mDuration( stream->getDuration() ),
mStream(stream)
{ {
} }
@ -76,7 +77,7 @@ bool SFXResource::exists( String filename )
return SFXFileStream::exists( filename ); return SFXFileStream::exists( filename );
} }
SFXStream* SFXResource::openStream() ThreadSafeRef<SFXStream> SFXResource::openStream()
{ {
return SFXFileStream::create( mFileName ); return mStream;
} }

View file

@ -30,9 +30,9 @@
#include "core/resource.h" #include "core/resource.h"
#endif #endif
#ifndef _SFXSTREAM_H_
class SFXStream; #include "sfx/sfxStream.h"
#endif
/// This is the base class for all sound file resources including /// This is the base class for all sound file resources including
/// streamed sound files. It acts much like an always in-core /// streamed sound files. It acts much like an always in-core
@ -69,9 +69,11 @@ class SFXResource
/// The length of the sample in milliseconds. /// The length of the sample in milliseconds.
U32 mDuration; U32 mDuration;
ThreadSafeRef<SFXStream> mStream;
/// Construct a resource instance for the given file. Format and duration /// Construct a resource instance for the given file. Format and duration
/// are read from the given stream. /// are read from the given stream.
SFXResource( String fileName, SFXStream* stream ); SFXResource( String fileName, const ThreadSafeRef<SFXStream>& stream);
public: public:
@ -103,7 +105,7 @@ class SFXResource
const SFXFormat& getFormat() const { return mFormat; } const SFXFormat& getFormat() const { return mFormat; }
/// Open a stream for reading the resource's sample data. /// Open a stream for reading the resource's sample data.
SFXStream* openStream(); ThreadSafeRef<SFXStream> openStream();
// Internal. // Internal.
struct _NewHelper; struct _NewHelper;