aboutsummaryrefslogtreecommitdiff
path: root/Src/replicant/icy/ifc_icy_reader.h
blob: 74e2d92804aab0132aeed3ad46c2ed4afa4212f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
 *  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;
	
};