/* * ifc_icy_reader.h * shoutcast_player * * Created by Ben Allison on 2/1/08. * Copyright 2008 Nullsoft, Inc. All rights reserved. * */ #pragma once #include "foundation/dispatch.h" #include "foundation/types.h" #include "foundation/error.h" class ifc_icy_reader : public Wasabi2::Dispatchable { protected: ifc_icy_reader() : Dispatchable(DISPATCHABLE_VERSION) {} ~ifc_icy_reader() {} public: size_t BytesBuffered() { return ICYReader_BytesBuffered(); } int Read(void *buffer, size_t length, size_t *readLength) { return ICYReader_Read(buffer, length, readLength); } int Peek(void *buffer, size_t length, size_t *readLength) { return ICYReader_Peek(buffer, length, readLength); } int IsClosed() { return ICYReader_IsClosed(); } int Run() { return ICYReader_Run(); } enum { DISPATCHABLE_VERSION, }; protected: virtual size_t WASABICALL ICYReader_BytesBuffered()=0; virtual int WASABICALL ICYReader_Read(void *buffer, size_t length, size_t *readLength)=0; virtual int WASABICALL ICYReader_Peek(void *buffer, size_t length, size_t *readLength)=0; virtual int WASABICALL ICYReader_IsClosed()=0; virtual int WASABICALL ICYReader_Run()=0; };