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