[Smipl-devel] SF.net SVN: smipl:[28] smipl-devel
Brought to you by:
the_student
From: <the...@us...> - 2009-08-04 17:49:12
|
Revision: 28 http://smipl.svn.sourceforge.net/smipl/?rev=28&view=rev Author: the_student Date: 2009-08-04 17:49:01 +0000 (Tue, 04 Aug 2009) Log Message: ----------- Added the new SIASOUND.h Modified Paths: -------------- smipl-devel/SMIPL-header.h smipl-devel/config.h Added Paths: ----------- smipl-devel/SIASOUND.h Added: smipl-devel/SIASOUND.h =================================================================== --- smipl-devel/SIASOUND.h (rev 0) +++ smipl-devel/SIASOUND.h 2009-08-04 17:49:01 UTC (rev 28) @@ -0,0 +1,44 @@ +bool MIDI_OUT_INITED=false; +typedef union { unsigned long word; unsigned char data[4]; }MIDI_Message; +pthread_mutex_t SIA_SOUND=PTHREAD_MUTEX_INITIALIZER; +#ifdef TUX_SOUND +#include <linux/soundcard.h> +int MIDI_Out; +void MIDI_Init() { + pthread_mutex_lock(&SIA_SOUND); + if(MIDI_Out=open("/dev/midi",O_WRONLY,0)<0) goto End; + MIDI_OUT_INITED=true; + End: + pthread_mutex_unlock(&SIA_SOUND); +} +void MIDI_Write(MIDI_Message Melding) { + pthread_mutex_lock(&SIA_SOUND); + if(MIDI_OUT_INITED) { + write(MIDI_Out, Melding.data, sizeof(Melding)); + } + pthread_mutex_unlock(&SIA_SOUND); +} +#endif + +#ifdef system_is_ms_windows +HMIDIOUT MIDI_Out; +void MIDI_Init() { + pthread_mutex_lock(&SIA_SOUND); + if (midiOutOpen(&MIDI_Out, 0, 0, 0, CALLBACK_NULL) != MMSYSERR_NOERROR) { + printf("Error opening MIDI Output.\n"); + goto end; + } + MIDI_OUT_INITED=true; + end: + pthread_mutex_unlock(&SIA_SOUND); +} +void MIDI_Write(MIDI_Message Melding) { + pthread_mutex_lock(&SIA_SOUND); + if(MIDI_OUT_INITED) { + if(midiOutShortMsg(MIDI_Out, Melding.word) != MMSYSERR_NOERROR) { + cout<<"MIDI ERROR"<<endl; + } + } + pthread_mutex_unlock(&SIA_SOUND); +} +#endif Modified: smipl-devel/SMIPL-header.h =================================================================== --- smipl-devel/SMIPL-header.h 2009-08-04 17:19:09 UTC (rev 27) +++ smipl-devel/SMIPL-header.h 2009-08-04 17:49:01 UTC (rev 28) @@ -33,6 +33,7 @@ bool DeInit(); #include "config.h" #include "SIA.h" +#include "SIASOUND.h" #include "String.h" #include "Error.h" #include "MDS.h" Modified: smipl-devel/config.h =================================================================== --- smipl-devel/config.h 2009-08-04 17:19:09 UTC (rev 27) +++ smipl-devel/config.h 2009-08-04 17:49:01 UTC (rev 28) @@ -4,6 +4,7 @@ #ifdef __linux__ //Linux #define system_is_posix //Linux is mostly POSIX +#define TUX_SOUND //Linux uses linux sound #endif //#ifdef __linux__ #ifdef DARWIN //Darwin (Darwin, OSX) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |