#pragma once

#include "foundation/dispatch.h"

class ifc_raw_media_reader : public Wasabi2::Dispatchable
{
protected:
	ifc_raw_media_reader() : Wasabi2::Dispatchable(DISPATCHABLE_VERSION) {}
	~ifc_raw_media_reader() {}
public:
	int Read(void *buffer, size_t buffer_size, size_t *bytes_read) { return RawMediaReader_Read(buffer, buffer_size, bytes_read); }
	/* TODO: we'll probably need stuff in here like EndOfFile, determining a good buffer size, etc */

	enum
	{
		DISPATCHABLE_VERSION=0,
	};
protected:
	virtual int WASABICALL RawMediaReader_Read(void *buffer, size_t buffer_size, size_t *bytes_read)=0;
};