From e373ea7096c741a8189f7a480863fd21dd6f6be1 Mon Sep 17 00:00:00 2001 From: KUDr Date: Wed, 10 Jan 2007 18:12:09 +0000 Subject: (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp) --- src/music/extmidi.c | 108 ---------------------------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 src/music/extmidi.c (limited to 'src/music/extmidi.c') diff --git a/src/music/extmidi.c b/src/music/extmidi.c deleted file mode 100644 index 901fa4fd7..000000000 --- a/src/music/extmidi.c +++ /dev/null @@ -1,108 +0,0 @@ -/* $Id$ */ - -#ifndef __MORPHOS__ -#include "../stdafx.h" -#include "../openttd.h" -#include "../sound.h" -#include "../string.h" -#include "../variables.h" -#include "../debug.h" -#include "extmidi.h" -#include -#include -#include -#include -#include -#include -#include - -static struct { - char song[MAX_PATH]; - pid_t pid; -} _midi; - -static void DoPlay(void); -static void DoStop(void); - -static const char* ExtMidiStart(const char* const * parm) -{ - _midi.song[0] = '\0'; - _midi.pid = -1; - return NULL; -} - -static void ExtMidiStop(void) -{ - _midi.song[0] = '\0'; - DoStop(); -} - -static void ExtMidiPlaySong(const char* filename) -{ - ttd_strlcpy(_midi.song, filename, lengthof(_midi.song)); - DoStop(); -} - -static void ExtMidiStopSong(void) -{ - _midi.song[0] = '\0'; - DoStop(); -} - -static bool ExtMidiIsPlaying(void) -{ - if (_midi.pid != -1 && waitpid(_midi.pid, NULL, WNOHANG) == _midi.pid) - _midi.pid = -1; - if (_midi.pid == -1 && _midi.song[0] != '\0') DoPlay(); - return _midi.pid != -1; -} - -static void ExtMidiSetVolume(byte vol) -{ - DEBUG(driver, 1, "extmidi: set volume not implemented"); -} - -static void DoPlay(void) -{ - _midi.pid = fork(); - switch (_midi.pid) { - case 0: { - int d; - - close(0); - d = open("/dev/null", O_RDONLY); - if (d != -1 && dup2(d, 1) != -1 && dup2(d, 2) != -1) { - #if defined(MIDI_ARG) - execlp(msf.extmidi, "extmidi", MIDI_ARG, _midi.song, (char*)0); - #else - execlp(msf.extmidi, "extmidi", _midi.song, (char*)0); - #endif - } - _exit(1); - } - - case -1: - DEBUG(driver, 0, "extmidi: couldn't fork: %s", strerror(errno)); - /* FALLTHROUGH */ - - default: - _midi.song[0] = '\0'; - break; - } -} - -static void DoStop(void) -{ - if (_midi.pid != -1) kill(_midi.pid, SIGTERM); -} - -const HalMusicDriver _extmidi_music_driver = { - ExtMidiStart, - ExtMidiStop, - ExtMidiPlaySong, - ExtMidiStopSong, - ExtMidiIsPlaying, - ExtMidiSetVolume, -}; - -#endif /* __MORPHOS__ */ -- cgit v1.2.3-70-g09d2