お世話になります。
Windows10にMinGWをインストールして、G++を利用して、CPPのソースをコンパイルしようとしているんですが、下記のソースコードをコンパイルすると、エラーが発生します。
#define _USE_MATH_DEFINES
#include <cmath>
#include "beeps.h"
const int sampleRate=44100;
const int amplitude=14000;
int generateBeep(short* buf, const float hz, const int length, const int left, const int right) {
const int samplesPerCycle=static_cast<int>(sampleRate/hz);
int totalSamples=static_cast<int>((length/1000.0)/(1.0/sampleRate));
totalSamples+=samplesPerCycle-(totalSamples%samplesPerCycle);
if (!buf) { //just return buffer length
return totalSamples*4;
}
const double lpan=(left/100.0)*amplitude, rpan=(right/100.0)*amplitude;
const double sinFreq=(2.0*M_PI)/(sampleRate/hz); //DON'T use samplesPerCycle here
for (int sampleNum=0; sampleNum<totalSamples; ++sampleNum) {
const double sample=min(max(sin((sampleNum%sampleRate)*sinFreq)*2.0,-1.0),1.0);
buf[sampleNum*2]=static_cast<short>(sample*lpan);
buf[sampleNum*2+1]=static_cast<short>(sample*rpan);
}
return totalSamples*4;
}
エラー内容は、下記のとおりです。
beeps.cpp:18:75: error: 'max' was not declared in this scope
const double sample=min(max(sin((sampleNum%sampleRate)*sinFreq)*2.0,-1.0),1.0);
beeps.cpp:18:80: error: 'min' was not declared in this scope
const double sample=min(max(sin((sampleNum%sampleRate)*sinFreq)*2.0,-1.0),1.0);
何かインストールが必要なパッケージ等があるのでしょうか。
何か解決方法がありましたら、教えていただけると幸いです。
よろしくお願いいたします。