1/*
2 * Copyright 2000-2006 Ingo Weinhold <ingo_weinhold@gmx.de>
3 * Copyright 2008 Stephan A��mus <superstippi@gmx.de>
4 * All rights reserved. Distributed under the terms of the MIT licensce.
5 */
6#ifndef AUDIO_FORMAT_CONVERTER_H
7#define AUDIO_FORMAT_CONVERTER_H
8
9
10/*! This AudioReader just converts the source sample format (and byte order)
11	into another one, e.g. LE short -> BE float. Frame rate and channel
12	count remain unchanged.
13*/
14
15
16#include "AudioReader.h"
17
18
19class AudioFormatConverter : public AudioReader {
20public:
21								AudioFormatConverter(AudioReader* source,
22									uint32 format, uint32 byte_order);
23	virtual						~AudioFormatConverter();
24
25	virtual bigtime_t			InitialLatency() const;
26	virtual	status_t			Read(void* buffer, int64 pos, int64 frames);
27
28	virtual	status_t			InitCheck() const;
29
30			AudioReader*		Source() const;
31
32protected:
33			AudioReader*		fSource;
34};
35
36#endif	// AUDIO_FORMAT_CONVERTER_H
37