summaryrefslogtreecommitdiff
path: root/drumgizmo
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-11-06 08:03:56 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2014-11-06 08:03:56 +0100
commit36630b0fa3d29c54a666d3bb00a2fac804fa7df9 (patch)
treef0eab974b1dc9453f402d7020410077e841dbd72 /drumgizmo
parentfe8907b7dd31a4acbde211df929092e0f1014d06 (diff)
Make cli output modules work with new samplerate() design.
Diffstat (limited to 'drumgizmo')
-rw-r--r--drumgizmo/audiooutputenginedl.cc22
-rw-r--r--drumgizmo/drumgizmoc.cc2
-rw-r--r--drumgizmo/output/alsa/alsa.cc29
-rw-r--r--drumgizmo/output/dummy/dummy.cc30
-rw-r--r--drumgizmo/output/jackaudio/jackaudio.cc17
-rw-r--r--drumgizmo/output/wavfile/wavfile.cc38
6 files changed, 46 insertions, 92 deletions
diff --git a/drumgizmo/audiooutputenginedl.cc b/drumgizmo/audiooutputenginedl.cc
index fcedd9d..2648e8f 100644
--- a/drumgizmo/audiooutputenginedl.cc
+++ b/drumgizmo/audiooutputenginedl.cc
@@ -114,7 +114,8 @@ AudioOutputEngineDL::AudioOutputEngineDL(std::string name)
o_samplerate = (output_samplerate_func_t) dlsym(lib, "samplerate");
dlsym_error = dlerror();
if(dlsym_error) {
- o_samplerate = NULL;
+ printf("Cannot load symbol samplerate: %s\n", dlsym_error);
+ return;
}
ptr = o_create();
@@ -190,22 +191,5 @@ size_t AudioOutputEngineDL::getBufferSize()
size_t AudioOutputEngineDL::samplerate()
{
if(o_samplerate) return o_samplerate(ptr);
- return UNKNOWN_SAMPLERATE;
+ return 44100;
}
-
-#ifdef TEST_AUDIOOUTPUTENGINEDL
-//Additional dependency files
-//deps:
-//Required cflags (autoconf vars may be used)
-//cflags:
-//Required link options (autoconf vars may be used)
-//libs:
-#include "test.h"
-
-TEST_BEGIN;
-
-// TODO: Put some testcode here (see test.h for usable macros).
-
-TEST_END;
-
-#endif/*TEST_AUDIOOUTPUTENGINEDL*/
diff --git a/drumgizmo/drumgizmoc.cc b/drumgizmo/drumgizmoc.cc
index d5fa817..61f8eaa 100644
--- a/drumgizmo/drumgizmoc.cc
+++ b/drumgizmo/drumgizmoc.cc
@@ -187,7 +187,7 @@ int main(int argc, char *argv[])
return 1;
}
- AudioOutputEngine *oe = new AudioOutputEngineDL(outputengine);
+ AudioOutputEngineDL *oe = new AudioOutputEngineDL(outputengine);
if(oe == NULL) {
printf("Invalid output engine: %s\n", outputengine.c_str());
diff --git a/drumgizmo/output/alsa/alsa.cc b/drumgizmo/output/alsa/alsa.cc
index 7b3a395..dc2ac73 100644
--- a/drumgizmo/output/alsa/alsa.cc
+++ b/drumgizmo/output/alsa/alsa.cc
@@ -49,6 +49,7 @@ public:
void pre(size_t size);
void run(int channel, sample_t* data, size_t size);
void post(size_t size);
+ size_t samplerate();
private:
snd_pcm_t *handle;
@@ -157,6 +158,11 @@ void Alsa::post(size_t size)
snd_pcm_writei(handle, data, size);
}
+size_t Alsa::samplerate()
+{
+ return srate;
+}
+
extern "C" {
void *create()
{
@@ -210,21 +216,10 @@ extern "C" {
Alsa *alsa = (Alsa*)h;
alsa->post(s);
}
-}
-
-#ifdef TEST_AUDIOOUTPUTENGINEALSA
-//Additional dependency files
-//deps:
-//Required cflags (autoconf vars may be used)
-//cflags:
-//Required link options (autoconf vars may be used)
-//libs:
-#include "test.h"
-
-TEST_BEGIN;
-// TODO: Put some testcode here (see test.h for usable macros).
-
-TEST_END;
-
-#endif/*TEST_AUDIOOUTPUTENGINEALSA*/
+ size_t samplerate(void *h)
+ {
+ Alsa *alsa = (Alsa*)h;
+ return alsa->samplerate();
+ }
+}
diff --git a/drumgizmo/output/dummy/dummy.cc b/drumgizmo/output/dummy/dummy.cc
index cd210dc..e60f2b7 100644
--- a/drumgizmo/output/dummy/dummy.cc
+++ b/drumgizmo/output/dummy/dummy.cc
@@ -43,6 +43,8 @@ public:
void pre(size_t size);
void run(int channel, sample_t* data, size_t size);
void post(size_t size);
+
+ size_t samplerate();
};
Dummy::Dummy()
@@ -83,6 +85,11 @@ void Dummy::post(size_t size)
{
}
+size_t Dummy::samplerate()
+{
+ return 44100;
+}
+
extern "C" {
void *create()
{
@@ -136,21 +143,10 @@ extern "C" {
Dummy *dummy = (Dummy*)h;
dummy->post(size);
}
-}
-
-#ifdef TEST_AUDIOOUTPUTENGINEDUMMY
-//Additional dependency files
-//deps:
-//Required cflags (autoconf vars may be used)
-//cflags:
-//Required link options (autoconf vars may be used)
-//libs:
-#include "test.h"
-
-TEST_BEGIN;
-// TODO: Put some testcode here (see test.h for usable macros).
-
-TEST_END;
-
-#endif/*TEST_AUDIOOUTPUTENGINEDUMMY*/
+ size_t samplerate(void *h)
+ {
+ Dummy *dummy = (Dummy*)h;
+ return dummy->samplerate();
+ }
+}
diff --git a/drumgizmo/output/jackaudio/jackaudio.cc b/drumgizmo/output/jackaudio/jackaudio.cc
index b7fa4f9..5c04146 100644
--- a/drumgizmo/output/jackaudio/jackaudio.cc
+++ b/drumgizmo/output/jackaudio/jackaudio.cc
@@ -218,20 +218,3 @@ extern "C" {
return jack->samplerate();
}
}
-
-#ifdef TEST_AUDIOINPUTENGINEJACKAUDIO
-//Additional dependency files
-//deps:
-//Required cflags (autoconf vars may be used)
-//cflags:
-//Required link options (autoconf vars may be used)
-//libs:
-#include "test.h"
-
-TEST_BEGIN;
-
-// TODO: Put some testcode here (see test.h for usable macros).
-
-TEST_END;
-
-#endif/*TEST_AUDIOINPUTENGINEJACKAUDIO*/
diff --git a/drumgizmo/output/wavfile/wavfile.cc b/drumgizmo/output/wavfile/wavfile.cc
index cb95715..fa4128e 100644
--- a/drumgizmo/output/wavfile/wavfile.cc
+++ b/drumgizmo/output/wavfile/wavfile.cc
@@ -44,6 +44,7 @@ public:
void pre(size_t size);
void run(int channel, sample_t* data, size_t size);
void post(size_t size);
+ size_t samplerate();
private:
SF_INFO sf_info;
@@ -58,6 +59,10 @@ WavFile::WavFile()
{
fh = NULL;
filename = "output";
+
+ sf_info.channels = 1;//channels;
+ sf_info.format = SF_FORMAT_WAV | SF_FORMAT_FLOAT;
+ sf_info.samplerate = 44100;
}
WavFile::~WavFile()
@@ -74,10 +79,6 @@ WavFile::~WavFile()
bool WavFile::init(int channels, char *cnames[])
{
this->channels = channels;
-
- sf_info.channels = 1;//channels;
- sf_info.format = SF_FORMAT_WAV | SF_FORMAT_FLOAT;
- sf_info.samplerate = 44100;
fh = (SNDFILE **)malloc(sizeof(SNDFILE *)*channels);
@@ -102,6 +103,7 @@ bool WavFile::init(int channels, char *cnames[])
void WavFile::setParm(std::string parm, std::string value)
{
if(parm == "file") filename = value;
+ if(parm == "srate") sf_info.samplerate = atoi(value.c_str());
}
bool WavFile::start()
@@ -126,6 +128,11 @@ void WavFile::post(size_t size)
{
}
+size_t WavFile::samplerate()
+{
+ return sf_info.samplerate;
+}
+
extern "C" {
void *create()
{
@@ -179,21 +186,10 @@ extern "C" {
WavFile *sndfile = (WavFile*)h;
sndfile->post(s);
}
-}
-
-#ifdef TEST_AUDIOOUTPUTENGINESNDFILE
-//Additional dependency files
-//deps:
-//Required cflags (autoconf vars may be used)
-//cflags:
-//Required link options (autoconf vars may be used)
-//libs:
-#include "test.h"
-
-TEST_BEGIN;
-
-// TODO: Put some testcode here (see test.h for usable macros).
-TEST_END;
-
-#endif/*TEST_AUDIOOUTPUTENGINESNDFILE*/
+ size_t samplerate(void *h)
+ {
+ WavFile *wavfile = (WavFile*)h;
+ return wavfile->samplerate();
+ }
+}