source file of the GNU LilyPond music typesetter
- (c) 2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 2001--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
*/
/*
-python2
+python
import midi
s = open ("s.midi").read ()
midi.parse_track (s)
*/
-#include "config.h"
-
-/* urg */
-#if HAVE_PYTHON2_PYTHON_H
-#include <python2/Python.h>
-#elif HAVE_PYTHON2_2_PYTHON_H
-#include <python2.2/Python.h>
-#elif HAVE_PYTHON2_1_PYTHON_H
-#include <python2.1/Python.h>
-#elif HAVE_PYTHON2_0_PYTHON_H
-#include <python2.0/Python.h>
-#elif HAVE_PYTHON1_5_PYTHON_H
-#include <python1.5/Python.h>
-#elif HAVE_PYTHON_PYTHON_H
-#define assert(x)
-#include <python/Python.h>
-#elif HAVE_PYTHON_H
-#define assert(x)
#include <Python.h>
-#else
-#error Need Python.h
-#endif
#if 0
int x = 0;
static PyObject *Midi_warning;
static PyObject *
-midi_error (char *s)
+midi_error (char const *func, char *s)
{
- PyErr_SetString (Midi_error, s);
+ char*dest = (char*) malloc (sizeof (char) * (strlen (func) + strlen (s) + 1));
+ strcpy (dest, func);
+ strcat (dest, s);
+ PyErr_SetString (Midi_error, dest);
+ free (dest);
+
return 0;
}
static PyObject *
-midi_warning (char *s)
+midi_warning (char const *s)
{
PyErr_SetString (Midi_warning, s);
return 0;
debug_print ("%s", "\n");
if (strcmp (*track, "MTrk"))
- return midi_error (__FUNCTION__ ": MTrk expected");
+ return midi_error (__FUNCTION__, ": MTrk expected");
*track += 4;
debug_print ("track end: %p\n", track + track_len);
if (track_len > track_size)
- return midi_error (__FUNCTION__ ": track size corrupt");
+ return midi_error (__FUNCTION__, ": track size corrupt");
pytrack = PyList_New (0);
return 0;
if (track_size < 0)
- return midi_error (__FUNCTION__ ": negative track size");
+ return midi_error (__FUNCTION__, ": negative track size");
track_end = track + track_size;
if (header_len < 6)
- return midi_error (__FUNCTION__ ": header too short");
+ return midi_error (__FUNCTION__, ": header too short");
format = get_number (midi, *midi + 2, 2);
tracks = get_number (midi, *midi + 2, 2);
if (tracks > 32)
- return midi_error (__FUNCTION__ ": too many tracks");
+ return midi_error (__FUNCTION__, ": too many tracks");
division = get_number (midi, *midi + 2, 2) * 4;
return 0;
if (strcmp (midi, "MThd"))
- return midi_error (__FUNCTION__ ": MThd expected");
+ return midi_error (__FUNCTION__, ": MThd expected");
midi += 4;
{0, 0} /* Sentinel */
};
+void
initmidi ()
{
PyObject *m, *d;