Tutorial   Class/Enum List   File List   Compound Members   C interface  

rtmidi_c.h
Go to the documentation of this file.
1/************************************************************************/
13/************************************************************************/
14
19#include <stdbool.h>
20#include <stddef.h>
21#ifndef RTMIDI_C_H
22#define RTMIDI_C_H
23
24#if defined(RTMIDI_EXPORT)
25#if defined _WIN32 || defined __CYGWIN__
26#define RTMIDIAPI __declspec(dllexport)
27#else
28#define RTMIDIAPI __attribute__((visibility("default")))
29#endif
30#else
31#define RTMIDIAPI //__declspec(dllimport)
32#endif
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
49 void* ptr;
50 void* callback_proxy;
51 void* error_callback_proxy;
52
54 bool ok;
55
57 char* msg;
58};
59
61typedef struct RtMidiWrapper* RtMidiPtr;
62
64typedef struct RtMidiWrapper* RtMidiInPtr;
65
67typedef struct RtMidiWrapper* RtMidiOutPtr;
68
83
99
108typedef void(* RtMidiCCallback) (double timeStamp, const unsigned char* message,
109 size_t messageSize, void *userData);
110
119typedef void(* RtMidiErrorCCallback) (enum RtMidiErrorType type,
120 const char *errorText,
121 void *userData);
122
123/* RtMidi API */
124
128RTMIDIAPI const char* rtmidi_get_version();
129
143RTMIDIAPI int rtmidi_get_compiled_api (enum RtMidiApi *apis, unsigned int apis_size);
144
147RTMIDIAPI const char *rtmidi_api_name(enum RtMidiApi api);
148
151RTMIDIAPI const char *rtmidi_api_display_name(enum RtMidiApi api);
152
155RTMIDIAPI enum RtMidiApi rtmidi_compiled_api_by_name(const char *name);
156
165RTMIDIAPI void rtmidi_open_port (RtMidiPtr device, unsigned int portNumber, const char *portName);
166
175RTMIDIAPI void rtmidi_open_virtual_port (RtMidiPtr device, const char *portName);
176
180RTMIDIAPI void rtmidi_close_port (RtMidiPtr device);
181
185RTMIDIAPI unsigned int rtmidi_get_port_count (RtMidiPtr device);
186
194RTMIDIAPI int rtmidi_get_port_name (RtMidiPtr device, unsigned int portNumber, char * bufOut, int * bufLen);
195
196/* RtMidiIn API */
197
199RTMIDIAPI RtMidiInPtr rtmidi_in_create_default (void);
200
212RTMIDIAPI RtMidiInPtr rtmidi_in_create (enum RtMidiApi api, const char *clientName, unsigned int queueSizeLimit);
213
215RTMIDIAPI void rtmidi_in_free (RtMidiInPtr device);
216
219RTMIDIAPI enum RtMidiApi rtmidi_in_get_current_api (RtMidiPtr device);
220
223RTMIDIAPI void rtmidi_in_set_callback (RtMidiInPtr device, RtMidiCCallback callback, void *userData);
224
227RTMIDIAPI void rtmidi_in_cancel_callback (RtMidiInPtr device);
228
231RTMIDIAPI void rtmidi_in_ignore_types (RtMidiInPtr device, bool midiSysex, bool midiTime, bool midiSense);
232
252RTMIDIAPI double rtmidi_in_get_message (RtMidiInPtr device, unsigned char *message, size_t *size);
253
254/* RtMidiOut API */
255
257RTMIDIAPI RtMidiOutPtr rtmidi_out_create_default (void);
258
268RTMIDIAPI RtMidiOutPtr rtmidi_out_create (enum RtMidiApi api, const char *clientName);
269
271RTMIDIAPI void rtmidi_out_free (RtMidiOutPtr device);
272
275RTMIDIAPI enum RtMidiApi rtmidi_out_get_current_api (RtMidiPtr device);
276
279RTMIDIAPI int rtmidi_out_send_message (RtMidiOutPtr device, const unsigned char *message, int length);
280
283RTMIDIAPI void rtmidi_set_error_callback (RtMidiPtr device, RtMidiErrorCCallback callback, void *userData);
284
285#ifdef __cplusplus
286}
287#endif
288#endif
289
void * ptr
The wrapped RtMidi object.
Definition rtmidi_c.h:49
bool ok
True when the last function call was OK.
Definition rtmidi_c.h:54
char * msg
If an error occurred (ok != true), set to an error message.
Definition rtmidi_c.h:57
RTMIDIAPI void rtmidi_in_set_callback(RtMidiInPtr device, RtMidiCCallback callback, void *userData)
Set a callback function to be invoked for incoming MIDI messages. See rt::midi::RtMidiIn::setCallback...
RTMIDIAPI enum RtMidiApi rtmidi_in_get_current_api(RtMidiPtr device)
Returns the MIDI API specifier for the given instance of RtMidiIn. See rt::midi::RtMidiIn::getCurrent...
RtMidiApi
MIDI API specifier arguments. See rt::midi::RtMidi::Api.
Definition rtmidi_c.h:70
RtMidiErrorType
Defined RtMidiError types. See rt::midi::RtMidiError::Type.
Definition rtmidi_c.h:85
void(* RtMidiErrorCCallback)(enum RtMidiErrorType type, const char *errorText, void *userData)
The type of a RtMidi error callback function.
Definition rtmidi_c.h:119
RTMIDIAPI void rtmidi_open_virtual_port(RtMidiPtr device, const char *portName)
Creates a virtual MIDI port to which other software applications can connect.
RTMIDIAPI double rtmidi_in_get_message(RtMidiInPtr device, unsigned char *message, size_t *size)
RTMIDIAPI RtMidiInPtr rtmidi_in_create_default(void)
Create a default RtMidiInPtr value, with no initialization.
RTMIDIAPI void rtmidi_close_port(RtMidiPtr device)
Close a MIDI connection. See RtMidi::closePort().
RTMIDIAPI void rtmidi_set_error_callback(RtMidiPtr device, RtMidiErrorCCallback callback, void *userData)
Set error callback function on a RtMidiPtr. See rt::midi::RtMidi::setErrorCallback().
RTMIDIAPI void rtmidi_in_ignore_types(RtMidiInPtr device, bool midiSysex, bool midiTime, bool midiSense)
Specify whether certain MIDI message types should be queued or ignored during input....
RTMIDIAPI int rtmidi_get_compiled_api(enum RtMidiApi *apis, unsigned int apis_size)
Determine the available compiled MIDI APIs.
RTMIDIAPI RtMidiOutPtr rtmidi_out_create(enum RtMidiApi api, const char *clientName)
Create a RtMidiOutPtr value, with given and clientName.
RTMIDIAPI void rtmidi_in_cancel_callback(RtMidiInPtr device)
Cancel use of the current callback function (if one exists). See rt::midi::RtMidiIn::cancelCallback()...
RTMIDIAPI void rtmidi_open_port(RtMidiPtr device, unsigned int portNumber, const char *portName)
Open a MIDI port.
RTMIDIAPI int rtmidi_out_send_message(RtMidiOutPtr device, const unsigned char *message, int length)
Immediately send a single message out an open MIDI output port. See rt::midi::RtMidiOut::sendMessage(...
RTMIDIAPI void rtmidi_out_free(RtMidiOutPtr device)
Free the given RtMidiOutPtr.
RTMIDIAPI const char * rtmidi_get_version()
Return the current RtMidi version. ! See rt::midi::RtMidi::getVersion().
RTMIDIAPI RtMidiInPtr rtmidi_in_create(enum RtMidiApi api, const char *clientName, unsigned int queueSizeLimit)
Create a RtMidiInPtr value, with given api, clientName and queueSizeLimit.
RTMIDIAPI void rtmidi_in_free(RtMidiInPtr device)
Free the given RtMidiInPtr.
void(* RtMidiCCallback)(double timeStamp, const unsigned char *message, size_t messageSize, void *userData)
The type of a RtMidi callback function.
Definition rtmidi_c.h:108
RTMIDIAPI unsigned int rtmidi_get_port_count(RtMidiPtr device)
Return the number of available MIDI ports. See RtMidi::getPortCount().
RTMIDIAPI enum RtMidiApi rtmidi_out_get_current_api(RtMidiPtr device)
Returns the MIDI API specifier for the given instance of RtMidiOut. See rt::midi::RtMidiOut::getCurre...
RTMIDIAPI int rtmidi_get_port_name(RtMidiPtr device, unsigned int portNumber, char *bufOut, int *bufLen)
Access a string identifier for the specified MIDI input port number.
RTMIDIAPI const char * rtmidi_api_name(enum RtMidiApi api)
Return the name of a specified compiled MIDI API. See rt::midi::RtMidi::getApiName().
RTMIDIAPI enum RtMidiApi rtmidi_compiled_api_by_name(const char *name)
Return the compiled MIDI API having the given name. See rt::midi::RtMidi::getCompiledApiByName().
RTMIDIAPI const char * rtmidi_api_display_name(enum RtMidiApi api)
Return the display name of a specified compiled MIDI API. See rt::midi::RtMidi::getApiDisplayName().
RTMIDIAPI RtMidiOutPtr rtmidi_out_create_default(void)
Create a default RtMidiInPtr value, with no initialization.
@ RTMIDI_API_NUM
Definition rtmidi_c.h:81
@ RTMIDI_API_LINUX_ALSA
Definition rtmidi_c.h:73
@ RTMIDI_API_WINDOWS_MM
Definition rtmidi_c.h:75
@ RTMIDI_API_MACOSX_CORE
Definition rtmidi_c.h:72
@ RTMIDI_API_RTMIDI_DUMMY
Definition rtmidi_c.h:76
@ RTMIDI_API_WINDOWS_UWP
Definition rtmidi_c.h:78
@ RTMIDI_API_WEB_MIDI_API
Definition rtmidi_c.h:77
@ RTMIDI_API_UNSPECIFIED
Definition rtmidi_c.h:71
@ RTMIDI_API_UNIX_JACK
Definition rtmidi_c.h:74
@ RTMIDI_API_WINDOWS_MIDI_SERVICES
Definition rtmidi_c.h:80
@ RTMIDI_API_ANDROID
Definition rtmidi_c.h:79
@ RTMIDI_ERROR_INVALID_PARAMETER
Definition rtmidi_c.h:92
@ RTMIDI_ERROR_MEMORY_ERROR
Definition rtmidi_c.h:91
@ RTMIDI_ERROR_UNSPECIFIED
Definition rtmidi_c.h:88
@ RTMIDI_ERROR_INVALID_USE
Definition rtmidi_c.h:93
@ RTMIDI_ERROR_DRIVER_NOT_INSTALLED
Definition rtmidi_c.h:97
@ RTMIDI_ERROR_DRIVER_ERROR
Definition rtmidi_c.h:94
@ RTMIDI_ERROR_DEBUG_WARNING
Definition rtmidi_c.h:87
@ RTMIDI_ERROR_WARNING
Definition rtmidi_c.h:86
@ RTMIDI_ERROR_SYSTEM_ERROR
Definition rtmidi_c.h:95
@ RTMIDI_ERROR_NO_DEVICES_FOUND
Definition rtmidi_c.h:89
@ RTMIDI_ERROR_INVALID_DEVICE
Definition rtmidi_c.h:90
@ RTMIDI_ERROR_THREAD_ERROR
Definition rtmidi_c.h:96
Wraps an RtMidi object for C function return statuses.
Definition rtmidi_c.h:47

©2003-2023 Gary P. Scavone, McGill University. All Rights Reserved.
Maintained by Gary P. Scavone, gary at music.mcgill.ca