aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sfx/device/unixraw-midi.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2009-02-15 11:39:07 +0000
committerEugene Sandulenko2009-02-15 11:39:07 +0000
commite241843bec22600ab4ef98e7a085e82aac73fc93 (patch)
tree61a793884d3462e1feb80e80f202d8816d0c8ec4 /engines/sci/sfx/device/unixraw-midi.cpp
parente9f742806362a84ffdb176a7414318dd2ab4df89 (diff)
downloadscummvm-rg350-e241843bec22600ab4ef98e7a085e82aac73fc93.tar.gz
scummvm-rg350-e241843bec22600ab4ef98e7a085e82aac73fc93.tar.bz2
scummvm-rg350-e241843bec22600ab4ef98e7a085e82aac73fc93.zip
- Remove some unneeded files
- Mass rename .c to .cpp svn-id: r38227
Diffstat (limited to 'engines/sci/sfx/device/unixraw-midi.cpp')
-rw-r--r--engines/sci/sfx/device/unixraw-midi.cpp100
1 files changed, 100 insertions, 0 deletions
diff --git a/engines/sci/sfx/device/unixraw-midi.cpp b/engines/sci/sfx/device/unixraw-midi.cpp
new file mode 100644
index 0000000000..69ce3890fc
--- /dev/null
+++ b/engines/sci/sfx/device/unixraw-midi.cpp
@@ -0,0 +1,100 @@
+/***************************************************************************
+ unixraw-midi.c Copyright (C) 2005 Walter van Niftrik
+
+
+ This program may be modified and copied freely according to the terms of
+ the GNU general public license (GPL), as long as the above copyright
+ notice and the licensing information contained herein are preserved.
+
+ Please refer to www.gnu.org for licensing details.
+
+ This work is provided AS IS, without warranty of any kind, expressed or
+ implied, including but not limited to the warranties of merchantibility,
+ noninfringement, and fitness for a specific purpose. The author will not
+ be held liable for any damage caused by this work or derivatives of it.
+
+ By using this source code, you agree to the licensing terms as stated
+ above.
+
+
+ Please contact the maintainer for bug reports or inquiries.
+
+ Current Maintainer:
+
+ Walter van Niftrik <w.f.b.w.v.niftrik@stud.tue.nl>
+
+***************************************************************************/
+
+#include <sfx_engine.h>
+#include "../device.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#define SCI_UNIXRAW_MIDI_VERSION "0.1"
+
+#ifndef O_SYNC
+# define O_SYNC 0
+#endif
+
+static int fd;
+static const char *devicename = "/dev/midi";
+
+static int
+unixraw_init(midi_writer_t *self)
+{
+ sciprintf("[SFX] Initialising UNIX raw MIDI backend, v%s\n", SCI_UNIXRAW_MIDI_VERSION);
+
+ fd = open(devicename, O_WRONLY|O_SYNC);
+
+ if (!IS_VALID_FD(fd)) {
+ sciprintf("[SFX] Failed to open %s\n", devicename);
+ return SFX_ERROR;
+ }
+
+ return SFX_OK;
+}
+
+static int
+unixraw_set_option(midi_writer_t *self, char *name, char *value)
+{
+ return SFX_ERROR;
+}
+
+static int
+unixraw_write(midi_writer_t *self, unsigned char *buffer, int len)
+{
+ if (write(fd, buffer, len) != len) {
+ sciprintf("[SFX] MIDI write error\n");
+ return SFX_ERROR;
+ }
+ return SFX_OK;
+}
+
+static void
+unixraw_delay(midi_writer_t *self, int ticks)
+{
+}
+
+static void
+unixraw_reset_timer(midi_writer_t *self)
+{
+}
+
+static void
+unixraw_close(midi_writer_t *self)
+{
+ close(fd);
+}
+
+midi_writer_t sfx_device_midi_unixraw = {
+ "unixraw-midi",
+ &unixraw_init,
+ &unixraw_set_option,
+ &unixraw_write,
+ &unixraw_delay,
+ NULL,
+ &unixraw_reset_timer,
+ &unixraw_close
+};