From b2a24dd5a884ea13f331f0f1e5d0c734852beadb Mon Sep 17 00:00:00 2001
From: BERTHAUT Florent <florent.berthaut@univ-lille1.fr>
Date: Fri, 8 May 2020 11:53:43 +0200
Subject: [PATCH] Added buffer size setting

---
 src/gdpd.cpp | 8 +++++---
 src/gdpd.hpp | 2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/gdpd.cpp b/src/gdpd.cpp
index fbdc24c..a86f988 100644
--- a/src/gdpd.cpp
+++ b/src/gdpd.cpp
@@ -15,7 +15,9 @@ void Gdpd::_register_methods() {
     register_method("set_volume", &Gdpd::set_volume);
 }
 
-int Gdpd::audioCallback(void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void *userData){
+int Gdpd::audioCallback(void *outputBuffer, void *inputBuffer, 
+					    unsigned int nBufferFrames, double streamTime, 
+						RtAudioStreamStatus status, void *userData){
 	Gdpd* gdpd = static_cast<Gdpd*>(userData);
 	gdpd->processAudio(outputBuffer, inputBuffer, nBufferFrames, streamTime,
 					   status, userData);
@@ -32,7 +34,7 @@ void Gdpd::_init() {
 Gdpd::~Gdpd() {
 }
 
-int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate) {
+int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate, int bufferSize) {
 
 	if(!m_pd.init(nbInputs, nbOutputs, sampleRate, true)) {
 		Godot::print("GDPD : Error starting libpd");
@@ -62,7 +64,7 @@ int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate) {
 	inParams.deviceId = m_audio.getDefaultOutputDevice();
 	outParams.nChannels = m_nbInputs = nbInputs;
 	inParams.nChannels = m_nbOutputs = nbOutputs;
-	m_bufferFrames = 128;
+	m_bufferFrames = bufferSize;
 
 	RtAudio::StreamOptions options;
 	options.streamName = "gdpd";
diff --git a/src/gdpd.hpp b/src/gdpd.hpp
index 5a24807..ef3a1db 100644
--- a/src/gdpd.hpp
+++ b/src/gdpd.hpp
@@ -38,7 +38,7 @@ public:
 	void _init();
 
 	//libpd functions
-	int init(int nbInputs, int nbOutputs, int sampleRate);
+	int init(int nbInputs, int nbOutputs, int sampleRate, int bufferSize);
 	void openfile(String basename, String dirname);
 	void closefile();
 	bool has_message();
-- 
GitLab