// Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones // This file is part of the "cAudio Engine" // For conditions of distribution and use, see copyright notice in cAudio.h #ifndef IDATASOURCE_H #define IDATASOURCE_H #include "IRefCounted.h" namespace cAudio { class IDataSource : public IRefCounted { public: IDataSource() { } virtual ~IDataSource() { } //!Returns whether the source is valid (in case of an error, like the file couldn't be found) virtual bool isValid() = 0; //!Get the current location in the data stream virtual int getCurrentPos() = 0; //!Get the total size of the data stream virtual int getSize() = 0; //!Read out a section of the data stream virtual int read(void* output, int size) = 0; //!Seek to a position in the data stream virtual bool seek(int amount, bool relative) = 0; }; }; #endif //! IDATASOURCE_H