Skylicht Engine
Loading...
Searching...
No Matches
Skylicht::Audio::IStreamFactory Class Referenceabstract

Interface for stream factories. Register a custom factory to CAudioEngine to support different data sources (e.g. ZIP, Network). More...

#include <Stream/IStreamFactory.h>

Inheritance diagram for Skylicht::Audio::IStreamFactory:
Skylicht::Audio::CStreamFactory Skylicht::CZipAudioStreamFactory

Public Member Functions

virtual IStreamcreateStreamFromMemory (unsigned char *buffer, int size, bool takeOwnership)=0
 Create an audio stream from a memory buffer.
virtual IStreamcreateStreamFromFile (const char *fileName)=0
 Create an audio stream from a file.
virtual IStreamcreateOnlineStream ()=0
 Create a stream for dynamic/online data.

Detailed Description

Interface for stream factories. Register a custom factory to CAudioEngine to support different data sources (e.g. ZIP, Network).

// Example: Implementing a factory for ZIP archives using Irrlicht's file system
public:
virtual Audio::IStream* createStreamFromFile(const char* fileName) {
// Create a custom stream that reads from ZIP
if (file->isError()) {
delete file;
return NULL;
}
return file;
}
};
// Registration
CZipAudioStreamFactory* factory = new CZipAudioStreamFactory();
void registerStreamFactory(IStreamFactory *streamFactory)
Register a custom stream factory.
static CAudioEngine * getSoundEngine()
Get the singleton instance of the audio engine.
Default factory for creating audio streams (Memory, File, Online).
Definition CStreamFactory.h:39
virtual IStream * createStreamFromFile(const char *fileName)=0
Create an audio stream from a file.
Interface for an audio data stream (File, Memory, etc.).
Definition IStream.h:107
Definition CZipAudioFileStream.h:41
Definition CZipAudioStreamFactory.h:10

Member Function Documentation

◆ createOnlineStream()

virtual IStream * Skylicht::Audio::IStreamFactory::createOnlineStream ( )
pure virtual

Create a stream for dynamic/online data.

Returns
Pointer to IStream

Implemented in Skylicht::Audio::CStreamFactory.

◆ createStreamFromFile()

virtual IStream * Skylicht::Audio::IStreamFactory::createStreamFromFile ( const char * fileName)
pure virtual

Create an audio stream from a file.

Parameters
fileNamePath to the file
Returns
Pointer to IStream

Implemented in Skylicht::Audio::CStreamFactory, and Skylicht::CZipAudioStreamFactory.

◆ createStreamFromMemory()

virtual IStream * Skylicht::Audio::IStreamFactory::createStreamFromMemory ( unsigned char * buffer,
int size,
bool takeOwnership )
pure virtual

Create an audio stream from a memory buffer.

Parameters
bufferThe memory buffer
sizeSize in bytes
takeOwnershipIf true, the factory/stream will delete the buffer
Returns
Pointer to IStream

Implemented in Skylicht::Audio::CStreamFactory.


The documentation for this class was generated from the following file: