diff options
Diffstat (limited to 'drumgizmo')
| -rw-r--r-- | drumgizmo/drumgizmoc.cc | 79 | ||||
| -rw-r--r-- | drumgizmo/drumgizmoc.h | 17 | ||||
| -rw-r--r-- | drumgizmo/output/jackaudio.cc | 1 | 
3 files changed, 30 insertions, 67 deletions
| diff --git a/drumgizmo/drumgizmoc.cc b/drumgizmo/drumgizmoc.cc index 24d16e8..e993dc3 100644 --- a/drumgizmo/drumgizmoc.cc +++ b/drumgizmo/drumgizmoc.cc @@ -92,36 +92,7 @@ static const char usage_str[] =      "  dummy:\n"      "\n"; -CliMain::CliMain() -	: MessageReceiver(MSGRCV_UI) -{ -	loading = true; // Block by default -} - -CliMain::~CliMain() -{ -	hug_close(); -} - -void CliMain::handleMessage(Message* msg) -{ -	switch(msg->type()) -	{ -	case Message::LoadStatus: -		{ -			auto ls = static_cast<LoadStatusMessage*>(msg); -			if(ls->numer_of_files_loaded == ls->number_of_files) -			{ -				loading = false; -			} -		} -		break; -	default: -		break; -	} -} - -int CliMain::run(int argc, char* argv[]) +int main(int argc, char* argv[])  {  	int c; @@ -372,7 +343,8 @@ int CliMain::run(int argc, char* argv[])  	printf("Using kitfile: %s\n", kitfile.c_str()); -	DrumGizmo gizmo(oe.get(), ie.get()); +	Settings settings; +	DrumGizmo gizmo(settings, oe.get(), ie.get());  	gizmo.setFrameSize(oe->getBufferSize()); @@ -382,21 +354,37 @@ int CliMain::run(int argc, char* argv[])  		return 1;  	} -	printf("Loading drumkit, this may take a while..."); -	fflush(stdout); -	loading = true; -	while(async == false && loading) +	printf("Loading drumkit, this may take a while:\n"); + +	if(!async)  	{ +		while(settings.drumkit_load_status.load() != LoadStatus::Done) +		{  #ifdef WIN32 -		SleepEx(500, FALSE); +			SleepEx(10, FALSE);  #else -		usleep(500000); +			usleep(10000);  #endif /*WIN32*/ -		handleMessages(); -		printf("."); -		fflush(stdout); + +			int total = settings.number_of_files.load(); +			int loaded =  settings.number_of_files_loaded.load(); + +			printf("\r%d of %d     ", loaded, total); +			fflush(stdout); + +			if(settings.drumkit_load_status.load() == LoadStatus::Error) +			{ +				printf("\nLoad error\n"); +				return 1; +			} + +			if(loaded == total) +			{ +				//break; +			} +		} +		printf("\ndone\n");  	} -	printf("done.\n");  	gizmo.setSamplerate(oe->getSamplerate()); @@ -411,14 +399,7 @@ int CliMain::run(int argc, char* argv[])  	printf("Quit.\n");  	fflush(stdout); -	return 0; -} - -int main(int argc, char* argv[]) -{ -	CliMain cli; - -	cli.run(argc, argv); +	hug_close();  	return 0;  } diff --git a/drumgizmo/drumgizmoc.h b/drumgizmo/drumgizmoc.h index 231aec6..cc2f96c 100644 --- a/drumgizmo/drumgizmoc.h +++ b/drumgizmo/drumgizmoc.h @@ -24,21 +24,4 @@   *  along with DrumGizmo; if not, write to the Free Software   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -  #pragma once - -#include "messagereceiver.h" - -class CliMain : public MessageReceiver -{ -public: -	CliMain(); -	virtual ~CliMain(); - -	int run(int argc, char* argv[]); -	void handleMessage(Message* msg); - -private: -	bool loading; -}; - diff --git a/drumgizmo/output/jackaudio.cc b/drumgizmo/output/jackaudio.cc index 7710e14..abd7d4f 100644 --- a/drumgizmo/output/jackaudio.cc +++ b/drumgizmo/output/jackaudio.cc @@ -33,7 +33,6 @@ JackAudioOutputEngine::JackAudioOutputEngine(JackClient& client)  	: AudioOutputEngine{}  	, client(client)  	, channels{} -	, sema{"jackaudio"}  {  	client.add(*this);  } | 
