@@ -930,8 +930,8 @@ module Sysex =
930
930
0x00 uy
931
931
|]
932
932
933
- type MachineDrum ( inPort : IMidiInput < _ >, outPort : IMidiOutput < _ > ) =
934
- let helpGetMDSysex maxMessage ( timeout : TimeSpan ) ( request : MachineDrumSysexRequests ) ( inPort : IMidiInput < _ >) : Async < MachineDrumSysexResponses option > =
933
+ type MachineDrum ( inPort : IMidiInput < int >, outPort : IMidiOutput < int >, getSysexNowTimestamp : unit -> int ) =
934
+ let helpGetMDSysex maxMessage ( timeout : TimeSpan ) ( request : MachineDrumSysexRequests ) inPort : Async < MachineDrumSysexResponses option > =
935
935
#if FABLE_ COMPILER
936
936
failwithf " TODO FABLE"
937
937
#else
@@ -940,13 +940,14 @@ type MachineDrum(inPort: IMidiInput<_>, outPort: IMidiOutput<_>) =
940
940
941
941
let performSysExRequest ( requestMessage : MachineDrumSysexRequests ) =
942
942
if requestMessage.ExpectResponses then
943
+ let timeout = TimeSpan.FromMilliseconds( 2000. )
943
944
#if FABLE_ COMPILER
944
- helpGetMDSysex 5 ( TimeSpan.FromMilliseconds ( 2000. )) requestMessage inPort |> Async.RunSynchronously
945
+ helpGetMDSysex 5 timeout requestMessage inPort |> Async.RunSynchronously
945
946
#else
946
947
let task =
947
- helpGetMDSysex 5 ( TimeSpan.FromMilliseconds ( 2000. )) requestMessage inPort
948
+ helpGetMDSysex 5 timeout requestMessage inPort
948
949
|> Async.StartAsTask
949
- requestMessage.Sysex |> outPort.WriteSysex 0
950
+ requestMessage.Sysex |> outPort.WriteSysex ( getSysexNowTimestamp ())
950
951
task.Result
951
952
#endif
952
953
else
@@ -958,8 +959,6 @@ type MachineDrum(inPort: IMidiInput<_>, outPort: IMidiOutput<_>) =
958
959
959
960
member x.Dump dumpRequest =
960
961
performSysExRequest dumpRequest
961
- member x.QueryStatus statusType =
962
- performSysExRequest ( QueryStatus statusType)
963
962
member x.CurrentGlobalSettingsSlot =
964
963
match x.Dump ( QueryStatus( MachineDrumStatusType.GlobalSlot)) with
965
964
| Some ( MachineDrumSysexResponses.StatusResponse( GlobalSlot, slot)) -> Some slot
@@ -988,7 +987,7 @@ type MachineDrum(inPort: IMidiInput<_>, outPort: IMidiOutput<_>) =
988
987
989
988
member x.AssignMachine track machine mode =
990
989
( AssignMachine ( track, machine, mode)) .Sysex
991
- |> outPort.WriteSysex 0
990
+ |> outPort.WriteSysex ( getSysexNowTimestamp ())
992
991
993
992
(*
994
993
member x.DumpKit kit =
@@ -1034,7 +1033,7 @@ type TimestampedMessage<'t> = {
1034
1033
Message: 't
1035
1034
}
1036
1035
1037
- type MachineDrumEventListener ( md : MachineDrum , getTimestamp ) =
1036
+ type MachineDrumEventListener ( md : MachineDrum , getTimestamp : unit -> int ) =
1038
1037
let mutable mdGlobalSettings = md.CurrentGlobalSettings
1039
1038
let midiIn = md.MidiOutPort
1040
1039
//let mutable lastKit = {Timestamp = 0; Message = None }
@@ -1131,7 +1130,7 @@ type MachineDrumEventListener(md: MachineDrum, getTimestamp) =
1131
1130
1132
1131
let channelMessageListener = midiIn.ChannelMessageReceived.Subscribe( fun m ->
1133
1132
let message = onChannelMessage m
1134
- { Timestamp = m.Timestamp; Message = message } |> event.Trigger
1133
+ { Timestamp = ( m.Timestamp) ; Message = message } |> event.Trigger
1135
1134
)
1136
1135
let sysexListener = midiIn.SysexReceived.Subscribe( fun m ->
1137
1136
// TODO TODO
0 commit comments