diff options
Diffstat (limited to 'drumgizmo/output')
| -rw-r--r-- | drumgizmo/output/alsa/Makefile.am | 29 | ||||
| -rw-r--r-- | drumgizmo/output/alsa/alsa.cc | 225 | ||||
| -rw-r--r-- | drumgizmo/output/dummy/Makefile.am | 29 | ||||
| -rw-r--r-- | drumgizmo/output/dummy/dummy.cc | 152 | ||||
| -rw-r--r-- | drumgizmo/output/jackaudio/Makefile.am | 31 | ||||
| -rw-r--r-- | drumgizmo/output/jackaudio/jackaudio.cc | 222 | ||||
| -rw-r--r-- | drumgizmo/output/wavfile/Makefile.am | 29 | ||||
| -rw-r--r-- | drumgizmo/output/wavfile/wavfile.cc | 197 | 
8 files changed, 0 insertions, 914 deletions
| diff --git a/drumgizmo/output/alsa/Makefile.am b/drumgizmo/output/alsa/Makefile.am deleted file mode 100644 index 9f20844..0000000 --- a/drumgizmo/output/alsa/Makefile.am +++ /dev/null @@ -1,29 +0,0 @@ - -alsasources = \ -	alsa.cc - -if HAVE_OUTPUT_ALSA - -alsaltlibs = alsa.la -alsabuildsources = $(alsasources) - -else - -alsaltlibs = -alsabuildsources = - -endif - -EXTRA_DIST = $(alsasources) - -lib_LTLIBRARIES = $(alsaltlibs) - -libdir = $(OUTPUT_PLUGIN_DIR) - -AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/include $(ALSA_CFLAGS) -alsa_la_LDFLAGS = $(ALSA_LIBS) -module -avoid-version -shared -alsa_la_LIBADD = -alsa_la_SOURCES = $(alsabuildsources) - -install-exec-hook: -	rm -f $(DESTDIR)$(libdir)/alsa.la diff --git a/drumgizmo/output/alsa/alsa.cc b/drumgizmo/output/alsa/alsa.cc deleted file mode 100644 index 71e0c3d..0000000 --- a/drumgizmo/output/alsa/alsa.cc +++ /dev/null @@ -1,225 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            audiooutputenginedummy.cc - * - *  Sat Apr 30 21:12:02 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include <stdlib.h> - -#include <audiotypes.h> -#include <string> - -// Use the newer ALSA API -#define ALSA_PCM_NEW_HW_PARAMS_API - -#include <asoundlib.h> - -#define T(x, msg) if(x < 0) { printf("%s failed: %s\n", msg, snd_strerror(x)); fflush(stdout); return false; } - -#define BUFSZ 40960 - -class Alsa { -public: -  Alsa(); -  ~Alsa(); -  bool init(int channels, char *cnames[]); -  void setParm(std::string parm, std::string value); -  bool start(); -  void stop(); -  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{nullptr}; -	snd_pcm_hw_params_t *params{nullptr}; -	sample_t *data{nullptr}; -	size_t channels{0}; - -  // Parameters -  std::string device; -	unsigned int srate{0}; -	snd_pcm_uframes_t frames{0}; -}; - -Alsa::Alsa() -{ -  handle = NULL; -  data = NULL; - -  device = "default"; -  srate = 44100; -  frames = 32; -} - -Alsa::~Alsa() -{ -  if(handle) snd_pcm_close(handle); -  if(data) free(data); -} - -bool Alsa::init(int channels, char *cnames[]) -{ -  int rc; - -  rc = snd_pcm_open(&handle, device.c_str(), SND_PCM_STREAM_PLAYBACK, 0); -  T(rc, "snd_pcm_open"); - -  this->channels = channels; -  if(!handle) { -    printf("No handle!\n"); -    return false; -  } - -  // Allocate a hardware parameters object. -  snd_pcm_hw_params_alloca(¶ms); -  //  if(rc < 0) return false; - -  // Fill it in with default values. -  rc = snd_pcm_hw_params_any(handle, params); -  T(rc, "snd_pcm_hw_params_any"); - -  rc = snd_pcm_hw_params_set_access(handle, params, -                                    SND_PCM_ACCESS_RW_INTERLEAVED); -  T(rc, "snd_pcm_hw_params_set_access"); - -  rc = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_FLOAT); -  T(rc, "snd_pcm_hw_params_set_format"); - -  rc = snd_pcm_hw_params_set_channels(handle, params, channels); -  T(rc, "snd_pcm_hw_params_set_channels"); - -  rc = snd_pcm_hw_params_set_rate_near(handle, params, &srate, 0); -  T(rc, "snd_pcm_hw_params_set_rate_near"); - -  rc = snd_pcm_hw_params_set_period_size_near(handle, params, &frames, 0); -  T(rc, "snd_pcm_hw_params_set_period_size_near"); -   -  rc = snd_pcm_hw_params(handle, params); -  T(rc, "snd_pcm_hw_params"); - -  data = (sample_t*)malloc(sizeof(sample_t) * BUFSZ * channels); - -  return true; -} - -void Alsa::setParm(std::string parm, std::string value) -{ -  if(parm == "dev") device = value; -  if(parm == "frames") frames = atoi(value.c_str()); -  if(parm == "srate") srate = atoi(value.c_str()); -} - -bool Alsa::start() -{ -  return true; -} - -void Alsa::stop() -{ -} - -void Alsa::pre(size_t size) -{ -} - -void Alsa::run(int channel, sample_t* cdata, size_t csize) -{ -  // Write channel data in interleaved buffer. -  for(size_t i = 0; i < csize; i++) { -    data[i * channels + channel] = cdata[i]; -  } -} - -void Alsa::post(size_t size) -{ -  // Write the interleaved buffer to the soundcard -  snd_pcm_writei(handle, data, size); -} - -size_t Alsa::samplerate() -{ -  return srate; -} - -extern "C" { -  void *create() -  { -    return new Alsa(); -  } -   -  void destroy(void *h) -  { -    Alsa *alsa = (Alsa*)h; -    delete alsa; -  } - -  bool init(void *h, int cs, char *cnames[]) -  { -    Alsa *alsa = (Alsa*)h; -    return alsa->init(cs, cnames); -  } - -  void setparm(void *h, const char *parm, const char *value) -  { -    Alsa *alsa = (Alsa*)h; -    alsa->setParm(parm, value); -  } - -  bool start(void *h) -  { -    Alsa *alsa = (Alsa*)h; -    return alsa->start(); -  } - -  void stop(void *h) -  { -    Alsa *alsa = (Alsa*)h; -    alsa->stop(); -  } - -  void pre(void *h, size_t s) -  { -    Alsa *alsa = (Alsa*)h; -    alsa->pre(s); -  } - -  void run(void *h, int ch, sample_t *data, size_t size) -  { -    Alsa *alsa = (Alsa*)h; -    alsa->run(ch, data, size); -  } - -  void post(void *h, size_t s) -  { -    Alsa *alsa = (Alsa*)h; -    alsa->post(s); -  } - -  size_t samplerate(void *h) -  { -    Alsa *alsa = (Alsa*)h; -    return alsa->samplerate(); -  } -} diff --git a/drumgizmo/output/dummy/Makefile.am b/drumgizmo/output/dummy/Makefile.am deleted file mode 100644 index bff3daf..0000000 --- a/drumgizmo/output/dummy/Makefile.am +++ /dev/null @@ -1,29 +0,0 @@ - -dummysources = \ -	dummy.cc - -if HAVE_OUTPUT_DUMMY - -dummyltlibs = dummy.la -dummybuildsources = $(dummysources) - -else - -dummyltlibs = -dummybuildsources = - -endif - -EXTRA_DIST = $(dummysources) - -lib_LTLIBRARIES = $(dummyltlibs) - -libdir = $(OUTPUT_PLUGIN_DIR) - -AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/include -dummy_la_LDFLAGS = -module -avoid-version -shared -dummy_la_LIBADD = -dummy_la_SOURCES = $(dummybuildsources) - -install-exec-hook: -	rm -f $(DESTDIR)$(libdir)/dummy.la diff --git a/drumgizmo/output/dummy/dummy.cc b/drumgizmo/output/dummy/dummy.cc deleted file mode 100644 index e60f2b7..0000000 --- a/drumgizmo/output/dummy/dummy.cc +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            audiooutputenginedummy.cc - * - *  Sat Apr 30 21:12:02 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include <stdlib.h> - -#include <audiotypes.h> -#include <string> - -class Dummy { -public: -  Dummy(); -  ~Dummy(); -  bool init(int channels, char *cnames[]); - -  void setParm(std::string parm, std::string value); - -  bool start(); -  void stop(); - -  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() -{ -} - -Dummy::~Dummy() -{ -} - -bool Dummy::init(int channels, char *cnames[]) -{ -  return true; -} - -void Dummy::setParm(std::string parm, std::string value) -{ -} - -bool Dummy::start() -{ -  return true; -} - -void Dummy::stop() -{ -} - -void Dummy::pre(size_t size) -{ -} - -void Dummy::run(int channel, sample_t* data, size_t size) -{ -} - -void Dummy::post(size_t size) -{ -} - -size_t Dummy::samplerate() -{ -  return 44100; -} - -extern "C" { -  void *create() -  { -    return new Dummy(); -  } -   -  void destroy(void *h) -  { -    Dummy *dummy = (Dummy*)h; -    delete dummy; -  } - -  bool init(void *h, int cs, char *cnames[]) -  { -    Dummy *dummy = (Dummy*)h; -    return dummy->init(cs, cnames); -  } - -  void setparm(void *h, const char *parm, const char *value) -  { -    Dummy *dummy = (Dummy*)h; -    dummy->setParm(parm, value); -  } - -  bool start(void *h) -  { -    Dummy *dummy = (Dummy*)h; -    return dummy->start(); -  } - -  void stop(void *h) -  { -    Dummy *dummy = (Dummy*)h; -    dummy->stop(); -  } - -  void pre(void *h, size_t size) -  { -    Dummy *dummy = (Dummy*)h; -    dummy->pre(size); -  } - -  void run(void *h, int ch, sample_t *data, size_t size) -  { -    Dummy *dummy = (Dummy*)h; -    dummy->run(ch, data, size); -  } - -  void post(void *h, size_t size) -  { -    Dummy *dummy = (Dummy*)h; -    dummy->post(size); -  } - -  size_t samplerate(void *h) -  { -    Dummy *dummy = (Dummy*)h; -    return dummy->samplerate(); -  } -} diff --git a/drumgizmo/output/jackaudio/Makefile.am b/drumgizmo/output/jackaudio/Makefile.am deleted file mode 100644 index 46cdb23..0000000 --- a/drumgizmo/output/jackaudio/Makefile.am +++ /dev/null @@ -1,31 +0,0 @@ - -jackaudiosources = \ -	jackaudio.cc \ -	$(top_srcdir)/src/semaphore.cc \ -	$(top_srcdir)/hugin/hugin.c - -if HAVE_OUTPUT_JACKAUDIO - -jackaudioltlibs = jackaudio.la -jackaudiobuildsources = $(jackaudiosources) - -else - -jackaudioltlibs = -jackaudiobuildsources = - -endif - -EXTRA_DIST = $(jackaudiosources) - -lib_LTLIBRARIES = $(jackaudioltlibs) - -libdir = $(OUTPUT_PLUGIN_DIR) - -AM_CPPFLAGS = -I$(top_srcdir)/include $(JACK_CFLAGS) -I$(top_srcdir)/hugin -I$(top_srcdir)/src -jackaudio_la_LDFLAGS = $(JACK_LIBS) -module -avoid-version -shared -jackaudio_la_LIBADD = -jackaudio_la_SOURCES = $(jackaudiobuildsources) - -install-exec-hook: -	rm -f $(DESTDIR)$(libdir)/jackaudio.la diff --git a/drumgizmo/output/jackaudio/jackaudio.cc b/drumgizmo/output/jackaudio/jackaudio.cc deleted file mode 100644 index 3e489a9..0000000 --- a/drumgizmo/output/jackaudio/jackaudio.cc +++ /dev/null @@ -1,222 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            jackaudio.cc - * - *  Sat Apr 30 21:11:54 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -/* -#include <stdlib.h> - -#include <string> -#include <audiotypes.h> -#include <semaphore.h> -#include <stdlib.h> - -#define NOTE_ON 0x90 - -#include "../../jackclient.h" -#include <stdio.h> - -class JackAudio : public JackProcess { -public: -  JackAudio(); -  ~JackAudio(); -  bool init(int channels, char *cnames[]); - -  void setParm(std::string parm, std::string value); - -  bool start(); -  void stop(); - -  void pre(size_t size); -  void run(int channel, sample_t* data, size_t size); -  void post(size_t size); - -  void jack_process(jack_nframes_t nframes); - -  size_t bufsize(); -  size_t samplerate(); - -private: -	JackClient *jackclient{nullptr}; -	jack_port_t *output_port[64] = {}; -	size_t nchannels{0}; -	sample_t **channels{nullptr}; -  Semaphore sem; -}; - -JackAudio::JackAudio() : sem("jackaudio") -{ -} - -JackAudio::~JackAudio() -{ -} - -bool JackAudio::init(int nchannels, char *cnames[]) -{ -  this->nchannels = nchannels; -  channels = (sample_t**)malloc(nchannels * sizeof(sample_t*)); - -  for(int i = 0; i < nchannels; i++) { -    char buf[32]; -    sprintf(buf, "%d", i + 1); -    std::string name; -    name += buf; -    name += "-"; -    name += cnames[i]; -    output_port[i] = jack_port_register(jackclient->jack_client, -                                        name.c_str(), -                                        JACK_DEFAULT_AUDIO_TYPE, -                                        JackPortIsOutput, 0); -    channels[i] = (sample_t*)malloc(bufsize() * sizeof(sample_t)); -  } -  return true; -} - -void JackAudio::setParm(std::string parm, std::string value) -{ -  if(parm == "jack_client") { -    sscanf(value.c_str(), "%p", &jackclient); -    if(jackclient) jackclient->addJackProcess(this); -  } -} - -bool JackAudio::start() -{ -  //jackclient->activate(); -  return true; -} - -void JackAudio::stop() -{ -} - -void JackAudio::pre(size_t size) -{ -} - -void JackAudio::run(int channel, sample_t* data, size_t size) -{ -  // Copy engine data to ringbuffer. -  for(size_t i = 0; i < size; i++) { -    channels[channel][i] = data[i]; -  } -} - -void JackAudio::post(size_t size) -{ -  sem.wait(); -} - -void JackAudio::jack_process(jack_nframes_t nframes) -{ -  //printf("o"); fflush(stdout); -  for(size_t c = 0; c < nchannels; c++) { -    jack_default_audio_sample_t *out = -      (jack_default_audio_sample_t *) jack_port_get_buffer(output_port[c], -                                                           nframes); -    for(size_t i = 0; i < nframes; i++) { -      out[i] = channels[c][i]; -    } -  } -  sem.post(); -} - -size_t JackAudio::bufsize() -{ -  return jack_get_buffer_size(jackclient->jack_client); -} - -size_t JackAudio::samplerate() -{ -  return jack_get_sample_rate(jackclient->jack_client); -} - -extern "C" { -  void *create() -  { -    return new JackAudio(); -  } -   -  void destroy(void *h) -  { -    JackAudio *jack = (JackAudio*)h; -    delete jack; -  } - -  bool init(void *h, int cs, char *cnames[]) -  { -    JackAudio *jack = (JackAudio*)h; -    return jack->init(cs, cnames); -  } - -  void setparm(void *h, const char *parm, const char *value) -  { -    JackAudio *jack = (JackAudio*)h; -    jack->setParm(parm, value); -  } - -  bool start(void *h) -  { -    JackAudio *jack = (JackAudio*)h; -    return jack->start(); -  } - -  void stop(void *h) -  { -    JackAudio *jack = (JackAudio*)h; -    jack->stop(); -  } - -  void pre(void *h, size_t s) -  { -    JackAudio *jack = (JackAudio*)h; -    jack->pre(s); -  } - -  void run(void *h, int ch, sample_t *data, size_t size) -  { -    JackAudio *jack = (JackAudio*)h; -    jack->run(ch, data, size); -  } - -  void post(void *h, size_t s) -  { -    JackAudio *jack = (JackAudio*)h; -    jack->post(s); -  } - -  size_t bufsize(void *h) -  { -    JackAudio *jack = (JackAudio*)h; -    return jack->bufsize(); -  } - -  size_t samplerate(void *h) -  { -    JackAudio *jack = (JackAudio*)h; -    return jack->samplerate(); -  } -} -*/ diff --git a/drumgizmo/output/wavfile/Makefile.am b/drumgizmo/output/wavfile/Makefile.am deleted file mode 100644 index ad26294..0000000 --- a/drumgizmo/output/wavfile/Makefile.am +++ /dev/null @@ -1,29 +0,0 @@ - -wavfilesources = \ -	wavfile.cc - -if HAVE_OUTPUT_WAVFILE - -wavfileltlibs = wavfile.la -wavfilebuildsources = $(wavfilesources) - -else - -wavfileltlibs = -wavfilebuildsources = - -endif - -EXTRA_DIST = $(wavfilesources) - -lib_LTLIBRARIES = $(wavfileltlibs) - -libdir = $(OUTPUT_PLUGIN_DIR) - -AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/include $(SNDFILE_CFLAGS) -wavfile_la_LDFLAGS = $(SNDFILE_LIBS) -module -avoid-version -shared -wavfile_la_LIBADD = -wavfile_la_SOURCES = $(wavfilebuildsources) - -install-exec-hook: -	rm -f $(DESTDIR)$(libdir)/wavfile.la diff --git a/drumgizmo/output/wavfile/wavfile.cc b/drumgizmo/output/wavfile/wavfile.cc deleted file mode 100644 index 8401f80..0000000 --- a/drumgizmo/output/wavfile/wavfile.cc +++ /dev/null @@ -1,197 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            wavfile.cc - * - *  Sat Apr 30 21:12:02 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include <stdlib.h> - -#include <audiotypes.h> -#include <string> -#include <memory.h> - -#include <sndfile.h> - -#define T(x, msg) if(x < 0) { printf("%s failed: %s\n", msg, snd_strerror(x)); fflush(stdout); return false; } - -class WavFile { -public: -  WavFile(); -  ~WavFile(); -  bool init(int channels, char *cnames[]); -  void setParm(std::string parm, std::string value); -  bool start(); -  void stop(); -  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; -	SNDFILE **fh{nullptr}; -	size_t channels{0}; - -  // Parameters -  std::string filename; -}; - -WavFile::WavFile() -{ -  fh = NULL; -  filename = "output"; - -  memset(&sf_info, 0, sizeof(sf_info)); -  sf_info.channels = 1;//channels; -  sf_info.format = SF_FORMAT_WAV | SF_FORMAT_FLOAT; -  sf_info.samplerate = 44100; -} - -WavFile::~WavFile() -{ -  if(fh == NULL) return; - -  for(size_t i = 0; i < channels; i++) { -    if(fh[i]) sf_close(fh[i]); -  } - -  if(fh) free(fh); -} - -bool WavFile::init(int channels, char *cnames[]) -{ -  this->channels = channels; - -  fh = (SNDFILE **)malloc(sizeof(SNDFILE *)*channels); - -  for(size_t i = 0; i < this->channels; i++) fh[i] = NULL; - -  for(size_t i = 0; i < this->channels; i++) { -    char fname[512]; - -    sprintf(fname, "%s%s-%d.wav", filename.c_str(), cnames[i], (int)i); -    //    printf("[%s]\n", fname); - -    fh[i] = sf_open(fname, SFM_WRITE, &sf_info); -    if(!fh[i]) { -      printf("Write error...\n"); -      return false; -    } -  } - -  return true; -} - -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() -{ -  return true; -} - -void WavFile::stop() -{ -} - -void WavFile::pre(size_t size) -{ -} - -void WavFile::run(int channel, sample_t* cdata, size_t csize) -{ -  if(channel < (int)channels) sf_writef_float(fh[channel], cdata, csize);  -} - -void WavFile::post(size_t size) -{ -} - -size_t WavFile::samplerate() -{ -  return sf_info.samplerate; -} - -extern "C" { -  void *create() -  { -    return new WavFile(); -  } -   -  void destroy(void *h) -  { -    WavFile *sndfile = (WavFile*)h; -    delete sndfile; -  } - -  bool init(void *h, int cs, char *cnames[]) -  { -    WavFile *sndfile = (WavFile*)h; -    return sndfile->init(cs, cnames); -  } - -  void setparm(void *h, const char *parm, const char *value) -  { -    WavFile *sndfile = (WavFile*)h; -    sndfile->setParm(parm, value); -  } - -  bool start(void *h) -  { -    WavFile *sndfile = (WavFile*)h; -    return sndfile->start(); -  } - -  void stop(void *h) -  { -    WavFile *sndfile = (WavFile*)h; -    sndfile->stop(); -  } - -  void pre(void *h, size_t s) -  { -    WavFile *sndfile = (WavFile*)h; -    sndfile->pre(s); -  } - -  void run(void *h, int ch, sample_t *data, size_t size) -  { -    WavFile *sndfile = (WavFile*)h; -    sndfile->run(ch, data, size); -  } - -  void post(void *h, size_t s) -  { -    WavFile *sndfile = (WavFile*)h; -    sndfile->post(s); -  } - -  size_t samplerate(void *h) -  { -    WavFile *wavfile = (WavFile*)h; -    return wavfile->samplerate(); -  } -} | 
