diff options
Diffstat (limited to 'drumgizmo')
| -rw-r--r-- | drumgizmo/enginefactory.cc | 31 | ||||
| -rw-r--r-- | drumgizmo/enginefactory.h | 5 | ||||
| -rw-r--r-- | drumgizmo/input/inputdummy.h | 3 | ||||
| -rw-r--r-- | drumgizmo/input/jackmidi.cc | 30 | ||||
| -rw-r--r-- | drumgizmo/input/jackmidi.h | 4 | ||||
| -rw-r--r-- | drumgizmo/input/midifile.cc | 56 | ||||
| -rw-r--r-- | drumgizmo/jackclient.cc | 29 | ||||
| -rw-r--r-- | drumgizmo/jackclient.h | 14 | ||||
| -rw-r--r-- | drumgizmo/output/alsa.cc | 54 | ||||
| -rw-r--r-- | drumgizmo/output/jackaudio.cc | 21 | ||||
| -rw-r--r-- | drumgizmo/output/jackaudio.h | 6 | ||||
| -rw-r--r-- | drumgizmo/output/outputdummy.cc | 38 | ||||
| -rw-r--r-- | drumgizmo/output/wavfile.cc | 50 | 
13 files changed, 195 insertions, 146 deletions
| diff --git a/drumgizmo/enginefactory.cc b/drumgizmo/enginefactory.cc index e88f679..63a17ba 100644 --- a/drumgizmo/enginefactory.cc +++ b/drumgizmo/enginefactory.cc @@ -31,9 +31,14 @@  EngineFactory::EngineFactory()  	: input{} -	, output{} +	, output +{ +}  #ifdef USE_JACK -	, jack { nullptr } +, jack +{ +	nullptr +}  #endif  {  // list available input engines @@ -65,7 +70,7 @@ EngineFactory::EngineFactory()  #ifdef USE_JACK  void EngineFactory::prepareJack()  { -	if (jack == nullptr) +	if(jack == nullptr)  	{  		jack = std::make_unique<JackClient>();  	} @@ -82,23 +87,22 @@ const std::list<std::string>& EngineFactory::getOutputEngines() const  	return output;  } -std::unique_ptr<AudioInputEngine> -EngineFactory::createInput(const std::string& name) +std::unique_ptr<AudioInputEngine> EngineFactory::createInput(const std::string& name)  {  #ifdef HAVE_INPUT_DUMMY -	if (name == "dummy") +	if(name == "dummy")  	{  		return std::make_unique<DummyInputEngine>();  	}  #endif  #ifdef HAVE_INPUT_MIDIFILE -	if (name == "midifile") +	if(name == "midifile")  	{  		return std::make_unique<MidifileInputEngine>();  	}  #endif  #ifdef HAVE_INPUT_JACKMIDI -	if (name == "jackmidi") +	if(name == "jackmidi")  	{  		prepareJack();  		return std::make_unique<JackMidiInputEngine>(*jack); @@ -111,29 +115,28 @@ EngineFactory::createInput(const std::string& name)  	return nullptr;  } -std::unique_ptr<AudioOutputEngine> -EngineFactory::createOutput(const std::string& name) +std::unique_ptr<AudioOutputEngine> EngineFactory::createOutput(const std::string& name)  {  #ifdef HAVE_OUTPUT_DUMMY -	if (name == "dummy") +	if(name == "dummy")  	{  		return std::make_unique<DummyOutputEngine>();  	}  #endif  #ifdef HAVE_OUTPUT_WAVFILE -	if (name == "wavfile") +	if(name == "wavfile")  	{  		return std::make_unique<WavfileOutputEngine>();  	}  #endif  #ifdef HAVE_OUTPUT_ALSA -	if (name == "alsa") +	if(name == "alsa")  	{  		return std::make_unique<AlsaOutputEngine>();  	}  #endif  #ifdef HAVE_OUTPUT_JACKAUDIO -	if (name == "jackaudio") +	if(name == "jackaudio")  	{  		prepareJack();  		return std::make_unique<JackAudioOutputEngine>(*jack); diff --git a/drumgizmo/enginefactory.h b/drumgizmo/enginefactory.h index d7e63ee..01e2610 100644 --- a/drumgizmo/enginefactory.h +++ b/drumgizmo/enginefactory.h @@ -75,7 +75,7 @@ public:  	//! Query list of available input engines' names  	//! \return const reference to the list  	const std::list<std::string>& getInputEngines() const; -	 +  	//! Query list of available output engines' names  	//! \return const reference to the list  	const std::list<std::string>& getOutputEngines() const; @@ -84,7 +84,7 @@ public:  	//! \param name Name of the input engine that should be initialized  	//! \return unique_ptr to input engine or nullptr if engine is not supported  	std::unique_ptr<AudioInputEngine> createInput(const std::string& name); -	 +  	//! Create input engine by name  	//! \param name Name of the output engine that should be initialized  	//! \return unique_ptr to input engine or nullptr if engine is not supported @@ -100,5 +100,4 @@ protected:  	// Utility to initialize jack (once)  	void prepareJack();  #endif -  }; diff --git a/drumgizmo/input/inputdummy.h b/drumgizmo/input/inputdummy.h index 30d0599..27c5a43 100644 --- a/drumgizmo/input/inputdummy.h +++ b/drumgizmo/input/inputdummy.h @@ -27,7 +27,8 @@  #pragma once  #include <audioinputengine.h> -class DummyInputEngine : public AudioInputEngine +class DummyInputEngine +	: public AudioInputEngine  {  public:  	DummyInputEngine(); diff --git a/drumgizmo/input/jackmidi.cc b/drumgizmo/input/jackmidi.cc index 4aebf69..23c0ff1 100644 --- a/drumgizmo/input/jackmidi.cc +++ b/drumgizmo/input/jackmidi.cc @@ -32,7 +32,7 @@  static int const NOTE_ON = 0x90; -JackMidiInputEngine::JackMidiInputEngine(JackClient &client) +JackMidiInputEngine::JackMidiInputEngine(JackClient& client)  	: AudioInputEngineMidi{}  	, JackProcess{}  	, client(client) @@ -51,19 +51,21 @@ JackMidiInputEngine::~JackMidiInputEngine()  bool JackMidiInputEngine::init(Instruments& instruments)  { -	if (!loadMidiMap(midimap, instruments)) { -		std::cerr << "[MidifileInputEngine] Failed to parse midimap '" << midimap -		          << "'\n"; +	if(!loadMidiMap(midimap, instruments)) +	{ +		std::cerr << "[MidifileInputEngine] Failed to parse midimap '" +		          << midimap << "'\n";  		return false;  	}  	port = std::make_unique<JackPort>(client, "drumgizmo_midiin", -	                                  JACK_DEFAULT_MIDI_TYPE, JackPortIsInput); +	                                  JACK_DEFAULT_MIDI_TYPE, +	                                  JackPortIsInput);  	return true;  }  void JackMidiInputEngine::setParm(std::string parm, std::string value)  { -	if (parm == "midimap") +	if(parm == "midimap")  	{  		// apply midimap filename  		midimap = value; @@ -89,12 +91,12 @@ void JackMidiInputEngine::pre()  {  } -event_t *JackMidiInputEngine::run(size_t pos, size_t len, size_t *nevents) +event_t* JackMidiInputEngine::run(size_t pos, size_t len, size_t* nevents)  {  	*nevents = listsize; -	event_t *l = list; +	event_t* l = list;  	// todo: get rid of malloc -	list = (event_t *)malloc(sizeof(event_t) * 1000); +	list = (event_t*)malloc(sizeof(event_t) * 1000);  	listsize = 0;  	return l;  } @@ -106,18 +108,18 @@ void JackMidiInputEngine::post()  void JackMidiInputEngine::process(jack_nframes_t num_frames)  {  	assert(port != nullptr); -	void *buffer = jack_port_get_buffer(port->port, num_frames); +	void* buffer = jack_port_get_buffer(port->port, num_frames);  	jack_nframes_t num_events = jack_midi_get_event_count(buffer); -	for (jack_nframes_t i = 0; i < num_events; ++i) +	for(jack_nframes_t i = 0; i < num_events; ++i)  	{  		jack_midi_event_t event;  		jack_midi_event_get(&event, buffer, i); -		if (event.size != 3) +		if(event.size != 3)  		{  			continue;  		} -		if ((event.buffer[0] & NOTE_ON) != NOTE_ON) +		if((event.buffer[0] & NOTE_ON) != NOTE_ON)  		{  			continue;  		} @@ -125,7 +127,7 @@ void JackMidiInputEngine::process(jack_nframes_t num_frames)  		int velocity = event.buffer[2];  		printf("Event key:%d vel:%d\n", key, velocity);  		int k = mmap.lookup(key); -		if (k != -1 && velocity) +		if(k != -1 && velocity)  		{  			list[listsize].type = TYPE_ONSET;  			list[listsize].instrument = k; diff --git a/drumgizmo/input/jackmidi.h b/drumgizmo/input/jackmidi.h index 10111a4..da8d670 100644 --- a/drumgizmo/input/jackmidi.h +++ b/drumgizmo/input/jackmidi.h @@ -39,7 +39,7 @@ class JackMidiInputEngine  	, public JackProcess  {  public: -	JackMidiInputEngine(JackClient &client); +	JackMidiInputEngine(JackClient& client);  	~JackMidiInputEngine();  	// based on AudioInputEngineMidi @@ -55,7 +55,7 @@ public:  	void process(jack_nframes_t num_frames) override;  private: -	JackClient &client; +	JackClient& client;  	std::unique_ptr<JackPort> port;  	std::size_t pos; diff --git a/drumgizmo/input/midifile.cc b/drumgizmo/input/midifile.cc index 7d27998..9e342e9 100644 --- a/drumgizmo/input/midifile.cc +++ b/drumgizmo/input/midifile.cc @@ -44,7 +44,7 @@ MidifileInputEngine::MidifileInputEngine()  MidifileInputEngine::~MidifileInputEngine()  { -	if (smf != nullptr) +	if(smf != nullptr)  	{  		smf_delete(smf);  	} @@ -52,26 +52,27 @@ MidifileInputEngine::~MidifileInputEngine()  bool MidifileInputEngine::init(Instruments& instruments)  { -	if (file == "") +	if(file == "")  	{  		std::cerr << "[MidifileInputEngine] Missing midi filename\n";  		return false;  	} -	if (midimap == "") +	if(midimap == "")  	{  		std::cerr << "[MidifileInputEngine] Missing midimap filename\n";  		return false;  	}  	smf = smf_load(file.c_str()); -	if (smf == nullptr) +	if(smf == nullptr)  	{  		std::cerr << "[MidifileInputEngine] Failed to load midifile '" << file  		          << "'\n";  		return false;  	} -	if (!loadMidiMap(midimap, instruments)) { -		std::cerr << "[MidifileInputEngine] Failed to parse midimap '" << midimap -		          << "'\n"; +	if(!loadMidiMap(midimap, instruments)) +	{ +		std::cerr << "[MidifileInputEngine] Failed to parse midimap '" +		          << midimap << "'\n";  		return false;  	}  	return true; @@ -79,29 +80,30 @@ bool MidifileInputEngine::init(Instruments& instruments)  void MidifileInputEngine::setParm(std::string parm, std::string value)  { -	if (parm == "file") +	if(parm == "file")  	{  		// apply midi input filename  		file = value;  	} -	else if (parm == "speed") +	else if(parm == "speed")  	{  		// try to apply speed  		try  		{  			speed = std::stof(value);  		} -		catch (...) +		catch(...)  		{ -			std::cerr << "[MidifileInputEngine] Invalid speed " << value << "\n"; +			std::cerr << "[MidifileInputEngine] Invalid speed " << value +			          << "\n";  		}  	} -	else if (parm == "midimap") +	else if(parm == "midimap")  	{  		// apply midimap filename  		midimap = value;  	} -	else if (parm == "loop") +	else if(parm == "loop")  	{  		// apply looping  		loop = true; @@ -126,34 +128,34 @@ void MidifileInputEngine::pre()  {  } -event_t *MidifileInputEngine::run(size_t pos, size_t len, size_t *nevents) +event_t* MidifileInputEngine::run(size_t pos, size_t len, size_t* nevents)  { -	event_t *evs{nullptr}; +	event_t* evs{nullptr};  	size_t num_events{0u};  	double current_max_time = (1.0 + pos + len) / (44100.0 / speed);  	current_max_time -= offset;  	//  double cur_min_time = (double)(pos) / (44100.0 / speed); -	if (!current_event) +	if(!current_event)  	{  		current_event = smf_get_next_event(smf);  	} -	while (current_event && current_event->time_seconds < current_max_time) +	while(current_event && current_event->time_seconds < current_max_time)  	{ -		if (!smf_event_is_metadata(current_event)) +		if(!smf_event_is_metadata(current_event))  		{ -			if ((current_event->midi_buffer_length == 3) && +			if((current_event->midi_buffer_length == 3) &&  			    ((current_event->midi_buffer[0] & NOTE_ON) == NOTE_ON) &&  			    (track == -1 || current_event->track_number == track) &&  			    current_event->midi_buffer[2] > 0)  			{ -				if (evs == nullptr) +				if(evs == nullptr)  				{  					// todo: get rid of malloc -					evs = (event_t *)malloc(sizeof(event_t) * 1000); +					evs = (event_t*)malloc(sizeof(event_t) * 1000);  				}  				int key = current_event->midi_buffer[1]; @@ -164,13 +166,13 @@ event_t *MidifileInputEngine::run(size_t pos, size_t len, size_t *nevents)  				evs[num_events].offset = evpos - pos;  				int i = mmap.lookup(key); -				if (i != -1) +				if(i != -1)  				{  					evs[num_events].instrument = i;  					evs[num_events].velocity = velocity / 127.0;  					++num_events; -					if (num_events > 999) +					if(num_events > 999)  					{  						fprintf(stderr, "PANIC!\n");  						break; @@ -182,19 +184,19 @@ event_t *MidifileInputEngine::run(size_t pos, size_t len, size_t *nevents)  		current_event = smf_get_next_event(smf);  	} -	if (!current_event) +	if(!current_event)  	{ -		if (loop) +		if(loop)  		{  			smf_rewind(smf);  			offset += current_max_time;  		}  		else  		{ -			if (evs == nullptr) +			if(evs == nullptr)  			{  				// todo: get rid of malloc -				evs = (event_t *)malloc(sizeof(event_t) * 1000); +				evs = (event_t*)malloc(sizeof(event_t) * 1000);  			}  			evs[num_events].type = TYPE_STOP;  			evs[num_events].offset = len - 1; diff --git a/drumgizmo/jackclient.cc b/drumgizmo/jackclient.cc index 042329c..7277296 100644 --- a/drumgizmo/jackclient.cc +++ b/drumgizmo/jackclient.cc @@ -28,12 +28,14 @@  #include "jackclient.h" -JackProcess::~JackProcess() {} +JackProcess::~JackProcess() +{ +}  // -------------------------------------------------------------------- -JackPort::JackPort(JackClient &client, const std::string &name, -                   const char *type, JackPortFlags flags) +JackPort::JackPort(JackClient& client, const std::string& name, +                   const char* type, JackPortFlags flags)  	: client{client.client} // register jack port for given client  	, port{jack_port_register(this->client, name.c_str(), type, flags, 0)}  { @@ -41,7 +43,7 @@ JackPort::JackPort(JackClient &client, const std::string &name,  JackPort::~JackPort()  { -	if (port != nullptr) +	if(port != nullptr)  	{  		assert(client != nullptr);  		jack_port_unregister(client, port); @@ -50,15 +52,12 @@ JackPort::~JackPort()  // -------------------------------------------------------------------- -static int _wrap_jack_process(jack_nframes_t nframes, void *arg) +static int _wrap_jack_process(jack_nframes_t nframes, void* arg)  { -	return static_cast<JackClient *>(arg)->process(nframes); +	return static_cast<JackClient*>(arg)->process(nframes);  } -JackClient::JackClient() -	: client{nullptr} -	, processes{} -	, is_active{false} +JackClient::JackClient() : client{nullptr}, processes{}, is_active{false}  {  	jack_status_t status;  	client = jack_client_open("DrumGizmo", JackNullOption, &status); @@ -67,25 +66,25 @@ JackClient::JackClient()  JackClient::~JackClient()  { -	if (client != nullptr) +	if(client != nullptr)  	{  		jack_client_close(client);  	}  } -void JackClient::add(JackProcess &process) +void JackClient::add(JackProcess& process)  {  	processes.insert(&process);  } -void JackClient::remove(JackProcess &process) +void JackClient::remove(JackProcess& process)  {  	processes.erase(&process);  }  void JackClient::activate()  { -	if (!is_active) +	if(!is_active)  	{  		jack_activate(client);  	} @@ -94,7 +93,7 @@ void JackClient::activate()  int JackClient::process(jack_nframes_t num_frames)  { -	for (auto& ptr : processes) +	for(auto& ptr : processes)  	{  		ptr->process(num_frames);  	} diff --git a/drumgizmo/jackclient.h b/drumgizmo/jackclient.h index b35c978..ea181c8 100644 --- a/drumgizmo/jackclient.h +++ b/drumgizmo/jackclient.h @@ -47,12 +47,12 @@ public:  // RAII-wrapper for jack_port_t  struct JackPort  { -	JackPort(JackClient &client, const std::string &name, const char *type, +	JackPort(JackClient& client, const std::string& name, const char* type,  	         JackPortFlags flags);  	~JackPort(); -	jack_client_t *const client; -	jack_port_t *const port; +	jack_client_t* const client; +	jack_port_t* const port;  };  // -------------------------------------------------------------------- @@ -65,15 +65,15 @@ public:  	JackClient();  	~JackClient(); -	void add(JackProcess &process); -	void remove(JackProcess &process); +	void add(JackProcess& process); +	void remove(JackProcess& process);  	void activate();  	int process(jack_nframes_t num_frames);  	std::size_t getBufferSize() const;  	std::size_t getSampleRate() const;  private: -	jack_client_t *client; -	std::set<JackProcess *> processes; +	jack_client_t* client; +	std::set<JackProcess*> processes;  	bool is_active;  }; diff --git a/drumgizmo/output/alsa.cc b/drumgizmo/output/alsa.cc index c577c72..8e6e4a9 100644 --- a/drumgizmo/output/alsa.cc +++ b/drumgizmo/output/alsa.cc @@ -35,11 +35,15 @@ struct AlsaInitError  	int const code;  	const std::string msg; -	AlsaInitError(int op_code, const std::string &msg) : code{code}, msg{msg} {} +	AlsaInitError(int op_code, const std::string& msg) +		: code{code} +		, msg{msg} +	{ +	} -	static inline void test(int code, const std::string &msg) +	static inline void test(int code, const std::string& msg)  	{ -		if (code < 0) +		if(code < 0)  		{  			throw AlsaInitError(code, msg);  		} @@ -61,7 +65,7 @@ AlsaOutputEngine::~AlsaOutputEngine()  {  	// note: do NOT release `params`, it was allocated by `alloca()` -	if (handle != nullptr) +	if(handle != nullptr)  	{  		snd_pcm_close(handle);  	} @@ -72,10 +76,11 @@ bool AlsaOutputEngine::init(Channels channels)  	// try to initialize alsa  	try  	{ -		int value = snd_pcm_open(&handle, dev.c_str(), SND_PCM_STREAM_PLAYBACK, 0); +		int value = +		    snd_pcm_open(&handle, dev.c_str(), SND_PCM_STREAM_PLAYBACK, 0);  		AlsaInitError::test(value, "snd_pcm_open");  		num_channels = channels.size(); -		if (handle == nullptr) +		if(handle == nullptr)  		{  			std::cerr << "[AlsaOutputEngine] Failed to acquire "  			          << "hardware handle\n"; @@ -86,21 +91,23 @@ bool AlsaOutputEngine::init(Channels channels)  		value = snd_pcm_hw_params_any(handle, params);  		AlsaInitError::test(value, "snd_pcm_hw_params_any"); -		value = snd_pcm_hw_params_set_access(handle, params, -		                                     SND_PCM_ACCESS_RW_INTERLEAVED); +		value = snd_pcm_hw_params_set_access( +		    handle, params, SND_PCM_ACCESS_RW_INTERLEAVED);  		AlsaInitError::test(value, "snd_pcm_hw_params_set_access"); -		value = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_FLOAT); +		value = +		    snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_FLOAT);  		AlsaInitError::test(value, "snd_pcm_hw_params_set_format");  		value = snd_pcm_hw_params_set_channels(handle, params, num_channels);  		AlsaInitError::test(value, "snd_pcm_hw_params_set_channels");  		value = snd_pcm_hw_params_set_rate_near(handle, params, &srate, 0);  		AlsaInitError::test(value, "snd_pcm_hw_params_set_rate_near"); -		value = snd_pcm_hw_params_set_period_size_near(handle, params, &frames, 0); +		value = +		    snd_pcm_hw_params_set_period_size_near(handle, params, &frames, 0);  		AlsaInitError::test(value, "snd_pcm_hw_params_set_period_size_near");  		value = snd_pcm_hw_params(handle, params);  		AlsaInitError::test(value, "snd_pcm_hw_params");  	} -	catch (AlsaInitError const &error) +	catch(AlsaInitError const& error)  	{  		std::cerr << "[AlsaOutputEngine] " << error.msg  		          << " failed: " << snd_strerror(error.code) << std::endl; @@ -115,42 +122,45 @@ bool AlsaOutputEngine::init(Channels channels)  void AlsaOutputEngine::setParm(std::string parm, std::string value)  { -	if (parm == "dev") +	if(parm == "dev")  	{  		// apply hardware device name  		dev = value;  	} -	else if (parm == "frames") +	else if(parm == "frames")  	{  		// try to apply hardware buffer size  		try  		{  			frames = std::stoi(value);  		} -		catch (...) +		catch(...)  		{ -			std::cerr << "[AlsaOutputEngine] Invalid buffer size " << value << "\n"; +			std::cerr << "[AlsaOutputEngine] Invalid buffer size " << value +			          << "\n";  		}  	} -	else if (parm == "srate") +	else if(parm == "srate")  	{  		try  		{  			srate = std::stoi(value);  		} -		catch (...) +		catch(...)  		{ -			std::cerr << "[AlsaOutputEngine] Invalid samplerate " << value << "\n"; +			std::cerr << "[AlsaOutputEngine] Invalid samplerate " << value +			          << "\n";  		}  	}  	else  	{ -		std::cerr << "[AlsaOutputEngine] Unsupported parameter '" << parm << "'\n"; +		std::cerr << "[AlsaOutputEngine] Unsupported parameter '" << parm +		          << "'\n";  	}  }  bool AlsaOutputEngine::start() -{  +{  	return true;  } @@ -162,10 +172,10 @@ void AlsaOutputEngine::pre(size_t nsamples)  {  } -void AlsaOutputEngine::run(int ch, sample_t *samples, size_t nsamples) +void AlsaOutputEngine::run(int ch, sample_t* samples, size_t nsamples)  {  	// Write channel data in interleaved buffer -	for (auto i = 0u; i < nsamples; ++i) +	for(auto i = 0u; i < nsamples; ++i)  	{  		data[i * num_channels + ch] = samples[i];  	} diff --git a/drumgizmo/output/jackaudio.cc b/drumgizmo/output/jackaudio.cc index fd60a2a..53ea330 100644 --- a/drumgizmo/output/jackaudio.cc +++ b/drumgizmo/output/jackaudio.cc @@ -29,7 +29,7 @@  #include "jackaudio.h" -JackAudioOutputEngine::JackAudioOutputEngine(JackClient &client) +JackAudioOutputEngine::JackAudioOutputEngine(JackClient& client)  	: AudioOutputEngine{}  	, client(client)  	, channels{} @@ -50,13 +50,13 @@ bool JackAudioOutputEngine::init(Channels data)  	auto i = 0u;  	auto const buffer_size = getBufferSize(); -	for (auto const &elem : data) +	for(auto const& elem : data)  	{  		auto name = std::to_string(i) + "-" + elem.name;  		// initialize new channel  		channels.emplace_back(client, name, buffer_size); -		if (channels.back().port.port == nullptr) +		if(channels.back().port.port == nullptr)  		{  			std::cerr << "[JackAudioOutputEngine] Cannot create jack "  			          << "port for channel #" << i << "\n"; @@ -85,9 +85,9 @@ void JackAudioOutputEngine::pre(size_t nsamples)  {  } -void JackAudioOutputEngine::run(int ch, sample_t *samples, size_t nsamples) +void JackAudioOutputEngine::run(int ch, sample_t* samples, size_t nsamples)  { -	for (auto i = 0u; i < nsamples; ++i) +	for(auto i = 0u; i < nsamples; ++i)  	{  		channels[ch].samples[i] = samples[i];  	} @@ -102,11 +102,10 @@ void JackAudioOutputEngine::process(jack_nframes_t num_frames)  {  	assert(num_frames == getBufferSize()); -	for (auto &channel : channels) +	for(auto& channel : channels)  	{ -		auto ptr = static_cast<jack_default_audio_sample_t *>( -		    jack_port_get_buffer(channel.port.port, num_frames)); -		for (auto i = 0u; i < num_frames; ++i) +		auto ptr = static_cast<jack_default_audio_sample_t*>(jack_port_get_buffer(channel.port.port, num_frames)); +		for(auto i = 0u; i < num_frames; ++i)  		{  			ptr[i] = channel.samples[i];  		} @@ -124,8 +123,8 @@ size_t JackAudioOutputEngine::samplerate()  	return client.getSampleRate();  } -JackAudioOutputEngine::Channel::Channel(JackClient &client, -                                        const std::string &name, +JackAudioOutputEngine::Channel::Channel(JackClient& client, +                                        const std::string& name,                                          std::size_t buffer_size)  	: port{client, name, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput}  	, samples{} diff --git a/drumgizmo/output/jackaudio.h b/drumgizmo/output/jackaudio.h index e15dede..3408272 100644 --- a/drumgizmo/output/jackaudio.h +++ b/drumgizmo/output/jackaudio.h @@ -36,7 +36,7 @@ class JackAudioOutputEngine  	, public JackProcess  {  public: -	JackAudioOutputEngine(JackClient &client); +	JackAudioOutputEngine(JackClient& client);  	~JackAudioOutputEngine();  	// based on AudioOutputEngine @@ -59,8 +59,8 @@ private:  		JackPort port;  		std::vector<sample_t> samples; -		Channel(JackClient& client, const std::string &name, -		        std::size_t buffer_size); +		Channel(JackClient& client, const std::string& name, +		    std::size_t buffer_size);  	};  	JackClient& client; diff --git a/drumgizmo/output/outputdummy.cc b/drumgizmo/output/outputdummy.cc index 3a3d6a0..2a01cd8 100644 --- a/drumgizmo/output/outputdummy.cc +++ b/drumgizmo/output/outputdummy.cc @@ -26,20 +26,40 @@   */  #include "outputdummy.h" -DummyOutputEngine::DummyOutputEngine() {} +DummyOutputEngine::DummyOutputEngine() +{ +} -DummyOutputEngine::~DummyOutputEngine() {} +DummyOutputEngine::~DummyOutputEngine() +{ +} -bool DummyOutputEngine::init(Channels data) { return true; } +bool DummyOutputEngine::init(Channels data) +{ +	return true; +} -void DummyOutputEngine::setParm(std::string parm, std::string value) {} +void DummyOutputEngine::setParm(std::string parm, std::string value) +{ +} -bool DummyOutputEngine::start() { return true; } +bool DummyOutputEngine::start() +{ +	return true; +} -void DummyOutputEngine::stop() {} +void DummyOutputEngine::stop() +{ +} -void DummyOutputEngine::pre(size_t nsamples) {} +void DummyOutputEngine::pre(size_t nsamples) +{ +} -void DummyOutputEngine::run(int ch, sample_t *samples, size_t nsamples) {} +void DummyOutputEngine::run(int ch, sample_t* samples, size_t nsamples) +{ +} -void DummyOutputEngine::post(size_t nsamples) {} +void DummyOutputEngine::post(size_t nsamples) +{ +} diff --git a/drumgizmo/output/wavfile.cc b/drumgizmo/output/wavfile.cc index faba69d..7035080 100644 --- a/drumgizmo/output/wavfile.cc +++ b/drumgizmo/output/wavfile.cc @@ -44,9 +44,9 @@ WavfileOutputEngine::WavfileOutputEngine()  WavfileOutputEngine::~WavfileOutputEngine()  { -	for (auto &ptr : channels) +	for(auto& ptr : channels)  	{ -		if (ptr != nullptr) +		if(ptr != nullptr)  		{  			sf_close(ptr);  		} @@ -55,13 +55,14 @@ WavfileOutputEngine::~WavfileOutputEngine()  bool WavfileOutputEngine::init(Channels data)  { -	channels.clear(), channels.resize(data.size()); // value-initialized with null -	for (auto i = 0u; i < data.size(); ++i) +	channels.clear(); +	channels.resize(data.size()); // value-initialized with null +	for(auto i = 0u; i < data.size(); ++i)  	{  		// write channel to file  		auto fname = file + data[i].name + "-" + std::to_string(i) + ".wav";  		channels[i] = sf_open(fname.c_str(), SFM_WRITE, &info); -		if (channels[i] == nullptr) +		if(channels[i] == nullptr)  		{  			std::cerr << "[WaffileOutputEngine] Failed to initialize "  			          << "channel #" << i << "\n"; @@ -73,21 +74,22 @@ bool WavfileOutputEngine::init(Channels data)  void WavfileOutputEngine::setParm(std::string parm, std::string value)  { -	if (parm == "file") +	if(parm == "file")  	{  		// apply output filename prefix  		file = value;  	} -	else if (parm == "srate") +	else if(parm == "srate")  	{  		// try to apply samplerate  		try  		{  			info.samplerate = std::stoi(value);  		} -		catch (...) +		catch(...)  		{ -			std::cerr << "[WavfileOutputEngine] Invalid samplerate " << value << "\n"; +			std::cerr << "[WavfileOutputEngine] Invalid samplerate " << value +			          << "\n";  		}  	}  	else @@ -97,24 +99,36 @@ void WavfileOutputEngine::setParm(std::string parm, std::string value)  	}  } -bool WavfileOutputEngine::start() { return true; } +bool WavfileOutputEngine::start() +{ +	return true; +} -void WavfileOutputEngine::stop() {} +void WavfileOutputEngine::stop() +{ +} -void WavfileOutputEngine::pre(size_t nsamples) {} +void WavfileOutputEngine::pre(size_t nsamples) +{ +} -void WavfileOutputEngine::run(int ch, sample_t *samples, size_t nsamples) +void WavfileOutputEngine::run(int ch, sample_t* samples, size_t nsamples)  { -	if (static_cast<unsigned int>(ch) >= channels.size()) +	if(static_cast<unsigned int>(ch) >= channels.size())  	{ -		std::cerr << "[WavfileOutputEngine] cannot access channel #" << ch << " (" -		          << channels.size() << " channels available)\n"; +		std::cerr << "[WavfileOutputEngine] cannot access channel #" << ch +		          << " (" << channels.size() << " channels available)\n";  		return;  	}  	sf_writef_float(channels[ch], samples, nsamples);  } -void WavfileOutputEngine::post(size_t nsamples) {} +void WavfileOutputEngine::post(size_t nsamples) +{ +} -size_t WavfileOutputEngine::samplerate() { return info.samplerate; } +size_t WavfileOutputEngine::samplerate() +{ +	return info.samplerate; +} | 
