@@ -3,7 +3,8 @@ module PortMidi
3
3
using PortMidi_jll
4
4
export PortMidi_jll
5
5
6
- using CEnum
6
+ to_c_type (:: Type{<:AbstractString} ) = Cstring # or Ptr{Cchar}
7
+ to_c_type (t:: Type{<:Union{AbstractArray,Ref}} ) = Ptr{eltype (t)}
7
8
8
9
const PmQueue = Cvoid
9
10
21
22
22
23
const PortMidiStream = Cvoid
23
24
24
- @cenum PmError:: Int32 begin
25
+ @enum PmError:: Int32 begin
25
26
pmNoError = 0
26
- pmNoData = 0
27
+ # pmNoData = 0
27
28
pmGotData = 1
28
29
pmHostError = - 10000
29
30
pmInvalidDeviceId = - 9999
@@ -163,7 +164,7 @@ function Pm_WriteSysEx(stream, when, msg)
163
164
ccall ((:Pm_WriteSysEx , libportmidi), PmError, (Ptr{PortMidiStream}, PmTimestamp, Ptr{Cuchar}), stream, when, msg)
164
165
end
165
166
166
- @cenum PtError:: Int32 begin
167
+ @enum PtError:: Int32 begin
167
168
ptNoError = 0
168
169
ptHostError = - 10000
169
170
ptAlreadyStarted = - 9999
@@ -196,10 +197,6 @@ function Pt_Sleep(duration)
196
197
ccall ((:Pt_Sleep , libportmidi), Cvoid, (int32_t,), duration)
197
198
end
198
199
199
- const FALSE = 0
200
-
201
- const TRUE = 1
202
-
203
200
const PM_DEFAULT_SYSEX_BUFFER_SIZE = 1024
204
201
205
202
const PmStream = PortMidiStream
@@ -252,4 +249,19 @@ const PM_FILT_TUNE = 1 << 0x06
252
249
253
250
const PM_FILT_SYSTEMCOMMON = ((PM_FILT_MTC | PM_FILT_SONG_POSITION) | PM_FILT_SONG_SELECT) | PM_FILT_TUNE
254
251
252
+ Pm_Message (status, data1, data2) = ((((data2) << 16 ) & 0xFF0000 ) | (((data1) << 8 ) & 0xFF00 ) | ((status) & 0xFF ))
253
+ Pm_MessageStatus (msg) = ((msg) & 0xFF )
254
+ Pm_MessageData1 (msg) = (((msg) >> 8 ) & 0xFF )
255
+ Pm_MessageData2 (msg) = (((msg) >> 16 ) & 0xFF )
256
+
257
+ export Pm_Message, Pm_MessageStatus, Pm_MessageData1, Pm_MessageData2
258
+
259
+ # exports
260
+ const PREFIXES = [" Pm" ]
261
+ for name in names (@__MODULE__ ; all= true ), prefix in PREFIXES
262
+ if startswith (string (name), prefix)
263
+ @eval export $ name
264
+ end
265
+ end
266
+
255
267
end # module
0 commit comments