/***************************************************************************
                            kde_GUSOut.cpp -  description
                             -------------------
    begin                : Wed Feb  6 15:12:26 2002
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Wed Feb  6 15:12:26 2002, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This library is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU Library General Public License as       *
 *   published by the Free Software Foundation; either version 2 of the    *
 *   License, or (at your option) any later version.                       *
 *                                                                         *
 ***************************************************************************/

extern "C" {
#include "kde_GUSOut.h"
}

#include <libkmid/gusout.h>

class GUSOutBridge : public GUSOut
{
public:
	GUSOutBridge(int d, int total) : GUSOut(d, total) {}
	~GUSOutBridge() {}
};

kde_GUSOut * kde_new_GUSOut(int d, int total){
	return (kde_GUSOut *) new GUSOutBridge((int)d, (int)total);
}
void kde_del_GUSOut( kde_GUSOut* p ){
	delete (GUSOutBridge*) p;
}
void kde_GUSOut_openDev( kde_GUSOut* instPointer,int sqfd){
	((GUSOutBridge*)instPointer)->openDev((int)sqfd);
	return;
}
void kde_GUSOut_closeDev( kde_GUSOut* instPointer){
	((GUSOutBridge*)instPointer)->closeDev();
	return;
}
void kde_GUSOut_initDev( kde_GUSOut* instPointer){
	((GUSOutBridge*)instPointer)->initDev();
	return;
}
void kde_GUSOut_noteOn( kde_GUSOut* instPointer,unsigned char chn, unsigned char note, unsigned char vel){
	((GUSOutBridge*)instPointer)->noteOn((uchar)chn, (uchar)note, (uchar)vel);
	return;
}
void kde_GUSOut_noteOff( kde_GUSOut* instPointer,unsigned char chn, unsigned char note, unsigned char vel){
	((GUSOutBridge*)instPointer)->noteOff((uchar)chn, (uchar)note, (uchar)vel);
	return;
}
void kde_GUSOut_keyPressure( kde_GUSOut* instPointer,unsigned char chn, unsigned char note, unsigned char vel){
	((GUSOutBridge*)instPointer)->keyPressure((uchar)chn, (uchar)note, (uchar)vel);
	return;
}
void kde_GUSOut_chnPatchChange( kde_GUSOut* instPointer,unsigned char chn, unsigned char patch){
	((GUSOutBridge*)instPointer)->chnPatchChange((uchar)chn, (uchar)patch);
	return;
}
void kde_GUSOut_chnPressure( kde_GUSOut* instPointer,unsigned char chn, unsigned char vel){
	((GUSOutBridge*)instPointer)->chnPressure((uchar)chn, (uchar)vel);
	return;
}
void kde_GUSOut_chnPitchBender( kde_GUSOut* instPointer,unsigned char chn, unsigned char lsb, unsigned char msb){
	((GUSOutBridge*)instPointer)->chnPitchBender((uchar)chn, (uchar)lsb, (uchar)msb);
	return;
}
void kde_GUSOut_chnController( kde_GUSOut* instPointer,unsigned char chn, unsigned char ctl, unsigned char v){
	((GUSOutBridge*)instPointer)->chnController((uchar)chn, (uchar)ctl, (uchar)v);
	return;
}
void kde_GUSOut_sysex( kde_GUSOut* instPointer,unsigned char* data, unsigned long size){
	((GUSOutBridge*)instPointer)->sysex((uchar*)data, (ulong)size);
	return;
}
void kde_GUSOut_setPatchesToUse( kde_GUSOut* instPointer,int* patchesused){
	((GUSOutBridge*)instPointer)->setPatchesToUse((int*)patchesused);
	return;
}
int kde_GUSOut_loadPatch( kde_GUSOut* instPointer,int pgm){
	return (int) ((GUSOutBridge*)instPointer)->loadPatch((int)pgm);
}
int kde_GUSOut_patch( kde_GUSOut* instPointer,int p){
	return (int) ((GUSOutBridge*)instPointer)->patch((int)p);
}
void kde_GUSOut_setGUSPatchesDirectory( char* dir){
	GUSOutBridge::setGUSPatchesDirectory((char*)dir);
	return;
}
