summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/portaudio/bindings/cpp/source/portaudiocpp/CallbackInterface.cxx
blob: 30ad933126e8d4a2dc6e9bf1189e3e59dce4d279 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "portaudiocpp/CallbackInterface.hxx"

namespace portaudio
{

    namespace impl
    {

        //////
        /// Adapts any CallbackInterface object to a C-callable function (ie this function). A
        /// pointer to the object should be passed as ``userData'' when setting up the callback.
        //////
        int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
            const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
        {
            CallbackInterface *cb = static_cast<CallbackInterface *>(userData);
            return cb->paCallbackFun(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags);
        }


    } // namespace impl

} // namespace portaudio