10fc56ed5SStephan Aßmus /* 2*8dd3060dSAxel Dörfler * Copyright 2000-2006 Ingo Weinhold <ingo_weinhold@gmx.de> 3*8dd3060dSAxel Dörfler * Copyright 2008 Stephan Aßmus <superstippi@gmx.de> 40fc56ed5SStephan Aßmus * All rights reserved. Distributed under the terms of the MIT licensce. 50fc56ed5SStephan Aßmus */ 6*8dd3060dSAxel Dörfler #ifndef AUDIO_FORMAT_CONVERTER_H 7*8dd3060dSAxel Dörfler #define AUDIO_FORMAT_CONVERTER_H 8*8dd3060dSAxel Dörfler 90fc56ed5SStephan Aßmus 100fc56ed5SStephan Aßmus /*! This AudioReader just converts the source sample format (and byte order) 110fc56ed5SStephan Aßmus into another one, e.g. LE short -> BE float. Frame rate and channel 120fc56ed5SStephan Aßmus count remain unchanged. 130fc56ed5SStephan Aßmus */ 140fc56ed5SStephan Aßmus 150fc56ed5SStephan Aßmus 160fc56ed5SStephan Aßmus #include "AudioReader.h" 170fc56ed5SStephan Aßmus 18*8dd3060dSAxel Dörfler 190fc56ed5SStephan Aßmus class AudioFormatConverter : public AudioReader { 200fc56ed5SStephan Aßmus public: 210fc56ed5SStephan Aßmus AudioFormatConverter(AudioReader* source, 220fc56ed5SStephan Aßmus uint32 format, uint32 byte_order); 230fc56ed5SStephan Aßmus virtual ~AudioFormatConverter(); 240fc56ed5SStephan Aßmus 25*8dd3060dSAxel Dörfler virtual bigtime_t InitialLatency() const; 260fc56ed5SStephan Aßmus virtual status_t Read(void* buffer, int64 pos, int64 frames); 270fc56ed5SStephan Aßmus 280fc56ed5SStephan Aßmus virtual status_t InitCheck() const; 290fc56ed5SStephan Aßmus 300fc56ed5SStephan Aßmus AudioReader* Source() const; 310fc56ed5SStephan Aßmus 320fc56ed5SStephan Aßmus protected: 330fc56ed5SStephan Aßmus AudioReader* fSource; 340fc56ed5SStephan Aßmus }; 350fc56ed5SStephan Aßmus 360fc56ed5SStephan Aßmus #endif // AUDIO_FORMAT_CONVERTER_H 37