1/*
2 * Copyright 2008 Stephan Aßmus <superstippi@gmx.de>
3 * All rights reserved. Distributed under the terms of the MIT licensce.
4 */
5#ifndef AUDIO_VOLUME_CONVERTER_H
6#define AUDIO_VOLUME_CONVERTER_H
7
8
9/*! This AudioReader just filters the volume. It depends on floating point
10 *	audio format.
11*/
12
13
14#include "AudioReader.h"
15
16
17class AudioVolumeConverter : public AudioReader {
18public:
19								AudioVolumeConverter(AudioReader* source,
20									float volume = 1.0);
21	virtual						~AudioVolumeConverter();
22
23	virtual bigtime_t			InitialLatency() const;
24	virtual	status_t			Read(void* buffer, int64 pos, int64 frames);
25
26	virtual	status_t			InitCheck() const;
27
28			AudioReader*		Source() const;
29
30			void				SetVolume(float volume);
31			float				Volume() const;
32
33protected:
34			AudioReader*		fSource;
35			float				fVolume;
36			float				fPreviousVolume;
37};
38
39#endif	// AUDIO_VOLUME_CONVERTER_H
40