diff options
Diffstat (limited to 'drumgizmo/input')
| -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 | 
4 files changed, 49 insertions, 44 deletions
| 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; | 
