init
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace Common {
|
||||
namespace Converter {
|
||||
|
||||
#if defined TARGET_OS_Windows
|
||||
// Returns the wstring (ie the utf16 formatted string) version of an utf8 string
|
||||
static std::wstring Utf8ToUtf16(const std::string& utf8)
|
||||
{
|
||||
std::vector<unsigned long> unicode;
|
||||
size_t i = 0;
|
||||
while (i < utf8.size())
|
||||
{
|
||||
unsigned long uni;
|
||||
size_t todo;
|
||||
unsigned char ch = utf8[i++];
|
||||
if (ch <= 0x7F)
|
||||
{
|
||||
uni = ch;
|
||||
todo = 0;
|
||||
}
|
||||
else if (ch <= 0xBF) { throw std::logic_error("not a UTF-8 string"); }
|
||||
else if (ch <= 0xDF)
|
||||
{
|
||||
uni = ch & 0x1F;
|
||||
todo = 1;
|
||||
}
|
||||
else if (ch <= 0xEF)
|
||||
{
|
||||
uni = ch & 0x0F;
|
||||
todo = 2;
|
||||
}
|
||||
else if (ch <= 0xF7)
|
||||
{
|
||||
uni = ch & 0x07;
|
||||
todo = 3;
|
||||
}
|
||||
else { throw std::logic_error("not a UTF-8 string"); }
|
||||
for (size_t j = 0; j < todo; ++j)
|
||||
{
|
||||
if (i == utf8.size()) { throw std::logic_error("not a UTF-8 string"); }
|
||||
ch = utf8[i++];
|
||||
if (ch < 0x80 || ch > 0xBF) { throw std::logic_error("not a UTF-8 string"); }
|
||||
uni <<= 6;
|
||||
uni += ch & 0x3F;
|
||||
}
|
||||
if (uni >= 0xD800 && uni <= 0xDFFF) { throw std::logic_error("not a UTF-8 string"); }
|
||||
if (uni > 0x10FFFF) { throw std::logic_error("not a UTF-8 string"); }
|
||||
unicode.push_back(uni);
|
||||
}
|
||||
std::wstring utf16;
|
||||
for (i = 0; i < unicode.size(); ++i)
|
||||
{
|
||||
unsigned long uni = unicode[i];
|
||||
if (uni <= 0xFFFF) { utf16 += wchar_t(uni); }
|
||||
else
|
||||
{
|
||||
uni -= 0x10000;
|
||||
utf16 += wchar_t((uni >> 10) + 0xD800);
|
||||
utf16 += wchar_t((uni & 0x3FF) + 0xDC00);
|
||||
}
|
||||
}
|
||||
return utf16;
|
||||
}
|
||||
#endif // TARGET_OS_Windows
|
||||
|
||||
} // namespace Converter
|
||||
} // namespace Common
|
||||
@@ -0,0 +1,422 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cstdint>
|
||||
|
||||
#include <r8brain/CDSPResampler.h>
|
||||
|
||||
namespace Common {
|
||||
namespace Resampler {
|
||||
|
||||
enum class EResamplerStoreModes { ChannelWise, SampleWise };
|
||||
|
||||
template <class TFloat, EResamplerStoreModes TStoreMode>
|
||||
class TResampler
|
||||
{
|
||||
public:
|
||||
|
||||
class ICallback
|
||||
{
|
||||
public:
|
||||
|
||||
virtual ~ICallback() { }
|
||||
virtual void processResampler(const TFloat* pSample, const size_t nChannel) const = 0;
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
TResampler(const TResampler<TFloat, TStoreMode>&) = default;
|
||||
|
||||
public:
|
||||
|
||||
/// <summary> Constructor, with default values for real-time processing. </summary>
|
||||
TResampler()
|
||||
{
|
||||
this->clear();
|
||||
switch (TStoreMode)
|
||||
{
|
||||
case EResamplerStoreModes::ChannelWise:
|
||||
m_fpResample = &TResampler<TFloat, TStoreMode>::resampleChannelWise;
|
||||
m_fpResampleDirect = &TResampler<TFloat, TStoreMode>::resampleChannelWise;
|
||||
break;
|
||||
case EResamplerStoreModes::SampleWise:
|
||||
m_fpResample = &TResampler<TFloat, TStoreMode>::resampleSampleWise;
|
||||
m_fpResampleDirect = &TResampler<TFloat, TStoreMode>::resampleSampleWise;
|
||||
break;
|
||||
default:
|
||||
assert(false);
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~TResampler() { this->clear(); }
|
||||
|
||||
void clear()
|
||||
{
|
||||
for (size_t j = 0; j < m_resamplers.size(); ++j) { delete m_resamplers[j]; }
|
||||
m_resamplers.clear();
|
||||
|
||||
m_nChannel = 0;
|
||||
m_iSampling = 0;
|
||||
m_oSampling = 0;
|
||||
m_nFractionalDelayFilterSample = 6;
|
||||
m_iMaxNSampleIn = 1024;
|
||||
m_transitionBandPercent = 45;
|
||||
m_stopBandAttenuation = 49;
|
||||
}
|
||||
|
||||
/// <summary> Specifies the number of samples (taps) each fractional delay filter should have.\n
|
||||
///
|
||||
/// This must be an even value.To achieve a higher resampling precision,
|
||||
/// the oversampling should be used in the first place instead of using a higher FractionalDelayFilterSampleCount value.
|
||||
/// The lower this value is the lower the signal - to - noise performance of the interpolator will be.
|
||||
/// Each FractionalDelayFilterSampleCount decrease by 2 decreases SNR by approximately 12 to 14 decibels. </summary>
|
||||
/// <param name="n">The fractional delay (Between 6 and 30, and default = 6).</param>
|
||||
/// <returns> <c>true</c> if even and between 6 and 30, <c>false</c> otherwise. </returns>
|
||||
/// <remarks>For real-time processing, n = 6. </remarks>
|
||||
bool setFractionalDelayFilterSampleCount(const int n = 6)
|
||||
{
|
||||
if (n < 6 || 30 < n || n % 2 == 1) { return false; } // false if odd value
|
||||
m_nFractionalDelayFilterSample = n;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary> Maximal planned length of the input buffer (in samples) that will be passed to the resampler.
|
||||
/// Input buffers longer than this value should never be supplied to the resampler.
|
||||
/// The resampler relies on this value as it allocates intermediate buffers. </summary>
|
||||
/// <param name="n">The maximal input sample count.</param>
|
||||
/// <returns> <c>true</c> if between 8 and 2048, <c>false</c> otherwise. </returns>
|
||||
/// <remarks> Note that the resampler may use the input buffer itself for intermediate sample data storage. </remarks>
|
||||
bool setMaxNSampleIn(const int n = 8)
|
||||
{
|
||||
if (n < 8 || 2048 < n) { return false; }
|
||||
m_iMaxNSampleIn = n;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary> Transition band, in percent of the spectral space of the input signal
|
||||
/// (or the output signal if downsampling is performed) between filter's -3 dB point and the Nyquist frequency. </summary>
|
||||
/// <param name="n">The Transition band (Between 0.5% and 45%, and default = 10.).</param>
|
||||
/// <returns> <c>true</c> if between 0.5 and 45, <c>false</c> otherwise. </returns>
|
||||
/// <remarks>For real-time processing, n = 45. </remarks>
|
||||
bool setTransitionBand(const double n = 10)
|
||||
{
|
||||
if (n < r8b::CDSPFIRFilter::getLPMinTransBand() || r8b::CDSPFIRFilter::getLPMaxTransBand() < n) { return false; }
|
||||
m_transitionBandPercent = n;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary> Stop-band attenuation in decibel.\n
|
||||
///
|
||||
/// The general formula is 6.02 * Bits + 40, where "Bits" is the bit resolution(e.g. 16, 24),
|
||||
/// "40" is an added resolution for stationary signals, this value can be decreased to 20 to 10
|
||||
/// if the signal being resampled is mostly non - stationary(e.g.impulse response). </summary>
|
||||
/// <param name="n">The Stop-band attenuation in decibel (Between 49 and 218, and default = 49 is given by the general formula).</param>
|
||||
/// <returns> <c>true</c> if between 49 and 218, <c>false</c> otherwise. </returns>
|
||||
/// <remarks>For real-time processing, n = 49. </remarks>
|
||||
bool setStopBandAttenuation(const double n = 49)
|
||||
{
|
||||
if (n < r8b::CDSPFIRFilter::getLPMinAtten() || r8b::CDSPFIRFilter::getLPMaxAtten() < n) { return false; }
|
||||
m_stopBandAttenuation = n;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary> This fonction initializes the vector of Resampler, using the number of channels, the input and the output sampling rates. </summary>
|
||||
/// <param name="nChannel"> The number of channel. </param>
|
||||
/// <param name="iSampling"> The input sampling. </param>
|
||||
/// <param name="oSampling"> The output sampling. </param>
|
||||
/// <returns> <c>true</c> if success, <c>false</c> otherwise. </returns>
|
||||
bool reset(const size_t nChannel, const size_t iSampling, const size_t oSampling)
|
||||
{
|
||||
if (nChannel == 0 || iSampling == 0 || oSampling == 0) { return false; }
|
||||
m_iSampling = iSampling;
|
||||
m_oSampling = oSampling;
|
||||
|
||||
m_nChannel = nChannel;
|
||||
for (size_t i = 0; i < m_resamplers.size(); ++i) { delete m_resamplers[i]; }
|
||||
m_resamplers.clear();
|
||||
m_resamplers.resize(m_nChannel);
|
||||
|
||||
const double in = double(iSampling), out = double(oSampling);
|
||||
const double stopBandAttenuation = m_stopBandAttenuation == 0
|
||||
? std::min(6.02 * m_nFractionalDelayFilterSample + 40, r8b::CDSPFIRFilter::getLPMaxAtten())
|
||||
: m_stopBandAttenuation;
|
||||
#define NEW_SAMPLER(Len, Fracs)\
|
||||
new r8b::CDSPResampler<r8b::CDSPFracInterpolator<Len, Fracs>>(in, out, m_iMaxNSampleIn,\
|
||||
m_transitionBandPercent, stopBandAttenuation,r8b::EDSPFilterPhaseResponse(0), false)
|
||||
|
||||
for (size_t j = 0; j < m_nChannel; ++j)
|
||||
{
|
||||
switch (m_nFractionalDelayFilterSample) // it defines iFractionalDelayPositionCount
|
||||
{
|
||||
case 6:
|
||||
m_resamplers[j] = NEW_SAMPLER(6, 11);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
m_resamplers[j] = NEW_SAMPLER(8, 17);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
m_resamplers[j] = NEW_SAMPLER(10, 23);
|
||||
break;
|
||||
|
||||
case 12:
|
||||
m_resamplers[j] = NEW_SAMPLER(12, 41);
|
||||
break;
|
||||
|
||||
case 14:
|
||||
//stopBandAttenuation = 109.56;
|
||||
m_resamplers[j] = NEW_SAMPLER(14, 67);
|
||||
break;
|
||||
|
||||
case 16:
|
||||
m_resamplers[j] = NEW_SAMPLER(16, 97);
|
||||
break;
|
||||
|
||||
case 18:
|
||||
//stopBandAttenuation = 136.45;
|
||||
m_resamplers[j] = NEW_SAMPLER(18, 137);
|
||||
break;
|
||||
|
||||
case 20:
|
||||
m_resamplers[j] = NEW_SAMPLER(20, 211);
|
||||
break;
|
||||
|
||||
case 22:
|
||||
m_resamplers[j] = NEW_SAMPLER(22, 353);
|
||||
break;
|
||||
|
||||
case 24:
|
||||
//stopBandAttenuation = 180.15;
|
||||
m_resamplers[j] = NEW_SAMPLER(24, 673);
|
||||
break;
|
||||
|
||||
case 26:
|
||||
m_resamplers[j] = NEW_SAMPLER(26, 1051);
|
||||
break;
|
||||
|
||||
case 28:
|
||||
m_resamplers[j] = NEW_SAMPLER(28, 1733);
|
||||
break;
|
||||
|
||||
case 30:
|
||||
m_resamplers[j] = NEW_SAMPLER(30, 2833);
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#undef NEW_SAMPLER(Len, Fracs)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary> Gets the latency.\n
|
||||
///
|
||||
/// This value is usually zero if the DSP processor "consumes" the latency automatically. (from CDSPProcessor.h) </summary>
|
||||
/// <returns> Latency. </returns>
|
||||
virtual int getLatency() const { return m_resamplers[0]->getLatency(); }
|
||||
|
||||
/// <summary> Gets the Fractional latency.
|
||||
///
|
||||
/// Fractional latency, in samples, which is present in the output signal.
|
||||
/// This value is usually zero if a linear - phase filtering is used.
|
||||
/// With minimum - phase filters in use, this value can be non - zero even if the getLatency() function returns zero. (from CDSPProcessor.h)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <returns> Fractionnal Latency. </returns>
|
||||
virtual double getLatencyFrac() const { return m_resamplers[0]->getLatencyFrac(); }
|
||||
|
||||
/// <summary> Gets the cumulative number of samples that should be passed to *this object before the actual output starts.
|
||||
/// This value includes latencies induced by all processors which run after *this processor in chain. </summary>
|
||||
/// <param name="nextInLen"> The number of input samples required before the output starts on the next resampling step. (from CDSPProcessor.h) </param>
|
||||
/// <returns> the cumulative number of samples. </returns>
|
||||
virtual int getInLenBeforeOutStart(const int nextInLen) const { return m_resamplers[0]->getInLenBeforeOutStart(nextInLen); }
|
||||
|
||||
/// <summary> Gets the maximal length of the output buffer required when processing the "maxInLen" number of input samples. </summary>
|
||||
/// <param name="maxInLen"> The number of samples planned to process at once, at most. (from CDSPProcessor.h). </param>
|
||||
/// <returns> The length. </returns>
|
||||
virtual int getMaxOutLen(const int maxInLen) const { return m_resamplers[0]->getMaxOutLen(maxInLen); }
|
||||
|
||||
double getBuiltInLatency() const { return (m_iSampling != 0) ? (1.0 * m_resamplers[0]->getInLenBeforeOutStart(0) / m_iSampling) : 0.0; }
|
||||
|
||||
size_t resample(const ICallback& callback, const TFloat* iSample, const size_t nInSample) { return (this->*m_fpResample)(callback, iSample, nInSample); }
|
||||
|
||||
size_t downsample(const ICallback& callback, const TFloat* iSample, const size_t nInSample) { return (this->*m_fpResample)(callback, iSample, nInSample); }
|
||||
|
||||
private:
|
||||
|
||||
/// <summary> This function resamples the signal assuming the input samples are ordered this way :
|
||||
/// - sample 1 of channel 1, sample 1 of channel 2, ..., sample 1 of channel nChannel,
|
||||
/// - sample 2 of channel 1, sample 2 of channel 2, ..., sample 2 of channel nChannel,
|
||||
/// - ...
|
||||
/// - sample nInSample of channel 1, sample nInSample of channel 2, ..., sample nInSample of channel nChannel,\n
|
||||
///
|
||||
/// This is convenient for resampling at the acquisition level. </summary>
|
||||
/// <param name="callback">The callback.</param>
|
||||
/// <param name="iSample">The input sample.</param>
|
||||
/// <param name="nInSample">The n input sample.</param>
|
||||
/// <returns> the number of sample process in last channel. </returns>
|
||||
size_t resampleChannelWise(const ICallback& callback, const TFloat* iSample, const size_t nInSample)
|
||||
{
|
||||
int nI = 0;
|
||||
bool isFirstChannel = true;
|
||||
|
||||
std::vector<double> iBuffers(nInSample);
|
||||
std::vector<TFloat> oBuffers;
|
||||
|
||||
for (size_t j = 0; j < m_nChannel; ++j)
|
||||
{
|
||||
for (size_t k = 0; k < nInSample; ++k) { iBuffers[k] = double(iSample[k * m_nChannel + j]); }
|
||||
|
||||
double* resamplerOutputBuffer;
|
||||
nI = m_resamplers[j]->process(&iBuffers[0], int(nInSample), resamplerOutputBuffer);
|
||||
|
||||
if (isFirstChannel)
|
||||
{
|
||||
oBuffers.resize(nI * m_nChannel);
|
||||
isFirstChannel = false;
|
||||
}
|
||||
|
||||
for (int k = 0; k < nI; ++k) { oBuffers[k * m_nChannel + j] = TFloat(resamplerOutputBuffer[k]); }
|
||||
}
|
||||
|
||||
for (int k = 0; k < nI; ++k) { callback.processResampler(&oBuffers[k * m_nChannel], m_nChannel); }
|
||||
|
||||
return nI;
|
||||
}
|
||||
|
||||
/// <summary> This function resamples the signal assuming the input samples are ordered this way :
|
||||
/// - sample 1 of channel 1, sample 2 of channel 1, ..., sample nInSample of channel 1,
|
||||
/// - sample 1 of channel 2, sample 2 of channel 2, ..., sample nInSample of channel 2,
|
||||
/// - ...
|
||||
/// - sample 1 of channel nChannel, sample 2 of channel nChannel, ..., sample nInSample of channel nChannel,
|
||||
///
|
||||
/// This is convenient for resampling at the signal-processing level. </summary>
|
||||
/// <param name="callback">The callback.</param>
|
||||
/// <param name="iSample">The input sample.</param>
|
||||
/// <param name="nInSample">The n input sample.</param>
|
||||
/// <returns> the number of sample process in last channel. </returns>
|
||||
size_t resampleSampleWise(const ICallback& callback, const TFloat* iSample, const size_t nInSample)
|
||||
{
|
||||
int nI = 0;
|
||||
bool isFirstChannel = true;
|
||||
|
||||
std::vector<double> iBuffers(nInSample);
|
||||
std::vector<TFloat> oBuffers;
|
||||
|
||||
for (size_t j = 0; j < m_nChannel; ++j)
|
||||
{
|
||||
for (size_t k = 0; k < nInSample; ++k) { iBuffers[k] = double(iSample[j * nInSample + k]); }
|
||||
|
||||
double* resamplerOutputBuffer;
|
||||
nI = m_resamplers[j]->process(&iBuffers[0], int(nInSample), resamplerOutputBuffer);
|
||||
|
||||
if (isFirstChannel)
|
||||
{
|
||||
oBuffers.resize(nI * m_nChannel);
|
||||
isFirstChannel = false;
|
||||
}
|
||||
|
||||
for (int k = 0; k < nI; ++k) { oBuffers[k * m_nChannel + j] = TFloat(resamplerOutputBuffer[k]); }
|
||||
}
|
||||
|
||||
for (int k = 0; k < nI; ++k) { callback.processResampler(&oBuffers[k * m_nChannel], m_nChannel); }
|
||||
|
||||
return nI;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
/// <summary> Trivial channel wise callback implementation. </summary>
|
||||
class CCallbackChannelWise final : public ICallback
|
||||
{
|
||||
public:
|
||||
CCallbackChannelWise(TFloat* oSample) : m_OutputSample(oSample) { }
|
||||
|
||||
void processResampler(const TFloat* sample, const size_t nChannel) const override
|
||||
{
|
||||
for (size_t i = 0; i < nChannel; ++i)
|
||||
{
|
||||
*m_OutputSample = *sample;
|
||||
++m_OutputSample;
|
||||
++sample;
|
||||
}
|
||||
}
|
||||
|
||||
mutable TFloat* m_OutputSample;
|
||||
};
|
||||
|
||||
/// <summary> Trivial sample wise callback implementation. </summary>
|
||||
class CCallbackSampleWise final : public ICallback
|
||||
{
|
||||
public:
|
||||
CCallbackSampleWise(TFloat* oSample, const size_t nOutSample) : m_OutputSample(oSample), m_NOutputSample(nOutSample) { }
|
||||
|
||||
void processResampler(const TFloat* sample, const size_t nChannel) const override
|
||||
{
|
||||
for (size_t i = 0; i < nChannel; ++i) { m_OutputSample[i * m_NOutputSample + m_OutputSampleIdx] = sample[i]; }
|
||||
m_OutputSampleIdx++;
|
||||
m_OutputSampleIdx %= m_NOutputSample;
|
||||
}
|
||||
|
||||
TFloat* const m_OutputSample;
|
||||
size_t m_NOutputSample = 0;
|
||||
mutable size_t m_OutputSampleIdx = 0;
|
||||
};
|
||||
|
||||
size_t resampleChannelWise(TFloat* oSample, const TFloat* iSample, const size_t nInSample, const size_t /*nOutSample*/)
|
||||
{
|
||||
return this->resample(CCallbackChannelWise(oSample), iSample, nInSample);
|
||||
}
|
||||
|
||||
size_t resampleSampleWise(TFloat* oSample, const TFloat* iSample, const size_t nInSample, const size_t nOutSample)
|
||||
{
|
||||
return this->resample(CCallbackSampleWise(oSample, nOutSample), iSample, nInSample);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
size_t resample(TFloat* oSample, const TFloat* iSample, const size_t nInSample, const size_t nOutSample = 1)
|
||||
{
|
||||
return (this->*m_fpResampleDirect)(oSample, iSample, nInSample, nOutSample);
|
||||
}
|
||||
|
||||
size_t downsample(TFloat* oSample, const TFloat* iSample, const size_t nInSample, const size_t nOutSample = 1)
|
||||
{
|
||||
return resample(oSample, iSample, nInSample, nOutSample);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
size_t m_nChannel = 0;
|
||||
size_t m_iSampling = 0;
|
||||
size_t m_oSampling = 0;
|
||||
|
||||
int m_nFractionalDelayFilterSample = 6;
|
||||
int m_iMaxNSampleIn = 1024;
|
||||
double m_transitionBandPercent = 45;
|
||||
double m_stopBandAttenuation = 49;
|
||||
|
||||
std::vector<r8b::CDSPProcessor*> m_resamplers;
|
||||
|
||||
size_t (TResampler<TFloat, TStoreMode>::*m_fpResample)(const ICallback& callback, const TFloat* iSample, const size_t nInSample);
|
||||
size_t (TResampler<TFloat, TStoreMode>::*m_fpResampleDirect)(TFloat* oSample, const TFloat* iSample, const size_t nInSample, const size_t nOutSample);
|
||||
};
|
||||
|
||||
typedef TResampler<float, EResamplerStoreModes::SampleWise> CResamplerSf;
|
||||
typedef TResampler<float, EResamplerStoreModes::ChannelWise> CResamplerCf;
|
||||
typedef TResampler<double, EResamplerStoreModes::SampleWise> CResamplerSd;
|
||||
typedef TResampler<double, EResamplerStoreModes::ChannelWise> CResamplerCd;
|
||||
|
||||
typedef TResampler<float, EResamplerStoreModes::SampleWise> CDownsamplerSf;
|
||||
typedef TResampler<float, EResamplerStoreModes::ChannelWise> CDownsamplerCf;
|
||||
typedef TResampler<double, EResamplerStoreModes::SampleWise> CDownsamplerSd;
|
||||
typedef TResampler<double, EResamplerStoreModes::ChannelWise> CDownsamplerCd;
|
||||
|
||||
} // namespace Resampler
|
||||
} // namespace Common
|
||||
@@ -0,0 +1,149 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdlib> // For Unix Compatibility (size_t)
|
||||
#include <cstdint> // For Uint standard
|
||||
|
||||
//
|
||||
// This file checks the presence of several defines that are supposed to
|
||||
// be set by the build system. In addition, it defines some additional ones.
|
||||
//
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
// We need some magic to get #warning behavior on MSVC
|
||||
#define STRINGISE(N) #N
|
||||
#define EXPAND_THEN_STRINGISE(N) STRINGISE(N)
|
||||
#define __LINE_STR__ EXPAND_THEN_STRINGISE(__LINE__)
|
||||
|
||||
// Format #pragma message
|
||||
#define __LOC__ __FILE__ "(" __LINE_STR__ ")"
|
||||
#define __OUTPUT_FORMAT__(type) __LOC__ " : " type " : "
|
||||
|
||||
// Actual warning message type
|
||||
#define __WARNING__ __OUTPUT_FORMAT__("Warning")
|
||||
#endif
|
||||
|
||||
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
// Operating System identification //
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
|
||||
#if !(defined(TARGET_OS_Windows) || defined(TARGET_OS_Linux) || defined(TARGET_OS_MacOS))
|
||||
#if defined(_MSC_VER)
|
||||
#pragma message( __WARNING__ "No known target OS specified!")
|
||||
#else
|
||||
#warning "No known target OS specified!"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
// Build type identification //
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
|
||||
#if !(defined(TARGET_BUILDTYPE_Debug) || defined(TARGET_BUILDTYPE_Release))
|
||||
#if defined(_MSC_VER)
|
||||
#pragma message( __WARNING__ "No known build type defined!")
|
||||
#else
|
||||
#warning "No known build type defined!"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
// Compiler software identification //
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
|
||||
#if !(defined(TARGET_COMPILER_GCC) || defined(TARGET_COMPILER_VisualStudio) || defined(TARGET_COMPILER_LLVM))
|
||||
#if defined(_MSC_VER)
|
||||
#pragma message( __WARNING__ "No known compiler defined!")
|
||||
#else
|
||||
#warning "No known compiler defined!"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
// API Definition //
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
|
||||
// Taken from
|
||||
// - http://people.redhat.com/drepper/dsohowto.pdf
|
||||
// - http://www.nedprod.com/programs/gccvisibility.html
|
||||
#if defined OV_Shared
|
||||
#if defined TARGET_OS_Windows
|
||||
#define OV_API_Export __declspec(dllexport)
|
||||
#define OV_API_Import __declspec(dllimport)
|
||||
#elif defined TARGET_OS_Linux || defined TARGET_OS_MacOS
|
||||
#define OV_API_Export __attribute__((visibility("default")))
|
||||
#define OV_API_Import __attribute__((visibility("default")))
|
||||
#else
|
||||
#define OV_API_Export
|
||||
#define OV_API_Import
|
||||
#endif
|
||||
#else
|
||||
#define OV_API_Export
|
||||
#define OV_API_Import
|
||||
#endif
|
||||
|
||||
#if defined OV_Exports
|
||||
#define OV_API OV_API_Export
|
||||
#else
|
||||
#define OV_API OV_API_Import
|
||||
#endif
|
||||
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
// API Definition for plugins //
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
|
||||
|
||||
// Taken from
|
||||
// - http://people.redhat.com/drepper/dsohowto.pdf
|
||||
// - http://www.nedprod.com/programs/gccvisibility.html
|
||||
#if defined OVP_Shared
|
||||
#if defined TARGET_OS_Windows
|
||||
#define OVP_API_Export __declspec(dllexport)
|
||||
#define OVP_API_Import __declspec(dllimport)
|
||||
#elif defined TARGET_OS_Linux || defined TARGET_OS_MacOS
|
||||
#define OVP_API_Export __attribute__((visibility("default")))
|
||||
#define OPV_API_Import __attribute__((visibility("default")))
|
||||
#else
|
||||
#define OVP_API_Export
|
||||
#define OVP_API_Import
|
||||
#endif
|
||||
#else
|
||||
# define OVP_API_Export
|
||||
# define OVP_API_Import
|
||||
#endif
|
||||
|
||||
#if defined OVP_Exports
|
||||
# define OVP_API OVP_API_Export
|
||||
#else
|
||||
# define OVP_API OVP_API_Import
|
||||
#endif
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
// NULL Definition //
|
||||
//___________________________________________________________________//
|
||||
// //
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus) && (__cplusplus >= 201402L)
|
||||
#define OV_DEPRECATED(since) [[deprecated("Since " #since)]]
|
||||
#define OV_DEPRECATED_FOR(since, replacement) [[deprecated("Since " #since "; use " #replacement)]]
|
||||
#elif defined(_MSC_VER)
|
||||
#define OV_DEPRECATED(since) __declspec(deprecated("Since " # since))
|
||||
#define OV_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement))
|
||||
#else
|
||||
#define OV_DEPRECATED(since) __attribute__((__deprecated__))
|
||||
#define OV_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__))
|
||||
#endif
|
||||
@@ -0,0 +1,278 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
// -----------------------------------------------------
|
||||
// XML Scenario importer
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_XMLScenarioImporter OpenViBE::CIdentifier(0xe80c3ea2, 0x149c4a05)
|
||||
#define OVP_GD_ClassId_Algorithm_XMLScenarioExporter OpenViBE::CIdentifier(0x53693531, 0xb136cf3f)
|
||||
#define OVP_GD_TypeId_ClassificationPairwiseStrategy OpenViBE::CIdentifier(0x0DD51C74, 0x3C4E74C9)
|
||||
#define OVP_GD_TypeId_OneVsOne_DecisionAlgorithms OpenViBE::CIdentifier(0x0DEC1510, 0x0DEC1510)
|
||||
#define OVP_GD_ClassId_Algorithm_PairwiseStrategy_PKPD OpenViBE::CIdentifier(0x26EF6DDA, 0xF137053C)
|
||||
#define OVP_GD_ClassId_Algorithm_PairwiseDecision_Voting OpenViBE::CIdentifier(0xA111B830, 0x4679BAFD)
|
||||
#define OVP_GD_ClassId_Algorithm_PairwiseDecision_HT OpenViBE::CIdentifier(0xD24F7F19, 0xA744FAD2)
|
||||
|
||||
// Algorithm OVMatrixFileReader
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_OVMatrixFileReader OpenViBE::CIdentifier(0x10661A33, 0x0B0F44A7)
|
||||
#define OVP_GD_ClassId_Algorithm_OVMatrixFileReaderDesc OpenViBE::CIdentifier(0x0E873B5E, 0x0A287FCB)
|
||||
|
||||
|
||||
#define OVP_GD_Algorithm_OVMatrixFileReader_InputParameterId_Filename OpenViBE::CIdentifier(0x28F87B29, 0x0B09737E)
|
||||
#define OVP_GD_Algorithm_OVMatrixFileReader_OutputParameterId_Matrix OpenViBE::CIdentifier(0x2F9521E0, 0x027D789F)
|
||||
#define OVP_GD_Algorithm_OVMatrixFileReader_InputTriggerId_Open OpenViBE::CIdentifier(0x2F996376, 0x2A942485)
|
||||
#define OVP_GD_Algorithm_OVMatrixFileReader_InputTriggerId_Load OpenViBE::CIdentifier(0x22841807, 0x102D681C)
|
||||
#define OVP_GD_Algorithm_OVMatrixFileReader_InputTriggerId_Close OpenViBE::CIdentifier(0x7FDE77DA, 0x384A0B3D)
|
||||
#define OVP_GD_Algorithm_OVMatrixFileReader_OutputTriggerId_Error OpenViBE::CIdentifier(0x6D4F2F4B, 0x05EC6CB9)
|
||||
#define OVP_GD_Algorithm_OVMatrixFileReader_OutputTriggerId_DataProduced OpenViBE::CIdentifier(0x76F46051, 0x003B6FE8)
|
||||
|
||||
// -----------------------------------------------------
|
||||
// EBML stream encoder
|
||||
// -----------------------------------------------------
|
||||
#define OVP_GD_ClassId_Algorithm_StreamStructureDecoder OpenViBE::CIdentifier(0xA7EF3E8B, 0x4CF70B74)
|
||||
#define OVP_GD_ClassId_Algorithm_StreamStructureDecoderDesc OpenViBE::CIdentifier(0x2E361099, 0xCBE828A7)
|
||||
|
||||
#define OVP_GD_Algorithm_StreamStructureDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2F98EA3C, 0xFB0BE096)
|
||||
#define OVP_GD_Algorithm_StreamStructureDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234BF, 0xAABAE5F2)
|
||||
#define OVP_GD_Algorithm_StreamStructureDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xAA2738BF, 0xF7FE9FC3)
|
||||
#define OVP_GD_Algorithm_StreamStructureDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xC4AA114C, 0x628C2D77)
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Streamed matrix stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_StreamedMatrixEncoder OpenViBE::CIdentifier(0x5cb32c71, 0x576f00a6)
|
||||
#define OVP_GD_Algorithm_StreamedMatrixEncoder_InputParameterId_Matrix OpenViBE::CIdentifier(0xa3e9e5b0, 0xae756303)
|
||||
#define OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734)
|
||||
#define OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a)
|
||||
#define OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8)
|
||||
#define OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f)
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Experiment information stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_ExperimentInfoDecoder OpenViBE::CIdentifier(0x6fa7d52b, 0x80e2abd6)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectName OpenViBE::CIdentifier(0x3d3826ea, 0xe8883815)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_ExperimentID OpenViBE::CIdentifier(0x40259641, 0x478c73de)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_LaboratoryName OpenViBE::CIdentifier(0x5ca80fa5, 0x774f01cb)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectGender OpenViBE::CIdentifier(0x7d5059e8, 0xe4d8b38d)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectID OpenViBE::CIdentifier(0x97c5d20d, 0x203e65b3)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_TechnicianName OpenViBE::CIdentifier(0xb8a94b68, 0x389393d9)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_ExperimentDate OpenViBE::CIdentifier(0xbc0266a2, 0x9c2935f1)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectAge OpenViBE::CIdentifier(0xc36c6b08, 0x5227380a)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_TechnicianID OpenViBE::CIdentifier(0xc8ecfbbc, 0x0dcda310)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_LaboratoryID OpenViBE::CIdentifier(0xe761d3d4, 0x44ba1ebf)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77)
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Channel localisation stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_ChannelLocalisationEncoder OpenViBE::CIdentifier(0xc4aa738a, 0x2368c0ea)
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationEncoder_InputParameterId_Matrix OpenViBE::CIdentifier(0xa3e9e5b0, 0xae756303) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationEncoder_InputParameterId_Dynamic OpenViBE::CIdentifier(0xcf5dd4f8, 0xc2ff2878)
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Signal stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_SignalDecoder OpenViBE::CIdentifier(0x7237c149, 0x0ca66da7)
|
||||
#define OVP_GD_Algorithm_SignalDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Sampling OpenViBE::CIdentifier(0x363d8d79, 0xeefb912c)
|
||||
#define OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Matrix OpenViBE::CIdentifier(0x79ef3123, 0x35e3ea4d)
|
||||
#define OVP_GD_Algorithm_SignalDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_SignalDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_SignalDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Spectrum stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_SpectrumEncoder OpenViBE::CIdentifier(0xb3e252db, 0xc3214498)
|
||||
#define OVP_GD_Algorithm_SpectrumEncoder_InputParameterId_Matrix OpenViBE::CIdentifier(0xa3e9e5b0, 0xae756303) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_SpectrumEncoder_InputParameterId_FrequencyAbscissa OpenViBE::CIdentifier(0x05C91BD6, 0x2D8C4083)
|
||||
#define OVP_GD_Algorithm_SpectrumEncoder_InputParameterId_Sampling OpenViBE::CIdentifier(0x02D25E1B, 0x76A1019B)
|
||||
#define OVP_GD_Algorithm_SpectrumEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_SpectrumEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_SpectrumEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_SpectrumEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Acquisition stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_AcquisitionDecoder OpenViBE::CIdentifier(0x1e0812b7, 0x3f686dd4)
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputParameterId_StimulationStream OpenViBE::CIdentifier(0x08fc3c12, 0x86a07bf7)
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputParameterId_ChannelUnitsStream OpenViBE::CIdentifier(0x11b93981, 0x6e5da9b0)
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputParameterId_SignalStream OpenViBE::CIdentifier(0x42c0d7bd, 0xbbcea3f3)
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputParameterId_ChannelLocalisationStream OpenViBE::CIdentifier(0x4eb92f81, 0x6ecda6b9)
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputParameterId_BufferDuration OpenViBE::CIdentifier(0x7527d6e5, 0xb7a70339)
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputParameterId_ExperimentInfoStream OpenViBE::CIdentifier(0xa7f1d539, 0xec708539)
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_AcquisitionDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_MasterAcquisitionEncoder OpenViBE::CIdentifier(0x2d15e00b, 0x51414eb6)
|
||||
#define OVP_GD_ClassId_Algorithm_MasterAcquisitionEncoderDesc OpenViBE::CIdentifier(0xe6ec841d, 0x9e75a8fb)
|
||||
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_EncodeChannelUnitData OpenViBE::CIdentifier(0x19dc533c, 0x56301d0b)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_ChannelLocalisation OpenViBE::CIdentifier(0x227e13f0, 0x206b44f9)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_EncodeChannelLocalisationData OpenViBE::CIdentifier(0x26ee1f81, 0x3db00d5d)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_StimulationSet OpenViBE::CIdentifier(0x5b728d37, 0xfd088887)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_ChannelUnits OpenViBE::CIdentifier(0x740060c2, 0x7d2b4f57)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_SubjectAge OpenViBE::CIdentifier(0x9ef355e4, 0xc8531112)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_SubjectGender OpenViBE::CIdentifier(0xa9056ae3, 0x57fe6af0)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_SignalSampling OpenViBE::CIdentifier(0xb84ad0ca, 0x4f316dd3)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_SubjectID OpenViBE::CIdentifier(0xd5bb5231, 0x59389b72)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_BufferDuration OpenViBE::CIdentifier(0xe1fc7385, 0x586a4f3f)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputParameterId_SignalMatrix OpenViBE::CIdentifier(0xe9ac8077, 0xe369a51d)
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorit hm_AcquisitionStreamEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorit hm_AcquisitionStreamEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorit hm_AcquisitionStreamEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_MasterAcquisitionEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorit hm_AcquisitionStreamEncoder_InputTriggerId_EncodeHeader
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Spectrum stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_SpectrumDecoder OpenViBE::CIdentifier(0x128202db, 0x449fc7a6)
|
||||
#define OVP_GD_Algorithm_SpectrumDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_SpectrumDecoder_OutputParameterId_FrequencyAbscissa OpenViBE::CIdentifier(0x14A572E4, 0x5C405C8E)
|
||||
#define OVP_GD_Algorithm_SpectrumDecoder_OutputParameterId_Sampling OpenViBE::CIdentifier(0x68442C12, 0x0D9A46DE)
|
||||
#define OVP_GD_Algorithm_SpectrumDecoder_OutputParameterId_Matrix OpenViBE::CIdentifier(0x79ef3123, 0x35e3ea4d) // Duplicate of OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_SpectrumDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_SpectrumDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_SpectrumDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Stimulation stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_StimulationDecoder OpenViBE::CIdentifier(0xc8807f2b, 0x0813c5b1)
|
||||
#define OVP_GD_Algorithm_StimulationDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_StimulationDecoder_OutputParameterId_StimulationSet OpenViBE::CIdentifier(0xf46d0c19, 0x47306bea)
|
||||
#define OVP_GD_Algorithm_StimulationDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_StimulationDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_StimulationDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Streamed matrix stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_StreamedMatrixDecoder OpenViBE::CIdentifier(0x7359d0db, 0x91784b21)
|
||||
#define OVP_GD_Algorithm_StreamedMatrixDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_StreamedMatrixDecoder_OutputParameterId_Matrix OpenViBE::CIdentifier(0x79ef3123, 0x35e3ea4d) // Duplicate of OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_StreamedMatrixDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_StreamedMatrixDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_StreamedMatrixDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Feature vector stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_FeatureVectorDecoder OpenViBE::CIdentifier(0xc2689ecc, 0x43b335c1)
|
||||
#define OVP_GD_Algorithm_FeatureVectorDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_FeatureVectorDecoder_OutputParameterId_Matrix OpenViBE::CIdentifier(0x79ef3123, 0x35e3ea4d) // Duplicate of OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_FeatureVectorDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_FeatureVectorDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_FeatureVectorDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Channel localisation stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_ChannelLocalisationDecoder OpenViBE::CIdentifier(0x8222f065, 0xb05d35cf)
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationDecoder_OutputParameterId_Matrix OpenViBE::CIdentifier(0x79ef3123, 0x35e3ea4d) // Duplicate of OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationDecoder_OutputParameterId_Dynamic OpenViBE::CIdentifier(0xd20991fd, 0xa3153651)
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_ChannelLocalisationDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Channel units stream decoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_ChannelUnitsDecoder OpenViBE::CIdentifier(0x5f973ddf, 0x4a582daf)
|
||||
#define OVP_GD_Algorithm_ChannelUnitsDecoder_InputParameterId_MemoryBufferToDecode OpenViBE::CIdentifier(0x2f98ea3c, 0xfb0be096) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_InputParameterId_MemoryBufferToDecode
|
||||
#define OVP_GD_Algorithm_ChannelUnitsDecoder_OutputParameterId_Dynamic OpenViBE::CIdentifier(0x31cf1c7a, 0x17475323)
|
||||
#define OVP_GD_Algorithm_ChannelUnitsDecoder_OutputParameterId_Matrix OpenViBE::CIdentifier(0x79ef3123, 0x35e3ea4d) // Duplicate of OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_ChannelUnitsDecoder_OutputTriggerId_ReceivedHeader OpenViBE::CIdentifier(0x815234bf, 0xaabae5f2) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedHeader
|
||||
#define OVP_GD_Algorithm_ChannelUnitsDecoder_OutputTriggerId_ReceivedBuffer OpenViBE::CIdentifier(0xaa2738bf, 0xf7fe9fc3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedBuffer
|
||||
#define OVP_GD_Algorithm_ChannelUnitsDecoder_OutputTriggerId_ReceivedEnd OpenViBE::CIdentifier(0xc4aa114c, 0x628c2d77) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputTriggerId_ReceivedEnd
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Experiment information stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_ExperimentInfoEncoder OpenViBE::CIdentifier(0x56b354fe, 0xbf175468)
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_SubjectName OpenViBE::CIdentifier(0x3d3826ea, 0xe8883815) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectName
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_ExperimentID OpenViBE::CIdentifier(0x40259641, 0x478c73de) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_ExperimentID
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_LaboratoryName OpenViBE::CIdentifier(0x5ca80fa5, 0x774f01cb) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_LaboratoryName
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_SubjectGender OpenViBE::CIdentifier(0x7d5059e8, 0xe4d8b38d) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectGender
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_SubjectID OpenViBE::CIdentifier(0x97c5d20d, 0x203e65b3) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectID
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_TechnicianName OpenViBE::CIdentifier(0xb8a94b68, 0x389393d9) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_TechnicianName
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_ExperimentDate OpenViBE::CIdentifier(0xbc0266a2, 0x9c2935f1) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_ExperimentDate
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_SubjectAge OpenViBE::CIdentifier(0xc36c6b08, 0x5227380a) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_SubjectAge
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_TechnicianID OpenViBE::CIdentifier(0xc8ecfbbc, 0x0dcda310) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_TechnicianID
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputParameterId_LaboratoryID OpenViBE::CIdentifier(0xe761d3d4, 0x44ba1ebf) // Duplicate of OVP_GD_Algorithm_ExperimentInfoDecoder_OutputParameterId_LaboratoryID
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_ExperimentInfoEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Feature vector stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_FeatureVectorEncoder OpenViBE::CIdentifier(0x7ebe049d, 0xf777a602)
|
||||
#define OVP_GD_Algorithm_FeatureVectorEncoder_InputParameterId_Matrix OpenViBE::CIdentifier(0xa3e9e5b0, 0xae756303) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_FeatureVectorEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_FeatureVectorEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_FeatureVectorEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_FeatureVectorEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Stimulation stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_StimulationEncoder OpenViBE::CIdentifier(0x6e86f7d5, 0xa4668108)
|
||||
#define OVP_GD_Algorithm_StimulationEncoder_InputParameterId_StimulationSet OpenViBE::CIdentifier(0x8565254c, 0x3a49268e)
|
||||
#define OVP_GD_Algorithm_StimulationEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_StimulationEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_StimulationEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_StimulationEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Channel units stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_ChannelUnitsEncoder OpenViBE::CIdentifier(0x2ca034fd, 0x5c051e86)
|
||||
#define OVP_GD_Algorithm_ChannelUnitsEncoder_InputParameterId_Dynamic OpenViBE::CIdentifier(0x615f03b9, 0x4f6a320a)
|
||||
#define OVP_GD_Algorithm_ChannelUnitsEncoder_InputParameterId_Matrix OpenViBE::CIdentifier(0xa3e9e5b0, 0xae756303) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_ChannelUnitsEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_ChannelUnitsEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_ChannelUnitsEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_ChannelUnitsEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Signal stream encoder
|
||||
// -----------------------------------------------------
|
||||
|
||||
#define OVP_GD_ClassId_Algorithm_SignalEncoder OpenViBE::CIdentifier(0xc488ad3c, 0xeb2e36bf)
|
||||
#define OVP_GD_Algorithm_SignalEncoder_InputParameterId_Sampling OpenViBE::CIdentifier(0x998710ff, 0x2c5cca82)
|
||||
#define OVP_GD_Algorithm_SignalEncoder_InputParameterId_Matrix OpenViBE::CIdentifier(0xa3e9e5b0, 0xae756303) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputParameterId_Matrix
|
||||
#define OVP_GD_Algorithm_SignalEncoder_OutputParameterId_EncodedMemoryBuffer OpenViBE::CIdentifier(0xa3d8b171, 0xf8734734) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_OutputParameterId_EncodedMemoryBuffer
|
||||
#define OVP_GD_Algorithm_SignalEncoder_InputTriggerId_EncodeBuffer OpenViBE::CIdentifier(0x1b7076fd, 0x449bc70a) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeBuffer
|
||||
#define OVP_GD_Algorithm_SignalEncoder_InputTriggerId_EncodeEnd OpenViBE::CIdentifier(0x3fc23508, 0x806753d8) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeEnd
|
||||
#define OVP_GD_Algorithm_SignalEncoder_InputTriggerId_EncodeHeader OpenViBE::CIdentifier(0x878eaf60, 0xf9d5303f) // Duplicate of OVP_GD_Algorithm_StreamedMatrixEncoder_InputTriggerId_EncodeHeader
|
||||
Reference in New Issue
Block a user