Example #1
0
PyMODINIT_FUNC
initrtmidi(void) 
{
  PyEval_InitThreads();
  
  PyObject* module;
  
  if (PyType_Ready(getMidiMessageType()) < 0)
    return;
  if (PyType_Ready(&MidiIn_type) < 0)
    return;
  if (PyType_Ready(&MidiOut_type) < 0)
    return;
  
  module = Py_InitModule3("rtmidi", midi_methods, "RtMidi wrapper.");
  
  Py_INCREF((PyObject*) getMidiMessageType());
  PyModule_AddObject(module, "MidiMessage", (PyObject*) getMidiMessageType());
    
  Py_INCREF(&MidiIn_type);
  PyModule_AddObject(module, "RtMidiIn", (PyObject *)&MidiIn_type);
  
  Py_INCREF(&MidiOut_type);
  PyModule_AddObject(module, "RtMidiOut", (PyObject *)&MidiOut_type);
  
  char eName[32];
  strcpy(eName, "rtmidi.Error");
  RtMidiError = PyErr_NewException(eName, NULL, NULL);
  Py_INCREF(RtMidiError);
  PyModule_AddObject(module, "Error", RtMidiError);  
}
Example #2
0
PyObject *PyMidiMessage_new()
{
  return PyMidiMessage_new(getMidiMessageType(), 0, 0);
}
Example #3
0
PyMODINIT_FUNC init_rtmidi(void) 
#endif
{
  PyEval_InitThreads();
  
  PyObject* module;
  
  if (PyType_Ready(getMidiMessageType()) < 0)
#if PK_PYTHON3
    return 0;
#else
    return;
#endif
  if (PyType_Ready(&MidiIn_type) < 0)
#if PK_PYTHON3
    return 0;
#else
    return;
#endif
  if (PyType_Ready(&MidiOut_type) < 0)
#if PK_PYTHON3
    return 0;
#else
    return;
#endif
  
#if PK_PYTHON3
  module = PyModule_Create(&moduledef);
#else
  module = Py_InitModule3("rtmidi._rtmidi", midi_methods, "RtMidi wrapper");
#endif
  
  Py_INCREF((PyObject*) getMidiMessageType());
  PyModule_AddObject(module, "MidiMessage", (PyObject*) getMidiMessageType());
    
  Py_INCREF(&MidiIn_type);
  PyModule_AddObject(module, "RtMidiIn", (PyObject *)&MidiIn_type);
  
  Py_INCREF(&MidiOut_type);
  PyModule_AddObject(module, "RtMidiOut", (PyObject *)&MidiOut_type);

  PyObject *inDict = MidiIn_type.tp_dict;
  PyObject *outDict = MidiOut_type.tp_dict;

  PyDict_SetItemString(inDict, "UNSPECIFIED", PyLong_FromLong(RtMidi::UNSPECIFIED));
  PyDict_SetItemString(outDict, "UNSPECIFIED", PyLong_FromLong(RtMidi::UNSPECIFIED));
  PyDict_SetItemString(inDict, "MACOSX_CORE", PyLong_FromLong(RtMidi::MACOSX_CORE));
  PyDict_SetItemString(outDict, "MACOSX_CORE", PyLong_FromLong(RtMidi::MACOSX_CORE));
  PyDict_SetItemString(inDict, "LINUX_ALSA", PyLong_FromLong(RtMidi::LINUX_ALSA));
  PyDict_SetItemString(outDict, "LINUX_ALSA", PyLong_FromLong(RtMidi::LINUX_ALSA));
  PyDict_SetItemString(inDict, "UNIX_JACK", PyLong_FromLong(RtMidi::UNIX_JACK));
  PyDict_SetItemString(outDict, "UNIX_JACK", PyLong_FromLong(RtMidi::UNIX_JACK));
  PyDict_SetItemString(inDict, "WINDOWS_MM", PyLong_FromLong(RtMidi::WINDOWS_MM));
  PyDict_SetItemString(outDict, "WINDOWS_MM", PyLong_FromLong(RtMidi::WINDOWS_MM));
  PyDict_SetItemString(inDict, "RTMIDI_DUMMY", PyLong_FromLong(RtMidi::RTMIDI_DUMMY));
  PyDict_SetItemString(outDict, "RTMIDI_DUMMY", PyLong_FromLong(RtMidi::RTMIDI_DUMMY));
  
  char eName[32];
#if PK_WINDOWS
  strcpy_s(eName, "rtmidi.Error");
#else
  strcpy(eName, "rtmidi.Error");
#endif
  rtmidi_Error = PyErr_NewException(eName, NULL, NULL);
  Py_INCREF(rtmidi_Error);
  PyModule_AddObject(module, "Error", rtmidi_Error);  

#if PK_PYTHON3
    return module;
#endif  
}