annotate src/portaudio/bindings/cpp/include/portaudiocpp/CppFunCallbackStream.hxx @ 4:e13257ea84a4

Add bzip2, zlib, liblo, portaudio sources
author Chris Cannam
date Wed, 20 Mar 2013 13:59:52 +0000
parents
children
rev   line source
Chris@4 1 #ifndef INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX
Chris@4 2 #define INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX
Chris@4 3
Chris@4 4 // ---------------------------------------------------------------------------------------
Chris@4 5
Chris@4 6 #include "portaudio.h"
Chris@4 7
Chris@4 8 #include "portaudiocpp/CallbackStream.hxx"
Chris@4 9
Chris@4 10 // ---------------------------------------------------------------------------------------
Chris@4 11
Chris@4 12 // Forward declaration(s):
Chris@4 13 namespace portaudio
Chris@4 14 {
Chris@4 15 class StreamParameters;
Chris@4 16 }
Chris@4 17
Chris@4 18 // ---------------------------------------------------------------------------------------
Chris@4 19
Chris@4 20 // Declaration(s):
Chris@4 21 namespace portaudio
Chris@4 22 {
Chris@4 23
Chris@4 24
Chris@4 25 namespace impl
Chris@4 26 {
Chris@4 27 extern "C"
Chris@4 28 {
Chris@4 29 int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
Chris@4 30 const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
Chris@4 31 void *userData);
Chris@4 32 } // extern "C"
Chris@4 33 }
Chris@4 34
Chris@4 35 // -----------------------------------------------------------------------------------
Chris@4 36
Chris@4 37 //////
Chris@4 38 /// @brief Callback stream using a C++ function (either a free function or a static function)
Chris@4 39 /// callback.
Chris@4 40 //////
Chris@4 41 class FunCallbackStream : public CallbackStream
Chris@4 42 {
Chris@4 43 public:
Chris@4 44 typedef int (*CallbackFunPtr)(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
Chris@4 45 const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
Chris@4 46 void *userData);
Chris@4 47
Chris@4 48 // -------------------------------------------------------------------------------
Chris@4 49
Chris@4 50 //////
Chris@4 51 /// @brief Simple structure containing a function pointer to the C++ callback function and a
Chris@4 52 /// (void) pointer to the user supplied data.
Chris@4 53 //////
Chris@4 54 struct CppToCCallbackData
Chris@4 55 {
Chris@4 56 CppToCCallbackData();
Chris@4 57 CppToCCallbackData(CallbackFunPtr funPtr, void *userData);
Chris@4 58 void init(CallbackFunPtr funPtr, void *userData);
Chris@4 59
Chris@4 60 CallbackFunPtr funPtr;
Chris@4 61 void *userData;
Chris@4 62 };
Chris@4 63
Chris@4 64 // -------------------------------------------------------------------------------
Chris@4 65
Chris@4 66 FunCallbackStream();
Chris@4 67 FunCallbackStream(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData);
Chris@4 68 ~FunCallbackStream();
Chris@4 69
Chris@4 70 void open(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData);
Chris@4 71
Chris@4 72 private:
Chris@4 73 FunCallbackStream(const FunCallbackStream &); // non-copyable
Chris@4 74 FunCallbackStream &operator=(const FunCallbackStream &); // non-copyable
Chris@4 75
Chris@4 76 CppToCCallbackData adapterData_;
Chris@4 77
Chris@4 78 void open(const StreamParameters &parameters);
Chris@4 79 };
Chris@4 80
Chris@4 81
Chris@4 82 } // portaudio
Chris@4 83
Chris@4 84 // ---------------------------------------------------------------------------------------
Chris@4 85
Chris@4 86 #endif // INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX