Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members

ik_IAudioRecorder.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2008 Nikolaus Gebhardt
00002 // This file is part of the "irrKlang" library.
00003 // For conditions of distribution and use, see copyright notice in irrKlang.h
00004 
00005 #ifndef __I_IRRKLANG_AUDIO_RECORDER_H_INCLUDED__
00006 #define __I_IRRKLANG_AUDIO_RECORDER_H_INCLUDED__
00007 
00008 #include "ik_IRefCounted.h"
00009 #include "ik_ISoundSource.h"
00010 
00011 
00012 namespace irrklang
00013 {
00014         class ICapturedAudioDataReceiver;
00015 
00017 
00019         class IAudioRecorder : public virtual IRefCounted
00020         {
00021         public:
00022 
00024 
00033                 virtual bool startRecordingBufferedAudio(ik_s32 sampleRate=22000, ESampleFormat sampleFormat=ESF_S16) = 0;
00034 
00036 
00046                 virtual bool startRecordingCustomHandledAudio(ICapturedAudioDataReceiver* receiver,
00047                                                                   ik_s32 sampleRate=22000, ESampleFormat sampleFormat=ESF_S16) = 0;
00048 
00050                 virtual void stopRecordingAudio() = 0;
00051 
00053 
00058                 virtual ISoundSource* addSoundSourceFromRecordedAudio(const char* soundName) = 0;
00059 
00061 
00062                 virtual void clearRecordedAudioDataBuffer() = 0;
00063 
00065                 virtual bool isRecording() = 0;
00066 
00068 
00069                 virtual SAudioStreamFormat getAudioFormat() = 0;
00070 
00072 
00078                 virtual void* getRecordedAudioData() = 0;
00079 
00081 
00083                 virtual const char* getDriverName() = 0;
00084         };
00085 
00086 
00088 
00089         class ICapturedAudioDataReceiver : public IRefCounted
00090         {
00091         public:
00092 
00094 
00097                 virtual void OnReceiveAudioDataStreamChunk(unsigned char* audioData, unsigned long lengthInBytes) = 0;
00098         };
00099 
00100 
00101 } // end namespace irrklang
00102 
00103 
00104 #endif

irrKlang Audio Library
The irrKlang Engine Documentation © 2003-2007 by Nikolaus Gebhardt. Generated on Sun Oct 12 13:44:49 2008 by Doxygen (1.5.4)